Page Builder by SiteOrigin - Version 2.7.0

Version Description

  • 27 June 2018 =
  • New setting to automatically open widget forms when they're added.
  • New row layout option to make provision for row style padding in full width stretched rows.
  • Make sure prebuilt layouts path is a real path.
  • Better compatibility with Yoast SEO.
  • Row Cell options: Prevent Yoast from resizing fields.
  • Added panels_data filter to generate_css.
  • Dont hide the upload UI before initializing it.
  • Fix collapse order in legacy layout.
  • Clear SO widgets' id and timestamp metadata when cloning a PB Page.
  • Fix layout imports in Edge.
  • Apply bottom margin custom styles to main wrapper where PB adds it's bottom margin, to allow users to override.
  • Use https for layouts directory.
Download this release

Release Info

Developer gpriday
Plugin Icon 128x128 Page Builder by SiteOrigin
Version 2.7.0
Comparing to
See all releases

Code changes from version 2.6.9 to 2.7.0

css/admin.css CHANGED
@@ -335,6 +335,7 @@
335
  zoom: 1;
336
  margin: 0 -5px;
337
  position: relative;
 
338
  }
339
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:before {
340
  content: '';
@@ -363,7 +364,6 @@
363
  -moz-box-sizing: border-box;
364
  -webkit-box-sizing: border-box;
365
  box-sizing: border-box;
366
- float: left;
367
  position: relative;
368
  padding: 0 5px;
369
  }
@@ -740,18 +740,27 @@
740
  padding-right: 15px;
741
  margin: 0 -15px;
742
  }
743
- .so-panels-dialog {
 
744
  /* The add widget dialog */
745
  /* The row edit dialog */
746
  /* For prebuilt layouts */
747
- /* Special case of the builder interface being inside a dialog */
 
 
748
  }
749
  .so-panels-dialog .so-overlay,
 
750
  .so-panels-dialog .so-content,
 
751
  .so-panels-dialog .so-title-bar,
 
752
  .so-panels-dialog .so-toolbar,
 
753
  .so-panels-dialog .so-left-sidebar,
754
- .so-panels-dialog .so-right-sidebar {
 
 
755
  z-index: 100001;
756
  position: fixed;
757
  -ms-box-sizing: border-box;
@@ -761,18 +770,23 @@
761
  padding: 15px;
762
  }
763
  .so-panels-dialog .so-content,
 
764
  .so-panels-dialog .so-left-sidebar,
765
- .so-panels-dialog .so-right-sidebar {
 
 
766
  overflow-y: auto;
767
  }
768
- .so-panels-dialog .so-overlay {
 
769
  top: 0;
770
  left: 0;
771
  right: 0;
772
  bottom: 0;
773
  background: rgba(0, 0, 0, 0.5);
774
  }
775
- .so-panels-dialog .so-content {
 
776
  top: 80px;
777
  left: 30px;
778
  right: 30px;
@@ -783,16 +797,20 @@
783
  -moz-box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
784
  box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
785
  }
786
- .so-panels-dialog .so-content > *:first-child {
 
787
  margin-top: 0;
788
  }
789
- .so-panels-dialog .so-content > *:last-child {
 
790
  margin-bottom: 0;
791
  }
792
- .so-panels-dialog .so-content .so-content-tabs > * {
 
793
  display: none;
794
  }
795
- .so-panels-dialog .so-title-bar {
 
796
  left: 30px;
797
  right: 30px;
798
  top: 30px;
@@ -801,7 +819,8 @@
801
  border-bottom: 1px solid #D8D8D8;
802
  /* These are the action buttons in the title bar */
803
  }
804
- .so-panels-dialog .so-title-bar h3.so-title {
 
805
  -ms-box-sizing: border-box;
806
  -moz-box-sizing: border-box;
807
  -webkit-box-sizing: border-box;
@@ -811,16 +830,20 @@
811
  display: block;
812
  }
813
  .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:hover,
814
- .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus {
 
 
815
  outline: none;
816
  background-color: #F0F0F0;
817
  }
818
- .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus {
 
819
  margin-top: -4px;
820
  margin-left: -4px;
821
  border: 1px solid #E4E4E4;
822
  }
823
- .so-panels-dialog .so-title-bar input[type=text].so-edit-title {
 
824
  margin-top: -3px;
825
  margin-left: -3px;
826
  display: none;
@@ -832,14 +855,16 @@
832
  background-color: #F0F0F0;
833
  padding: 4px 5px;
834
  }
835
- .so-panels-dialog .so-title-bar h3.so-parent-link {
 
836
  cursor: pointer;
837
  position: relative;
838
  float: left;
839
  margin: 0 15px 0 0 !important;
840
  padding: 0 27px 0 0 !important;
841
  }
842
- .so-panels-dialog .so-title-bar h3.so-parent-link .so-separator {
 
843
  position: absolute;
844
  top: -15px;
845
  right: 0;
@@ -849,12 +874,14 @@
849
  background: url(images/dialog-separator.png) no-repeat;
850
  }
851
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
852
- .so-panels-dialog .so-title-bar h3.so-parent-link .so-separator {
 
853
  background: url(images/dialog-separator@2x.png) no-repeat;
854
  background-size: cover;
855
  }
856
  }
857
- .so-panels-dialog .so-title-bar a {
 
858
  cursor: pointer;
859
  position: absolute;
860
  box-sizing: border-box;
@@ -872,13 +899,16 @@
872
  border-bottom: 1px solid #d8d8d8;
873
  /* Disabled nav */
874
  }
875
- .so-panels-dialog .so-title-bar a:hover {
 
876
  background: #e9e9e9;
877
  }
878
- .so-panels-dialog .so-title-bar a:hover .so-dialog-icon {
 
879
  color: #333333;
880
  }
881
- .so-panels-dialog .so-title-bar a .so-dialog-icon {
 
882
  position: absolute;
883
  top: 50%;
884
  left: 50%;
@@ -890,40 +920,51 @@
890
  color: #666666;
891
  text-align: center;
892
  }
893
- .so-panels-dialog .so-title-bar a .so-dialog-icon:before {
 
894
  font: 400 20px/1em dashicons;
895
  top: 7px;
896
  left: 13px;
897
  }
898
- .so-panels-dialog .so-title-bar a.so-close {
 
899
  right: 0;
900
  }
901
- .so-panels-dialog .so-title-bar a.so-close .so-dialog-icon:before {
 
902
  content: "\f335";
903
  }
904
- .so-panels-dialog .so-title-bar a.so-next {
 
905
  right: 50px;
906
  }
907
- .so-panels-dialog .so-title-bar a.so-next .so-dialog-icon:before {
 
908
  content: '\f345';
909
  }
910
- .so-panels-dialog .so-title-bar a.so-previous {
 
911
  right: 100px;
912
  }
913
- .so-panels-dialog .so-title-bar a.so-previous .so-dialog-icon:before {
 
914
  content: '\f341';
915
  }
916
- .so-panels-dialog .so-title-bar a.so-nav.so-disabled {
 
917
  cursor: default;
918
  pointer-events: none;
919
  }
920
- .so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon {
 
921
  color: #dddddd;
922
  }
923
- .so-panels-dialog .so-title-bar.so-has-icon {
 
924
  padding-left: 45px;
925
  }
926
- .so-panels-dialog .so-title-bar.so-has-icon .so-panels-icon {
 
927
  position: absolute;
928
  top: 14.5px;
929
  left: 14px;
@@ -935,7 +976,8 @@
935
  text-align: center;
936
  color: #666;
937
  }
938
- .so-panels-dialog .so-toolbar {
 
939
  left: 30px;
940
  right: 30px;
941
  bottom: 30px;
@@ -944,7 +986,8 @@
944
  border-top: 1px solid #D8D8D8;
945
  z-index: 100002;
946
  }
947
- .so-panels-dialog .so-toolbar .so-status {
 
948
  float: left;
949
  padding-top: 6px;
950
  padding-bottom: 6px;
@@ -952,26 +995,31 @@
952
  color: #999999;
953
  line-height: 1em;
954
  }
955
- .so-panels-dialog .so-toolbar .so-status.so-panels-loading {
 
956
  padding-left: 26px;
957
  background-position: left center;
958
  }
959
- .so-panels-dialog .so-toolbar .so-status .dashicons-warning {
 
960
  color: #aa0000;
961
  vertical-align: middle;
962
  margin-right: 7px;
963
  margin-top: -1px;
964
  }
965
- .so-panels-dialog .so-toolbar .so-buttons {
 
966
  float: right;
967
  }
968
- .so-panels-dialog .so-toolbar .so-buttons .action-buttons {
 
969
  position: absolute;
970
  left: 15px;
971
  top: 50%;
972
  margin-top: -0.65em;
973
  }
974
- .so-panels-dialog .so-toolbar .so-buttons .action-buttons a {
 
975
  cursor: pointer;
976
  display: inline;
977
  padding: 0.2em 0.5em;
@@ -979,21 +1027,27 @@
979
  margin-right: 0.5em;
980
  text-decoration: none;
981
  }
982
- .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete {
 
983
  color: #a00;
984
  }
985
- .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover {
 
986
  background: #a00;
987
  color: #FFFFFF;
988
  }
989
- .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover {
 
990
  text-decoration: underline;
991
  }
992
  .so-panels-dialog .so-left-sidebar,
993
- .so-panels-dialog .so-right-sidebar {
 
 
994
  background-color: #f3f3f3;
995
  }
996
- .so-panels-dialog .so-left-sidebar {
 
997
  display: none;
998
  top: 30px;
999
  left: 30px;
@@ -1001,41 +1055,50 @@
1001
  width: 290px;
1002
  border-right: 1px solid #D8D8D8;
1003
  }
1004
- .so-panels-dialog .so-left-sidebar h4 {
 
1005
  margin: 0 0 20px 0;
1006
  font-size: 18px;
1007
  }
1008
- .so-panels-dialog .so-left-sidebar .so-sidebar-search {
 
1009
  width: 100%;
1010
  padding: 6px;
1011
  margin-bottom: 20px;
1012
  }
1013
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs {
 
1014
  list-style: none;
1015
  margin: 0 -15px;
1016
  }
1017
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li {
 
1018
  margin-bottom: 0;
1019
  }
1020
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a {
 
1021
  padding: 7px 16px;
1022
  display: block;
1023
  font-size: 14px;
1024
  text-decoration: none;
1025
  box-shadow: none !important;
1026
  }
1027
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a:hover {
 
1028
  background: #FFFFFF;
1029
  }
1030
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a {
 
1031
  color: #555;
1032
  font-weight: bold;
1033
  background: #FFFFFF;
1034
  }
1035
- .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover {
 
1036
  background: #FFFFFF;
1037
  }
1038
- .so-panels-dialog .so-right-sidebar {
 
1039
  display: none;
1040
  top: 80px;
1041
  right: 30px;
@@ -1043,41 +1106,53 @@
1043
  width: 290px;
1044
  border-left: 1px solid #D8D8D8;
1045
  }
1046
- .so-panels-dialog .so-right-sidebar h3 {
 
1047
  color: #333;
1048
  }
1049
- .so-panels-dialog .so-right-sidebar h3:first-child {
 
1050
  margin-top: 0;
1051
  }
1052
- .so-panels-dialog .so-sidebar .form-field {
 
1053
  margin-bottom: 20px;
1054
  }
1055
- .so-panels-dialog .so-sidebar .form-field label {
 
1056
  font-weight: 500;
1057
  font-size: 15px;
1058
  display: block;
1059
  margin-bottom: 10px;
1060
  }
1061
  .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content,
 
1062
  .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-toolbar,
1063
- .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-title-bar {
 
 
1064
  left: 320px;
1065
  }
1066
- .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content {
 
1067
  -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1068
  -moz-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1069
  box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1070
  }
1071
- .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-left-sidebar {
 
1072
  display: block;
1073
  }
1074
- .so-panels-dialog.so-panels-dialog-has-right-sidebar .so-content {
 
1075
  right: 320px;
1076
  }
1077
- .so-panels-dialog.so-panels-dialog-has-right-sidebar .so-right-sidebar {
 
1078
  display: block;
1079
  }
1080
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget {
 
1081
  -webkit-border-radius: 2px;
1082
  -moz-border-radius: 2px;
1083
  border-radius: 2px;
@@ -1090,11 +1165,13 @@
1090
  box-shadow: 0 1px 2px rgba(0,0,0,0.075), inset 0 1px 0 #FFFFFF;
1091
  margin-bottom: 15px;
1092
  }
1093
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover {
 
1094
  border: 1px solid #BBBBBB;
1095
  background: #FFFFFF;
1096
  }
1097
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current {
 
1098
  border-color: #0074a2;
1099
  background: #2ea2cc;
1100
  cursor: auto;
@@ -1102,48 +1179,58 @@
1102
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.2);
1103
  box-shadow: 0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.2);
1104
  }
1105
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3 {
 
1106
  color: #FFFFFF;
1107
  }
1108
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small {
 
1109
  color: #eeeeee;
1110
  }
1111
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover {
 
1112
  border-color: #0074a2;
1113
  background: #2ea2cc;
1114
  }
1115
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child {
 
1116
  margin-bottom: 0;
1117
  }
1118
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3 {
 
1119
  margin: 0 0 7px 0;
1120
  padding: 0;
1121
  height: 1.2em;
1122
  color: #222222;
1123
  font-size: 14px;
1124
  }
1125
- .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small {
 
1126
  font-size: 11px;
1127
  line-height: 1.25em;
1128
  display: block;
1129
  overflow: hidden;
1130
  color: #888888;
1131
  }
1132
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list {
 
1133
  zoom: 1;
1134
  margin: 0 -5px -10px -5px;
1135
  min-height: 10px;
1136
  }
1137
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:before {
 
1138
  content: '';
1139
  display: block;
1140
  }
1141
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:after {
 
1142
  content: '';
1143
  display: table;
1144
  clear: both;
1145
  }
1146
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type {
 
1147
  -ms-user-select: none;
1148
  /* IE 10+ */
1149
  -moz-user-select: -moz-none;
@@ -1160,22 +1247,26 @@
1160
  float: left;
1161
  }
1162
  @media (max-width: 1280px) {
1163
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type {
 
1164
  width: 33.333%;
1165
  }
1166
  }
1167
  @media (max-width: 960px) {
1168
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type {
 
1169
  width: 50%;
1170
  }
1171
  }
1172
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type h3 {
 
1173
  margin: 0 0 7px 0;
1174
  padding: 0;
1175
  color: #222222;
1176
  font-size: 14px;
1177
  }
1178
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type small {
 
1179
  font-size: 11px;
1180
  min-height: 2.5em;
1181
  line-height: 1.25em;
@@ -1183,7 +1274,8 @@
1183
  overflow: hidden;
1184
  color: #888888;
1185
  }
1186
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon {
 
1187
  font-size: 20px;
1188
  width: 20px;
1189
  height: 20px;
@@ -1191,7 +1283,8 @@
1191
  float: left;
1192
  margin: -1px 0.5em 0 0;
1193
  }
1194
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper {
 
1195
  border: 1px solid #cccccc;
1196
  cursor: pointer;
1197
  padding: 10px;
@@ -1200,78 +1293,98 @@
1200
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
1201
  box-shadow: 0 1px 2px rgba(0,0,0,0.075);
1202
  }
1203
- .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover {
 
1204
  border: 1px solid #BBBBBB;
1205
  background: #FFFFFF;
1206
  -webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1207
  -moz-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1208
  box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1209
  }
1210
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form {
 
1211
  zoom: 1;
1212
  padding: 8px;
1213
  border: 1px solid #ccc;
1214
  margin-bottom: 20px;
1215
  background: #F3F3F3;
1216
  }
1217
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:before {
 
1218
  content: '';
1219
  display: block;
1220
  }
1221
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:after {
 
1222
  content: '';
1223
  display: table;
1224
  clear: both;
1225
  }
1226
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form input,
 
1227
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form select,
 
1228
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button,
 
1229
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form strong,
1230
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form span {
 
 
1231
  display: inline;
1232
  margin: 1px 5px;
1233
  outline: none;
1234
  box-shadow: none;
1235
  }
1236
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button {
 
1237
  margin-top: 2px;
1238
  }
1239
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form label {
 
1240
  display: inline;
1241
  }
1242
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview {
 
1243
  margin: 0 -6px;
1244
  height: 360px;
1245
  position: relative;
1246
  white-space: nowrap;
1247
  }
1248
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,
 
1249
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,
1250
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight {
 
 
1251
  -ms-box-sizing: border-box;
1252
  -moz-box-sizing: border-box;
1253
  -webkit-box-sizing: border-box;
1254
  box-sizing: border-box;
1255
  }
1256
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell {
 
1257
  display: inline-block;
1258
  position: relative;
1259
  padding: 0 6px;
1260
  cursor: pointer;
1261
  }
1262
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in {
 
1263
  border: 1px solid #bcccd2;
1264
  min-height: 360px;
1265
  background: #e4eff4;
1266
  position: relative;
1267
  }
1268
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected {
 
1269
  background: #cae7f4 url("images/cell-selected.png") repeat;
1270
  border-color: #9abcc7;
1271
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
1272
  }
1273
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,
1274
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
 
 
1275
  position: absolute;
1276
  font-size: 17px;
1277
  font-weight: bold;
@@ -1288,22 +1401,28 @@
1288
  cursor: pointer;
1289
  }
1290
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after,
1291
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after {
 
 
1292
  content: '%';
1293
  }
1294
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover,
1295
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover {
 
 
1296
  background: #F6F6F6;
1297
  border: 1px solid #D0D0D0;
1298
  }
1299
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
 
1300
  background: #F6F6F6;
1301
  border: 1px solid #D0D0D0;
1302
  -webkit-box-shadow: none;
1303
  -moz-box-shadow: none;
1304
  box-shadow: none;
1305
  }
1306
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle {
 
1307
  z-index: 100;
1308
  position: absolute;
1309
  top: 0;
@@ -1318,78 +1437,98 @@
1318
  transition: background 0.15s ease-in-out 0s;
1319
  }
1320
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover,
1321
- .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging {
 
 
1322
  background: #b7e0f1;
1323
  }
1324
- .so-panels-dialog.so-panels-dialog-history .so-left-sidebar {
 
1325
  padding: 0;
1326
  }
1327
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry {
 
1328
  padding: 10px;
1329
  background: #F8F8F8;
1330
  cursor: pointer;
1331
  border-bottom: 1px solid #ccc;
1332
  }
1333
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry h3 {
 
1334
  margin: 0 0 0.6em 0;
1335
  font-size: 12px;
1336
  font-weight: bold;
1337
  color: #444444;
1338
  line-height: 1em;
1339
  }
1340
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .timesince {
 
1341
  color: #999999;
1342
  font-size: 11px;
1343
  line-height: 1em;
1344
  }
1345
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry:hover {
 
1346
  background: #F0F0F0;
1347
  }
1348
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry.so-selected {
 
1349
  background: #EEEEEE;
1350
  }
1351
- .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .count {
 
1352
  color: #999999;
1353
  }
1354
- .so-panels-dialog.so-panels-dialog-history .so-content {
 
1355
  padding: 0;
1356
  overflow-y: hidden;
1357
  }
1358
- .so-panels-dialog.so-panels-dialog-history .so-content form.history-form {
 
1359
  display: none;
1360
  }
1361
- .so-panels-dialog.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe {
 
1362
  width: 100%;
1363
  height: 100%;
1364
  }
1365
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content {
 
1366
  padding-left: 10px;
1367
  padding-right: 10px;
1368
  }
1369
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-error-message {
 
1370
  font-size: 14px;
1371
  border: 1px solid #cccccc;
1372
  background: #F8F8F8;
1373
  padding: 15px 20px;
1374
  }
1375
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui {
 
1376
  padding: 5px 15px;
1377
  text-align: right;
1378
  }
1379
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui {
 
1380
  padding: 15px;
1381
  }
1382
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message {
 
1383
  display: none;
1384
  }
1385
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message {
 
1386
  display: block;
1387
  }
1388
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message {
 
1389
  font-size: 1em;
1390
  margin-bottom: 0;
1391
  }
1392
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area {
 
1393
  display: block;
1394
  -ms-box-sizing: border-box;
1395
  -moz-box-sizing: border-box;
@@ -1403,11 +1542,13 @@
1403
  -o-transition: all 0.25s ease 0s;
1404
  transition: all 0.25s ease 0s;
1405
  }
1406
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover {
 
1407
  background-color: #f2f9fc;
1408
  border-color: #0074a2;
1409
  }
1410
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar {
 
1411
  display: none;
1412
  padding: 2px;
1413
  border: 2px solid #2181b1;
@@ -1416,40 +1557,47 @@
1416
  border-radius: 2px;
1417
  margin-top: 20px;
1418
  }
1419
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent {
 
1420
  height: 14px;
1421
  background-color: #358ebe;
1422
  -webkit-border-radius: 1px;
1423
  -moz-border-radius: 1px;
1424
  border-radius: 1px;
1425
  }
1426
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button {
 
1427
  padding: 12px 30px;
1428
  height: auto;
1429
  }
1430
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse {
 
1431
  background: #f3f3f3;
1432
  border-bottom: 1px solid #d0d0d0;
1433
  margin: -15px -10px 15px -10px;
1434
  padding: 15px;
1435
  font-weight: bold;
1436
  }
1437
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper {
 
1438
  display: flex;
1439
  flex-flow: row wrap;
1440
  }
1441
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results {
 
1442
  margin: 20px 0;
1443
  padding: 0 5px;
1444
  }
1445
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
 
1446
  -ms-box-sizing: border-box;
1447
  -moz-box-sizing: border-box;
1448
  -webkit-box-sizing: border-box;
1449
  box-sizing: border-box;
1450
  padding: 6px;
1451
  }
1452
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper {
 
1453
  display: flex;
1454
  flex-flow: column nowrap;
1455
  height: 100%;
@@ -1461,38 +1609,45 @@
1461
  -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.1);
1462
  box-shadow: 0 1px 1px rgba(0,0,0,0.1);
1463
  }
1464
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title {
 
1465
  font-size: 15px;
1466
  margin: 0 0 13px 0;
1467
  }
1468
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot {
 
1469
  flex: 3 auto;
1470
  margin-bottom: 10px;
1471
  cursor: pointer;
1472
  }
1473
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading {
 
1474
  background-image: url("images/wpspin_light.gif");
1475
  background-position: center center;
1476
  background-repeat: no-repeat;
1477
  }
1478
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
1479
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading {
 
1480
  background-image: url(images/wpspin_light-2x.gif);
1481
  background-size: 16px 16px;
1482
  }
1483
  }
1484
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img {
 
1485
  display: block;
1486
  width: 100%;
1487
  height: auto;
1488
  }
1489
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper {
 
1490
  display: block;
1491
  min-height: 40px;
1492
  background: #808080;
1493
  border: 1px solid #d0d0d0;
1494
  }
1495
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description {
 
1496
  flex: 1 auto;
1497
  font-size: 0.9em;
1498
  color: #666;
@@ -1500,7 +1655,8 @@
1500
  max-height: 60px;
1501
  overflow: hidden;
1502
  }
1503
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom {
 
1504
  flex: 1 auto;
1505
  position: relative;
1506
  max-height: 50px;
@@ -1508,14 +1664,16 @@
1508
  background: #fcfcfc;
1509
  border-top: 1px solid #d0d0d0;
1510
  }
1511
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title {
 
1512
  margin: 0;
1513
  padding: 16px 10px;
1514
  cursor: pointer;
1515
  overflow: hidden;
1516
  white-space: nowrap;
1517
  }
1518
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons {
 
1519
  position: absolute;
1520
  z-index: 2;
1521
  top: 0;
@@ -1534,69 +1692,85 @@
1534
  -moz-box-shadow: -1px 0 1px rgba(0, 0, 0, 0.05);
1535
  box-shadow: -1px 0 1px rgba(0, 0, 0, 0.05);
1536
  }
1537
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons {
 
1538
  visibility: visible;
1539
  }
1540
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected {
 
1541
  background-color: #e5f4fa;
1542
  }
1543
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper {
 
1544
  background: #deeef4;
1545
  border-color: #9abcc7;
1546
  }
1547
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom {
 
1548
  background: #f8fdff;
1549
  border-color: #bcccd2;
1550
  }
1551
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title {
 
1552
  color: #3e484c;
1553
  }
1554
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons {
 
1555
  background: #eaf2f6;
1556
  border-color: #bcccd2;
1557
  }
1558
  @media only screen and (min-width: 1680px) {
1559
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
 
1560
  width: 20%;
1561
  }
1562
  }
1563
  @media only screen and (max-width: 1679px) and (min-width: 1280px) {
1564
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
 
1565
  width: 25%;
1566
  }
1567
  }
1568
  @media only screen and (max-width: 1279px) and (min-width: 1140px) {
1569
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
 
1570
  width: 33.333%;
1571
  }
1572
  }
1573
  @media only screen and (max-width: 1139px) {
1574
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
 
1575
  width: 50%;
1576
  }
1577
  }
1578
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages {
 
1579
  margin-top: 15px;
1580
  padding: 0 5px;
1581
  }
1582
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled {
 
1583
  pointer-events: none;
1584
  }
1585
- .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position {
 
1586
  vertical-align: baseline;
1587
  }
1588
- .so-panels-dialog .so-visual-styles {
 
1589
  margin: -15px;
1590
  height: 100%;
1591
  /* All the field types */
1592
  }
1593
- .so-panels-dialog .so-visual-styles h3 {
 
1594
  line-height: 1em;
1595
  margin: 0;
1596
  padding: 20px 15px;
1597
  border-bottom: 1px solid #ddd;
1598
  }
1599
- .so-panels-dialog .so-visual-styles .style-section-head {
 
1600
  background: #ffffff;
1601
  padding: 15px 10px;
1602
  border-bottom: 1px solid #ddd;
@@ -1606,95 +1780,119 @@
1606
  -ms-user-select: none;
1607
  user-select: none;
1608
  }
1609
- .so-panels-dialog .so-visual-styles .style-section-head h4 {
 
1610
  margin: 0;
1611
  }
1612
- .so-panels-dialog .so-visual-styles .style-section-fields {
 
1613
  padding: 15px;
1614
  border-bottom: 1px solid #ddd;
1615
  background: #F7F7F7;
1616
  }
1617
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper {
 
1618
  margin-bottom: 20px;
1619
  }
1620
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper:last-child {
 
1621
  margin-bottom: 0;
1622
  }
1623
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper > label {
 
1624
  font-weight: bold;
1625
  display: block;
1626
  margin-bottom: 3px;
1627
  }
1628
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field {
 
1629
  zoom: 1;
1630
  }
1631
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before {
 
1632
  content: '';
1633
  display: block;
1634
  }
1635
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after {
 
1636
  content: '';
1637
  display: table;
1638
  clear: both;
1639
  }
1640
- .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field input {
 
1641
  font-size: 12px;
1642
  }
1643
- .so-panels-dialog .so-visual-styles .style-input-wrapper {
 
1644
  zoom: 1;
1645
  }
1646
- .so-panels-dialog .so-visual-styles .style-input-wrapper:before {
 
1647
  content: '';
1648
  display: block;
1649
  }
1650
- .so-panels-dialog .so-visual-styles .style-input-wrapper:after {
 
1651
  content: '';
1652
  display: table;
1653
  clear: both;
1654
  }
1655
- .so-panels-dialog .so-visual-styles .style-input-wrapper input {
 
1656
  max-width: 100%;
1657
  }
1658
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-inputs {
 
1659
  overflow: auto;
1660
  margin: 0 -3px 4px -3px;
1661
  }
1662
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper {
 
1663
  box-sizing: border-box;
1664
  float: left;
1665
  width: 25%;
1666
  padding: 0 3px;
1667
  }
1668
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value {
 
1669
  border-width: 1px;
1670
  display: block;
1671
  max-width: 100%;
1672
  }
1673
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top {
 
1674
  box-shadow: inset 0 2px 1px rgba(0, 115, 170, 0.35);
1675
  }
1676
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right {
 
1677
  box-shadow: inset -3px 0 2px rgba(0, 115, 170, 0.35);
1678
  }
1679
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom {
 
1680
  box-shadow: inset 0 -2px 1px rgba(0, 115, 170, 0.35);
1681
  }
1682
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left {
 
1683
  box-shadow: inset 3px 0 2px rgba(0, 115, 170, 0.35);
1684
  }
1685
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-multiple {
 
1686
  width: 100%;
1687
  display: block;
1688
  }
1689
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-single {
 
1690
  float: right;
1691
  width: 25%;
1692
  }
1693
- .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-value-single {
 
1694
  float: left;
1695
  width: 72%;
1696
  }
1697
- .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector {
 
1698
  display: inline-block;
1699
  background-color: #f7f7f7;
1700
  border: 1px solid #ccc;
@@ -1708,7 +1906,8 @@
1708
  -moz-box-shadow: inset 0 1px #FFFFFF;
1709
  box-shadow: inset 0 1px #FFFFFF;
1710
  }
1711
- .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .current-image {
 
1712
  height: 28px;
1713
  width: 28px;
1714
  float: left;
@@ -1731,14 +1930,16 @@
1731
  -webkit-background-clip: padding-box;
1732
  background-clip: padding-box;
1733
  }
1734
- .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .select-image {
 
1735
  font-size: 12px;
1736
  line-height: 28px;
1737
  float: left;
1738
  padding: 0 8px;
1739
  color: #555;
1740
  }
1741
- .so-panels-dialog .so-visual-styles .style-field-image .remove-image {
 
1742
  font-size: 12px;
1743
  margin-top: 4px;
1744
  margin-left: 15px;
@@ -1747,13 +1948,16 @@
1747
  color: #666;
1748
  text-decoration: none;
1749
  }
1750
- .so-panels-dialog .so-visual-styles .style-field-image .remove-image.hidden {
 
1751
  display: none;
1752
  }
1753
- .so-panels-dialog .so-visual-styles .style-field-image .image-fallback {
 
1754
  margin-top: 4px;
1755
  }
1756
- .so-panels-dialog .so-visual-styles .style-field-checkbox label {
 
1757
  -webkit-user-select: none;
1758
  /* Chrome all / Safari all */
1759
  -moz-user-select: none;
@@ -1762,11 +1966,13 @@
1762
  /* IE 10+ */
1763
  user-select: none;
1764
  }
1765
- .so-panels-dialog .so-visual-styles .so-field-code {
 
1766
  font-size: 12px;
1767
  font-family: "Courier 10 Pitch", Courier, monospace;
1768
  }
1769
- .so-panels-dialog .so-visual-styles .so-description {
 
1770
  color: #999;
1771
  font-size: 12px;
1772
  margin-top: 5px;
@@ -1774,30 +1980,70 @@
1774
  font-style: italic;
1775
  clear: both;
1776
  }
1777
- .so-panels-dialog .so-visual-styles.so-cell-styles {
 
1778
  margin-top: 15px;
1779
  }
1780
- .so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar {
 
 
 
1781
  border: 1px solid #dedede;
 
1782
  }
1783
- .so-panels-dialog .so-content .siteorigin-panels-builder .so-rows-container {
 
 
 
1784
  padding: 20px 0 0 0;
1785
  }
1786
- .so-panels-dialog .so-content .siteorigin-panels-builder .so-panels-welcome-message {
 
 
 
1787
  padding-left: 0;
1788
  padding-right: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1789
  }
1790
- .so-panels-dialog .so-dropdown-wrapper input[type="button"].button-primary {
 
1791
  width: 125px;
1792
  height: 28px;
1793
  }
1794
- .so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper {
 
1795
  display: block;
1796
  z-index: 11;
1797
  bottom: 28px;
1798
  width: 125px;
1799
  }
1800
- .so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden {
 
1801
  display: none;
1802
  }
1803
  /* Display the dialog with a proper z-index in the customizer */
335
  zoom: 1;
336
  margin: 0 -5px;
337
  position: relative;
338
+ display: flex;
339
  }
340
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:before {
341
  content: '';
364
  -moz-box-sizing: border-box;
365
  -webkit-box-sizing: border-box;
366
  box-sizing: border-box;
 
367
  position: relative;
368
  padding: 0 5px;
369
  }
740
  padding-right: 15px;
741
  margin: 0 -15px;
742
  }
743
+ .so-panels-dialog,
744
+ .gutenberg {
745
  /* The add widget dialog */
746
  /* The row edit dialog */
747
  /* For prebuilt layouts */
748
+ /* Special case of the builder interface being inside a dialog, or gutenberg editor. */
749
+ /* Styles for PB in Gutenberg editor. */
750
+ /* PB Icon in Gutenberg */
751
  }
752
  .so-panels-dialog .so-overlay,
753
+ .gutenberg .so-overlay,
754
  .so-panels-dialog .so-content,
755
+ .gutenberg .so-content,
756
  .so-panels-dialog .so-title-bar,
757
+ .gutenberg .so-title-bar,
758
  .so-panels-dialog .so-toolbar,
759
+ .gutenberg .so-toolbar,
760
  .so-panels-dialog .so-left-sidebar,
761
+ .gutenberg .so-left-sidebar,
762
+ .so-panels-dialog .so-right-sidebar,
763
+ .gutenberg .so-right-sidebar {
764
  z-index: 100001;
765
  position: fixed;
766
  -ms-box-sizing: border-box;
770
  padding: 15px;
771
  }
772
  .so-panels-dialog .so-content,
773
+ .gutenberg .so-content,
774
  .so-panels-dialog .so-left-sidebar,
775
+ .gutenberg .so-left-sidebar,
776
+ .so-panels-dialog .so-right-sidebar,
777
+ .gutenberg .so-right-sidebar {
778
  overflow-y: auto;
779
  }
780
+ .so-panels-dialog .so-overlay,
781
+ .gutenberg .so-overlay {
782
  top: 0;
783
  left: 0;
784
  right: 0;
785
  bottom: 0;
786
  background: rgba(0, 0, 0, 0.5);
787
  }
788
+ .so-panels-dialog .so-content,
789
+ .gutenberg .so-content {
790
  top: 80px;
791
  left: 30px;
792
  right: 30px;
797
  -moz-box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
798
  box-shadow: inset 0 2px 2px rgba(0,0,0,0.03);
799
  }
800
+ .so-panels-dialog .so-content > *:first-child,
801
+ .gutenberg .so-content > *:first-child {
802
  margin-top: 0;
803
  }
804
+ .so-panels-dialog .so-content > *:last-child,
805
+ .gutenberg .so-content > *:last-child {
806
  margin-bottom: 0;
807
  }
808
+ .so-panels-dialog .so-content .so-content-tabs > *,
809
+ .gutenberg .so-content .so-content-tabs > * {
810
  display: none;
811
  }
812
+ .so-panels-dialog .so-title-bar,
813
+ .gutenberg .so-title-bar {
814
  left: 30px;
815
  right: 30px;
816
  top: 30px;
819
  border-bottom: 1px solid #D8D8D8;
820
  /* These are the action buttons in the title bar */
821
  }
822
+ .so-panels-dialog .so-title-bar h3.so-title,
823
+ .gutenberg .so-title-bar h3.so-title {
824
  -ms-box-sizing: border-box;
825
  -moz-box-sizing: border-box;
826
  -webkit-box-sizing: border-box;
830
  display: block;
831
  }
832
  .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:hover,
833
+ .gutenberg .so-title-bar h3.so-title.so-title-editable:hover,
834
+ .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus,
835
+ .gutenberg .so-title-bar h3.so-title.so-title-editable:focus {
836
  outline: none;
837
  background-color: #F0F0F0;
838
  }
839
+ .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus,
840
+ .gutenberg .so-title-bar h3.so-title.so-title-editable:focus {
841
  margin-top: -4px;
842
  margin-left: -4px;
843
  border: 1px solid #E4E4E4;
844
  }
845
+ .so-panels-dialog .so-title-bar input[type=text].so-edit-title,
846
+ .gutenberg .so-title-bar input[type=text].so-edit-title {
847
  margin-top: -3px;
848
  margin-left: -3px;
849
  display: none;
855
  background-color: #F0F0F0;
856
  padding: 4px 5px;
857
  }
858
+ .so-panels-dialog .so-title-bar h3.so-parent-link,
859
+ .gutenberg .so-title-bar h3.so-parent-link {
860
  cursor: pointer;
861
  position: relative;
862
  float: left;
863
  margin: 0 15px 0 0 !important;
864
  padding: 0 27px 0 0 !important;
865
  }
866
+ .so-panels-dialog .so-title-bar h3.so-parent-link .so-separator,
867
+ .gutenberg .so-title-bar h3.so-parent-link .so-separator {
868
  position: absolute;
869
  top: -15px;
870
  right: 0;
874
  background: url(images/dialog-separator.png) no-repeat;
875
  }
876
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
877
+ .so-panels-dialog .so-title-bar h3.so-parent-link .so-separator,
878
+ .gutenberg .so-title-bar h3.so-parent-link .so-separator {
879
  background: url(images/dialog-separator@2x.png) no-repeat;
880
  background-size: cover;
881
  }
882
  }
883
+ .so-panels-dialog .so-title-bar a,
884
+ .gutenberg .so-title-bar a {
885
  cursor: pointer;
886
  position: absolute;
887
  box-sizing: border-box;
899
  border-bottom: 1px solid #d8d8d8;
900
  /* Disabled nav */
901
  }
902
+ .so-panels-dialog .so-title-bar a:hover,
903
+ .gutenberg .so-title-bar a:hover {
904
  background: #e9e9e9;
905
  }
906
+ .so-panels-dialog .so-title-bar a:hover .so-dialog-icon,
907
+ .gutenberg .so-title-bar a:hover .so-dialog-icon {
908
  color: #333333;
909
  }
910
+ .so-panels-dialog .so-title-bar a .so-dialog-icon,
911
+ .gutenberg .so-title-bar a .so-dialog-icon {
912
  position: absolute;
913
  top: 50%;
914
  left: 50%;
920
  color: #666666;
921
  text-align: center;
922
  }
923
+ .so-panels-dialog .so-title-bar a .so-dialog-icon:before,
924
+ .gutenberg .so-title-bar a .so-dialog-icon:before {
925
  font: 400 20px/1em dashicons;
926
  top: 7px;
927
  left: 13px;
928
  }
929
+ .so-panels-dialog .so-title-bar a.so-close,
930
+ .gutenberg .so-title-bar a.so-close {
931
  right: 0;
932
  }
933
+ .so-panels-dialog .so-title-bar a.so-close .so-dialog-icon:before,
934
+ .gutenberg .so-title-bar a.so-close .so-dialog-icon:before {
935
  content: "\f335";
936
  }
937
+ .so-panels-dialog .so-title-bar a.so-next,
938
+ .gutenberg .so-title-bar a.so-next {
939
  right: 50px;
940
  }
941
+ .so-panels-dialog .so-title-bar a.so-next .so-dialog-icon:before,
942
+ .gutenberg .so-title-bar a.so-next .so-dialog-icon:before {
943
  content: '\f345';
944
  }
945
+ .so-panels-dialog .so-title-bar a.so-previous,
946
+ .gutenberg .so-title-bar a.so-previous {
947
  right: 100px;
948
  }
949
+ .so-panels-dialog .so-title-bar a.so-previous .so-dialog-icon:before,
950
+ .gutenberg .so-title-bar a.so-previous .so-dialog-icon:before {
951
  content: '\f341';
952
  }
953
+ .so-panels-dialog .so-title-bar a.so-nav.so-disabled,
954
+ .gutenberg .so-title-bar a.so-nav.so-disabled {
955
  cursor: default;
956
  pointer-events: none;
957
  }
958
+ .so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon,
959
+ .gutenberg .so-title-bar a.so-nav.so-disabled .so-dialog-icon {
960
  color: #dddddd;
961
  }
962
+ .so-panels-dialog .so-title-bar.so-has-icon,
963
+ .gutenberg .so-title-bar.so-has-icon {
964
  padding-left: 45px;
965
  }
966
+ .so-panels-dialog .so-title-bar.so-has-icon .so-panels-icon,
967
+ .gutenberg .so-title-bar.so-has-icon .so-panels-icon {
968
  position: absolute;
969
  top: 14.5px;
970
  left: 14px;
976
  text-align: center;
977
  color: #666;
978
  }
979
+ .so-panels-dialog .so-toolbar,
980
+ .gutenberg .so-toolbar {
981
  left: 30px;
982
  right: 30px;
983
  bottom: 30px;
986
  border-top: 1px solid #D8D8D8;
987
  z-index: 100002;
988
  }
989
+ .so-panels-dialog .so-toolbar .so-status,
990
+ .gutenberg .so-toolbar .so-status {
991
  float: left;
992
  padding-top: 6px;
993
  padding-bottom: 6px;
995
  color: #999999;
996
  line-height: 1em;
997
  }
998
+ .so-panels-dialog .so-toolbar .so-status.so-panels-loading,
999
+ .gutenberg .so-toolbar .so-status.so-panels-loading {
1000
  padding-left: 26px;
1001
  background-position: left center;
1002
  }
1003
+ .so-panels-dialog .so-toolbar .so-status .dashicons-warning,
1004
+ .gutenberg .so-toolbar .so-status .dashicons-warning {
1005
  color: #aa0000;
1006
  vertical-align: middle;
1007
  margin-right: 7px;
1008
  margin-top: -1px;
1009
  }
1010
+ .so-panels-dialog .so-toolbar .so-buttons,
1011
+ .gutenberg .so-toolbar .so-buttons {
1012
  float: right;
1013
  }
1014
+ .so-panels-dialog .so-toolbar .so-buttons .action-buttons,
1015
+ .gutenberg .so-toolbar .so-buttons .action-buttons {
1016
  position: absolute;
1017
  left: 15px;
1018
  top: 50%;
1019
  margin-top: -0.65em;
1020
  }
1021
+ .so-panels-dialog .so-toolbar .so-buttons .action-buttons a,
1022
+ .gutenberg .so-toolbar .so-buttons .action-buttons a {
1023
  cursor: pointer;
1024
  display: inline;
1025
  padding: 0.2em 0.5em;
1027
  margin-right: 0.5em;
1028
  text-decoration: none;
1029
  }
1030
+ .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete,
1031
+ .gutenberg .so-toolbar .so-buttons .action-buttons .so-delete {
1032
  color: #a00;
1033
  }
1034
+ .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover,
1035
+ .gutenberg .so-toolbar .so-buttons .action-buttons .so-delete:hover {
1036
  background: #a00;
1037
  color: #FFFFFF;
1038
  }
1039
+ .so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover,
1040
+ .gutenberg .so-toolbar .so-buttons .action-buttons .so-duplicate:hover {
1041
  text-decoration: underline;
1042
  }
1043
  .so-panels-dialog .so-left-sidebar,
1044
+ .gutenberg .so-left-sidebar,
1045
+ .so-panels-dialog .so-right-sidebar,
1046
+ .gutenberg .so-right-sidebar {
1047
  background-color: #f3f3f3;
1048
  }
1049
+ .so-panels-dialog .so-left-sidebar,
1050
+ .gutenberg .so-left-sidebar {
1051
  display: none;
1052
  top: 30px;
1053
  left: 30px;
1055
  width: 290px;
1056
  border-right: 1px solid #D8D8D8;
1057
  }
1058
+ .so-panels-dialog .so-left-sidebar h4,
1059
+ .gutenberg .so-left-sidebar h4 {
1060
  margin: 0 0 20px 0;
1061
  font-size: 18px;
1062
  }
1063
+ .so-panels-dialog .so-left-sidebar .so-sidebar-search,
1064
+ .gutenberg .so-left-sidebar .so-sidebar-search {
1065
  width: 100%;
1066
  padding: 6px;
1067
  margin-bottom: 20px;
1068
  }
1069
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs,
1070
+ .gutenberg .so-left-sidebar .so-sidebar-tabs {
1071
  list-style: none;
1072
  margin: 0 -15px;
1073
  }
1074
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li,
1075
+ .gutenberg .so-left-sidebar .so-sidebar-tabs li {
1076
  margin-bottom: 0;
1077
  }
1078
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a,
1079
+ .gutenberg .so-left-sidebar .so-sidebar-tabs li a {
1080
  padding: 7px 16px;
1081
  display: block;
1082
  font-size: 14px;
1083
  text-decoration: none;
1084
  box-shadow: none !important;
1085
  }
1086
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a:hover,
1087
+ .gutenberg .so-left-sidebar .so-sidebar-tabs li a:hover {
1088
  background: #FFFFFF;
1089
  }
1090
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a,
1091
+ .gutenberg .so-left-sidebar .so-sidebar-tabs li.tab-active a {
1092
  color: #555;
1093
  font-weight: bold;
1094
  background: #FFFFFF;
1095
  }
1096
+ .so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover,
1097
+ .gutenberg .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover {
1098
  background: #FFFFFF;
1099
  }
1100
+ .so-panels-dialog .so-right-sidebar,
1101
+ .gutenberg .so-right-sidebar {
1102
  display: none;
1103
  top: 80px;
1104
  right: 30px;
1106
  width: 290px;
1107
  border-left: 1px solid #D8D8D8;
1108
  }
1109
+ .so-panels-dialog .so-right-sidebar h3,
1110
+ .gutenberg .so-right-sidebar h3 {
1111
  color: #333;
1112
  }
1113
+ .so-panels-dialog .so-right-sidebar h3:first-child,
1114
+ .gutenberg .so-right-sidebar h3:first-child {
1115
  margin-top: 0;
1116
  }
1117
+ .so-panels-dialog .so-sidebar .form-field,
1118
+ .gutenberg .so-sidebar .form-field {
1119
  margin-bottom: 20px;
1120
  }
1121
+ .so-panels-dialog .so-sidebar .form-field label,
1122
+ .gutenberg .so-sidebar .form-field label {
1123
  font-weight: 500;
1124
  font-size: 15px;
1125
  display: block;
1126
  margin-bottom: 10px;
1127
  }
1128
  .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content,
1129
+ .gutenberg.so-panels-dialog-has-left-sidebar .so-content,
1130
  .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-toolbar,
1131
+ .gutenberg.so-panels-dialog-has-left-sidebar .so-toolbar,
1132
+ .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-title-bar,
1133
+ .gutenberg.so-panels-dialog-has-left-sidebar .so-title-bar {
1134
  left: 320px;
1135
  }
1136
+ .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content,
1137
+ .gutenberg.so-panels-dialog-has-left-sidebar .so-content {
1138
  -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1139
  -moz-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1140
  box-shadow: inset 2px 2px 2px rgba(0,0,0,0.03);
1141
  }
1142
+ .so-panels-dialog.so-panels-dialog-has-left-sidebar .so-left-sidebar,
1143
+ .gutenberg.so-panels-dialog-has-left-sidebar .so-left-sidebar {
1144
  display: block;
1145
  }
1146
+ .so-panels-dialog.so-panels-dialog-has-right-sidebar .so-content,
1147
+ .gutenberg.so-panels-dialog-has-right-sidebar .so-content {
1148
  right: 320px;
1149
  }
1150
+ .so-panels-dialog.so-panels-dialog-has-right-sidebar .so-right-sidebar,
1151
+ .gutenberg.so-panels-dialog-has-right-sidebar .so-right-sidebar {
1152
  display: block;
1153
  }
1154
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget,
1155
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget {
1156
  -webkit-border-radius: 2px;
1157
  -moz-border-radius: 2px;
1158
  border-radius: 2px;
1165
  box-shadow: 0 1px 2px rgba(0,0,0,0.075), inset 0 1px 0 #FFFFFF;
1166
  margin-bottom: 15px;
1167
  }
1168
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover,
1169
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover {
1170
  border: 1px solid #BBBBBB;
1171
  background: #FFFFFF;
1172
  }
1173
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current,
1174
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current {
1175
  border-color: #0074a2;
1176
  background: #2ea2cc;
1177
  cursor: auto;
1179
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.2);
1180
  box-shadow: 0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.2);
1181
  }
1182
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3,
1183
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3 {
1184
  color: #FFFFFF;
1185
  }
1186
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small,
1187
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small {
1188
  color: #eeeeee;
1189
  }
1190
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover,
1191
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover {
1192
  border-color: #0074a2;
1193
  background: #2ea2cc;
1194
  }
1195
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child,
1196
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child {
1197
  margin-bottom: 0;
1198
  }
1199
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3,
1200
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3 {
1201
  margin: 0 0 7px 0;
1202
  padding: 0;
1203
  height: 1.2em;
1204
  color: #222222;
1205
  font-size: 14px;
1206
  }
1207
+ .so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small,
1208
+ .gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small {
1209
  font-size: 11px;
1210
  line-height: 1.25em;
1211
  display: block;
1212
  overflow: hidden;
1213
  color: #888888;
1214
  }
1215
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list,
1216
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list {
1217
  zoom: 1;
1218
  margin: 0 -5px -10px -5px;
1219
  min-height: 10px;
1220
  }
1221
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:before,
1222
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list:before {
1223
  content: '';
1224
  display: block;
1225
  }
1226
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:after,
1227
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list:after {
1228
  content: '';
1229
  display: table;
1230
  clear: both;
1231
  }
1232
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type,
1233
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type {
1234
  -ms-user-select: none;
1235
  /* IE 10+ */
1236
  -moz-user-select: -moz-none;
1247
  float: left;
1248
  }
1249
  @media (max-width: 1280px) {
1250
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type,
1251
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type {
1252
  width: 33.333%;
1253
  }
1254
  }
1255
  @media (max-width: 960px) {
1256
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type,
1257
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type {
1258
  width: 50%;
1259
  }
1260
  }
1261
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type h3,
1262
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type h3 {
1263
  margin: 0 0 7px 0;
1264
  padding: 0;
1265
  color: #222222;
1266
  font-size: 14px;
1267
  }
1268
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type small,
1269
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type small {
1270
  font-size: 11px;
1271
  min-height: 2.5em;
1272
  line-height: 1.25em;
1274
  overflow: hidden;
1275
  color: #888888;
1276
  }
1277
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon,
1278
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon {
1279
  font-size: 20px;
1280
  width: 20px;
1281
  height: 20px;
1283
  float: left;
1284
  margin: -1px 0.5em 0 0;
1285
  }
1286
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper,
1287
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper {
1288
  border: 1px solid #cccccc;
1289
  cursor: pointer;
1290
  padding: 10px;
1293
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
1294
  box-shadow: 0 1px 2px rgba(0,0,0,0.075);
1295
  }
1296
+ .so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover,
1297
+ .gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover {
1298
  border: 1px solid #BBBBBB;
1299
  background: #FFFFFF;
1300
  -webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1301
  -moz-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1302
  box-shadow: 0 2px 2px rgba(0,0,0,0.075);
1303
  }
1304
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form,
1305
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form {
1306
  zoom: 1;
1307
  padding: 8px;
1308
  border: 1px solid #ccc;
1309
  margin-bottom: 20px;
1310
  background: #F3F3F3;
1311
  }
1312
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:before,
1313
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form:before {
1314
  content: '';
1315
  display: block;
1316
  }
1317
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:after,
1318
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form:after {
1319
  content: '';
1320
  display: table;
1321
  clear: both;
1322
  }
1323
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form input,
1324
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form input,
1325
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form select,
1326
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form select,
1327
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button,
1328
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form button,
1329
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form strong,
1330
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form strong,
1331
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form span,
1332
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form span {
1333
  display: inline;
1334
  margin: 1px 5px;
1335
  outline: none;
1336
  box-shadow: none;
1337
  }
1338
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button,
1339
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form button {
1340
  margin-top: 2px;
1341
  }
1342
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form label,
1343
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-set-form label {
1344
  display: inline;
1345
  }
1346
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview,
1347
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview {
1348
  margin: 0 -6px;
1349
  height: 360px;
1350
  position: relative;
1351
  white-space: nowrap;
1352
  }
1353
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,
1354
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,
1355
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,
1356
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,
1357
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight,
1358
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight {
1359
  -ms-box-sizing: border-box;
1360
  -moz-box-sizing: border-box;
1361
  -webkit-box-sizing: border-box;
1362
  box-sizing: border-box;
1363
  }
1364
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,
1365
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell {
1366
  display: inline-block;
1367
  position: relative;
1368
  padding: 0 6px;
1369
  cursor: pointer;
1370
  }
1371
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in,
1372
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in {
1373
  border: 1px solid #bcccd2;
1374
  min-height: 360px;
1375
  background: #e4eff4;
1376
  position: relative;
1377
  }
1378
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected,
1379
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected {
1380
  background: #cae7f4 url("images/cell-selected.png") repeat;
1381
  border-color: #9abcc7;
1382
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
1383
  }
1384
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,
1385
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,
1386
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input,
1387
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
1388
  position: absolute;
1389
  font-size: 17px;
1390
  font-weight: bold;
1401
  cursor: pointer;
1402
  }
1403
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after,
1404
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after,
1405
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after,
1406
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after {
1407
  content: '%';
1408
  }
1409
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover,
1410
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover,
1411
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover,
1412
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover {
1413
  background: #F6F6F6;
1414
  border: 1px solid #D0D0D0;
1415
  }
1416
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input,
1417
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
1418
  background: #F6F6F6;
1419
  border: 1px solid #D0D0D0;
1420
  -webkit-box-shadow: none;
1421
  -moz-box-shadow: none;
1422
  box-shadow: none;
1423
  }
1424
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle,
1425
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle {
1426
  z-index: 100;
1427
  position: absolute;
1428
  top: 0;
1437
  transition: background 0.15s ease-in-out 0s;
1438
  }
1439
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover,
1440
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover,
1441
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging,
1442
+ .gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging {
1443
  background: #b7e0f1;
1444
  }
1445
+ .so-panels-dialog.so-panels-dialog-history .so-left-sidebar,
1446
+ .gutenberg.so-panels-dialog-history .so-left-sidebar {
1447
  padding: 0;
1448
  }
1449
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry,
1450
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry {
1451
  padding: 10px;
1452
  background: #F8F8F8;
1453
  cursor: pointer;
1454
  border-bottom: 1px solid #ccc;
1455
  }
1456
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry h3,
1457
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry h3 {
1458
  margin: 0 0 0.6em 0;
1459
  font-size: 12px;
1460
  font-weight: bold;
1461
  color: #444444;
1462
  line-height: 1em;
1463
  }
1464
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .timesince,
1465
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry .timesince {
1466
  color: #999999;
1467
  font-size: 11px;
1468
  line-height: 1em;
1469
  }
1470
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry:hover,
1471
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry:hover {
1472
  background: #F0F0F0;
1473
  }
1474
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry.so-selected,
1475
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry.so-selected {
1476
  background: #EEEEEE;
1477
  }
1478
+ .so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .count,
1479
+ .gutenberg.so-panels-dialog-history .history-entries .history-entry .count {
1480
  color: #999999;
1481
  }
1482
+ .so-panels-dialog.so-panels-dialog-history .so-content,
1483
+ .gutenberg.so-panels-dialog-history .so-content {
1484
  padding: 0;
1485
  overflow-y: hidden;
1486
  }
1487
+ .so-panels-dialog.so-panels-dialog-history .so-content form.history-form,
1488
+ .gutenberg.so-panels-dialog-history .so-content form.history-form {
1489
  display: none;
1490
  }
1491
+ .so-panels-dialog.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe,
1492
+ .gutenberg.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe {
1493
  width: 100%;
1494
  height: 100%;
1495
  }
1496
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content,
1497
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content {
1498
  padding-left: 10px;
1499
  padding-right: 10px;
1500
  }
1501
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-error-message,
1502
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-error-message {
1503
  font-size: 14px;
1504
  border: 1px solid #cccccc;
1505
  background: #F8F8F8;
1506
  padding: 15px 20px;
1507
  }
1508
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui,
1509
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui {
1510
  padding: 5px 15px;
1511
  text-align: right;
1512
  }
1513
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui,
1514
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui {
1515
  padding: 15px;
1516
  }
1517
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message,
1518
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message {
1519
  display: none;
1520
  }
1521
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message,
1522
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message {
1523
  display: block;
1524
  }
1525
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message,
1526
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message {
1527
  font-size: 1em;
1528
  margin-bottom: 0;
1529
  }
1530
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area,
1531
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area {
1532
  display: block;
1533
  -ms-box-sizing: border-box;
1534
  -moz-box-sizing: border-box;
1542
  -o-transition: all 0.25s ease 0s;
1543
  transition: all 0.25s ease 0s;
1544
  }
1545
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover,
1546
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover {
1547
  background-color: #f2f9fc;
1548
  border-color: #0074a2;
1549
  }
1550
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar,
1551
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar {
1552
  display: none;
1553
  padding: 2px;
1554
  border: 2px solid #2181b1;
1557
  border-radius: 2px;
1558
  margin-top: 20px;
1559
  }
1560
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent,
1561
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent {
1562
  height: 14px;
1563
  background-color: #358ebe;
1564
  -webkit-border-radius: 1px;
1565
  -moz-border-radius: 1px;
1566
  border-radius: 1px;
1567
  }
1568
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button,
1569
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button {
1570
  padding: 12px 30px;
1571
  height: auto;
1572
  }
1573
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse,
1574
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse {
1575
  background: #f3f3f3;
1576
  border-bottom: 1px solid #d0d0d0;
1577
  margin: -15px -10px 15px -10px;
1578
  padding: 15px;
1579
  font-weight: bold;
1580
  }
1581
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper,
1582
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper {
1583
  display: flex;
1584
  flex-flow: row wrap;
1585
  }
1586
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results,
1587
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results {
1588
  margin: 20px 0;
1589
  padding: 0 5px;
1590
  }
1591
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,
1592
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
1593
  -ms-box-sizing: border-box;
1594
  -moz-box-sizing: border-box;
1595
  -webkit-box-sizing: border-box;
1596
  box-sizing: border-box;
1597
  padding: 6px;
1598
  }
1599
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper,
1600
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper {
1601
  display: flex;
1602
  flex-flow: column nowrap;
1603
  height: 100%;
1609
  -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.1);
1610
  box-shadow: 0 1px 1px rgba(0,0,0,0.1);
1611
  }
1612
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title,
1613
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title {
1614
  font-size: 15px;
1615
  margin: 0 0 13px 0;
1616
  }
1617
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot,
1618
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot {
1619
  flex: 3 auto;
1620
  margin-bottom: 10px;
1621
  cursor: pointer;
1622
  }
1623
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading,
1624
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading {
1625
  background-image: url("images/wpspin_light.gif");
1626
  background-position: center center;
1627
  background-repeat: no-repeat;
1628
  }
1629
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
1630
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading,
1631
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading {
1632
  background-image: url(images/wpspin_light-2x.gif);
1633
  background-size: 16px 16px;
1634
  }
1635
  }
1636
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img,
1637
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img {
1638
  display: block;
1639
  width: 100%;
1640
  height: auto;
1641
  }
1642
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper,
1643
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper {
1644
  display: block;
1645
  min-height: 40px;
1646
  background: #808080;
1647
  border: 1px solid #d0d0d0;
1648
  }
1649
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description,
1650
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description {
1651
  flex: 1 auto;
1652
  font-size: 0.9em;
1653
  color: #666;
1655
  max-height: 60px;
1656
  overflow: hidden;
1657
  }
1658
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom,
1659
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom {
1660
  flex: 1 auto;
1661
  position: relative;
1662
  max-height: 50px;
1664
  background: #fcfcfc;
1665
  border-top: 1px solid #d0d0d0;
1666
  }
1667
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title,
1668
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title {
1669
  margin: 0;
1670
  padding: 16px 10px;
1671
  cursor: pointer;
1672
  overflow: hidden;
1673
  white-space: nowrap;
1674
  }
1675
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons,
1676
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons {
1677
  position: absolute;
1678
  z-index: 2;
1679
  top: 0;
1692
  -moz-box-shadow: -1px 0 1px rgba(0, 0, 0, 0.05);
1693
  box-shadow: -1px 0 1px rgba(0, 0, 0, 0.05);
1694
  }
1695
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons,
1696
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons {
1697
  visibility: visible;
1698
  }
1699
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected,
1700
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected {
1701
  background-color: #e5f4fa;
1702
  }
1703
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper,
1704
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper {
1705
  background: #deeef4;
1706
  border-color: #9abcc7;
1707
  }
1708
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom,
1709
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom {
1710
  background: #f8fdff;
1711
  border-color: #bcccd2;
1712
  }
1713
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title,
1714
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title {
1715
  color: #3e484c;
1716
  }
1717
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons,
1718
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons {
1719
  background: #eaf2f6;
1720
  border-color: #bcccd2;
1721
  }
1722
  @media only screen and (min-width: 1680px) {
1723
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,
1724
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
1725
  width: 20%;
1726
  }
1727
  }
1728
  @media only screen and (max-width: 1679px) and (min-width: 1280px) {
1729
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,
1730
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
1731
  width: 25%;
1732
  }
1733
  }
1734
  @media only screen and (max-width: 1279px) and (min-width: 1140px) {
1735
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,
1736
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
1737
  width: 33.333%;
1738
  }
1739
  }
1740
  @media only screen and (max-width: 1139px) {
1741
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,
1742
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item {
1743
  width: 50%;
1744
  }
1745
  }
1746
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages,
1747
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages {
1748
  margin-top: 15px;
1749
  padding: 0 5px;
1750
  }
1751
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled,
1752
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled {
1753
  pointer-events: none;
1754
  }
1755
+ .so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position,
1756
+ .gutenberg.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position {
1757
  vertical-align: baseline;
1758
  }
1759
+ .so-panels-dialog .so-visual-styles,
1760
+ .gutenberg .so-visual-styles {
1761
  margin: -15px;
1762
  height: 100%;
1763
  /* All the field types */
1764
  }
1765
+ .so-panels-dialog .so-visual-styles h3,
1766
+ .gutenberg .so-visual-styles h3 {
1767
  line-height: 1em;
1768
  margin: 0;
1769
  padding: 20px 15px;
1770
  border-bottom: 1px solid #ddd;
1771
  }
1772
+ .so-panels-dialog .so-visual-styles .style-section-head,
1773
+ .gutenberg .so-visual-styles .style-section-head {
1774
  background: #ffffff;
1775
  padding: 15px 10px;
1776
  border-bottom: 1px solid #ddd;
1780
  -ms-user-select: none;
1781
  user-select: none;
1782
  }
1783
+ .so-panels-dialog .so-visual-styles .style-section-head h4,
1784
+ .gutenberg .so-visual-styles .style-section-head h4 {
1785
  margin: 0;
1786
  }
1787
+ .so-panels-dialog .so-visual-styles .style-section-fields,
1788
+ .gutenberg .so-visual-styles .style-section-fields {
1789
  padding: 15px;
1790
  border-bottom: 1px solid #ddd;
1791
  background: #F7F7F7;
1792
  }
1793
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper,
1794
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper {
1795
  margin-bottom: 20px;
1796
  }
1797
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper:last-child,
1798
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper:last-child {
1799
  margin-bottom: 0;
1800
  }
1801
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper > label,
1802
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper > label {
1803
  font-weight: bold;
1804
  display: block;
1805
  margin-bottom: 3px;
1806
  }
1807
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field,
1808
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field {
1809
  zoom: 1;
1810
  }
1811
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before,
1812
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before {
1813
  content: '';
1814
  display: block;
1815
  }
1816
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after,
1817
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after {
1818
  content: '';
1819
  display: table;
1820
  clear: both;
1821
  }
1822
+ .so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field input,
1823
+ .gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field input {
1824
  font-size: 12px;
1825
  }
1826
+ .so-panels-dialog .so-visual-styles .style-input-wrapper,
1827
+ .gutenberg .so-visual-styles .style-input-wrapper {
1828
  zoom: 1;
1829
  }
1830
+ .so-panels-dialog .so-visual-styles .style-input-wrapper:before,
1831
+ .gutenberg .so-visual-styles .style-input-wrapper:before {
1832
  content: '';
1833
  display: block;
1834
  }
1835
+ .so-panels-dialog .so-visual-styles .style-input-wrapper:after,
1836
+ .gutenberg .so-visual-styles .style-input-wrapper:after {
1837
  content: '';
1838
  display: table;
1839
  clear: both;
1840
  }
1841
+ .so-panels-dialog .so-visual-styles .style-input-wrapper input,
1842
+ .gutenberg .so-visual-styles .style-input-wrapper input {
1843
  max-width: 100%;
1844
  }
1845
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-inputs,
1846
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-inputs {
1847
  overflow: auto;
1848
  margin: 0 -3px 4px -3px;
1849
  }
1850
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper,
1851
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper {
1852
  box-sizing: border-box;
1853
  float: left;
1854
  width: 25%;
1855
  padding: 0 3px;
1856
  }
1857
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value,
1858
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value {
1859
  border-width: 1px;
1860
  display: block;
1861
  max-width: 100%;
1862
  }
1863
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top,
1864
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top {
1865
  box-shadow: inset 0 2px 1px rgba(0, 115, 170, 0.35);
1866
  }
1867
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right,
1868
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right {
1869
  box-shadow: inset -3px 0 2px rgba(0, 115, 170, 0.35);
1870
  }
1871
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom,
1872
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom {
1873
  box-shadow: inset 0 -2px 1px rgba(0, 115, 170, 0.35);
1874
  }
1875
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left,
1876
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left {
1877
  box-shadow: inset 3px 0 2px rgba(0, 115, 170, 0.35);
1878
  }
1879
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-multiple,
1880
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-unit-multiple {
1881
  width: 100%;
1882
  display: block;
1883
  }
1884
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-single,
1885
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-unit-single {
1886
  float: right;
1887
  width: 25%;
1888
  }
1889
+ .so-panels-dialog .so-visual-styles .style-field-measurement .measurement-value-single,
1890
+ .gutenberg .so-visual-styles .style-field-measurement .measurement-value-single {
1891
  float: left;
1892
  width: 72%;
1893
  }
1894
+ .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector,
1895
+ .gutenberg .so-visual-styles .style-field-image .so-image-selector {
1896
  display: inline-block;
1897
  background-color: #f7f7f7;
1898
  border: 1px solid #ccc;
1906
  -moz-box-shadow: inset 0 1px #FFFFFF;
1907
  box-shadow: inset 0 1px #FFFFFF;
1908
  }
1909
+ .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .current-image,
1910
+ .gutenberg .so-visual-styles .style-field-image .so-image-selector .current-image {
1911
  height: 28px;
1912
  width: 28px;
1913
  float: left;
1930
  -webkit-background-clip: padding-box;
1931
  background-clip: padding-box;
1932
  }
1933
+ .so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .select-image,
1934
+ .gutenberg .so-visual-styles .style-field-image .so-image-selector .select-image {
1935
  font-size: 12px;
1936
  line-height: 28px;
1937
  float: left;
1938
  padding: 0 8px;
1939
  color: #555;
1940
  }
1941
+ .so-panels-dialog .so-visual-styles .style-field-image .remove-image,
1942
+ .gutenberg .so-visual-styles .style-field-image .remove-image {
1943
  font-size: 12px;
1944
  margin-top: 4px;
1945
  margin-left: 15px;
1948
  color: #666;
1949
  text-decoration: none;
1950
  }
1951
+ .so-panels-dialog .so-visual-styles .style-field-image .remove-image.hidden,
1952
+ .gutenberg .so-visual-styles .style-field-image .remove-image.hidden {
1953
  display: none;
1954
  }
1955
+ .so-panels-dialog .so-visual-styles .style-field-image .image-fallback,
1956
+ .gutenberg .so-visual-styles .style-field-image .image-fallback {
1957
  margin-top: 4px;
1958
  }
1959
+ .so-panels-dialog .so-visual-styles .style-field-checkbox label,
1960
+ .gutenberg .so-visual-styles .style-field-checkbox label {
1961
  -webkit-user-select: none;
1962
  /* Chrome all / Safari all */
1963
  -moz-user-select: none;
1966
  /* IE 10+ */
1967
  user-select: none;
1968
  }
1969
+ .so-panels-dialog .so-visual-styles .so-field-code,
1970
+ .gutenberg .so-visual-styles .so-field-code {
1971
  font-size: 12px;
1972
  font-family: "Courier 10 Pitch", Courier, monospace;
1973
  }
1974
+ .so-panels-dialog .so-visual-styles .so-description,
1975
+ .gutenberg .so-visual-styles .so-description {
1976
  color: #999;
1977
  font-size: 12px;
1978
  margin-top: 5px;
1980
  font-style: italic;
1981
  clear: both;
1982
  }
1983
+ .so-panels-dialog .so-visual-styles.so-cell-styles,
1984
+ .gutenberg .so-visual-styles.so-cell-styles {
1985
  margin-top: 15px;
1986
  }
1987
+ .so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar,
1988
+ .gutenberg .so-content .siteorigin-panels-builder .so-builder-toolbar,
1989
+ .so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-builder-toolbar,
1990
+ .gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-builder-toolbar {
1991
  border: 1px solid #dedede;
1992
+ z-index: 1;
1993
  }
1994
+ .so-panels-dialog .so-content .siteorigin-panels-builder .so-rows-container,
1995
+ .gutenberg .so-content .siteorigin-panels-builder .so-rows-container,
1996
+ .so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-rows-container,
1997
+ .gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-rows-container {
1998
  padding: 20px 0 0 0;
1999
  }
2000
+ .so-panels-dialog .so-content .siteorigin-panels-builder .so-panels-welcome-message,
2001
+ .gutenberg .so-content .siteorigin-panels-builder .so-panels-welcome-message,
2002
+ .so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-panels-welcome-message,
2003
+ .gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-panels-welcome-message {
2004
  padding-left: 0;
2005
  padding-right: 0;
2006
+ line-height: 2.5em;
2007
+ }
2008
+ .so-panels-dialog .siteorigin-panels-layout-block-container,
2009
+ .gutenberg .siteorigin-panels-layout-block-container {
2010
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
2011
+ font-size: 13px;
2012
+ line-height: 1.4em;
2013
+ }
2014
+ .so-panels-dialog .siteorigin-panels-layout-block-container ul,
2015
+ .gutenberg .siteorigin-panels-layout-block-container ul {
2016
+ list-style: none;
2017
+ }
2018
+ .so-panels-dialog .siteorigin-panels-gutenberg-icon,
2019
+ .gutenberg .siteorigin-panels-gutenberg-icon {
2020
+ background-size: cover;
2021
+ background-image: url('../compat/pb-icon.svg');
2022
+ width: 20px;
2023
+ height: 20px;
2024
+ }
2025
+ .so-panels-dialog .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container,
2026
+ .gutenberg .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container {
2027
+ text-align: center;
2028
+ }
2029
+ .so-panels-dialog .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container > span,
2030
+ .gutenberg .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container > span {
2031
+ display: inline-block;
2032
  }
2033
+ .so-panels-dialog .so-dropdown-wrapper input[type="button"].button-primary,
2034
+ .gutenberg .so-dropdown-wrapper input[type="button"].button-primary {
2035
  width: 125px;
2036
  height: 28px;
2037
  }
2038
+ .so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper,
2039
+ .gutenberg .so-dropdown-wrapper .so-dropdown-links-wrapper {
2040
  display: block;
2041
  z-index: 11;
2042
  bottom: 28px;
2043
  width: 125px;
2044
  }
2045
+ .so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden,
2046
+ .gutenberg .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden {
2047
  display: none;
2048
  }
2049
  /* Display the dialog with a proper z-index in the customizer */
css/admin.min.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:siteorigin-panels-icons;src:url(icons/panels-icons.eot);src:url(icons/panels-icons.eot) format("embedded-opentype"),url(icons/panels-icons.woff) format("woff"),url(icons/panels-icons.ttf) format("truetype"),url(icons/panels-icons.svg) format("svg");font-weight:400;font-style:normal}#so-panels-panels.attached-to-editor{margin-top:20px}#so-panels-panels.attached-to-editor .handlediv,#so-panels-panels.attached-to-editor .hndle{display:none!important}#so-panels-panels.attached-to-editor .inside{margin:0!important;padding:0!important}#so-panels-panels.attached-to-editor .so-toolbar .so-switch-to-standard{display:block}.siteorigin-panels-builder{position:relative}.siteorigin-panels-builder .so-tool-button{padding:6px 7px;text-decoration:none;line-height:1em;float:left;margin-right:2px;display:block;visibility:visible;position:relative;cursor:pointer;border:1px solid #bebebe;background:#eee;background:-o-linear-gradient(#f9f9f9,#eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#f9f9f9",endColorstr="#eeeeee",GradientType=0);box-shadow:0 1px 1px rgba(0,0,0,.04),inset 0 1px 0 hsla(0,0%,100%,.5);outline:none;border-radius:2px}.siteorigin-panels-builder .so-tool-button .so-panels-icon{font-size:12px}.siteorigin-panels-builder .so-tool-button span{display:inline-block;color:#666;text-shadow:0 1px 0 #fff;min-width:10px;text-align:center}.siteorigin-panels-builder .so-tool-button:hover{background:#fff}.siteorigin-panels-builder .so-tool-button:hover span{color:#444}.siteorigin-panels-builder .so-builder-toolbar{-ms-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #d0d0d0;background:#f5f5f5;line-height:1em;z-index:101;white-space:nowrap;overflow-x:hidden;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.04);top:0;left:0;width:100%;padding:6px 9px;margin-top:0!important;zoom:1}.siteorigin-panels-builder .so-builder-toolbar:before{content:"";display:block}.siteorigin-panels-builder .so-builder-toolbar:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button{display:inline-block;color:#666;padding:2px 10px 2px 8px}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-button-text{margin:3px 0 2px;font-size:11px}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-panels-icon{float:left;margin:3px 7px 2px 0;font-size:14px;color:#747474}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover,.siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover .so-panels-icon{color:#444}.siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard{cursor:pointer;float:right;display:none;text-decoration:none;color:#666;padding:5px 6px;border-radius:2px;border:1px solid transparent;font-size:11px}.siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard:hover{background:#fafafa;border:1px solid #999;color:#444}.siteorigin-panels-builder .so-rows-container{padding:20px 15px 0}.siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color{background-color:#cde2ec;border:1px solid #a4cadd}.siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color.so-row-color-selected:before{background:#a8cdde}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .cell-wrapper{background-color:#cde2ec}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell.cell-selected .cell-wrapper{background-color:#99c4d8}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle{background-color:#e7f1f6}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle:hover{background-color:#dcebf2}.siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color{background-color:#f2c2be;border:1px solid #e9968f}.siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color.so-row-color-selected:before{background:#ea9a93}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .cell-wrapper{background-color:#f2c2be}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell.cell-selected .cell-wrapper{background-color:#e68a83}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle{background-color:#f8dedc}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle:hover{background-color:#f5d2cf}.siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color{background-color:#d5ccdf;border:1px solid #b9aac9}.siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color.so-row-color-selected:before{background:#bbadcb}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .cell-wrapper{background-color:#d5ccdf}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell.cell-selected .cell-wrapper{background-color:#b1a0c3}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle{background-color:#e7e2ed}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle:hover{background-color:#dfd9e7}.siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color{background-color:#cae7cd;border:1px solid #a3d6a9}.siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color.so-row-color-selected:before{background:#a7d7ac}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .cell-wrapper{background-color:#cae7cd}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell.cell-selected .cell-wrapper{background-color:#99d19f}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle{background-color:#e3f2e4}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle:hover{background-color:#d8edda}.siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color{background-color:#e2dcb1;border:1px solid #d3ca88}.siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color.so-row-color-selected:before{background:#d4cb8c}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .cell-wrapper{background-color:#e2dcb1}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell.cell-selected .cell-wrapper{background-color:#cfc57d}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle{background-color:#ece8cb}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle:hover{background-color:#e8e3c0}.siteorigin-panels-builder .so-rows-container h3.so-row-label{display:inline-block;font-size:1em;font-weight:500;color:#474747;margin:0 0 0 4px;line-height:22px;float:left}.siteorigin-panels-builder .so-rows-container .so-row-toolbar{zoom:1;margin-bottom:4px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar:before{content:"";display:block}.siteorigin-panels-builder .so-rows-container .so-row-toolbar:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button{-ms-box-sizing:border-box;box-sizing:border-box;padding:4px;float:right}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button .so-panels-icon{color:#777;font-size:11px;width:11px;height:11px;display:block}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button:hover .so-panels-icon{color:#555}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button.so-row-move{cursor:move}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper{visibility:hidden;opacity:0;transition:visibility 0s linear 75ms,opacity 75ms linear;z-index:101;right:-10px;top:100%;width:125px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li a.so-row-delete{color:#a00}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li a.so-row-delete:hover{color:#fff;background:#a00}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container{display:flex;justify-content:space-around;padding:5px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color{display:inline-block;cursor:pointer;position:relative;text-align:center;width:14px;height:14px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color.so-row-color-selected:before{content:"";display:block;position:absolute;top:2px;bottom:2px;left:2px;right:2px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper:hover .so-dropdown-links-wrapper{visibility:visible;opacity:1;transition-delay:0s}.siteorigin-panels-builder .so-rows-container .ui-sortable-placeholder{visibility:visible!important;background:#f7f7f7;-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container{margin-bottom:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.siteorigin-panels-builder .so-rows-container .so-row-container.ui-sortable-helper{opacity:.9}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells{zoom:1;margin:0 -5px;position:relative}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:before{content:"";display:block}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .ui-resizable-handle.ui-resizable-w{width:10px;left:-11px;cursor:col-resize;background:rgba(0,150,211,.25);transition:background .25s ease-in-out}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .ui-resizable-handle.ui-resizable-w:hover{background:rgba(0,150,211,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell{-ms-box-sizing:border-box;box-sizing:border-box;float:left;position:relative;padding:0 5px}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.so-first{margin-left:0}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.so-last{margin-right:0}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper{background:#e4eff4;padding:7px 7px 0;height:100%;min-height:63px;transition:background .25s ease-in-out 0s}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.cell-selected .cell-wrapper{background-size:3px 3px}}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper{-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget{cursor:move;margin-bottom:7px;background:#f9f9fb;border:1px solid hsla(0,0%,100%,.75);max-height:49px;box-shadow:0 1px 1px rgba(0,0,0,.075);-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-move{cursor:auto}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover{border:1px solid hsla(0,0%,100%,.55);background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .so-widget-wrapper{padding:7px 8px;overflow:hidden;position:relative}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget h4{display:block;cursor:pointer;margin:0 15px 3px 0;font-weight:600;line-height:1.25em;color:#474747;text-shadow:0 1px 0 #fff;white-space:nowrap}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget h4 span{font-weight:400;display:inline-block;color:#999;text-shadow:0 1px 0 #fff;margin-left:12px;margin-right:5px;font-style:italic}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-edit h4{cursor:auto}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions{font-size:12px;position:absolute;top:5px;right:7px;cursor:pointer;padding:2px 2px 2px 15px;z-index:10}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions:hover{background:#feffff}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions:hover a{opacity:1}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a{display:none;margin-right:3px;text-decoration:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a.widget-delete{color:red}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a.widget-delete:hover{color:#fff;background:red}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover .title a{display:inline-block;opacity:.5}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.panel-being-dragged .title .actions{display:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget small{display:block;height:16px;overflow:hidden;color:#777}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .form{display:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover{background:#f5f5f5;border:1px solid #a6bac1;box-shadow:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover small,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only small{opacity:.5}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered{background:#3a7096;border:1px solid #39618c;box-shadow:0 2px 2px rgba(0,0,0,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered small,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered span{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered small{color:#eee}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget-sortable-highlight{border:1px solid rgba(0,0,0,.075);background:rgba(0,0,0,.025);-ms-box-sizing:border-box;box-sizing:border-box;height:49px;margin-bottom:7px;position:relative;box-shadow:inset 2px 2px 2px rgba(0,0,0,.01)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .resize-handle{z-index:100;position:absolute;top:0;width:10px;left:-5px;cursor:col-resize;background:#f6fafb;height:100%;transition:background .25s ease-in-out 0s}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell:first-child .resize-handle{display:none}.siteorigin-panels-builder .so-panels-welcome-message{text-align:center;padding:0 15px 20px;color:#555;line-height:1.8em}.siteorigin-panels-builder .so-panels-welcome-message .so-message-wrapper{padding:15px 10px;background:#f8f8f8;border:1px solid #e0e0e0}.siteorigin-panels-builder .so-panels-welcome-message .so-tool-button{font-size:inherit;display:inline-block;float:none;color:#666;padding:5px 10px;margin:0 3px}.siteorigin-panels-builder .so-panels-welcome-message .so-tool-button .so-panels-icon{color:#777;font-size:.8em}.siteorigin-panels-builder .so-panels-welcome-message .so-tip-wrapper{margin-top:15px;font-size:.95em}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar{padding:10px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button{padding-right:2px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button .so-panels-icon{font-size:14px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button.so-learn,.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button span.so-button-text{display:none}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar .so-switch-to-standard,.siteorigin-panels-builder.so-display-narrow .widgets-container .so-widget .actions{display:none!important}.so-widget.ui-sortable-helper.widget-being-dragged{z-index:500002!important;opacity:.9;pointer-events:none;border:1px solid rgba(0,0,0,.35)!important;cursor:move;margin-bottom:7px;background:#f9f9fb;border:1px solid hsla(0,0%,100%,.75);max-height:49px;box-shadow:0 1px 1px rgba(0,0,0,.075);-ms-box-sizing:border-box;box-sizing:border-box}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-move{cursor:auto}.so-widget.ui-sortable-helper.widget-being-dragged:hover{border:1px solid hsla(0,0%,100%,.55);background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1)}.so-widget.ui-sortable-helper.widget-being-dragged .so-widget-wrapper{padding:7px 8px;overflow:hidden;position:relative}.so-widget.ui-sortable-helper.widget-being-dragged h4{display:block;cursor:pointer;margin:0 15px 3px 0;font-weight:600;line-height:1.25em;color:#474747;text-shadow:0 1px 0 #fff;white-space:nowrap}.so-widget.ui-sortable-helper.widget-being-dragged h4 span{font-weight:400;display:inline-block;color:#999;text-shadow:0 1px 0 #fff;margin-left:12px;margin-right:5px;font-style:italic}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-edit h4{cursor:auto}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions{font-size:12px;position:absolute;top:5px;right:7px;cursor:pointer;padding:2px 2px 2px 15px;z-index:10}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions:hover{background:#feffff}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions:hover a{opacity:1}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a{display:none;margin-right:3px;text-decoration:none}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a.widget-delete{color:red}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a.widget-delete:hover{color:#fff;background:red}.so-widget.ui-sortable-helper.widget-being-dragged:hover .title a{display:inline-block;opacity:.5}.so-widget.ui-sortable-helper.widget-being-dragged.panel-being-dragged .title .actions{display:none}.so-widget.ui-sortable-helper.widget-being-dragged small{display:block;height:16px;overflow:hidden;color:#777}.so-widget.ui-sortable-helper.widget-being-dragged .form{display:none}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover{background:#f5f5f5;border:1px solid #a6bac1;box-shadow:none}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover small,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only small{opacity:.5}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered{background:#3a7096;border:1px solid #39618c;box-shadow:0 2px 2px rgba(0,0,0,.1)}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered small,.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered span{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered small{color:#eee}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-builder-container{padding-top:0}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-rows-container{padding:10px 0 0}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-builder-toolbar{padding-left:15px;padding-right:15px;margin:0 -15px}.so-panels-dialog .so-content,.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-overlay,.so-panels-dialog .so-right-sidebar,.so-panels-dialog .so-title-bar,.so-panels-dialog .so-toolbar{z-index:100001;position:fixed;-ms-box-sizing:border-box;box-sizing:border-box;padding:15px}.so-panels-dialog .so-content,.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-right-sidebar{overflow-y:auto}.so-panels-dialog .so-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.so-panels-dialog .so-content{top:80px;left:30px;right:30px;bottom:88px;background-color:#fdfdfd;overflow-x:hidden;box-shadow:inset 0 2px 2px rgba(0,0,0,.03)}.so-panels-dialog .so-content>:first-child{margin-top:0}.so-panels-dialog .so-content>:last-child{margin-bottom:0}.so-panels-dialog .so-content .so-content-tabs>*{display:none}.so-panels-dialog .so-title-bar{left:30px;right:30px;top:30px;height:50px;background-color:#fafafa;border-bottom:1px solid #d8d8d8}.so-panels-dialog .so-title-bar h3.so-title{-ms-box-sizing:border-box;box-sizing:border-box;margin:-3px 150px 0 -3px;padding:5px 6px;display:block}.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus,.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:hover{outline:none;background-color:#f0f0f0}.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus{margin-top:-4px;margin-left:-4px;border:1px solid #e4e4e4}.so-panels-dialog .so-title-bar input[type=text].so-edit-title{margin-top:-3px;margin-left:-3px;display:none;color:#23282d;font-size:1.3em;font-weight:600;border:none;box-shadow:none;background-color:#f0f0f0;padding:4px 5px}.so-panels-dialog .so-title-bar h3.so-parent-link{cursor:pointer;position:relative;float:left;margin:0 15px 0 0!important;padding:0 27px 0 0!important}.so-panels-dialog .so-title-bar h3.so-parent-link .so-separator{position:absolute;top:-15px;right:0;width:12px;height:50px;display:block;background:url(images/dialog-separator.png) no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.so-panels-dialog .so-title-bar h3.so-parent-link .so-separator{background:url(images/dialog-separator@2x.png) no-repeat;background-size:cover}}.so-panels-dialog .so-title-bar a{cursor:pointer;position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;top:0;right:0;transition:all .2s ease 0s;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}.so-panels-dialog .so-title-bar a:hover{background:#e9e9e9}.so-panels-dialog .so-title-bar a:hover .so-dialog-icon{color:#333}.so-panels-dialog .so-title-bar a .so-dialog-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666;text-align:center}.so-panels-dialog .so-title-bar a .so-dialog-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}.so-panels-dialog .so-title-bar a.so-close{right:0}.so-panels-dialog .so-title-bar a.so-close .so-dialog-icon:before{content:"\f335"}.so-panels-dialog .so-title-bar a.so-next{right:50px}.so-panels-dialog .so-title-bar a.so-next .so-dialog-icon:before{content:"\f345"}.so-panels-dialog .so-title-bar a.so-previous{right:100px}.so-panels-dialog .so-title-bar a.so-previous .so-dialog-icon:before{content:"\f341"}.so-panels-dialog .so-title-bar a.so-nav.so-disabled{cursor:default;pointer-events:none}.so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon{color:#ddd}.so-panels-dialog .so-title-bar.so-has-icon{padding-left:45px}.so-panels-dialog .so-title-bar.so-has-icon .so-panels-icon{position:absolute;top:14.5px;left:14px;font-size:22px;line-height:22px;display:block;width:22px;height:22px;text-align:center;color:#666}.so-panels-dialog .so-toolbar{left:30px;right:30px;bottom:30px;height:58px;background-color:#fafafa;border-top:1px solid #d8d8d8;z-index:100002}.so-panels-dialog .so-toolbar .so-status{float:left;padding-top:6px;padding-bottom:6px;font-style:italic;color:#999;line-height:1em}.so-panels-dialog .so-toolbar .so-status.so-panels-loading{padding-left:26px;background-position:0}.so-panels-dialog .so-toolbar .so-status .dashicons-warning{color:#a00;vertical-align:middle;margin-right:7px;margin-top:-1px}.so-panels-dialog .so-toolbar .so-buttons{float:right}.so-panels-dialog .so-toolbar .so-buttons .action-buttons{position:absolute;left:15px;top:50%;margin-top:-.65em}.so-panels-dialog .so-toolbar .so-buttons .action-buttons a{cursor:pointer;display:inline;padding:.2em .5em;line-height:1em;margin-right:.5em;text-decoration:none}.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete{color:#a00}.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover{background:#a00;color:#fff}.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover{text-decoration:underline}.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-right-sidebar{background-color:#f3f3f3}.so-panels-dialog .so-left-sidebar{display:none;top:30px;left:30px;bottom:30px;width:290px;border-right:1px solid #d8d8d8}.so-panels-dialog .so-left-sidebar h4{margin:0 0 20px;font-size:18px}.so-panels-dialog .so-left-sidebar .so-sidebar-search{width:100%;padding:6px;margin-bottom:20px}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs{list-style:none;margin:0 -15px}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li{margin-bottom:0}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a{padding:7px 16px;display:block;font-size:14px;text-decoration:none;box-shadow:none!important}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a:hover{background:#fff}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a{color:#555;font-weight:700;background:#fff}.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover{background:#fff}.so-panels-dialog .so-right-sidebar{display:none;top:80px;right:30px;bottom:88px;width:290px;border-left:1px solid #d8d8d8}.so-panels-dialog .so-right-sidebar h3{color:#333}.so-panels-dialog .so-right-sidebar h3:first-child{margin-top:0}.so-panels-dialog .so-sidebar .form-field{margin-bottom:20px}.so-panels-dialog .so-sidebar .form-field label{font-weight:500;font-size:15px;display:block;margin-bottom:10px}.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-title-bar,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-toolbar{left:320px}.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content{box-shadow:inset 2px 2px 2px rgba(0,0,0,.03)}.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-left-sidebar{display:block}.so-panels-dialog.so-panels-dialog-has-right-sidebar .so-content{right:320px}.so-panels-dialog.so-panels-dialog-has-right-sidebar .so-right-sidebar{display:block}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget{border-radius:2px;border:1px solid #ccc;cursor:pointer;padding:10px;background:#f9f9f9;box-shadow:0 1px 2px rgba(0,0,0,.075),inset 0 1px 0 #fff;margin-bottom:15px}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover{border:1px solid #bbb;background:#fff}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current{border-color:#0074a2;background:#2ea2cc;cursor:auto;box-shadow:0 1px 2px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.2)}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3{color:#fff}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small{color:#eee}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover{border-color:#0074a2;background:#2ea2cc}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child{margin-bottom:0}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3{margin:0 0 7px;padding:0;height:1.2em;color:#222;font-size:14px}.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small{font-size:11px;line-height:1.25em;display:block;overflow:hidden;color:#888}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list{zoom:1;margin:0 -5px -10px;min-height:10px}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:before{content:"";display:block}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:after{content:"";display:table;clear:both}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;user-select:none;-ms-box-sizing:border-box;box-sizing:border-box;width:25%;padding:0 5px;margin-bottom:10px;float:left}@media (max-width:1280px){.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{width:33.333%}}@media (max-width:960px){.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{width:50%}}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type h3{margin:0 0 7px;padding:0;color:#222;font-size:14px}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type small{font-size:11px;min-height:2.5em;line-height:1.25em;display:block;overflow:hidden;color:#888}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon{font-size:20px;width:20px;height:20px;color:#666;float:left;margin:-1px .5em 0 0}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper{border:1px solid #ccc;cursor:pointer;padding:10px;background:#f8f8f8;box-shadow:0 1px 2px rgba(0,0,0,.075)}.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover{border:1px solid #bbb;background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.075)}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form{zoom:1;padding:8px;border:1px solid #ccc;margin-bottom:20px;background:#f3f3f3}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:before{content:"";display:block}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:after{content:"";display:table;clear:both}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form input,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form select,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form span,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form strong{display:inline;margin:1px 5px;outline:none;box-shadow:none}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button{margin-top:2px}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form label{display:inline}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview{margin:0 -6px;height:360px;position:relative;white-space:nowrap}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight{-ms-box-sizing:border-box;box-sizing:border-box}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell{display:inline-block;position:relative;padding:0 6px;cursor:pointer}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in{border:1px solid #bcccd2;min-height:360px;background:#e4eff4;position:relative}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected{background:#cae7f4 url(images/cell-selected.png) repeat;border-color:#9abcc7;box-shadow:0 0 5px rgba(0,0,0,.2)}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input{position:absolute;font-size:17px;font-weight:700;top:50%;left:50%;width:80px;text-align:center;color:#5e6d72;margin:-.95em 0 0 -40px;padding:10px 0;border:1px solid transparent;line-height:1.4em!important;overflow:hidden;cursor:pointer}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after{content:"%"}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover{background:#f6f6f6;border:1px solid #d0d0d0}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input{background:#f6f6f6;border:1px solid #d0d0d0;box-shadow:none}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle{z-index:100;position:absolute;top:0;width:12px;left:-6px;cursor:col-resize;background:#e5f4fb;height:360px;transition:background .15s ease-in-out 0s}.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover{background:#b7e0f1}.so-panels-dialog.so-panels-dialog-history .so-left-sidebar{padding:0}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry{padding:10px;background:#f8f8f8;cursor:pointer;border-bottom:1px solid #ccc}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry h3{margin:0 0 .6em;font-size:12px;font-weight:700;color:#444;line-height:1em}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .timesince{color:#999;font-size:11px;line-height:1em}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry:hover{background:#f0f0f0}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry.so-selected{background:#eee}.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .count{color:#999}.so-panels-dialog.so-panels-dialog-history .so-content{padding:0;overflow-y:hidden}.so-panels-dialog.so-panels-dialog-history .so-content form.history-form{display:none}.so-panels-dialog.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe{width:100%;height:100%}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content{padding-left:10px;padding-right:10px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-error-message{font-size:14px;border:1px solid #ccc;background:#f8f8f8;padding:15px 20px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui{padding:5px 15px;text-align:right}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui{padding:15px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message{display:none}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message{display:block}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message{font-size:1em;margin-bottom:0}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area{display:block;-ms-box-sizing:border-box;box-sizing:border-box;padding:50px 30px;border:4px dashed #e0e0e0;text-align:center;transition:all .25s ease 0s}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover{background-color:#f2f9fc;border-color:#0074a2}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar{display:none;padding:2px;border:2px solid #2181b1;border-radius:2px;margin-top:20px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent{height:14px;background-color:#358ebe;border-radius:1px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button{padding:12px 30px;height:auto}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse{background:#f3f3f3;border-bottom:1px solid #d0d0d0;margin:-15px -10px 15px;padding:15px;font-weight:700}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper{display:flex;flex-flow:row wrap}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results{margin:20px 0;padding:0 5px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{-ms-box-sizing:border-box;box-sizing:border-box;padding:6px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper{display:flex;flex-flow:column nowrap;height:100%;box-sizing:border-box;padding:15px 10px;background:#f7f7f7;border:1px solid #d0d0d0;box-shadow:0 1px 1px rgba(0,0,0,.1)}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title{font-size:15px;margin:0 0 13px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot{flex:3 auto;margin-bottom:10px;cursor:pointer}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading{background-image:url(images/wpspin_light.gif);background-position:50%;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img{display:block;width:100%;height:auto}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper{display:block;min-height:40px;background:gray;border:1px solid #d0d0d0}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description{flex:1 auto;font-size:.9em;color:#666;margin-bottom:10px;max-height:60px;overflow:hidden}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom{flex:1 auto;position:relative;max-height:50px;margin:10px -10px -15px;background:#fcfcfc;border-top:1px solid #d0d0d0}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title{margin:0;padding:16px 10px;cursor:pointer;overflow:hidden;white-space:nowrap}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons{position:absolute;z-index:2;top:0;bottom:0;right:0;height:100%;visibility:hidden;-ms-box-sizing:border-box;box-sizing:border-box;padding:11px 10px 10px 15px;border-left:1px solid #d0d0d0;background:#f6f6f6;box-shadow:-1px 0 1px rgba(0,0,0,.05)}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons{visibility:visible}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected{background-color:#e5f4fa}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper{background:#deeef4;border-color:#9abcc7}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom{background:#f8fdff;border-color:#bcccd2}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title{color:#3e484c}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons{background:#eaf2f6;border-color:#bcccd2}@media only screen and (min-width:1680px){.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:20%}}@media only screen and (max-width:1679px) and (min-width:1280px){.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:25%}}@media only screen and (max-width:1279px) and (min-width:1140px){.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:33.333%}}@media only screen and (max-width:1139px){.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:50%}}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages{margin-top:15px;padding:0 5px}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled{pointer-events:none}.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position{vertical-align:baseline}.so-panels-dialog .so-visual-styles{margin:-15px;height:100%}.so-panels-dialog .so-visual-styles h3{line-height:1em;margin:0;padding:20px 15px;border-bottom:1px solid #ddd}.so-panels-dialog .so-visual-styles .style-section-head{background:#fff;padding:15px 10px;border-bottom:1px solid #ddd;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.so-panels-dialog .so-visual-styles .style-section-head h4{margin:0}.so-panels-dialog .so-visual-styles .style-section-fields{padding:15px;border-bottom:1px solid #ddd;background:#f7f7f7}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper{margin-bottom:20px}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper:last-child{margin-bottom:0}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper>label{font-weight:700;display:block;margin-bottom:3px}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field{zoom:1}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before{content:"";display:block}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after{content:"";display:table;clear:both}.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field input{font-size:12px}.so-panels-dialog .so-visual-styles .style-input-wrapper{zoom:1}.so-panels-dialog .so-visual-styles .style-input-wrapper:before{content:"";display:block}.so-panels-dialog .so-visual-styles .style-input-wrapper:after{content:"";display:table;clear:both}.so-panels-dialog .so-visual-styles .style-input-wrapper input{max-width:100%}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-inputs{overflow:auto;margin:0 -3px 4px}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper{box-sizing:border-box;float:left;width:25%;padding:0 3px}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value{border-width:1px;display:block;max-width:100%}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top{box-shadow:inset 0 2px 1px rgba(0,115,170,.35)}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right{box-shadow:inset -3px 0 2px rgba(0,115,170,.35)}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom{box-shadow:inset 0 -2px 1px rgba(0,115,170,.35)}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left{box-shadow:inset 3px 0 2px rgba(0,115,170,.35)}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-multiple{width:100%;display:block}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-single{float:right;width:25%}.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-value-single{float:left;width:72%}.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector{display:inline-block;background-color:#f7f7f7;border:1px solid #ccc;height:28px;float:left;border-radius:3px;cursor:pointer;box-shadow:inset 0 1px #fff}.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .current-image{height:28px;width:28px;float:left;background:#fff;border-right:1px solid #ccc;background-size:cover;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px;background-clip:padding-box}.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .select-image{font-size:12px;line-height:28px;float:left;padding:0 8px;color:#555}.so-panels-dialog .so-visual-styles .style-field-image .remove-image{font-size:12px;margin-top:4px;margin-left:15px;display:inline-block;float:left;color:#666;text-decoration:none}.so-panels-dialog .so-visual-styles .style-field-image .remove-image.hidden{display:none}.so-panels-dialog .so-visual-styles .style-field-image .image-fallback{margin-top:4px}.so-panels-dialog .so-visual-styles .style-field-checkbox label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.so-panels-dialog .so-visual-styles .so-field-code{font-size:12px;font-family:Courier\ 10 Pitch,Courier,monospace}.so-panels-dialog .so-visual-styles .so-description{color:#999;font-size:12px;margin-top:5px;margin-bottom:0;font-style:italic;clear:both}.so-panels-dialog .so-visual-styles.so-cell-styles{margin-top:15px}.so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar{border:1px solid #dedede}.so-panels-dialog .so-content .siteorigin-panels-builder .so-rows-container{padding:20px 0 0}.so-panels-dialog .so-content .siteorigin-panels-builder .so-panels-welcome-message{padding-left:0;padding-right:0}.so-panels-dialog .so-dropdown-wrapper input[type=button].button-primary{width:125px;height:28px}.so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper{display:block;z-index:11;bottom:28px;width:125px}.so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden{display:none}.wp-customizer .so-panels-dialog .so-content,.wp-customizer .so-panels-dialog .so-left-sidebar,.wp-customizer .so-panels-dialog .so-overlay,.wp-customizer .so-panels-dialog .so-right-sidebar,.wp-customizer .so-panels-dialog .so-title-bar,.wp-customizer .so-panels-dialog .so-toolbar{z-index:500001}.wp-customizer .so-panels-dialog .so-toolbar{z-index:500002}.so-panels-live-editor>div{position:fixed;z-index:99999;-ms-box-sizing:border-box;box-sizing:border-box}.so-panels-live-editor .live-editor-form{display:none}.so-panels-live-editor .live-editor-collapse{position:fixed;top:18px;left:10px;line-height:1em;cursor:pointer;z-index:100000}.so-panels-live-editor .live-editor-collapse .collapse-icon{float:left;margin:-4px 6px 0 0;border-radius:50%;width:20px;height:20px;overflow:hidden;transition:all .25s ease 0s}.so-panels-live-editor .live-editor-collapse .collapse-icon:before{display:block;content:"\f148";background:#eee;font:normal 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased}.so-panels-live-editor .live-editor-collapse:hover{color:#0073aa}.so-panels-live-editor .live-editor-collapse:hover .collapse-icon{box-shadow:0 0 3px rgba(30,140,190,.8)}.so-panels-live-editor .so-sidebar-tools{background:#eee;border-bottom:1px solid #ddd;border-right:1px solid #d0d0d0;top:0;left:0;height:46px;width:360px}.so-panels-live-editor .so-sidebar-tools .live-editor-close{margin:9px 10px 0 15px;float:right}.so-panels-live-editor .so-sidebar-tools .live-editor-mode{float:right;margin:9px 4px 0 0}.so-panels-live-editor .so-sidebar-tools .live-editor-mode .dashicons{font-size:30px;width:30px;height:30px;cursor:pointer;color:#999}.so-panels-live-editor .so-sidebar-tools .live-editor-mode .dashicons:hover{color:#666}.so-panels-live-editor .so-sidebar-tools .live-editor-mode.so-active .dashicons,.so-panels-live-editor .so-sidebar-tools .live-editor-mode.so-active .dashicons:hover{color:#0073aa}.so-panels-live-editor .so-sidebar{top:46px;left:0;bottom:0;width:360px;overflow-y:auto;background:#f7f7f7;border-right:1px solid #d0d0d0}.so-panels-live-editor .so-sidebar .siteorigin-panels-builder .so-rows-container{padding:10px 10px 0!important}.so-panels-live-editor .so-preview{top:0;right:0;bottom:0;left:360px;background-color:#191e23}.so-panels-live-editor .so-preview form{display:none}.so-panels-live-editor .so-preview iframe{float:left;width:100%;height:100%;margin:0 auto}.so-panels-live-editor .so-preview-overlay{display:none;opacity:.975;top:0;right:0;bottom:0;left:360px;background-color:#f4f4f4;cursor:wait}.so-panels-live-editor .so-preview-overlay .so-loading-container{opacity:.6;position:absolute;top:50%;width:200px;padding:2px;border-radius:5px;left:50%;margin-left:-104px;margin-top:-9px;border:2px solid #aaa}.so-panels-live-editor .so-preview-overlay .so-loading-container .so-loading-bar{width:50%;border-radius:3px;height:10px;background:#aaa}.so-panels-live-editor.so-collapsed .live-editor-collapse .collapse-icon{transform:rotate(180deg)}.so-panels-live-editor.so-collapsed .so-sidebar,.so-panels-live-editor.so-collapsed .so-sidebar-tools{display:none}.so-panels-live-editor.so-collapsed .so-preview,.so-panels-live-editor.so-collapsed .so-preview-overlay{left:0}.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{max-width:480px;max-height:640px;position:absolute;top:50%;left:50%;margin-left:-240px;margin-top:-320px}@media (max-width:840px){.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}@media (max-height:640px){.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}.so-panels-live-editor.live-editor-tablet-mode .so-preview iframe{position:absolute;max-width:768px;top:0;left:50%;margin-left:-384px}@media (max-width:1128px){.so-panels-live-editor.live-editor-tablet-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}.so-panels-loading{background-image:url(images/wpspin_light.gif);background-position:50%;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.so-panels-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#panels-home-page .switch{margin:0 10px 0 0;float:left;position:relative;display:inline-block;vertical-align:top;width:68px;height:24px;padding:3px;background-color:#fff;border-radius:24px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px rgba(0,0,0,.05);cursor:pointer;background-image:linear-gradient(180deg,#eee,#fff 25px)}#panels-home-page .switch .switch-input{position:absolute;top:0;left:0;opacity:0}#panels-home-page .switch .switch-label{position:relative;display:block;height:inherit;font-size:12px;text-transform:uppercase;background:#eceeef;border-radius:inherit;box-shadow:inset 0 1px 2px rgba(0,0,0,.12),inset 0 0 2px rgba(0,0,0,.15);transition:.15s ease-out;transition-property:opacity background}#panels-home-page .switch .switch-label:after,#panels-home-page .switch .switch-label:before{position:absolute;top:50%;margin-top:-.5em;line-height:1;transition:inherit}#panels-home-page .switch .switch-label:before{content:attr(data-off);right:11px;color:#aaa;text-shadow:0 1px hsla(0,0%,100%,.5)}#panels-home-page .switch .switch-label:after{content:attr(data-on);left:13px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}#panels-home-page .switch .switch-input:checked~.switch-label{background:#47a8d8;box-shadow:inset 0 1px 2px rgba(0,0,0,.15),inset 0 0 3px rgba(0,0,0,.2)}#panels-home-page .switch .switch-input:checked~.switch-label:before{opacity:0}#panels-home-page .switch .switch-input:checked~.switch-label:after{opacity:1}#panels-home-page .switch .switch-handle{position:absolute;top:4px;left:4px;width:22px;height:22px;background:#fff;border-radius:12px;box-shadow:1px 1px 5px rgba(0,0,0,.2);background-image:linear-gradient(180deg,#fff 40%,#f0f0f0);transition:left .15s ease-out}#panels-home-page .switch .switch-handle:before{content:"";position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;width:14px;height:14px;background:#f9f9f9;border-radius:7px;box-shadow:inset 0 1px rgba(0,0,0,.02);background-image:linear-gradient(180deg,#eee,#fff)}#panels-home-page .switch .switch-input:checked~.switch-handle{left:48px;box-shadow:-1px 1px 5px rgba(0,0,0,.2)}#panels-home-page .switch .switch-green>.switch-input:checked~.switch-label{background:#4fb845}#panels-home-page #panels-view-as-page{display:inline-block;margin-left:50px}.siteorigin-panels-builder-form .siteorigin-panels-builder{border:1px solid #d0d0d0;background-color:#fff;margin:10px 0}.siteorigin-panels-builder-form .siteorigin-panels-builder.so-panels-loading{min-height:150px}.siteorigin-page-builder-widget .siteorigin-panels-display-builder{display:inline-block!important}.siteorigin-page-builder-widget .siteorigin-panels-no-builder{display:none!important}.so-panels-contextual-menu{border:1px solid silver;background:#f9f9f9;box-shadow:0 1px 1px rgba(0,0,0,.04);outline:none;border-radius:2px;position:absolute;width:180px;top:20px;left:20px;z-index:999999;display:none;overflow-y:auto}.so-panels-contextual-menu,.so-panels-contextual-menu *{font-size:12px}.so-panels-contextual-menu .so-section{border-bottom:1px solid silver}.so-panels-contextual-menu .so-section:last-child{border-bottom:none}.so-panels-contextual-menu .so-section h5{margin:0 0 5px;padding:8px 10px 5px;border-bottom:1px solid #d0d0d0;background:#f6f6f6}.so-panels-contextual-menu .so-section .so-search-wrapper{margin:-5px 0 5px;border-bottom:1px solid #d0d0d0;background:#f4f4f4}.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]{box-sizing:border-box;display:block;width:100%;margin:0;border:none;padding:5px 10px;background:#fbfbfb}.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]:active,.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]:focus{border:none;box-shadow:none;background:#fff}.so-panels-contextual-menu .so-section ul{margin:5px 0 0;padding:0 0 5px}.so-panels-contextual-menu .so-section ul li{cursor:pointer;margin:0;padding:4px 10px;line-height:1em}.so-panels-contextual-menu .so-section ul li.so-active,.so-panels-contextual-menu .so-section ul li:hover{background:#f0f0f0;color:#444}.so-panels-contextual-menu .so-section ul li.so-confirm{color:#a00}.so-panels-contextual-menu .so-section ul li.so-confirm.so-active,.so-panels-contextual-menu .so-section ul li.so-confirm:hover{background:#a00;color:#fff}.so-panels-contextual-menu .so-section ul li .dashicons{width:12px;height:12px;font-size:12px;margin:0;float:right;line-height:12px}.so-panels-contextual-menu .so-section .so-no-results{padding:0 10px 5px;display:none;font-style:italic}.so-dropdown-wrapper{position:relative;float:right}.so-dropdown-wrapper .so-dropdown-links-wrapper{position:absolute;padding:6px 0 0}.so-dropdown-wrapper .so-dropdown-links-wrapper ul{margin:0;border:1px solid silver;background:#f9f9f9;border-radius:2px;padding:4px 0;box-shadow:0 2px 2px rgba(0,0,0,.1)}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li{margin:0}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li:first-child{border-top-width:1px}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a{display:block;padding:2px 8px;text-decoration:none;color:#666;font-size:11px;cursor:pointer;outline:0!important;box-shadow:none}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a:hover{background:#f0f0f0;color:#444}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a .dashicons{font-size:16px;margin:0;float:right;line-height:16px}.so-dropdown-wrapper .so-dropdown-links-wrapper .so-pointer{width:12px;height:6px;position:absolute;z-index:12;background:url(images/dropdown-pointer.png);background-size:12px 6px;top:1px;right:18px}.so-panels-icon{font-family:siteorigin-panels-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.so-panels-icon.so-panels-icon-add-row:before{content:"\e900"}.so-panels-icon.so-panels-icon-add-widget:before{content:"\e901"}.so-panels-icon.so-panels-icon-addons:before{content:"\e902"}.so-panels-icon.so-panels-icon-history:before{content:"\e903"}.so-panels-icon.so-panels-icon-layouts:before{content:"\e904"}.so-panels-icon.so-panels-icon-learn:before{content:"\e905"}.so-panels-icon.so-panels-icon-live-editor:before{content:"\e906"}.so-panels-icon.so-panels-icon-move:before{content:"\e907"}.so-panels-icon.so-panels-icon-settings:before{content:"\e908"}#post-status-info.for-siteorigin-panels{margin-top:-21px!important}
1
+ @font-face{font-family:siteorigin-panels-icons;src:url(icons/panels-icons.eot);src:url(icons/panels-icons.eot) format("embedded-opentype"),url(icons/panels-icons.woff) format("woff"),url(icons/panels-icons.ttf) format("truetype"),url(icons/panels-icons.svg) format("svg");font-weight:400;font-style:normal}#so-panels-panels.attached-to-editor{margin-top:20px}#so-panels-panels.attached-to-editor .handlediv,#so-panels-panels.attached-to-editor .hndle{display:none!important}#so-panels-panels.attached-to-editor .inside{margin:0!important;padding:0!important}#so-panels-panels.attached-to-editor .so-toolbar .so-switch-to-standard{display:block}.siteorigin-panels-builder{position:relative}.siteorigin-panels-builder .so-tool-button{padding:6px 7px;text-decoration:none;line-height:1em;float:left;margin-right:2px;display:block;visibility:visible;position:relative;cursor:pointer;border:1px solid #bebebe;background:#eee;background:-o-linear-gradient(#f9f9f9,#eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#f9f9f9",endColorstr="#eeeeee",GradientType=0);box-shadow:0 1px 1px rgba(0,0,0,.04),inset 0 1px 0 hsla(0,0%,100%,.5);outline:none;border-radius:2px}.siteorigin-panels-builder .so-tool-button .so-panels-icon{font-size:12px}.siteorigin-panels-builder .so-tool-button span{display:inline-block;color:#666;text-shadow:0 1px 0 #fff;min-width:10px;text-align:center}.siteorigin-panels-builder .so-tool-button:hover{background:#fff}.siteorigin-panels-builder .so-tool-button:hover span{color:#444}.siteorigin-panels-builder .so-builder-toolbar{-ms-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #d0d0d0;background:#f5f5f5;line-height:1em;z-index:101;white-space:nowrap;overflow-x:hidden;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.04);top:0;left:0;width:100%;padding:6px 9px;margin-top:0!important;zoom:1}.siteorigin-panels-builder .so-builder-toolbar:before{content:"";display:block}.siteorigin-panels-builder .so-builder-toolbar:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button{display:inline-block;color:#666;padding:2px 10px 2px 8px}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-button-text{margin:3px 0 2px;font-size:11px}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-panels-icon{float:left;margin:3px 7px 2px 0;font-size:14px;color:#747474}.siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover,.siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover .so-panels-icon{color:#444}.siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard{cursor:pointer;float:right;display:none;text-decoration:none;color:#666;padding:5px 6px;border-radius:2px;border:1px solid transparent;font-size:11px}.siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard:hover{background:#fafafa;border:1px solid #999;color:#444}.siteorigin-panels-builder .so-rows-container{padding:20px 15px 0}.siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color{background-color:#cde2ec;border:1px solid #a4cadd}.siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color.so-row-color-selected:before{background:#a8cdde}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .cell-wrapper{background-color:#cde2ec}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell.cell-selected .cell-wrapper{background-color:#99c4d8}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle{background-color:#e7f1f6}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle:hover{background-color:#dcebf2}.siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color{background-color:#f2c2be;border:1px solid #e9968f}.siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color.so-row-color-selected:before{background:#ea9a93}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .cell-wrapper{background-color:#f2c2be}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell.cell-selected .cell-wrapper{background-color:#e68a83}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle{background-color:#f8dedc}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle:hover{background-color:#f5d2cf}.siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color{background-color:#d5ccdf;border:1px solid #b9aac9}.siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color.so-row-color-selected:before{background:#bbadcb}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .cell-wrapper{background-color:#d5ccdf}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell.cell-selected .cell-wrapper{background-color:#b1a0c3}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle{background-color:#e7e2ed}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle:hover{background-color:#dfd9e7}.siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color{background-color:#cae7cd;border:1px solid #a3d6a9}.siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color.so-row-color-selected:before{background:#a7d7ac}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .cell-wrapper{background-color:#cae7cd}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell.cell-selected .cell-wrapper{background-color:#99d19f}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle{background-color:#e3f2e4}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle:hover{background-color:#d8edda}.siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color{background-color:#e2dcb1;border:1px solid #d3ca88}.siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color.so-row-color-selected:before{background:#d4cb8c}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .cell-wrapper{background-color:#e2dcb1}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell.cell-selected .cell-wrapper{background-color:#cfc57d}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle{background-color:#ece8cb}.siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle:hover{background-color:#e8e3c0}.siteorigin-panels-builder .so-rows-container h3.so-row-label{display:inline-block;font-size:1em;font-weight:500;color:#474747;margin:0 0 0 4px;line-height:22px;float:left}.siteorigin-panels-builder .so-rows-container .so-row-toolbar{zoom:1;margin-bottom:4px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar:before{content:"";display:block}.siteorigin-panels-builder .so-rows-container .so-row-toolbar:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button{-ms-box-sizing:border-box;box-sizing:border-box;padding:4px;float:right}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button .so-panels-icon{color:#777;font-size:11px;width:11px;height:11px;display:block}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button:hover .so-panels-icon{color:#555}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button.so-row-move{cursor:move}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper{visibility:hidden;opacity:0;transition:visibility 0s linear 75ms,opacity 75ms linear;z-index:101;right:-10px;top:100%;width:125px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li a.so-row-delete{color:#a00}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li a.so-row-delete:hover{color:#fff;background:#a00}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container{display:flex;justify-content:space-around;padding:5px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color{display:inline-block;cursor:pointer;position:relative;text-align:center;width:14px;height:14px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color.so-row-color-selected:before{content:"";display:block;position:absolute;top:2px;bottom:2px;left:2px;right:2px}.siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper:hover .so-dropdown-links-wrapper{visibility:visible;opacity:1;transition-delay:0s}.siteorigin-panels-builder .so-rows-container .ui-sortable-placeholder{visibility:visible!important;background:#f7f7f7;-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container{margin-bottom:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.siteorigin-panels-builder .so-rows-container .so-row-container.ui-sortable-helper{opacity:.9}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells{zoom:1;margin:0 -5px;position:relative;display:flex}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:before{content:"";display:block}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells:after{content:"";display:table;clear:both}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .ui-resizable-handle.ui-resizable-w{width:10px;left:-11px;cursor:col-resize;background:rgba(0,150,211,.25);transition:background .25s ease-in-out}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .ui-resizable-handle.ui-resizable-w:hover{background:rgba(0,150,211,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell{-ms-box-sizing:border-box;box-sizing:border-box;position:relative;padding:0 5px}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.so-first{margin-left:0}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.so-last{margin-right:0}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper{background:#e4eff4;padding:7px 7px 0;height:100%;min-height:63px;transition:background .25s ease-in-out 0s}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.cell-selected .cell-wrapper{background-size:3px 3px}}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper{-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget{cursor:move;margin-bottom:7px;background:#f9f9fb;border:1px solid hsla(0,0%,100%,.75);max-height:49px;box-shadow:0 1px 1px rgba(0,0,0,.075);-ms-box-sizing:border-box;box-sizing:border-box}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-move{cursor:auto}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover{border:1px solid hsla(0,0%,100%,.55);background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .so-widget-wrapper{padding:7px 8px;overflow:hidden;position:relative}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget h4{display:block;cursor:pointer;margin:0 15px 3px 0;font-weight:600;line-height:1.25em;color:#474747;text-shadow:0 1px 0 #fff;white-space:nowrap}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget h4 span{font-weight:400;display:inline-block;color:#999;text-shadow:0 1px 0 #fff;margin-left:12px;margin-right:5px;font-style:italic}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-edit h4{cursor:auto}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions{font-size:12px;position:absolute;top:5px;right:7px;cursor:pointer;padding:2px 2px 2px 15px;z-index:10}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions:hover{background:#feffff}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions:hover a{opacity:1}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a{display:none;margin-right:3px;text-decoration:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a.widget-delete{color:red}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .title .actions a.widget-delete:hover{color:#fff;background:red}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover .title a{display:inline-block;opacity:.5}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.panel-being-dragged .title .actions{display:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget small{display:block;height:16px;overflow:hidden;color:#777}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .form{display:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover{background:#f5f5f5;border:1px solid #a6bac1;box-shadow:none}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only:hover small,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-read-only small{opacity:.5}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered{background:#3a7096;border:1px solid #39618c;box-shadow:0 2px 2px rgba(0,0,0,.1)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered h4,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered small,.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered span{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-hovered small{color:#eee}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget-sortable-highlight{border:1px solid rgba(0,0,0,.075);background:rgba(0,0,0,.025);-ms-box-sizing:border-box;box-sizing:border-box;height:49px;margin-bottom:7px;position:relative;box-shadow:inset 2px 2px 2px rgba(0,0,0,.01)}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .resize-handle{z-index:100;position:absolute;top:0;width:10px;left:-5px;cursor:col-resize;background:#f6fafb;height:100%;transition:background .25s ease-in-out 0s}.siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell:first-child .resize-handle{display:none}.siteorigin-panels-builder .so-panels-welcome-message{text-align:center;padding:0 15px 20px;color:#555;line-height:1.8em}.siteorigin-panels-builder .so-panels-welcome-message .so-message-wrapper{padding:15px 10px;background:#f8f8f8;border:1px solid #e0e0e0}.siteorigin-panels-builder .so-panels-welcome-message .so-tool-button{font-size:inherit;display:inline-block;float:none;color:#666;padding:5px 10px;margin:0 3px}.siteorigin-panels-builder .so-panels-welcome-message .so-tool-button .so-panels-icon{color:#777;font-size:.8em}.siteorigin-panels-builder .so-panels-welcome-message .so-tip-wrapper{margin-top:15px;font-size:.95em}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar{padding:10px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button{padding-right:2px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button .so-panels-icon{font-size:14px}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button.so-learn,.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar>.so-tool-button span.so-button-text{display:none}.siteorigin-panels-builder.so-display-narrow .so-builder-toolbar .so-switch-to-standard,.siteorigin-panels-builder.so-display-narrow .widgets-container .so-widget .actions{display:none!important}.so-widget.ui-sortable-helper.widget-being-dragged{z-index:500002!important;opacity:.9;pointer-events:none;border:1px solid rgba(0,0,0,.35)!important;cursor:move;margin-bottom:7px;background:#f9f9fb;border:1px solid hsla(0,0%,100%,.75);max-height:49px;box-shadow:0 1px 1px rgba(0,0,0,.075);-ms-box-sizing:border-box;box-sizing:border-box}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-move{cursor:auto}.so-widget.ui-sortable-helper.widget-being-dragged:hover{border:1px solid hsla(0,0%,100%,.55);background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1)}.so-widget.ui-sortable-helper.widget-being-dragged .so-widget-wrapper{padding:7px 8px;overflow:hidden;position:relative}.so-widget.ui-sortable-helper.widget-being-dragged h4{display:block;cursor:pointer;margin:0 15px 3px 0;font-weight:600;line-height:1.25em;color:#474747;text-shadow:0 1px 0 #fff;white-space:nowrap}.so-widget.ui-sortable-helper.widget-being-dragged h4 span{font-weight:400;display:inline-block;color:#999;text-shadow:0 1px 0 #fff;margin-left:12px;margin-right:5px;font-style:italic}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-edit h4{cursor:auto}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions{font-size:12px;position:absolute;top:5px;right:7px;cursor:pointer;padding:2px 2px 2px 15px;z-index:10}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions:hover{background:#feffff}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions:hover a{opacity:1}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a{display:none;margin-right:3px;text-decoration:none}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a.widget-delete{color:red}.so-widget.ui-sortable-helper.widget-being-dragged .title .actions a.widget-delete:hover{color:#fff;background:red}.so-widget.ui-sortable-helper.widget-being-dragged:hover .title a{display:inline-block;opacity:.5}.so-widget.ui-sortable-helper.widget-being-dragged.panel-being-dragged .title .actions{display:none}.so-widget.ui-sortable-helper.widget-being-dragged small{display:block;height:16px;overflow:hidden;color:#777}.so-widget.ui-sortable-helper.widget-being-dragged .form{display:none}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover{background:#f5f5f5;border:1px solid #a6bac1;box-shadow:none}.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only:hover small,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-widget-read-only small{opacity:.5}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered{background:#3a7096;border:1px solid #39618c;box-shadow:0 2px 2px rgba(0,0,0,.1)}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered h4,.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered small,.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered span{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.so-widget.ui-sortable-helper.widget-being-dragged.so-hovered small{color:#eee}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-builder-container{padding-top:0}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-rows-container{padding:10px 0 0}.widgets-holder-wrap .widget-inside .siteorigin-panels-builder .so-builder-toolbar{padding-left:15px;padding-right:15px;margin:0 -15px}.gutenberg .so-content,.gutenberg .so-left-sidebar,.gutenberg .so-overlay,.gutenberg .so-right-sidebar,.gutenberg .so-title-bar,.gutenberg .so-toolbar,.so-panels-dialog .so-content,.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-overlay,.so-panels-dialog .so-right-sidebar,.so-panels-dialog .so-title-bar,.so-panels-dialog .so-toolbar{z-index:100001;position:fixed;-ms-box-sizing:border-box;box-sizing:border-box;padding:15px}.gutenberg .so-content,.gutenberg .so-left-sidebar,.gutenberg .so-right-sidebar,.so-panels-dialog .so-content,.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-right-sidebar{overflow-y:auto}.gutenberg .so-overlay,.so-panels-dialog .so-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.gutenberg .so-content,.so-panels-dialog .so-content{top:80px;left:30px;right:30px;bottom:88px;background-color:#fdfdfd;overflow-x:hidden;box-shadow:inset 0 2px 2px rgba(0,0,0,.03)}.gutenberg .so-content>:first-child,.so-panels-dialog .so-content>:first-child{margin-top:0}.gutenberg .so-content>:last-child,.so-panels-dialog .so-content>:last-child{margin-bottom:0}.gutenberg .so-content .so-content-tabs>*,.so-panels-dialog .so-content .so-content-tabs>*{display:none}.gutenberg .so-title-bar,.so-panels-dialog .so-title-bar{left:30px;right:30px;top:30px;height:50px;background-color:#fafafa;border-bottom:1px solid #d8d8d8}.gutenberg .so-title-bar h3.so-title,.so-panels-dialog .so-title-bar h3.so-title{-ms-box-sizing:border-box;box-sizing:border-box;margin:-3px 150px 0 -3px;padding:5px 6px;display:block}.gutenberg .so-title-bar h3.so-title.so-title-editable:focus,.gutenberg .so-title-bar h3.so-title.so-title-editable:hover,.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus,.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:hover{outline:none;background-color:#f0f0f0}.gutenberg .so-title-bar h3.so-title.so-title-editable:focus,.so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus{margin-top:-4px;margin-left:-4px;border:1px solid #e4e4e4}.gutenberg .so-title-bar input[type=text].so-edit-title,.so-panels-dialog .so-title-bar input[type=text].so-edit-title{margin-top:-3px;margin-left:-3px;display:none;color:#23282d;font-size:1.3em;font-weight:600;border:none;box-shadow:none;background-color:#f0f0f0;padding:4px 5px}.gutenberg .so-title-bar h3.so-parent-link,.so-panels-dialog .so-title-bar h3.so-parent-link{cursor:pointer;position:relative;float:left;margin:0 15px 0 0!important;padding:0 27px 0 0!important}.gutenberg .so-title-bar h3.so-parent-link .so-separator,.so-panels-dialog .so-title-bar h3.so-parent-link .so-separator{position:absolute;top:-15px;right:0;width:12px;height:50px;display:block;background:url(images/dialog-separator.png) no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.gutenberg .so-title-bar h3.so-parent-link .so-separator,.so-panels-dialog .so-title-bar h3.so-parent-link .so-separator{background:url(images/dialog-separator@2x.png) no-repeat;background-size:cover}}.gutenberg .so-title-bar a,.so-panels-dialog .so-title-bar a{cursor:pointer;position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;top:0;right:0;transition:all .2s ease 0s;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}.gutenberg .so-title-bar a:hover,.so-panels-dialog .so-title-bar a:hover{background:#e9e9e9}.gutenberg .so-title-bar a:hover .so-dialog-icon,.so-panels-dialog .so-title-bar a:hover .so-dialog-icon{color:#333}.gutenberg .so-title-bar a .so-dialog-icon,.so-panels-dialog .so-title-bar a .so-dialog-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666;text-align:center}.gutenberg .so-title-bar a .so-dialog-icon:before,.so-panels-dialog .so-title-bar a .so-dialog-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}.gutenberg .so-title-bar a.so-close,.so-panels-dialog .so-title-bar a.so-close{right:0}.gutenberg .so-title-bar a.so-close .so-dialog-icon:before,.so-panels-dialog .so-title-bar a.so-close .so-dialog-icon:before{content:"\f335"}.gutenberg .so-title-bar a.so-next,.so-panels-dialog .so-title-bar a.so-next{right:50px}.gutenberg .so-title-bar a.so-next .so-dialog-icon:before,.so-panels-dialog .so-title-bar a.so-next .so-dialog-icon:before{content:"\f345"}.gutenberg .so-title-bar a.so-previous,.so-panels-dialog .so-title-bar a.so-previous{right:100px}.gutenberg .so-title-bar a.so-previous .so-dialog-icon:before,.so-panels-dialog .so-title-bar a.so-previous .so-dialog-icon:before{content:"\f341"}.gutenberg .so-title-bar a.so-nav.so-disabled,.so-panels-dialog .so-title-bar a.so-nav.so-disabled{cursor:default;pointer-events:none}.gutenberg .so-title-bar a.so-nav.so-disabled .so-dialog-icon,.so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon{color:#ddd}.gutenberg .so-title-bar.so-has-icon,.so-panels-dialog .so-title-bar.so-has-icon{padding-left:45px}.gutenberg .so-title-bar.so-has-icon .so-panels-icon,.so-panels-dialog .so-title-bar.so-has-icon .so-panels-icon{position:absolute;top:14.5px;left:14px;font-size:22px;line-height:22px;display:block;width:22px;height:22px;text-align:center;color:#666}.gutenberg .so-toolbar,.so-panels-dialog .so-toolbar{left:30px;right:30px;bottom:30px;height:58px;background-color:#fafafa;border-top:1px solid #d8d8d8;z-index:100002}.gutenberg .so-toolbar .so-status,.so-panels-dialog .so-toolbar .so-status{float:left;padding-top:6px;padding-bottom:6px;font-style:italic;color:#999;line-height:1em}.gutenberg .so-toolbar .so-status.so-panels-loading,.so-panels-dialog .so-toolbar .so-status.so-panels-loading{padding-left:26px;background-position:0}.gutenberg .so-toolbar .so-status .dashicons-warning,.so-panels-dialog .so-toolbar .so-status .dashicons-warning{color:#a00;vertical-align:middle;margin-right:7px;margin-top:-1px}.gutenberg .so-toolbar .so-buttons,.so-panels-dialog .so-toolbar .so-buttons{float:right}.gutenberg .so-toolbar .so-buttons .action-buttons,.so-panels-dialog .so-toolbar .so-buttons .action-buttons{position:absolute;left:15px;top:50%;margin-top:-.65em}.gutenberg .so-toolbar .so-buttons .action-buttons a,.so-panels-dialog .so-toolbar .so-buttons .action-buttons a{cursor:pointer;display:inline;padding:.2em .5em;line-height:1em;margin-right:.5em;text-decoration:none}.gutenberg .so-toolbar .so-buttons .action-buttons .so-delete,.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete{color:#a00}.gutenberg .so-toolbar .so-buttons .action-buttons .so-delete:hover,.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover{background:#a00;color:#fff}.gutenberg .so-toolbar .so-buttons .action-buttons .so-duplicate:hover,.so-panels-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover{text-decoration:underline}.gutenberg .so-left-sidebar,.gutenberg .so-right-sidebar,.so-panels-dialog .so-left-sidebar,.so-panels-dialog .so-right-sidebar{background-color:#f3f3f3}.gutenberg .so-left-sidebar,.so-panels-dialog .so-left-sidebar{display:none;top:30px;left:30px;bottom:30px;width:290px;border-right:1px solid #d8d8d8}.gutenberg .so-left-sidebar h4,.so-panels-dialog .so-left-sidebar h4{margin:0 0 20px;font-size:18px}.gutenberg .so-left-sidebar .so-sidebar-search,.so-panels-dialog .so-left-sidebar .so-sidebar-search{width:100%;padding:6px;margin-bottom:20px}.gutenberg .so-left-sidebar .so-sidebar-tabs,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs{list-style:none;margin:0 -15px}.gutenberg .so-left-sidebar .so-sidebar-tabs li,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li{margin-bottom:0}.gutenberg .so-left-sidebar .so-sidebar-tabs li a,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a{padding:7px 16px;display:block;font-size:14px;text-decoration:none;box-shadow:none!important}.gutenberg .so-left-sidebar .so-sidebar-tabs li a:hover,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li a:hover{background:#fff}.gutenberg .so-left-sidebar .so-sidebar-tabs li.tab-active a,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a{color:#555;font-weight:700;background:#fff}.gutenberg .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover,.so-panels-dialog .so-left-sidebar .so-sidebar-tabs li.tab-active a:hover{background:#fff}.gutenberg .so-right-sidebar,.so-panels-dialog .so-right-sidebar{display:none;top:80px;right:30px;bottom:88px;width:290px;border-left:1px solid #d8d8d8}.gutenberg .so-right-sidebar h3,.so-panels-dialog .so-right-sidebar h3{color:#333}.gutenberg .so-right-sidebar h3:first-child,.so-panels-dialog .so-right-sidebar h3:first-child{margin-top:0}.gutenberg .so-sidebar .form-field,.so-panels-dialog .so-sidebar .form-field{margin-bottom:20px}.gutenberg .so-sidebar .form-field label,.so-panels-dialog .so-sidebar .form-field label{font-weight:500;font-size:15px;display:block;margin-bottom:10px}.gutenberg.so-panels-dialog-has-left-sidebar .so-content,.gutenberg.so-panels-dialog-has-left-sidebar .so-title-bar,.gutenberg.so-panels-dialog-has-left-sidebar .so-toolbar,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-title-bar,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-toolbar{left:320px}.gutenberg.so-panels-dialog-has-left-sidebar .so-content,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-content{box-shadow:inset 2px 2px 2px rgba(0,0,0,.03)}.gutenberg.so-panels-dialog-has-left-sidebar .so-left-sidebar,.so-panels-dialog.so-panels-dialog-has-left-sidebar .so-left-sidebar{display:block}.gutenberg.so-panels-dialog-has-right-sidebar .so-content,.so-panels-dialog.so-panels-dialog-has-right-sidebar .so-content{right:320px}.gutenberg.so-panels-dialog-has-right-sidebar .so-right-sidebar,.so-panels-dialog.so-panels-dialog-has-right-sidebar .so-right-sidebar{display:block}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget{border-radius:2px;border:1px solid #ccc;cursor:pointer;padding:10px;background:#f9f9f9;box-shadow:0 1px 2px rgba(0,0,0,.075),inset 0 1px 0 #fff;margin-bottom:15px}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:hover{border:1px solid #bbb;background:#fff}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current{border-color:#0074a2;background:#2ea2cc;cursor:auto;box-shadow:0 1px 2px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.2)}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current h3{color:#fff}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current small{color:#eee}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget.so-current:hover{border-color:#0074a2;background:#2ea2cc}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget:last-child{margin-bottom:0}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget h3{margin:0 0 7px;padding:0;height:1.2em;color:#222;font-size:14px}.gutenberg.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small,.so-panels-dialog.so-panels-dialog-edit-widget .so-left-sidebar .so-widgets .so-widget small{font-size:11px;line-height:1.25em;display:block;overflow:hidden;color:#888}.gutenberg.so-panels-dialog-add-widget .widget-type-list,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list{zoom:1;margin:0 -5px -10px;min-height:10px}.gutenberg.so-panels-dialog-add-widget .widget-type-list:before,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:before{content:"";display:block}.gutenberg.so-panels-dialog-add-widget .widget-type-list:after,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list:after{content:"";display:table;clear:both}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;user-select:none;-ms-box-sizing:border-box;box-sizing:border-box;width:25%;padding:0 5px;margin-bottom:10px;float:left}@media (max-width:1280px){.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{width:33.333%}}@media (max-width:960px){.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type{width:50%}}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type h3,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type h3{margin:0 0 7px;padding:0;color:#222;font-size:14px}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type small,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type small{font-size:11px;min-height:2.5em;line-height:1.25em;display:block;overflow:hidden;color:#888}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type .widget-icon{font-size:20px;width:20px;height:20px;color:#666;float:left;margin:-1px .5em 0 0}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper{border:1px solid #ccc;cursor:pointer;padding:10px;background:#f8f8f8;box-shadow:0 1px 2px rgba(0,0,0,.075)}.gutenberg.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover,.so-panels-dialog.so-panels-dialog-add-widget .widget-type-list .widget-type-wrapper:hover{border:1px solid #bbb;background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.075)}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form{zoom:1;padding:8px;border:1px solid #ccc;margin-bottom:20px;background:#f3f3f3}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form:before,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:before{content:"";display:block}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form:after,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form:after{content:"";display:table;clear:both}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form button,.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form input,.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form select,.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form span,.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form strong,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form input,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form select,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form span,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form strong{display:inline;margin:1px 5px;outline:none;box-shadow:none}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form button,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form button{margin-top:2px}.gutenberg.so-panels-dialog-row-edit .so-content .row-set-form label,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-set-form label{display:inline}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview{margin:0 -6px;height:360px;position:relative;white-space:nowrap}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-in,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell-weight{-ms-box-sizing:border-box;box-sizing:border-box}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell{display:inline-block;position:relative;padding:0 6px;cursor:pointer}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in{border:1px solid #bcccd2;min-height:360px;background:#e4eff4;position:relative}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected{background:#cae7f4 url(images/cell-selected.png) repeat;border-color:#9abcc7;box-shadow:0 0 5px rgba(0,0,0,.2)}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input{position:absolute;font-size:17px;font-weight:700;top:50%;left:50%;width:80px;text-align:center;color:#5e6d72;margin:-.95em 0 0 -40px;padding:10px 0;border:1px solid transparent;line-height:1.4em!important;overflow:hidden;cursor:pointer}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:after,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:after{content:"%"}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input:hover,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight:hover{background:#f6f6f6;border:1px solid #d0d0d0}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input{background:#f6f6f6;border:1px solid #d0d0d0;box-shadow:none}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle{z-index:100;position:absolute;top:0;width:12px;left:-6px;cursor:col-resize;background:#e5f4fb;height:360px;transition:background .15s ease-in-out 0s}.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging,.gutenberg.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle.ui-draggable-dragging,.so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .resize-handle:hover{background:#b7e0f1}.gutenberg.so-panels-dialog-history .so-left-sidebar,.so-panels-dialog.so-panels-dialog-history .so-left-sidebar{padding:0}.gutenberg.so-panels-dialog-history .history-entries .history-entry,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry{padding:10px;background:#f8f8f8;cursor:pointer;border-bottom:1px solid #ccc}.gutenberg.so-panels-dialog-history .history-entries .history-entry h3,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry h3{margin:0 0 .6em;font-size:12px;font-weight:700;color:#444;line-height:1em}.gutenberg.so-panels-dialog-history .history-entries .history-entry .timesince,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .timesince{color:#999;font-size:11px;line-height:1em}.gutenberg.so-panels-dialog-history .history-entries .history-entry:hover,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry:hover{background:#f0f0f0}.gutenberg.so-panels-dialog-history .history-entries .history-entry.so-selected,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry.so-selected{background:#eee}.gutenberg.so-panels-dialog-history .history-entries .history-entry .count,.so-panels-dialog.so-panels-dialog-history .history-entries .history-entry .count{color:#999}.gutenberg.so-panels-dialog-history .so-content,.so-panels-dialog.so-panels-dialog-history .so-content{padding:0;overflow-y:hidden}.gutenberg.so-panels-dialog-history .so-content form.history-form,.so-panels-dialog.so-panels-dialog-history .so-content form.history-form{display:none}.gutenberg.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe,.so-panels-dialog.so-panels-dialog-history .so-content iframe.siteorigin-panels-history-iframe{width:100%;height:100%}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content{padding-left:10px;padding-right:10px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-error-message,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-error-message{font-size:14px;border:1px solid #ccc;background:#f8f8f8;padding:15px 20px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .export-file-ui{padding:5px 15px;text-align:right}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui{padding:15px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-drop-message{display:none}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui.has-drag-drop .drag-drop-message{display:block}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui p.drag-drop-message{font-size:1em;margin-bottom:0}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area{display:block;-ms-box-sizing:border-box;box-sizing:border-box;padding:50px 30px;border:4px dashed #e0e0e0;text-align:center;transition:all .25s ease 0s}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .drag-upload-area.file-dragover{background-color:#f2f9fc;border-color:#0074a2}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar{display:none;padding:2px;border:2px solid #2181b1;border-radius:2px;margin-top:20px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .progress-bar .progress-percent{height:14px;background-color:#358ebe;border-radius:1px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .import-upload-ui .file-browse-button{padding:12px 30px;height:auto}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-browse{background:#f3f3f3;border-bottom:1px solid #d0d0d0;margin:-15px -10px 15px;padding:15px;font-weight:700}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items-wrapper{display:flex;flex-flow:row wrap}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-no-results{margin:20px 0;padding:0 5px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{-ms-box-sizing:border-box;box-sizing:border-box;padding:6px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-directory-item-wrapper{display:flex;flex-flow:column nowrap;height:100%;box-sizing:border-box;padding:15px 10px;background:#f7f7f7;border:1px solid #d0d0d0;box-shadow:0 1px 1px rgba(0,0,0,.1)}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-title{font-size:15px;margin:0 0 13px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot{flex:3 auto;margin-bottom:10px;cursor:pointer}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading{background-image:url(images/wpspin_light.gif);background-position:50%;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot.so-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot img{display:block;width:100%;height:auto}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-screenshot .so-screenshot-wrapper{display:block;min-height:40px;background:gray;border:1px solid #d0d0d0}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-description{flex:1 auto;font-size:.9em;color:#666;margin-bottom:10px;max-height:60px;overflow:hidden}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom{flex:1 auto;position:relative;max-height:50px;margin:10px -10px -15px;background:#fcfcfc;border-top:1px solid #d0d0d0}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-title{margin:0;padding:16px 10px;cursor:pointer;overflow:hidden;white-space:nowrap}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item .so-bottom .so-buttons{position:absolute;z-index:2;top:0;bottom:0;right:0;height:100%;visibility:hidden;-ms-box-sizing:border-box;box-sizing:border-box;padding:11px 10px 10px 15px;border-left:1px solid #d0d0d0;background:#f6f6f6;box-shadow:-1px 0 1px rgba(0,0,0,.05)}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item:hover .so-buttons{visibility:visible}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected{background-color:#e5f4fa}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-directory-item-wrapper{background:#deeef4;border-color:#9abcc7}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom{background:#f8fdff;border-color:#bcccd2}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-title{color:#3e484c}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item.selected .so-bottom .so-buttons{background:#eaf2f6;border-color:#bcccd2}@media only screen and (min-width:1680px){.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:20%}}@media only screen and (max-width:1679px) and (min-width:1280px){.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:25%}}@media only screen and (max-width:1279px) and (min-width:1140px){.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:33.333%}}@media only screen and (max-width:1139px){.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-items .so-directory-item{width:50%}}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages{margin-top:15px;padding:0 5px}.gutenberg.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-content .so-directory-pages .button-disabled{pointer-events:none}.gutenberg.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position,.so-panels-dialog.so-panels-dialog-prebuilt-layouts .so-toolbar .so-buttons select.so-layout-position{vertical-align:baseline}.gutenberg .so-visual-styles,.so-panels-dialog .so-visual-styles{margin:-15px;height:100%}.gutenberg .so-visual-styles h3,.so-panels-dialog .so-visual-styles h3{line-height:1em;margin:0;padding:20px 15px;border-bottom:1px solid #ddd}.gutenberg .so-visual-styles .style-section-head,.so-panels-dialog .so-visual-styles .style-section-head{background:#fff;padding:15px 10px;border-bottom:1px solid #ddd;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gutenberg .so-visual-styles .style-section-head h4,.so-panels-dialog .so-visual-styles .style-section-head h4{margin:0}.gutenberg .so-visual-styles .style-section-fields,.so-panels-dialog .so-visual-styles .style-section-fields{padding:15px;border-bottom:1px solid #ddd;background:#f7f7f7}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper{margin-bottom:20px}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper:last-child,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper:last-child{margin-bottom:0}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper>label,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper>label{font-weight:700;display:block;margin-bottom:3px}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field{zoom:1}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:before{content:"";display:block}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field:after{content:"";display:table;clear:both}.gutenberg .so-visual-styles .style-section-fields .style-field-wrapper .style-field input,.so-panels-dialog .so-visual-styles .style-section-fields .style-field-wrapper .style-field input{font-size:12px}.gutenberg .so-visual-styles .style-input-wrapper,.so-panels-dialog .so-visual-styles .style-input-wrapper{zoom:1}.gutenberg .so-visual-styles .style-input-wrapper:before,.so-panels-dialog .so-visual-styles .style-input-wrapper:before{content:"";display:block}.gutenberg .so-visual-styles .style-input-wrapper:after,.so-panels-dialog .so-visual-styles .style-input-wrapper:after{content:"";display:table;clear:both}.gutenberg .so-visual-styles .style-input-wrapper input,.so-panels-dialog .so-visual-styles .style-input-wrapper input{max-width:100%}.gutenberg .so-visual-styles .style-field-measurement .measurement-inputs,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-inputs{overflow:auto;margin:0 -3px 4px}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper{box-sizing:border-box;float:left;width:25%;padding:0 3px}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value{border-width:1px;display:block;max-width:100%}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-top{box-shadow:inset 0 2px 1px rgba(0,115,170,.35)}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-right{box-shadow:inset -3px 0 2px rgba(0,115,170,.35)}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-bottom{box-shadow:inset 0 -2px 1px rgba(0,115,170,.35)}.gutenberg .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-wrapper .measurement-value.measurement-left{box-shadow:inset 3px 0 2px rgba(0,115,170,.35)}.gutenberg .so-visual-styles .style-field-measurement .measurement-unit-multiple,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-multiple{width:100%;display:block}.gutenberg .so-visual-styles .style-field-measurement .measurement-unit-single,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-unit-single{float:right;width:25%}.gutenberg .so-visual-styles .style-field-measurement .measurement-value-single,.so-panels-dialog .so-visual-styles .style-field-measurement .measurement-value-single{float:left;width:72%}.gutenberg .so-visual-styles .style-field-image .so-image-selector,.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector{display:inline-block;background-color:#f7f7f7;border:1px solid #ccc;height:28px;float:left;border-radius:3px;cursor:pointer;box-shadow:inset 0 1px #fff}.gutenberg .so-visual-styles .style-field-image .so-image-selector .current-image,.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .current-image{height:28px;width:28px;float:left;background:#fff;border-right:1px solid #ccc;background-size:cover;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px;background-clip:padding-box}.gutenberg .so-visual-styles .style-field-image .so-image-selector .select-image,.so-panels-dialog .so-visual-styles .style-field-image .so-image-selector .select-image{font-size:12px;line-height:28px;float:left;padding:0 8px;color:#555}.gutenberg .so-visual-styles .style-field-image .remove-image,.so-panels-dialog .so-visual-styles .style-field-image .remove-image{font-size:12px;margin-top:4px;margin-left:15px;display:inline-block;float:left;color:#666;text-decoration:none}.gutenberg .so-visual-styles .style-field-image .remove-image.hidden,.so-panels-dialog .so-visual-styles .style-field-image .remove-image.hidden{display:none}.gutenberg .so-visual-styles .style-field-image .image-fallback,.so-panels-dialog .so-visual-styles .style-field-image .image-fallback{margin-top:4px}.gutenberg .so-visual-styles .style-field-checkbox label,.so-panels-dialog .so-visual-styles .style-field-checkbox label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gutenberg .so-visual-styles .so-field-code,.so-panels-dialog .so-visual-styles .so-field-code{font-size:12px;font-family:Courier\ 10 Pitch,Courier,monospace}.gutenberg .so-visual-styles .so-description,.so-panels-dialog .so-visual-styles .so-description{color:#999;font-size:12px;margin-top:5px;margin-bottom:0;font-style:italic;clear:both}.gutenberg .so-visual-styles.so-cell-styles,.so-panels-dialog .so-visual-styles.so-cell-styles{margin-top:15px}.gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-builder-toolbar,.gutenberg .so-content .siteorigin-panels-builder .so-builder-toolbar,.so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-builder-toolbar,.so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar{border:1px solid #dedede;z-index:1}.gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-rows-container,.gutenberg .so-content .siteorigin-panels-builder .so-rows-container,.so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-rows-container,.so-panels-dialog .so-content .siteorigin-panels-builder .so-rows-container{padding:20px 0 0}.gutenberg .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-panels-welcome-message,.gutenberg .so-content .siteorigin-panels-builder .so-panels-welcome-message,.so-panels-dialog .siteorigin-panels-layout-block-container .siteorigin-panels-builder .so-panels-welcome-message,.so-panels-dialog .so-content .siteorigin-panels-builder .so-panels-welcome-message{padding-left:0;padding-right:0;line-height:2.5em}.gutenberg .siteorigin-panels-layout-block-container,.so-panels-dialog .siteorigin-panels-layout-block-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4em}.gutenberg .siteorigin-panels-layout-block-container ul,.so-panels-dialog .siteorigin-panels-layout-block-container ul{list-style:none}.gutenberg .siteorigin-panels-gutenberg-icon,.so-panels-dialog .siteorigin-panels-gutenberg-icon{background-size:cover;background-image:url(../compat/pb-icon.svg);width:20px;height:20px}.gutenberg .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container,.so-panels-dialog .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container{text-align:center}.gutenberg .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container>span,.so-panels-dialog .so-panels-gutenberg-layout-preview-container .so-panels-spinner-container>span{display:inline-block}.gutenberg .so-dropdown-wrapper input[type=button].button-primary,.so-panels-dialog .so-dropdown-wrapper input[type=button].button-primary{width:125px;height:28px}.gutenberg .so-dropdown-wrapper .so-dropdown-links-wrapper,.so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper{display:block;z-index:11;bottom:28px;width:125px}.gutenberg .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden,.so-panels-dialog .so-dropdown-wrapper .so-dropdown-links-wrapper.hidden{display:none}.wp-customizer .so-panels-dialog .so-content,.wp-customizer .so-panels-dialog .so-left-sidebar,.wp-customizer .so-panels-dialog .so-overlay,.wp-customizer .so-panels-dialog .so-right-sidebar,.wp-customizer .so-panels-dialog .so-title-bar,.wp-customizer .so-panels-dialog .so-toolbar{z-index:500001}.wp-customizer .so-panels-dialog .so-toolbar{z-index:500002}.so-panels-live-editor>div{position:fixed;z-index:99999;-ms-box-sizing:border-box;box-sizing:border-box}.so-panels-live-editor .live-editor-form{display:none}.so-panels-live-editor .live-editor-collapse{position:fixed;top:18px;left:10px;line-height:1em;cursor:pointer;z-index:100000}.so-panels-live-editor .live-editor-collapse .collapse-icon{float:left;margin:-4px 6px 0 0;border-radius:50%;width:20px;height:20px;overflow:hidden;transition:all .25s ease 0s}.so-panels-live-editor .live-editor-collapse .collapse-icon:before{display:block;content:"\f148";background:#eee;font:normal 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased}.so-panels-live-editor .live-editor-collapse:hover{color:#0073aa}.so-panels-live-editor .live-editor-collapse:hover .collapse-icon{box-shadow:0 0 3px rgba(30,140,190,.8)}.so-panels-live-editor .so-sidebar-tools{background:#eee;border-bottom:1px solid #ddd;border-right:1px solid #d0d0d0;top:0;left:0;height:46px;width:360px}.so-panels-live-editor .so-sidebar-tools .live-editor-close{margin:9px 10px 0 15px;float:right}.so-panels-live-editor .so-sidebar-tools .live-editor-mode{float:right;margin:9px 4px 0 0}.so-panels-live-editor .so-sidebar-tools .live-editor-mode .dashicons{font-size:30px;width:30px;height:30px;cursor:pointer;color:#999}.so-panels-live-editor .so-sidebar-tools .live-editor-mode .dashicons:hover{color:#666}.so-panels-live-editor .so-sidebar-tools .live-editor-mode.so-active .dashicons,.so-panels-live-editor .so-sidebar-tools .live-editor-mode.so-active .dashicons:hover{color:#0073aa}.so-panels-live-editor .so-sidebar{top:46px;left:0;bottom:0;width:360px;overflow-y:auto;background:#f7f7f7;border-right:1px solid #d0d0d0}.so-panels-live-editor .so-sidebar .siteorigin-panels-builder .so-rows-container{padding:10px 10px 0!important}.so-panels-live-editor .so-preview{top:0;right:0;bottom:0;left:360px;background-color:#191e23}.so-panels-live-editor .so-preview form{display:none}.so-panels-live-editor .so-preview iframe{float:left;width:100%;height:100%;margin:0 auto}.so-panels-live-editor .so-preview-overlay{display:none;opacity:.975;top:0;right:0;bottom:0;left:360px;background-color:#f4f4f4;cursor:wait}.so-panels-live-editor .so-preview-overlay .so-loading-container{opacity:.6;position:absolute;top:50%;width:200px;padding:2px;border-radius:5px;left:50%;margin-left:-104px;margin-top:-9px;border:2px solid #aaa}.so-panels-live-editor .so-preview-overlay .so-loading-container .so-loading-bar{width:50%;border-radius:3px;height:10px;background:#aaa}.so-panels-live-editor.so-collapsed .live-editor-collapse .collapse-icon{transform:rotate(180deg)}.so-panels-live-editor.so-collapsed .so-sidebar,.so-panels-live-editor.so-collapsed .so-sidebar-tools{display:none}.so-panels-live-editor.so-collapsed .so-preview,.so-panels-live-editor.so-collapsed .so-preview-overlay{left:0}.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{max-width:480px;max-height:640px;position:absolute;top:50%;left:50%;margin-left:-240px;margin-top:-320px}@media (max-width:840px){.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}@media (max-height:640px){.so-panels-live-editor.live-editor-mobile-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}.so-panels-live-editor.live-editor-tablet-mode .so-preview iframe{position:absolute;max-width:768px;top:0;left:50%;margin-left:-384px}@media (max-width:1128px){.so-panels-live-editor.live-editor-tablet-mode .so-preview iframe{position:static;margin-left:0;margin-top:0}}.so-panels-loading{background-image:url(images/wpspin_light.gif);background-position:50%;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.so-panels-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#panels-home-page .switch{margin:0 10px 0 0;float:left;position:relative;display:inline-block;vertical-align:top;width:68px;height:24px;padding:3px;background-color:#fff;border-radius:24px;box-shadow:inset 0 -1px #fff,inset 0 1px 1px rgba(0,0,0,.05);cursor:pointer;background-image:linear-gradient(180deg,#eee,#fff 25px)}#panels-home-page .switch .switch-input{position:absolute;top:0;left:0;opacity:0}#panels-home-page .switch .switch-label{position:relative;display:block;height:inherit;font-size:12px;text-transform:uppercase;background:#eceeef;border-radius:inherit;box-shadow:inset 0 1px 2px rgba(0,0,0,.12),inset 0 0 2px rgba(0,0,0,.15);transition:.15s ease-out;transition-property:opacity background}#panels-home-page .switch .switch-label:after,#panels-home-page .switch .switch-label:before{position:absolute;top:50%;margin-top:-.5em;line-height:1;transition:inherit}#panels-home-page .switch .switch-label:before{content:attr(data-off);right:11px;color:#aaa;text-shadow:0 1px hsla(0,0%,100%,.5)}#panels-home-page .switch .switch-label:after{content:attr(data-on);left:13px;color:#fff;text-shadow:0 1px rgba(0,0,0,.2);opacity:0}#panels-home-page .switch .switch-input:checked~.switch-label{background:#47a8d8;box-shadow:inset 0 1px 2px rgba(0,0,0,.15),inset 0 0 3px rgba(0,0,0,.2)}#panels-home-page .switch .switch-input:checked~.switch-label:before{opacity:0}#panels-home-page .switch .switch-input:checked~.switch-label:after{opacity:1}#panels-home-page .switch .switch-handle{position:absolute;top:4px;left:4px;width:22px;height:22px;background:#fff;border-radius:12px;box-shadow:1px 1px 5px rgba(0,0,0,.2);background-image:linear-gradient(180deg,#fff 40%,#f0f0f0);transition:left .15s ease-out}#panels-home-page .switch .switch-handle:before{content:"";position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;width:14px;height:14px;background:#f9f9f9;border-radius:7px;box-shadow:inset 0 1px rgba(0,0,0,.02);background-image:linear-gradient(180deg,#eee,#fff)}#panels-home-page .switch .switch-input:checked~.switch-handle{left:48px;box-shadow:-1px 1px 5px rgba(0,0,0,.2)}#panels-home-page .switch .switch-green>.switch-input:checked~.switch-label{background:#4fb845}#panels-home-page #panels-view-as-page{display:inline-block;margin-left:50px}.siteorigin-panels-builder-form .siteorigin-panels-builder{border:1px solid #d0d0d0;background-color:#fff;margin:10px 0}.siteorigin-panels-builder-form .siteorigin-panels-builder.so-panels-loading{min-height:150px}.siteorigin-page-builder-widget .siteorigin-panels-display-builder{display:inline-block!important}.siteorigin-page-builder-widget .siteorigin-panels-no-builder{display:none!important}.so-panels-contextual-menu{border:1px solid silver;background:#f9f9f9;box-shadow:0 1px 1px rgba(0,0,0,.04);outline:none;border-radius:2px;position:absolute;width:180px;top:20px;left:20px;z-index:999999;display:none;overflow-y:auto}.so-panels-contextual-menu,.so-panels-contextual-menu *{font-size:12px}.so-panels-contextual-menu .so-section{border-bottom:1px solid silver}.so-panels-contextual-menu .so-section:last-child{border-bottom:none}.so-panels-contextual-menu .so-section h5{margin:0 0 5px;padding:8px 10px 5px;border-bottom:1px solid #d0d0d0;background:#f6f6f6}.so-panels-contextual-menu .so-section .so-search-wrapper{margin:-5px 0 5px;border-bottom:1px solid #d0d0d0;background:#f4f4f4}.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]{box-sizing:border-box;display:block;width:100%;margin:0;border:none;padding:5px 10px;background:#fbfbfb}.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]:active,.so-panels-contextual-menu .so-section .so-search-wrapper input[type=text]:focus{border:none;box-shadow:none;background:#fff}.so-panels-contextual-menu .so-section ul{margin:5px 0 0;padding:0 0 5px}.so-panels-contextual-menu .so-section ul li{cursor:pointer;margin:0;padding:4px 10px;line-height:1em}.so-panels-contextual-menu .so-section ul li.so-active,.so-panels-contextual-menu .so-section ul li:hover{background:#f0f0f0;color:#444}.so-panels-contextual-menu .so-section ul li.so-confirm{color:#a00}.so-panels-contextual-menu .so-section ul li.so-confirm.so-active,.so-panels-contextual-menu .so-section ul li.so-confirm:hover{background:#a00;color:#fff}.so-panels-contextual-menu .so-section ul li .dashicons{width:12px;height:12px;font-size:12px;margin:0;float:right;line-height:12px}.so-panels-contextual-menu .so-section .so-no-results{padding:0 10px 5px;display:none;font-style:italic}.so-dropdown-wrapper{position:relative;float:right}.so-dropdown-wrapper .so-dropdown-links-wrapper{position:absolute;padding:6px 0 0}.so-dropdown-wrapper .so-dropdown-links-wrapper ul{margin:0;border:1px solid silver;background:#f9f9f9;border-radius:2px;padding:4px 0;box-shadow:0 2px 2px rgba(0,0,0,.1)}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li{margin:0}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li:first-child{border-top-width:1px}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a{display:block;padding:2px 8px;text-decoration:none;color:#666;font-size:11px;cursor:pointer;outline:0!important;box-shadow:none}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a:hover{background:#f0f0f0;color:#444}.so-dropdown-wrapper .so-dropdown-links-wrapper ul li a .dashicons{font-size:16px;margin:0;float:right;line-height:16px}.so-dropdown-wrapper .so-dropdown-links-wrapper .so-pointer{width:12px;height:6px;position:absolute;z-index:12;background:url(images/dropdown-pointer.png);background-size:12px 6px;top:1px;right:18px}.so-panels-icon{font-family:siteorigin-panels-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.so-panels-icon.so-panels-icon-add-row:before{content:"\e900"}.so-panels-icon.so-panels-icon-add-widget:before{content:"\e901"}.so-panels-icon.so-panels-icon-addons:before{content:"\e902"}.so-panels-icon.so-panels-icon-history:before{content:"\e903"}.so-panels-icon.so-panels-icon-layouts:before{content:"\e904"}.so-panels-icon.so-panels-icon-learn:before{content:"\e905"}.so-panels-icon.so-panels-icon-live-editor:before{content:"\e906"}.so-panels-icon.so-panels-icon-move:before{content:"\e907"}.so-panels-icon.so-panels-icon-settings:before{content:"\e908"}#post-status-info.for-siteorigin-panels{margin-top:-21px!important}
css/images/prebuilt-default.png CHANGED
Binary file
inc/admin-dashboard.php CHANGED
@@ -56,7 +56,7 @@ class SiteOrigin_Panels_Admin_Dashboard {
56
  public function dashboard_overview_widget(){
57
  $feeds = array(
58
  array(
59
- 'url' => 'https://d3teieis3prgof.cloudfront.net/',
60
  'items' => 4,
61
  'show_summary' => 0,
62
  'show_author' => 0,
56
  public function dashboard_overview_widget(){
57
  $feeds = array(
58
  array(
59
+ 'url' => 'https://siteorigin.com/feed/',
60
  'items' => 4,
61
  'show_summary' => 0,
62
  'show_author' => 0,
inc/admin-layouts.php CHANGED
@@ -7,7 +7,7 @@
7
  */
8
  class SiteOrigin_Panels_Admin_Layouts {
9
 
10
- const LAYOUT_URL = 'http://layouts.siteorigin.com/';
11
 
12
  function __construct() {
13
  // Filter all the available external layout directories.
@@ -83,6 +83,7 @@ class SiteOrigin_Panels_Admin_Layouts {
83
 
84
  $layouts = array();
85
  foreach ( $layout_folders as $folder ) {
 
86
  if ( file_exists( $folder ) && is_dir( $folder ) ) {
87
  $files = list_files( $folder, 1 );
88
  if ( empty( $files ) ) {
@@ -391,6 +392,12 @@ class SiteOrigin_Panels_Admin_Layouts {
391
 
392
  } elseif ( current_user_can( 'edit_post', $_REQUEST['lid'] ) ) {
393
  $panels_data = get_post_meta( $_REQUEST['lid'], 'panels_data', true );
 
 
 
 
 
 
394
  }
395
 
396
  if( $raw_panels_data ) {
7
  */
8
  class SiteOrigin_Panels_Admin_Layouts {
9
 
10
+ const LAYOUT_URL = 'https://layouts.siteorigin.com/';
11
 
12
  function __construct() {
13
  // Filter all the available external layout directories.
83
 
84
  $layouts = array();
85
  foreach ( $layout_folders as $folder ) {
86
+ $folder = realpath($folder);
87
  if ( file_exists( $folder ) && is_dir( $folder ) ) {
88
  $files = list_files( $folder, 1 );
89
  if ( empty( $files ) ) {
392
 
393
  } elseif ( current_user_can( 'edit_post', $_REQUEST['lid'] ) ) {
394
  $panels_data = get_post_meta( $_REQUEST['lid'], 'panels_data', true );
395
+
396
+ // Clear id and timestamp for SO widgets to prevent 'newer content version' notification in widget forms.
397
+ foreach ( $panels_data['widgets'] as &$widget ) {
398
+ unset( $widget['_sow_form_id'] );
399
+ unset( $widget['_sow_form_timestamp'] );
400
+ }
401
  }
402
 
403
  if( $raw_panels_data ) {
inc/admin.php CHANGED
@@ -281,6 +281,7 @@ class SiteOrigin_Panels_Admin {
281
  'directory_enabled' => ! empty( $directory_enabled ),
282
  'copy_content' => siteorigin_panels_setting( 'copy-content' ),
283
  'cache' => array(),
 
284
 
285
  // Settings for the contextual menu
286
  'contextual' => array(
@@ -464,6 +465,16 @@ class SiteOrigin_Panels_Admin {
464
  do_action( 'siteorigin_panel_enqueue_admin_scripts' );
465
  do_action( 'sidebar_admin_setup' );
466
  }
 
 
 
 
 
 
 
 
 
 
467
  }
468
  }
469
 
281
  'directory_enabled' => ! empty( $directory_enabled ),
282
  'copy_content' => siteorigin_panels_setting( 'copy-content' ),
283
  'cache' => array(),
284
+ 'instant_open' => siteorigin_panels_setting( 'instant-open-widgets' ),
285
 
286
  // Settings for the contextual menu
287
  'contextual' => array(
465
  do_action( 'siteorigin_panel_enqueue_admin_scripts' );
466
  do_action( 'sidebar_admin_setup' );
467
  }
468
+
469
+ if( defined( 'WPSEO_FILE' ) ) {
470
+ wp_enqueue_script(
471
+ 'so-panels-yoast-compat',
472
+ siteorigin_panels_url( 'js/yoast-compat' . SITEORIGIN_PANELS_JS_SUFFIX . '.js' ),
473
+ array('jquery', 'yoast-seo-metabox' ),
474
+ SITEORIGIN_PANELS_VERSION,
475
+ true
476
+ );
477
+ }
478
  }
479
  }
480
 
inc/renderer-legacy.php CHANGED
@@ -1,149 +1,168 @@
1
- <?php
2
-
3
- class SiteOrigin_Panels_Renderer_Legacy extends SiteOrigin_Panels_Renderer {
4
-
5
- public static function single() {
6
- static $single;
7
- return empty( $single ) ? $single = new self() : $single;
8
- }
9
-
10
- /**
11
- * Generate the CSS for the page layout.
12
- *
13
- * @param $post_id
14
- * @param $panels_data
15
- * @param $layout_data
16
- *
17
- * @return string
18
- */
19
- public function generate_css( $post_id, $panels_data = false, $layout_data = false) {
20
- // Exit if we don't have panels data
21
- if ( empty( $panels_data ) ) {
22
- $panels_data = get_post_meta( $post_id, 'panels_data', true );
23
- if( empty( $panels_data ) ) {
24
- return '';
25
- }
26
- }
27
- if ( empty( $layout_data ) ) {
28
- $layout_data = $this->get_panels_layout_data( $panels_data );
29
- $layout_data = apply_filters( 'siteorigin_panels_layout_data', $layout_data, $post_id );
30
- }
31
-
32
- // Get some of the default settings
33
- $settings = siteorigin_panels_setting();
34
- $panels_tablet_width = $settings['tablet-width'];
35
- $panels_mobile_width = $settings['mobile-width'];
36
- $panels_margin_bottom = $settings['margin-bottom'];
37
- $panels_margin_bottom_last_row = $settings['margin-bottom-last-row'];
38
-
39
- $css = new SiteOrigin_Panels_Css_Builder();
40
-
41
- $ci = 0;
42
- foreach ( $layout_data as $ri => $row ) {
43
- if( empty( $row['cells'] ) ) continue;
44
-
45
- // Let other themes and plugins change the gutter.
46
- $gutter = apply_filters( 'siteorigin_panels_css_row_gutter', $settings['margin-sides'] . 'px', $row, $ri, $panels_data );
47
- preg_match( '/([0-9\.,]+)(.*)/', $gutter, $gutter_parts );
48
-
49
- $cell_count = count( $row['cells'] );
50
-
51
- // Add the cell sizing
52
- foreach( $row['cells'] as $ci => $cell ) {
53
- $weight = apply_filters( 'siteorigin_panels_css_cell_weight', $cell['weight'], $row, $ri, $cell, $ci - 1, $panels_data, $post_id );
54
-
55
- // Add the width and ensure we have correct formatting for CSS.
56
- $css->add_cell_css( $post_id, $ri, $ci, '', array(
57
- 'width' => round( $weight * 100, 4 ) . '%',
58
- ) );
59
- }
60
-
61
- $css->add_cell_css( $post_id, $ri, false, '', array(
62
-
63
- ) );
64
-
65
- if(
66
- $ri != count( $layout_data ) - 1 ||
67
- ! empty( $row[ 'style' ][ 'bottom_margin' ] ) ||
68
- ! empty( $panels_margin_bottom_last_row )
69
- ) {
70
- // Filter the bottom margin for this row with the arguments
71
- $css->add_row_css( $post_id, $ri, '', array(
72
- 'margin-bottom' => apply_filters( 'siteorigin_panels_css_row_margin_bottom', $panels_margin_bottom . 'px', $row, $ri, $panels_data, $post_id )
73
- ) );
74
- }
75
-
76
- $margin_half = ( floatval( $gutter_parts[1] ) / 2 ) . $gutter_parts[2];
77
- $css->add_row_css($post_id, $ri, '', array(
78
- 'margin-left' => '-' . $margin_half,
79
- 'margin-right' => '-' . $margin_half,
80
- ) );
81
- $css->add_cell_css($post_id, $ri, false, '', array(
82
- 'padding-left' => $margin_half,
83
- 'padding-right' => $margin_half,
84
- ) );
85
- }
86
-
87
- // Add the bottom margins
88
- $css->add_widget_css( $post_id, false, false, false, '', array(
89
- 'margin-bottom' => apply_filters( 'siteorigin_panels_css_cell_margin_bottom', $panels_margin_bottom . 'px', false, false, $panels_data, $post_id )
90
- ) );
91
- $css->add_widget_css( $post_id, false, false, false, ':last-child', array(
92
- 'margin-bottom' => apply_filters( 'siteorigin_panels_css_cell_last_margin_bottom', '0px', false, false, $panels_data, $post_id )
93
- ) );
94
-
95
- if ( $settings['responsive'] ) {
96
-
97
- $css->add_cell_css($post_id, false, false, '', array(
98
- 'float' => 'none',
99
- 'width' => 'auto'
100
- ), $panels_mobile_width);
101
-
102
- $css->add_row_css($post_id, false, '', array(
103
- 'margin-left' => 0,
104
- 'margin-right' => 0,
105
- ), $panels_mobile_width);
106
-
107
- $css->add_cell_css( $post_id, false, false, '', array(
108
- 'padding' => 0,
109
- ), $panels_mobile_width );
110
-
111
- // Hide empty cells on mobile
112
- $css->add_row_css( $post_id, false, ' .panel-grid-cell-empty', array(
113
- 'display' => 'none',
114
- ), $panels_mobile_width );
115
-
116
- // Hide empty cells on mobile
117
- $css->add_row_css( $post_id, false, ' .panel-grid-cell-mobile-last', array(
118
- 'margin-bottom' => '0px',
119
- ), $panels_mobile_width );
120
-
121
- foreach ( $layout_data as $ri => $row ) {
122
- $css->add_cell_css( $post_id, $ri, false, '', array(
123
- 'margin-bottom' => $panels_margin_bottom . 'px',
124
- ), $panels_mobile_width );
125
-
126
- $css->add_cell_css( $post_id, $ri, false, ':last-child', array(
127
- 'margin-bottom' => '0px',
128
- ), $panels_mobile_width );
129
- }
130
- }
131
-
132
- foreach ( $panels_data['widgets'] as $widget_id => $widget ) {
133
- if ( ! empty( $widget['panels_info']['style']['link_color'] ) ) {
134
- $css->add_widget_css( $post_id, $widget['panels_info']['grid'], $widget['panels_info']['cell'], $widget['panels_info']['cell_index'], ' a', array(
135
- 'color' => $widget['panels_info']['style']['link_color']
136
- ) );
137
- }
138
- }
139
-
140
- // Let other plugins and components filter the CSS object.
141
- $css = apply_filters( 'siteorigin_panels_css_object', $css, $panels_data, $post_id, $layout_data );
142
-
143
- return $css->get_css();
144
- }
145
-
146
- public function front_css_url(){
147
- return siteorigin_panels_url( 'css/front' . ( siteorigin_panels_setting( 'legacy-layout' ) ? '-legacy' : '' ) . '.css' );
148
- }
149
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SiteOrigin_Panels_Renderer_Legacy extends SiteOrigin_Panels_Renderer {
4
+
5
+ public static function single() {
6
+ static $single;
7
+ return empty( $single ) ? $single = new self() : $single;
8
+ }
9
+
10
+ /**
11
+ * Generate the CSS for the page layout.
12
+ *
13
+ * @param $post_id
14
+ * @param $panels_data
15
+ * @param $layout_data
16
+ *
17
+ * @return string
18
+ */
19
+ public function generate_css( $post_id, $panels_data = false, $layout_data = false) {
20
+ // Exit if we don't have panels data
21
+ if ( empty( $panels_data ) ) {
22
+ $panels_data = get_post_meta( $post_id, 'panels_data', true );
23
+ if( empty( $panels_data ) ) {
24
+ return '';
25
+ }
26
+ }
27
+ if ( empty( $layout_data ) ) {
28
+ $layout_data = $this->get_panels_layout_data( $panels_data );
29
+ $layout_data = apply_filters( 'siteorigin_panels_layout_data', $layout_data, $post_id );
30
+ }
31
+
32
+ // Get some of the default settings
33
+ $settings = siteorigin_panels_setting();
34
+ $panels_tablet_width = $settings['tablet-width'];
35
+ $panels_mobile_width = $settings['mobile-width'];
36
+ $panels_margin_bottom = $settings['margin-bottom'];
37
+ $panels_margin_bottom_last_row = $settings['margin-bottom-last-row'];
38
+
39
+ $css = new SiteOrigin_Panels_Css_Builder();
40
+
41
+ $ci = 0;
42
+ foreach ( $layout_data as $ri => $row ) {
43
+ if( empty( $row['cells'] ) ) continue;
44
+
45
+ // Let other themes and plugins change the gutter.
46
+ $gutter = apply_filters( 'siteorigin_panels_css_row_gutter', $settings['margin-sides'] . 'px', $row, $ri, $panels_data );
47
+ preg_match( '/([0-9\.,]+)(.*)/', $gutter, $gutter_parts );
48
+
49
+ $cell_count = count( $row['cells'] );
50
+
51
+ // Add the cell sizing
52
+ foreach( $row['cells'] as $ci => $cell ) {
53
+ $weight = apply_filters( 'siteorigin_panels_css_cell_weight', $cell['weight'], $row, $ri, $cell, $ci - 1, $panels_data, $post_id );
54
+
55
+ // Add the width and ensure we have correct formatting for CSS.
56
+ $css->add_cell_css( $post_id, $ri, $ci, '', array(
57
+ 'width' => round( $weight * 100, 4 ) . '%',
58
+ ) );
59
+ }
60
+
61
+ if( ! empty( $row['style']['collapse_order'] ) && $row['style']['collapse_order'] == 'right-top') {
62
+ $css->add_cell_css( $post_id, $ri, false, '', array(
63
+ 'float' => 'right'
64
+ ) );
65
+ }
66
+
67
+ if(
68
+ $ri != count( $layout_data ) - 1 ||
69
+ ! empty( $row[ 'style' ][ 'bottom_margin' ] ) ||
70
+ ! empty( $panels_margin_bottom_last_row )
71
+ ) {
72
+ // Filter the bottom margin for this row with the arguments
73
+ $css->add_row_css( $post_id, $ri, '', array(
74
+ 'margin-bottom' => apply_filters( 'siteorigin_panels_css_row_margin_bottom', $panels_margin_bottom . 'px', $row, $ri, $panels_data, $post_id )
75
+ ) );
76
+ }
77
+
78
+ $margin_half = ( floatval( $gutter_parts[1] ) / 2 ) . $gutter_parts[2];
79
+ $css->add_row_css($post_id, $ri, '', array(
80
+ 'margin-left' => '-' . $margin_half,
81
+ 'margin-right' => '-' . $margin_half,
82
+ ) );
83
+ $css->add_cell_css($post_id, $ri, false, '', array(
84
+ 'padding-left' => $margin_half,
85
+ 'padding-right' => $margin_half,
86
+ ) );
87
+ }
88
+
89
+ // Add the bottom margins
90
+ $css->add_widget_css( $post_id, false, false, false, '', array(
91
+ 'margin-bottom' => apply_filters( 'siteorigin_panels_css_cell_margin_bottom', $panels_margin_bottom . 'px', false, false, $panels_data, $post_id )
92
+ ) );
93
+ $css->add_widget_css( $post_id, false, false, false, ':last-child', array(
94
+ 'margin-bottom' => apply_filters( 'siteorigin_panels_css_cell_last_margin_bottom', '0px', false, false, $panels_data, $post_id )
95
+ ) );
96
+
97
+ if ( $settings['responsive'] ) {
98
+
99
+ $css->add_cell_css($post_id, false, false, '', array(
100
+ 'float' => 'none',
101
+ 'width' => 'auto'
102
+ ), $panels_mobile_width);
103
+
104
+ $css->add_row_css($post_id, false, '', array(
105
+ 'margin-left' => 0,
106
+ 'margin-right' => 0,
107
+ ), $panels_mobile_width);
108
+
109
+ $css->add_cell_css( $post_id, false, false, '', array(
110
+ 'padding' => 0,
111
+ ), $panels_mobile_width );
112
+
113
+ // Hide empty cells on mobile
114
+ $css->add_row_css( $post_id, false, ' .panel-grid-cell-empty', array(
115
+ 'display' => 'none',
116
+ ), $panels_mobile_width );
117
+
118
+ // Hide empty cells on mobile
119
+ $css->add_row_css( $post_id, false, ' .panel-grid-cell-mobile-last', array(
120
+ 'margin-bottom' => '0px',
121
+ ), $panels_mobile_width );
122
+
123
+ foreach ( $layout_data as $ri => $row ) {
124
+ $css->add_cell_css( $post_id, $ri, false, '', array(
125
+ 'margin-bottom' => $panels_margin_bottom . 'px',
126
+ ), $panels_mobile_width );
127
+
128
+ $css->add_cell_css( $post_id, $ri, false, ':last-child', array(
129
+ 'margin-bottom' => '0px',
130
+ ), $panels_mobile_width );
131
+ }
132
+ }
133
+
134
+ foreach ( $panels_data['widgets'] as $widget_id => $widget ) {
135
+ if ( ! empty( $widget['panels_info']['style']['link_color'] ) ) {
136
+ $css->add_widget_css( $post_id, $widget['panels_info']['grid'], $widget['panels_info']['cell'], $widget['panels_info']['cell_index'], ' a', array(
137
+ 'color' => $widget['panels_info']['style']['link_color']
138
+ ) );
139
+ }
140
+ }
141
+
142
+ // Let other plugins and components filter the CSS object.
143
+ $css = apply_filters( 'siteorigin_panels_css_object', $css, $panels_data, $post_id, $layout_data );
144
+
145
+ return $css->get_css();
146
+ }
147
+
148
+ /**
149
+ * This overwrites the parent function to get the cells in reverse order when using right_on_top collapse mode.
150
+ *
151
+ * @param $cells The cells to modify
152
+ * @param $row The row the cells belong to
153
+ *
154
+ * @return mixed
155
+ */
156
+ protected function modify_row_cells( $cells, $row ){
157
+ if( ! empty( $row['style']['collapse_order'] ) && $row['style']['collapse_order'] == 'right-top') {
158
+ $cells = array_reverse( $cells, true );
159
+ }
160
+
161
+ return $cells;
162
+
163
+ }
164
+
165
+ public function front_css_url(){
166
+ return siteorigin_panels_url( 'css/front' . ( siteorigin_panels_setting( 'legacy-layout' ) ? '-legacy' : '' ) . '.css' );
167
+ }
168
+ }
inc/renderer.php CHANGED
@@ -50,6 +50,7 @@ class SiteOrigin_Panels_Renderer {
50
  // Exit if we don't have panels data
51
  if ( empty( $panels_data ) ) {
52
  $panels_data = get_post_meta( $post_id, 'panels_data', true );
 
53
  if ( empty( $panels_data ) ) {
54
  return '';
55
  }
@@ -705,6 +706,11 @@ class SiteOrigin_Panels_Renderer {
705
  echo $row_style_wrapper;
706
  }
707
 
 
 
 
 
 
708
  foreach ( $row['cells'] as $ci => & $cell ) {
709
  $this->render_cell( $post_id, $ri, $ci, $cell, $row['cells'], $panels_data );
710
  }
50
  // Exit if we don't have panels data
51
  if ( empty( $panels_data ) ) {
52
  $panels_data = get_post_meta( $post_id, 'panels_data', true );
53
+ $panels_data = apply_filters( 'siteorigin_panels_data', $panels_data, $post_id );
54
  if ( empty( $panels_data ) ) {
55
  return '';
56
  }
706
  echo $row_style_wrapper;
707
  }
708
 
709
+ if( method_exists( $this, 'modify_row_cells' ) ) {
710
+ // This gives other renderers a chance to change the cell order
711
+ $row['cells'] = $cells = $this->modify_row_cells( $row['cells'], $row );
712
+ }
713
+
714
  foreach ( $row['cells'] as $ci => & $cell ) {
715
  $this->render_cell( $post_id, $ri, $ci, $cell, $row['cells'], $panels_data );
716
  }
inc/settings.php CHANGED
@@ -123,10 +123,11 @@ class SiteOrigin_Panels_Settings {
123
  $defaults['sidebars-emulator'] = true;
124
 
125
  // Widgets fields
126
- $defaults['title-html'] = '<h3 class="widget-title">{{title}}</h3>';
127
- $defaults['add-widget-class'] = apply_filters( 'siteorigin_panels_default_add_widget_class', true );
128
- $defaults['bundled-widgets'] = get_option( 'siteorigin_panels_is_using_bundled', false );
129
- $defaults['recommended-widgets'] = true;
 
130
 
131
  // The layout fields
132
  $defaults['responsive'] = true;
@@ -317,6 +318,12 @@ class SiteOrigin_Panels_Settings {
317
  'description' => __( 'Display recommend widgets in Page Builder add widget dialog.', 'siteorigin-panels' ),
318
  );
319
 
 
 
 
 
 
 
320
  // The layout fields
321
 
322
  $fields['layout'] = array(
123
  $defaults['sidebars-emulator'] = true;
124
 
125
  // Widgets fields
126
+ $defaults['title-html'] = '<h3 class="widget-title">{{title}}</h3>';
127
+ $defaults['add-widget-class'] = apply_filters( 'siteorigin_panels_default_add_widget_class', true );
128
+ $defaults['bundled-widgets'] = get_option( 'siteorigin_panels_is_using_bundled', false );
129
+ $defaults['recommended-widgets'] = true;
130
+ $defaults['instant-open-widgets'] = false;
131
 
132
  // The layout fields
133
  $defaults['responsive'] = true;
318
  'description' => __( 'Display recommend widgets in Page Builder add widget dialog.', 'siteorigin-panels' ),
319
  );
320
 
321
+ $fields['widgets']['fields']['instant-open-widgets'] = array(
322
+ 'type' => 'checkbox',
323
+ 'label' => __( 'Instant Open Widgets', 'siteorigin-panels' ),
324
+ 'description' => __( 'Open a widget form as soon as its added to a page.', 'siteorigin-panels' ),
325
+ );
326
+
327
  // The layout fields
328
 
329
  $fields['layout'] = array(
inc/styles.php CHANGED
@@ -217,6 +217,7 @@ class SiteOrigin_Panels_Styles {
217
  '' => __( 'Standard', 'siteorigin-panels' ),
218
  'full' => __( 'Full Width', 'siteorigin-panels' ),
219
  'full-stretched' => __( 'Full Width Stretched', 'siteorigin-panels' ),
 
220
  ),
221
  'priority' => 10,
222
  );
@@ -543,6 +544,26 @@ class SiteOrigin_Panels_Styles {
543
  $standard_css = apply_filters( 'siteorigin_panels_row_style_css', array(), $row['style'] );
544
  $mobile_css = apply_filters( 'siteorigin_panels_row_style_mobile_css', array(), $row['style'] );
545
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
546
  if ( ! empty( $standard_css ) ) {
547
  $css->add_row_css(
548
  $post_id,
@@ -583,6 +604,28 @@ class SiteOrigin_Panels_Styles {
583
  $standard_css = apply_filters( 'siteorigin_panels_cell_style_css', array(), $cell['style'] );
584
  $mobile_css = apply_filters( 'siteorigin_panels_cell_style_mobile_css', array(), $cell['style'] );
585
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
  if ( ! empty( $standard_css ) ) {
587
  $css->add_cell_css(
588
  $post_id,
@@ -625,6 +668,30 @@ class SiteOrigin_Panels_Styles {
625
  $standard_css = apply_filters( 'siteorigin_panels_widget_style_css', array(), $widget['panels_info']['style'] );
626
  $mobile_css = apply_filters( 'siteorigin_panels_widget_style_mobile_css', array(), $widget['panels_info']['style'] );
627
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
628
  if( ! empty( $standard_css ) ) {
629
  $css->add_widget_css(
630
  $post_id,
217
  '' => __( 'Standard', 'siteorigin-panels' ),
218
  'full' => __( 'Full Width', 'siteorigin-panels' ),
219
  'full-stretched' => __( 'Full Width Stretched', 'siteorigin-panels' ),
220
+ 'full-stretched-padded' => __( 'Full Width Stretched Padded', 'siteorigin-panels' ),
221
  ),
222
  'priority' => 10,
223
  );
544
  $standard_css = apply_filters( 'siteorigin_panels_row_style_css', array(), $row['style'] );
545
  $mobile_css = apply_filters( 'siteorigin_panels_row_style_mobile_css', array(), $row['style'] );
546
 
547
+ if( isset($standard_css['margin-bottom']) ){
548
+ $css->add_row_css(
549
+ $post_id,
550
+ $ri,
551
+ '',
552
+ array('margin-bottom' => $standard_css['margin-bottom'])
553
+ );
554
+ unset($standard_css['margin-bottom']);
555
+ }
556
+ if( isset($mobile_css['margin-bottom']) ){
557
+ $css->add_row_css(
558
+ $post_id,
559
+ $ri,
560
+ '',
561
+ array('margin-bottom' => $mobile_css['margin-bottom']),
562
+ $mobile_width
563
+ );
564
+ unset($mobile_css['margin-bottom']);
565
+ }
566
+
567
  if ( ! empty( $standard_css ) ) {
568
  $css->add_row_css(
569
  $post_id,
604
  $standard_css = apply_filters( 'siteorigin_panels_cell_style_css', array(), $cell['style'] );
605
  $mobile_css = apply_filters( 'siteorigin_panels_cell_style_mobile_css', array(), $cell['style'] );
606
 
607
+ if( isset($standard_css['margin-bottom']) ){
608
+ $css->add_cell_css(
609
+ $post_id,
610
+ $ri,
611
+ $ci,
612
+ '',
613
+ array('margin-bottom' => $standard_css['margin-bottom'])
614
+ );
615
+ unset($standard_css['margin-bottom']);
616
+ }
617
+ if( isset($mobile_css['margin-bottom']) ){
618
+ $css->add_cell_css(
619
+ $post_id,
620
+ $ri,
621
+ $ci,
622
+ '',
623
+ array('margin-bottom' => $mobile_css['margin-bottom']),
624
+ $mobile_width
625
+ );
626
+ unset($mobile_css['margin-bottom']);
627
+ }
628
+
629
  if ( ! empty( $standard_css ) ) {
630
  $css->add_cell_css(
631
  $post_id,
668
  $standard_css = apply_filters( 'siteorigin_panels_widget_style_css', array(), $widget['panels_info']['style'] );
669
  $mobile_css = apply_filters( 'siteorigin_panels_widget_style_mobile_css', array(), $widget['panels_info']['style'] );
670
 
671
+ if( isset($standard_css['margin-bottom']) ){
672
+ $css->add_widget_css(
673
+ $post_id,
674
+ $ri,
675
+ $ci,
676
+ $wi,
677
+ '',
678
+ array('margin-bottom' => $standard_css['margin-bottom'])
679
+ );
680
+ unset($standard_css['margin-bottom']);
681
+ }
682
+ if( isset($mobile_css['margin-bottom']) ){
683
+ $css->add_widget_css(
684
+ $post_id,
685
+ $ri,
686
+ $ci,
687
+ $wi,
688
+ '',
689
+ array('margin-bottom' => $mobile_css['margin-bottom']),
690
+ $mobile_width
691
+ );
692
+ unset($mobile_css['margin-bottom']);
693
+ }
694
+
695
  if( ! empty( $standard_css ) ) {
696
  $css->add_widget_css(
697
  $post_id,
inc/widgets/post-loop.php CHANGED
@@ -1,372 +1,402 @@
1
- <?php
2
-
3
- /**
4
- * Display a loop of posts.
5
- *
6
- * Class SiteOrigin_Panels_Widgets_PostLoop
7
- */
8
- class SiteOrigin_Panels_Widgets_PostLoop extends WP_Widget {
9
-
10
- static $rendering_loop;
11
-
12
- /**
13
- * @var SiteOrigin_Panels_Widgets_PostLoop_Helper
14
- */
15
- private $helper;
16
-
17
- function __construct() {
18
- parent::__construct(
19
- 'siteorigin-panels-postloop',
20
- __( 'Post Loop', 'siteorigin-panels' ),
21
- array(
22
- 'description' => __( 'Displays a post loop.', 'siteorigin-panels' ),
23
- ),
24
- array(
25
- 'width' => 800,
26
- )
27
- );
28
- }
29
-
30
- static function is_rendering_loop() {
31
- return self::$rendering_loop;
32
- }
33
-
34
- /**
35
- * Update the widget
36
- *
37
- * @param array $new
38
- * @param array $old
39
- * @return array
40
- */
41
- function update( $new, $old ){
42
- if( class_exists( 'SiteOrigin_Widget' ) && class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
43
- $helper = $this->get_helper_widget( $this->get_loop_templates() );
44
- return $helper->update( $new, $old );
45
- }
46
- else {
47
- $new['more'] = !empty( $new['more'] );
48
- return $new;
49
- }
50
- }
51
-
52
- /**
53
- * @param array $args
54
- * @param array $instance
55
- */
56
- function widget( $args, $instance ) {
57
- if( empty( $instance['template'] ) ) return;
58
- if( is_admin() ) return;
59
-
60
- static $depth = 0;
61
- $depth++;
62
- if( $depth > 1 ) {
63
- // Because of infinite loops, don't render this post loop if its inside another
64
- $depth--;
65
- echo $args['before_widget'].$args['after_widget'];
66
- return;
67
- }
68
-
69
- $query_args = $instance;
70
- //If Widgets Bundle post selector is available and a posts query has been saved using it.
71
- if ( function_exists( 'siteorigin_widget_post_selector_process_query' ) && ! empty( $instance['posts'] ) ) {
72
- $query_args = siteorigin_widget_post_selector_process_query($instance['posts']);
73
- $query_args['additional'] = empty($instance['additional']) ? array() : $instance['additional'];
74
- }
75
- else {
76
- if ( ! empty( $instance['posts'] ) ) {
77
- // This is using the new WB 1.9 posts field
78
- $query_args = wp_parse_args( $instance['posts'], $query_args );
79
- }
80
-
81
- if( ! empty( $query_args['sticky'] ) ) {
82
- switch( $query_args['sticky'] ){
83
- case 'ignore' :
84
- $query_args['ignore_sticky_posts'] = 1;
85
- break;
86
- case 'only' :
87
- $query_args['post__in'] = get_option( 'sticky_posts' );
88
- break;
89
- case 'exclude' :
90
- $query_args['post__not_in'] = get_option( 'sticky_posts' );
91
- break;
92
- }
93
- }
94
- unset($query_args['template']);
95
- unset($query_args['title']);
96
- unset($query_args['sticky']);
97
- if (empty($query_args['additional'])) {
98
- $query_args['additional'] = array();
99
- }
100
- }
101
- $query_args = wp_parse_args($query_args['additional'], $query_args);
102
- unset($query_args['additional']);
103
-
104
- global $wp_rewrite;
105
-
106
- if( $wp_rewrite->using_permalinks() ) {
107
-
108
- if( get_query_var('paged') ) {
109
- // When the widget appears on a sub page.
110
- $query_args['paged'] = get_query_var('paged');
111
- }
112
- elseif( strpos( $_SERVER['REQUEST_URI'], '/page/' ) !== false ) {
113
- // When the widget appears on the home page.
114
- preg_match('/\/page\/([0-9]+)\//', $_SERVER['REQUEST_URI'], $matches);
115
- if(!empty($matches[1])) $query_args['paged'] = intval($matches[1]);
116
- else $query_args['paged'] = 1;
117
- }
118
- else $query_args['paged'] = 1;
119
- }
120
- else {
121
- // Get current page number when we're not using permalinks
122
- $query_args['paged'] = isset($_GET['paged']) ? intval($_GET['paged']) : 1;
123
- }
124
-
125
- // Exclude the current post to prevent possible infinite loop
126
-
127
- global $siteorigin_panels_current_post;
128
-
129
- if( !empty($siteorigin_panels_current_post) ){
130
- if( !empty( $query_args['post__not_in'] ) ){
131
- if( !is_array( $query_args['post__not_in'] ) ){
132
- $query_args['post__not_in'] = explode( ',', $query_args['post__not_in'] );
133
- $query_args['post__not_in'] = array_map( 'intval', $query_args['post__not_in'] );
134
- }
135
- $query_args['post__not_in'][] = $siteorigin_panels_current_post;
136
- }
137
- else {
138
- $query_args['post__not_in'] = array( $siteorigin_panels_current_post );
139
- }
140
- }
141
-
142
- if( !empty($query_args['post__in']) && !is_array($query_args['post__in']) ) {
143
- $query_args['post__in'] = explode(',', $query_args['post__in']);
144
- $query_args['post__in'] = array_map('intval', $query_args['post__in']);
145
- }
146
-
147
- // Create the query
148
- query_posts( apply_filters( 'siteorigin_panels_postloop_query_args', $query_args ) );
149
- echo $args['before_widget'];
150
-
151
- // Filter the title
152
- $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
153
- if ( !empty( $instance['title'] ) ) {
154
- echo $args['before_title'] . $instance['title'] . $args['after_title'];
155
- }
156
-
157
- global $more; $old_more = $more; $more = empty($instance['more']);
158
- self::$rendering_loop = true;
159
- if(strpos('/'.$instance['template'], '/content') !== false) {
160
- while( have_posts() ) {
161
- the_post();
162
- locate_template($instance['template'], true, false);
163
- }
164
- }
165
- else {
166
- locate_template($instance['template'], true, false);
167
- }
168
- self::$rendering_loop = false;
169
-
170
- echo $args['after_widget'];
171
-
172
- // Reset everything
173
- wp_reset_query();
174
- $depth--;
175
- }
176
-
177
- /**
178
- * Display the form for the post loop.
179
- *
180
- * @param array $instance
181
- * @return string|void
182
- */
183
- function form( $instance ) {
184
- $templates = $this->get_loop_templates();
185
- if( empty($templates) ) {
186
- ?><p><?php _e("Your theme doesn't have any post loops.", 'siteorigin-panels') ?></p><?php
187
- return;
188
- }
189
-
190
- // If the Widgets Bundle is installed and the post selector is available, use that.
191
- // Otherwise revert back to our own form fields.
192
- if( class_exists( 'SiteOrigin_Widget' ) && class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
193
- $helper = $this->get_helper_widget( $templates );
194
- $helper->form( $instance );
195
- }
196
- else {
197
- $instance = wp_parse_args( $instance, array(
198
- 'title' => '',
199
- 'template' => 'loop.php',
200
-
201
- // Query args
202
- 'post_type' => 'post',
203
- 'posts_per_page' => '',
204
-
205
- 'order' => 'DESC',
206
- 'orderby' => 'date',
207
-
208
- 'sticky' => '',
209
-
210
- 'additional' => '',
211
- 'more' => false,
212
- ) );
213
-
214
- ?>
215
- <p>
216
- <label for="<?php echo $this->get_field_id( 'title' ) ?>"><?php _e( 'Title', 'siteorigin-panels' ) ?></label>
217
- <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'title' ) ?>" id="<?php echo $this->get_field_id( 'title' ) ?>" value="<?php echo esc_attr( $instance['title'] ) ?>">
218
- </p>
219
- <p>
220
- <label for="<?php echo $this->get_field_id('template') ?>"><?php _e('Template', 'siteorigin-panels') ?></label>
221
- <select id="<?php echo $this->get_field_id( 'template' ) ?>" name="<?php echo $this->get_field_name( 'template' ) ?>">
222
- <?php foreach($templates as $template) : ?>
223
- <option value="<?php echo esc_attr($template) ?>" <?php selected($instance['template'], $template) ?>>
224
- <?php
225
- $headers = get_file_data( locate_template($template), array(
226
- 'loop_name' => 'Loop Name',
227
- ) );
228
- echo esc_html(!empty($headers['loop_name']) ? $headers['loop_name'] : $template);
229
- ?>
230
- </option>
231
- <?php endforeach; ?>
232
- </select>
233
- </p>
234
-
235
- <p>
236
- <label for="<?php echo $this->get_field_id('more') ?>"><?php _e('More Link', 'siteorigin-panels') ?></label>
237
- <input type="checkbox" class="widefat" id="<?php echo $this->get_field_id( 'more' ) ?>" name="<?php echo $this->get_field_name( 'more' ) ?>" <?php checked( $instance['more'] ) ?> /><br/>
238
- <small><?php _e('If the template supports it, cut posts and display the more link.', 'siteorigin-panels') ?></small>
239
- </p>
240
- <?php
241
-
242
- if ( ! empty( $instance['posts'] ) ) {
243
- $instance = wp_parse_args( $instance['posts'] , $instance );
244
- unset( $instance['posts'] );
245
- //unset post__in and taxonomies?
246
- }
247
- // Get all the loop template files
248
- $post_types = get_post_types(array('public' => true));
249
- $post_types = array_values($post_types);
250
- $post_types = array_diff($post_types, array('attachment', 'revision', 'nav_menu_item'));
251
- ?>
252
- <p>
253
- <label for="<?php echo $this->get_field_id('post_type') ?>"><?php _e('Post Type', 'siteorigin-panels') ?></label>
254
- <select id="<?php echo $this->get_field_id( 'post_type' ) ?>" name="<?php echo $this->get_field_name( 'post_type' ) ?>" value="<?php echo esc_attr($instance['post_type']) ?>">
255
- <?php foreach($post_types as $type) : ?>
256
- <option value="<?php echo esc_attr($type) ?>" <?php selected($instance['post_type'], $type) ?>><?php echo esc_html($type) ?></option>
257
- <?php endforeach; ?>
258
- </select>
259
- </p>
260
-
261
- <p>
262
- <label for="<?php echo $this->get_field_id('posts_per_page') ?>"><?php _e('Posts Per Page', 'siteorigin-panels') ?></label>
263
- <input type="text" class="small-text" id="<?php echo $this->get_field_id( 'posts_per_page' ) ?>" name="<?php echo $this->get_field_name( 'posts_per_page' ) ?>" value="<?php echo esc_attr($instance['posts_per_page']) ?>" />
264
- </p>
265
-
266
- <p>
267
- <label <?php echo $this->get_field_id('orderby') ?>><?php _e('Order By', 'siteorigin-panels') ?></label>
268
- <select id="<?php echo $this->get_field_id( 'orderby' ) ?>" name="<?php echo $this->get_field_name( 'orderby' ) ?>" value="<?php echo esc_attr($instance['orderby']) ?>">
269
- <option value="none" <?php selected($instance['orderby'], 'none') ?>><?php esc_html_e('None', 'siteorigin-panels') ?></option>
270
- <option value="ID" <?php selected($instance['orderby'], 'ID') ?>><?php esc_html_e('Post ID', 'siteorigin-panels') ?></option>
271
- <option value="author" <?php selected($instance['orderby'], 'author') ?>><?php esc_html_e('Author', 'siteorigin-panels') ?></option>
272
- <option value="name" <?php selected($instance['orderby'], 'name') ?>><?php esc_html_e('Name', 'siteorigin-panels') ?></option>
273
- <option value="name" <?php selected($instance['orderby'], 'name') ?>><?php esc_html_e('Name', 'siteorigin-panels') ?></option>
274
- <option value="date" <?php selected($instance['orderby'], 'date') ?>><?php esc_html_e('Date', 'siteorigin-panels') ?></option>
275
- <option value="modified" <?php selected($instance['orderby'], 'modified') ?>><?php esc_html_e('Modified', 'siteorigin-panels') ?></option>
276
- <option value="parent" <?php selected($instance['orderby'], 'parent') ?>><?php esc_html_e('Parent', 'siteorigin-panels') ?></option>
277
- <option value="rand" <?php selected($instance['orderby'], 'rand') ?>><?php esc_html_e('Random', 'siteorigin-panels') ?></option>
278
- <option value="comment_count" <?php selected($instance['orderby'], 'comment_count') ?>><?php esc_html_e('Comment Count', 'siteorigin-panels') ?></option>
279
- <option value="menu_order" <?php selected($instance['orderby'], 'menu_order') ?>><?php esc_html_e('Menu Order', 'siteorigin-panels') ?></option>
280
- <option value="post__in" <?php selected($instance['orderby'], 'post__in') ?>><?php esc_html_e('Post In Order', 'siteorigin-panels') ?></option>
281
- </select>
282
- </p>
283
-
284
- <p>
285
- <label for="<?php echo $this->get_field_id('order') ?>"><?php _e('Order', 'siteorigin-panels') ?></label>
286
- <select id="<?php echo $this->get_field_id( 'order' ) ?>" name="<?php echo $this->get_field_name( 'order' ) ?>" value="<?php echo esc_attr($instance['order']) ?>">
287
- <option value="DESC" <?php selected($instance['order'], 'DESC') ?>><?php esc_html_e('Descending', 'siteorigin-panels') ?></option>
288
- <option value="ASC" <?php selected($instance['order'], 'ASC') ?>><?php esc_html_e('Ascending', 'siteorigin-panels') ?></option>
289
- </select>
290
- </p>
291
-
292
- <p>
293
- <label for="<?php echo $this->get_field_id('sticky') ?>"><?php _e('Sticky Posts', 'siteorigin-panels') ?></label>
294
- <select id="<?php echo $this->get_field_id( 'sticky' ) ?>" name="<?php echo $this->get_field_name( 'sticky' ) ?>" value="<?php echo esc_attr($instance['sticky']) ?>">
295
- <option value="" <?php selected($instance['sticky'], '') ?>><?php esc_html_e('Default', 'siteorigin-panels') ?></option>
296
- <option value="ignore" <?php selected($instance['sticky'], 'ignore') ?>><?php esc_html_e('Ignore Sticky', 'siteorigin-panels') ?></option>
297
- <option value="exclude" <?php selected($instance['sticky'], 'exclude') ?>><?php esc_html_e('Exclude Sticky', 'siteorigin-panels') ?></option>
298
- <option value="only" <?php selected($instance['sticky'], 'only') ?>><?php esc_html_e('Only Sticky', 'siteorigin-panels') ?></option>
299
- </select>
300
- </p>
301
-
302
- <p>
303
- <label for="<?php echo $this->get_field_id('additional') ?>"><?php _e('Additional ', 'siteorigin-panels') ?></label>
304
- <input type="text" class="widefat" id="<?php echo $this->get_field_id( 'additional' ) ?>" name="<?php echo $this->get_field_name( 'additional' ) ?>" value="<?php echo esc_attr($instance['additional']) ?>" />
305
- <small>
306
- <?php
307
- echo preg_replace(
308
- '/1\{ *(.*?) *\}/',
309
- '<a href="http://codex.wordpress.org/Function_Reference/query_posts">$1</a>',
310
- __('Additional query arguments. See 1{query_posts}.', 'siteorigin-panels')
311
- )
312
- ?>
313
- </small>
314
- </p>
315
- <?php
316
- }
317
- }
318
-
319
- /**
320
- * Get all the existing files
321
- *
322
- * @return array
323
- */
324
- function get_loop_templates(){
325
- $templates = array();
326
-
327
- $template_files = array(
328
- 'loop*.php',
329
- '*/loop*.php',
330
- 'content*.php',
331
- '*/content*.php',
332
- );
333
-
334
- $template_dirs = array( get_template_directory(), get_stylesheet_directory() );
335
- $template_dirs = array_unique( $template_dirs );
336
- foreach( $template_dirs as $dir ){
337
- foreach( $template_files as $template_file ) {
338
- foreach( (array) glob($dir.'/'.$template_file) as $file ) {
339
- if( file_exists( $file ) ) $templates[] = str_replace($dir.'/', '', $file);
340
- }
341
- }
342
- }
343
-
344
- $templates = array_unique( $templates );
345
- $templates = apply_filters('siteorigin_panels_postloop_templates', $templates);
346
- sort( $templates );
347
-
348
- return $templates;
349
- }
350
-
351
-
352
- /**
353
- * Get the helper widget based on the Widgets Bundle's classes.
354
- *
355
- * @param $templates array Blog loop templates.
356
- *
357
- * @return mixed
358
- */
359
- private function get_helper_widget( $templates ) {
360
- if ( empty( $this->helper ) &&
361
- class_exists( 'SiteOrigin_Widget' ) &&
362
- class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
363
- $this->helper = new SiteOrigin_Panels_Widgets_PostLoop_Helper( $templates );
364
- }
365
- // These ensure the form fields name attributes are correct.
366
- $this->helper->id_base = $this->id_base;
367
- $this->helper->id = $this->id;
368
- $this->helper->number = $this->number;
369
-
370
- return $this->helper;
371
- }
372
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Display a loop of posts.
5
+ *
6
+ * Class SiteOrigin_Panels_Widgets_PostLoop
7
+ */
8
+ class SiteOrigin_Panels_Widgets_PostLoop extends WP_Widget {
9
+
10
+ static $rendering_loop;
11
+
12
+ static $current_loop_template;
13
+ static $current_loop_instance;
14
+
15
+ /**
16
+ * @var SiteOrigin_Panels_Widgets_PostLoop_Helper
17
+ */
18
+ private $helper;
19
+
20
+ function __construct() {
21
+ parent::__construct(
22
+ 'siteorigin-panels-postloop',
23
+ __( 'Post Loop', 'siteorigin-panels' ),
24
+ array(
25
+ 'description' => __( 'Displays a post loop.', 'siteorigin-panels' ),
26
+ ),
27
+ array(
28
+ 'width' => 800,
29
+ )
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Are we currently rendering a post loop
35
+ *
36
+ * @return bool
37
+ */
38
+ static function is_rendering_loop() {
39
+ return self::$rendering_loop;
40
+ }
41
+
42
+ /**
43
+ * Which post loop is currently being rendered
44
+ *
45
+ * @return array
46
+ */
47
+ static function get_current_loop_template() {
48
+ return self::$current_loop_template;
49
+ }
50
+
51
+ /**
52
+ * Which post loop is currently being rendered
53
+ *
54
+ * @return array
55
+ */
56
+ static function get_current_loop_instance() {
57
+ return self::$current_loop_instance;
58
+ }
59
+
60
+ /**
61
+ * Update the widget
62
+ *
63
+ * @param array $new
64
+ * @param array $old
65
+ * @return array
66
+ */
67
+ function update( $new, $old ){
68
+ if( class_exists( 'SiteOrigin_Widget' ) && class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
69
+ $helper = $this->get_helper_widget( $this->get_loop_templates() );
70
+ return $helper->update( $new, $old );
71
+ }
72
+ else {
73
+ $new['more'] = !empty( $new['more'] );
74
+ return $new;
75
+ }
76
+ }
77
+
78
+ /**
79
+ * @param array $args
80
+ * @param array $instance
81
+ */
82
+ function widget( $args, $instance ) {
83
+ if( empty( $instance['template'] ) ) return;
84
+ if( is_admin() ) return;
85
+
86
+ static $depth = 0;
87
+ $depth++;
88
+ if( $depth > 1 ) {
89
+ // Because of infinite loops, don't render this post loop if its inside another
90
+ $depth--;
91
+ echo $args['before_widget'].$args['after_widget'];
92
+ return;
93
+ }
94
+
95
+ $query_args = $instance;
96
+ //If Widgets Bundle post selector is available and a posts query has been saved using it.
97
+ if ( function_exists( 'siteorigin_widget_post_selector_process_query' ) && ! empty( $instance['posts'] ) ) {
98
+ $query_args = siteorigin_widget_post_selector_process_query($instance['posts']);
99
+ $query_args['additional'] = empty($instance['additional']) ? array() : $instance['additional'];
100
+ }
101
+ else {
102
+ if ( ! empty( $instance['posts'] ) ) {
103
+ // This is using the new WB 1.9 posts field
104
+ $query_args = wp_parse_args( $instance['posts'], $query_args );
105
+ }
106
+
107
+ if( ! empty( $query_args['sticky'] ) ) {
108
+ switch( $query_args['sticky'] ){
109
+ case 'ignore' :
110
+ $query_args['ignore_sticky_posts'] = 1;
111
+ break;
112
+ case 'only' :
113
+ $query_args['post__in'] = get_option( 'sticky_posts' );
114
+ break;
115
+ case 'exclude' :
116
+ $query_args['post__not_in'] = get_option( 'sticky_posts' );
117
+ break;
118
+ }
119
+ }
120
+ unset($query_args['template']);
121
+ unset($query_args['title']);
122
+ unset($query_args['sticky']);
123
+ if (empty($query_args['additional'])) {
124
+ $query_args['additional'] = array();
125
+ }
126
+ }
127
+ $query_args = wp_parse_args($query_args['additional'], $query_args);
128
+ unset($query_args['additional']);
129
+
130
+ global $wp_rewrite;
131
+
132
+ if( $wp_rewrite->using_permalinks() ) {
133
+
134
+ if( get_query_var('paged') ) {
135
+ // When the widget appears on a sub page.
136
+ $query_args['paged'] = get_query_var('paged');
137
+ }
138
+ elseif( strpos( $_SERVER['REQUEST_URI'], '/page/' ) !== false ) {
139
+ // When the widget appears on the home page.
140
+ preg_match('/\/page\/([0-9]+)\//', $_SERVER['REQUEST_URI'], $matches);
141
+ if(!empty($matches[1])) $query_args['paged'] = intval($matches[1]);
142
+ else $query_args['paged'] = 1;
143
+ }
144
+ else $query_args['paged'] = 1;
145
+ }
146
+ else {
147
+ // Get current page number when we're not using permalinks
148
+ $query_args['paged'] = isset($_GET['paged']) ? intval($_GET['paged']) : 1;
149
+ }
150
+
151
+ // Exclude the current post to prevent possible infinite loop
152
+
153
+ global $siteorigin_panels_current_post;
154
+
155
+ if( !empty($siteorigin_panels_current_post) ){
156
+ if( !empty( $query_args['post__not_in'] ) ){
157
+ if( !is_array( $query_args['post__not_in'] ) ){
158
+ $query_args['post__not_in'] = explode( ',', $query_args['post__not_in'] );
159
+ $query_args['post__not_in'] = array_map( 'intval', $query_args['post__not_in'] );
160
+ }
161
+ $query_args['post__not_in'][] = $siteorigin_panels_current_post;
162
+ }
163
+ else {
164
+ $query_args['post__not_in'] = array( $siteorigin_panels_current_post );
165
+ }
166
+ }
167
+
168
+ if( !empty($query_args['post__in']) && !is_array($query_args['post__in']) ) {
169
+ $query_args['post__in'] = explode(',', $query_args['post__in']);
170
+ $query_args['post__in'] = array_map('intval', $query_args['post__in']);
171
+ }
172
+
173
+ // Create the query
174
+ query_posts( apply_filters( 'siteorigin_panels_postloop_query_args', $query_args ) );
175
+ echo $args['before_widget'];
176
+
177
+ // Filter the title
178
+ $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
179
+ if ( !empty( $instance['title'] ) ) {
180
+ echo $args['before_title'] . $instance['title'] . $args['after_title'];
181
+ }
182
+
183
+ global $more; $old_more = $more; $more = empty($instance['more']);
184
+ self::$rendering_loop = true;
185
+ self::$current_loop_instance = $instance;
186
+ self::$current_loop_template = $instance['template'];
187
+ if(strpos('/'.$instance['template'], '/content') !== false) {
188
+ while( have_posts() ) {
189
+ the_post();
190
+ locate_template($instance['template'], true, false);
191
+ }
192
+ }
193
+ else {
194
+ locate_template($instance['template'], true, false);
195
+ }
196
+ self::$rendering_loop = false;
197
+ self::$current_loop_instance = null;
198
+ self::$current_loop_template = null;
199
+
200
+ echo $args['after_widget'];
201
+
202
+ // Reset everything
203
+ wp_reset_query();
204
+ $depth--;
205
+ }
206
+
207
+ /**
208
+ * Display the form for the post loop.
209
+ *
210
+ * @param array $instance
211
+ * @return string|void
212
+ */
213
+ function form( $instance ) {
214
+ $templates = $this->get_loop_templates();
215
+ if( empty($templates) ) {
216
+ ?><p><?php _e("Your theme doesn't have any post loops.", 'siteorigin-panels') ?></p><?php
217
+ return;
218
+ }
219
+
220
+ // If the Widgets Bundle is installed and the post selector is available, use that.
221
+ // Otherwise revert back to our own form fields.
222
+ if( class_exists( 'SiteOrigin_Widget' ) && class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
223
+ $helper = $this->get_helper_widget( $templates );
224
+ $helper->form( $instance );
225
+ }
226
+ else {
227
+ $instance = wp_parse_args( $instance, array(
228
+ 'title' => '',
229
+ 'template' => 'loop.php',
230
+
231
+ // Query args
232
+ 'post_type' => 'post',
233
+ 'posts_per_page' => '',
234
+
235
+ 'order' => 'DESC',
236
+ 'orderby' => 'date',
237
+
238
+ 'sticky' => '',
239
+
240
+ 'additional' => '',
241
+ 'more' => false,
242
+ ) );
243
+
244
+ ?>
245
+ <p>
246
+ <label for="<?php echo $this->get_field_id( 'title' ) ?>"><?php _e( 'Title', 'siteorigin-panels' ) ?></label>
247
+ <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'title' ) ?>" id="<?php echo $this->get_field_id( 'title' ) ?>" value="<?php echo esc_attr( $instance['title'] ) ?>">
248
+ </p>
249
+ <p>
250
+ <label for="<?php echo $this->get_field_id('template') ?>"><?php _e('Template', 'siteorigin-panels') ?></label>
251
+ <select id="<?php echo $this->get_field_id( 'template' ) ?>" name="<?php echo $this->get_field_name( 'template' ) ?>">
252
+ <?php foreach($templates as $template) : ?>
253
+ <option value="<?php echo esc_attr($template) ?>" <?php selected($instance['template'], $template) ?>>
254
+ <?php
255
+ $headers = get_file_data( locate_template($template), array(
256
+ 'loop_name' => 'Loop Name',
257
+ ) );
258
+ echo esc_html(!empty($headers['loop_name']) ? $headers['loop_name'] : $template);
259
+ ?>
260
+ </option>
261
+ <?php endforeach; ?>
262
+ </select>
263
+ </p>
264
+
265
+ <p>
266
+ <label for="<?php echo $this->get_field_id('more') ?>"><?php _e('More Link', 'siteorigin-panels') ?></label>
267
+ <input type="checkbox" class="widefat" id="<?php echo $this->get_field_id( 'more' ) ?>" name="<?php echo $this->get_field_name( 'more' ) ?>" <?php checked( $instance['more'] ) ?> /><br/>
268
+ <small><?php _e('If the template supports it, cut posts and display the more link.', 'siteorigin-panels') ?></small>
269
+ </p>
270
+ <?php
271
+
272
+ if ( ! empty( $instance['posts'] ) ) {
273
+ $instance = wp_parse_args( $instance['posts'] , $instance );
274
+ unset( $instance['posts'] );
275
+ //unset post__in and taxonomies?
276
+ }
277
+ // Get all the loop template files
278
+ $post_types = get_post_types(array('public' => true));
279
+ $post_types = array_values($post_types);
280
+ $post_types = array_diff($post_types, array('attachment', 'revision', 'nav_menu_item'));
281
+ ?>
282
+ <p>
283
+ <label for="<?php echo $this->get_field_id('post_type') ?>"><?php _e('Post Type', 'siteorigin-panels') ?></label>
284
+ <select id="<?php echo $this->get_field_id( 'post_type' ) ?>" name="<?php echo $this->get_field_name( 'post_type' ) ?>" value="<?php echo esc_attr($instance['post_type']) ?>">
285
+ <?php foreach($post_types as $type) : ?>
286
+ <option value="<?php echo esc_attr($type) ?>" <?php selected($instance['post_type'], $type) ?>><?php echo esc_html($type) ?></option>
287
+ <?php endforeach; ?>
288
+ </select>
289
+ </p>
290
+
291
+ <p>
292
+ <label for="<?php echo $this->get_field_id('posts_per_page') ?>"><?php _e('Posts Per Page', 'siteorigin-panels') ?></label>
293
+ <input type="text" class="small-text" id="<?php echo $this->get_field_id( 'posts_per_page' ) ?>" name="<?php echo $this->get_field_name( 'posts_per_page' ) ?>" value="<?php echo esc_attr($instance['posts_per_page']) ?>" />
294
+ </p>
295
+
296
+ <p>
297
+ <label <?php echo $this->get_field_id('orderby') ?>><?php _e('Order By', 'siteorigin-panels') ?></label>
298
+ <select id="<?php echo $this->get_field_id( 'orderby' ) ?>" name="<?php echo $this->get_field_name( 'orderby' ) ?>" value="<?php echo esc_attr($instance['orderby']) ?>">
299
+ <option value="none" <?php selected($instance['orderby'], 'none') ?>><?php esc_html_e('None', 'siteorigin-panels') ?></option>
300
+ <option value="ID" <?php selected($instance['orderby'], 'ID') ?>><?php esc_html_e('Post ID', 'siteorigin-panels') ?></option>
301
+ <option value="author" <?php selected($instance['orderby'], 'author') ?>><?php esc_html_e('Author', 'siteorigin-panels') ?></option>
302
+ <option value="name" <?php selected($instance['orderby'], 'name') ?>><?php esc_html_e('Name', 'siteorigin-panels') ?></option>
303
+ <option value="name" <?php selected($instance['orderby'], 'name') ?>><?php esc_html_e('Name', 'siteorigin-panels') ?></option>
304
+ <option value="date" <?php selected($instance['orderby'], 'date') ?>><?php esc_html_e('Date', 'siteorigin-panels') ?></option>
305
+ <option value="modified" <?php selected($instance['orderby'], 'modified') ?>><?php esc_html_e('Modified', 'siteorigin-panels') ?></option>
306
+ <option value="parent" <?php selected($instance['orderby'], 'parent') ?>><?php esc_html_e('Parent', 'siteorigin-panels') ?></option>
307
+ <option value="rand" <?php selected($instance['orderby'], 'rand') ?>><?php esc_html_e('Random', 'siteorigin-panels') ?></option>
308
+ <option value="comment_count" <?php selected($instance['orderby'], 'comment_count') ?>><?php esc_html_e('Comment Count', 'siteorigin-panels') ?></option>
309
+ <option value="menu_order" <?php selected($instance['orderby'], 'menu_order') ?>><?php esc_html_e('Menu Order', 'siteorigin-panels') ?></option>
310
+ <option value="post__in" <?php selected($instance['orderby'], 'post__in') ?>><?php esc_html_e('Post In Order', 'siteorigin-panels') ?></option>
311
+ </select>
312
+ </p>
313
+
314
+ <p>
315
+ <label for="<?php echo $this->get_field_id('order') ?>"><?php _e('Order', 'siteorigin-panels') ?></label>
316
+ <select id="<?php echo $this->get_field_id( 'order' ) ?>" name="<?php echo $this->get_field_name( 'order' ) ?>" value="<?php echo esc_attr($instance['order']) ?>">
317
+ <option value="DESC" <?php selected($instance['order'], 'DESC') ?>><?php esc_html_e('Descending', 'siteorigin-panels') ?></option>
318
+ <option value="ASC" <?php selected($instance['order'], 'ASC') ?>><?php esc_html_e('Ascending', 'siteorigin-panels') ?></option>
319
+ </select>
320
+ </p>
321
+
322
+ <p>
323
+ <label for="<?php echo $this->get_field_id('sticky') ?>"><?php _e('Sticky Posts', 'siteorigin-panels') ?></label>
324
+ <select id="<?php echo $this->get_field_id( 'sticky' ) ?>" name="<?php echo $this->get_field_name( 'sticky' ) ?>" value="<?php echo esc_attr($instance['sticky']) ?>">
325
+ <option value="" <?php selected($instance['sticky'], '') ?>><?php esc_html_e('Default', 'siteorigin-panels') ?></option>
326
+ <option value="ignore" <?php selected($instance['sticky'], 'ignore') ?>><?php esc_html_e('Ignore Sticky', 'siteorigin-panels') ?></option>
327
+ <option value="exclude" <?php selected($instance['sticky'], 'exclude') ?>><?php esc_html_e('Exclude Sticky', 'siteorigin-panels') ?></option>
328
+ <option value="only" <?php selected($instance['sticky'], 'only') ?>><?php esc_html_e('Only Sticky', 'siteorigin-panels') ?></option>
329
+ </select>
330
+ </p>
331
+
332
+ <p>
333
+ <label for="<?php echo $this->get_field_id('additional') ?>"><?php _e('Additional ', 'siteorigin-panels') ?></label>
334
+ <input type="text" class="widefat" id="<?php echo $this->get_field_id( 'additional' ) ?>" name="<?php echo $this->get_field_name( 'additional' ) ?>" value="<?php echo esc_attr($instance['additional']) ?>" />
335
+ <small>
336
+ <?php
337
+ echo preg_replace(
338
+ '/1\{ *(.*?) *\}/',
339
+ '<a href="http://codex.wordpress.org/Function_Reference/query_posts">$1</a>',
340
+ __('Additional query arguments. See 1{query_posts}.', 'siteorigin-panels')
341
+ )
342
+ ?>
343
+ </small>
344
+ </p>
345
+ <?php
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Get all the existing files
351
+ *
352
+ * @return array
353
+ */
354
+ function get_loop_templates(){
355
+ $templates = array();
356
+
357
+ $template_files = array(
358
+ 'loop*.php',
359
+ '*/loop*.php',
360
+ 'content*.php',
361
+ '*/content*.php',
362
+ );
363
+
364
+ $template_dirs = array( get_template_directory(), get_stylesheet_directory() );
365
+ $template_dirs = array_unique( $template_dirs );
366
+ foreach( $template_dirs as $dir ){
367
+ foreach( $template_files as $template_file ) {
368
+ foreach( (array) glob($dir.'/'.$template_file) as $file ) {
369
+ if( file_exists( $file ) ) $templates[] = str_replace($dir.'/', '', $file);
370
+ }
371
+ }
372
+ }
373
+
374
+ $templates = array_unique( $templates );
375
+ $templates = apply_filters('siteorigin_panels_postloop_templates', $templates);
376
+ sort( $templates );
377
+
378
+ return $templates;
379
+ }
380
+
381
+
382
+ /**
383
+ * Get the helper widget based on the Widgets Bundle's classes.
384
+ *
385
+ * @param $templates array Blog loop templates.
386
+ *
387
+ * @return mixed
388
+ */
389
+ private function get_helper_widget( $templates ) {
390
+ if ( empty( $this->helper ) &&
391
+ class_exists( 'SiteOrigin_Widget' ) &&
392
+ class_exists( 'SiteOrigin_Widget_Field_Posts' ) ) {
393
+ $this->helper = new SiteOrigin_Panels_Widgets_PostLoop_Helper( $templates );
394
+ }
395
+ // These ensure the form fields name attributes are correct.
396
+ $this->helper->id_base = $this->id_base;
397
+ $this->helper->id = $this->id;
398
+ $this->helper->number = $this->number;
399
+
400
+ return $this->helper;
401
+ }
402
+ }
js/siteorigin-panels-269.min.js DELETED
@@ -1,4 +0,0 @@
1
- !function e(t,i,s){function l(n,a){if(!i[n]){if(!t[n]){var r="function"==typeof require&&require;if(!a&&r)return r(n,!0);if(o)return o(n,!0);var d=new Error("Cannot find module '"+n+"'");throw d.code="MODULE_NOT_FOUND",d}var c=i[n]={exports:{}};t[n][0].call(c.exports,function(e){var i=t[n][1][e];return l(i||e)},c,c.exports,e,t,i,s)}return i[n].exports}for(var o="function"==typeof require&&require,n=0;n<s.length;n++)l(s[n]);return l}({1:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.cell,initialize:function(){},totalWeight:function(){var e=0;return this.each(function(t){e+=t.get("weight")}),e}})},{}],2:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.historyEntry,builder:null,maxSize:12,initialize:function(){this.on("add",this.onAddEntry,this)},addEntry:function(e,t){_.isEmpty(t)&&(t=this.builder.getPanelsData());var i=new s.model.historyEntry({text:e,data:JSON.stringify(t),time:parseInt((new Date).getTime()/1e3),collection:this});this.add(i)},onAddEntry:function(e){if(this.models.length>1){var t=this.at(this.models.length-2);(e.get("text")===t.get("text")&&e.get("time")-t.get("time")<15||e.get("data")===t.get("data"))&&(this.remove(e),t.set("count",t.get("count")+1))}for(;this.models.length>this.maxSize;)this.shift()}})},{}],3:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.row,empty:function(){for(var e;;){if(!(e=this.collection.first()))break;e.destroy()}}})},{}],4:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.widget,initialize:function(){}})},{}],5:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({dialogClass:"so-panels-dialog-add-builder",render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-builder").html(),{})),this.$(".so-content .siteorigin-panels-builder").append(this.builder.$el)},initializeDialog:function(){var e=this;this.once("open_dialog_complete",function(){e.builder.initSortable()}),this.on("open_dialog_complete",function(){e.builder.trigger("builder_resize")})}})},{}],6:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({historyEntryTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-history-entry").html())),entries:{},currentEntry:null,revertEntry:null,selectedEntry:null,previewScrollTop:null,dialogClass:"so-panels-dialog-history",dialogIcon:"history",events:{"click .so-close":"closeDialog","click .so-restore":"restoreSelectedEntry"},initializeDialog:function(){this.entries=new s.collection.historyEntries,this.on("open_dialog",this.setCurrentEntry,this),this.on("open_dialog",this.renderHistoryEntries,this)},render:function(){var e=this;this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-history").html(),{})),this.$("iframe.siteorigin-panels-history-iframe").load(function(){var t=l(this);t.show(),t.contents().scrollTop(e.previewScrollTop)})},setRevertEntry:function(e){this.revertEntry=new s.model.historyEntry({data:JSON.stringify(e.getPanelsData()),time:parseInt((new Date).getTime()/1e3)})},setCurrentEntry:function(){this.currentEntry=new s.model.historyEntry({data:JSON.stringify(this.builder.model.getPanelsData()),time:parseInt((new Date).getTime()/1e3)}),this.selectedEntry=this.currentEntry,this.previewEntry(this.currentEntry),this.$(".so-buttons .so-restore").addClass("disabled")},renderHistoryEntries:function(){var e=this,t=this.$(".history-entries").empty();this.currentEntry.get("data")===this.revertEntry.get("data")&&_.isEmpty(this.entries.models)||l(this.historyEntryTemplate({title:panelsOptions.loc.history.revert,count:1})).data("historyEntry",this.revertEntry).prependTo(t),this.entries.each(function(i){var s=e.historyEntryTemplate({title:panelsOptions.loc.history[i.get("text")],count:i.get("count")});l(s).data("historyEntry",i).prependTo(t)}),l(this.historyEntryTemplate({title:panelsOptions.loc.history.current,count:1})).data("historyEntry",this.currentEntry).addClass("so-selected").prependTo(t),t.find(".history-entry").click(function(){var i=jQuery(this);t.find(".history-entry").not(i).removeClass("so-selected"),i.addClass("so-selected");var s=i.data("historyEntry");e.selectedEntry=s,e.selectedEntry.cid!==e.currentEntry.cid?e.$(".so-buttons .so-restore").removeClass("disabled"):e.$(".so-buttons .so-restore").addClass("disabled"),e.previewEntry(s)}),this.updateEntryTimes()},previewEntry:function(e){var t=this.$("iframe.siteorigin-panels-history-iframe");t.hide(),this.previewScrollTop=t.contents().scrollTop(),this.$('form.history-form input[name="live_editor_panels_data"]').val(e.get("data")),this.$('form.history-form input[name="live_editor_post_ID"]').val(this.builder.config.postId),this.$("form.history-form").submit()},restoreSelectedEntry:function(){return!this.$(".so-buttons .so-restore").hasClass("disabled")&&(this.currentEntry.get("data")===this.selectedEntry.get("data")?(this.closeDialog(),!1):("restore"!==this.selectedEntry.get("text")&&this.builder.addHistoryEntry("restore",this.builder.model.getPanelsData()),this.builder.model.loadPanelsData(JSON.parse(this.selectedEntry.get("data"))),this.closeDialog(),!1))},updateEntryTimes:function(){var e=this;this.$(".history-entries .history-entry").each(function(){var t=jQuery(this),i=t.find(".timesince"),s=t.data("historyEntry");i.html(e.timeSince(s.get("time")))})},timeSince:function(e){var t,i=parseInt((new Date).getTime()/1e3)-e,s=[];return i>3600&&(t=Math.floor(i/3600),1===t?s.push(panelsOptions.loc.time.hour.replace("%d",t)):s.push(panelsOptions.loc.time.hours.replace("%d",t)),i-=3600*t),i>60&&(t=Math.floor(i/60),1===t?s.push(panelsOptions.loc.time.minute.replace("%d",t)):s.push(panelsOptions.loc.time.minutes.replace("%d",t)),i-=60*t),i>0&&(1===i?s.push(panelsOptions.loc.time.second.replace("%d",i)):s.push(panelsOptions.loc.time.seconds.replace("%d",i))),_.isEmpty(s)?panelsOptions.loc.time.now:panelsOptions.loc.time.ago.replace("%s",s.slice(0,2).join(", "))}})},{}],7:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({directoryTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-directory-items").html())),builder:null,dialogClass:"so-panels-dialog-prebuilt-layouts",dialogIcon:"layouts",layoutCache:{},currentTab:!1,directoryPage:1,events:{"click .so-close":"closeDialog","click .so-sidebar-tabs li a":"tabClickHandler","click .so-content .layout":"layoutClickHandler","keyup .so-sidebar-search":"searchHandler","click .so-screenshot, .so-title":"directoryItemClickHandler"},initializeDialog:function(){var e=this;this.on("open_dialog",function(){e.$(".so-sidebar-tabs li a").first().click(),e.$(".so-status").removeClass("so-panels-loading")}),this.on("button_click",this.toolbarButtonClick,this)},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-prebuilt").html(),{})),this.initToolbar()},tabClickHandler:function(e){e.preventDefault(),this.selectedLayoutItem=null,this.uploadedLayout=null,this.updateButtonState(!1),this.$(".so-sidebar-tabs li").removeClass("tab-active");var t=l(e.target),i=t.attr("href").split("#")[1];t.parent().addClass("tab-active");var s=this;this.$(".so-content").empty(),s.currentTab=i,"import"==i?this.displayImportExport():this.displayLayoutDirectory("",1,i),s.$(".so-sidebar-search").val("")},displayImportExport:function(){var e=this.$(".so-content").empty().removeClass("so-panels-loading");e.html(l("#siteorigin-panels-dialog-prebuilt-importexport").html());var t=this,i=t.$(".import-upload-ui").hide();new plupload.Uploader({runtimes:"html5,silverlight,flash,html4",browse_button:i.find(".file-browse-button").get(0),container:i.get(0),drop_element:i.find(".drag-upload-area").get(0),file_data_name:"panels_import_data",multiple_queues:!1,max_file_size:panelsOptions.plupload.max_file_size,url:panelsOptions.plupload.url,flash_swf_url:panelsOptions.plupload.flash_swf_url,silverlight_xap_url:panelsOptions.plupload.silverlight_xap_url,filters:[{title:panelsOptions.plupload.filter_title,extensions:"json"}],multipart_params:{action:"so_panels_import_layout"},init:{PostInit:function(e){e.features.dragdrop&&i.addClass("has-drag-drop"),i.show().find(".progress-precent").css("width","0%")},FilesAdded:function(e){i.find(".file-browse-button").blur(),i.find(".drag-upload-area").removeClass("file-dragover"),i.find(".progress-bar").fadeIn("fast"),t.$(".js-so-selected-file").text(panelsOptions.loc.prebuilt_loading),e.start()},UploadProgress:function(e,t){i.find(".progress-precent").css("width",t.percent+"%")},FileUploaded:function(e,s,l){var o=JSON.parse(l.response);_.isUndefined(o.widgets)?alert(panelsOptions.plupload.error_message):(t.uploadedLayout=o,i.find(".progress-bar").hide(),t.$(".js-so-selected-file").text(panelsOptions.loc.ready_to_insert.replace("%s",s.name)),t.updateButtonState(!0))},Error:function(){alert(panelsOptions.plupload.error_message)}}}).init(),i.find(".drag-upload-area").on("dragover",function(){l(this).addClass("file-dragover")}).on("dragleave",function(){l(this).removeClass("file-dragover")}),e.find(".so-export").submit(function(e){var i=l(this),s=t.builder.model.getPanelsData(),o=l('input[name="post_title"]').val();o||(o=l('input[name="post_ID"]').val()),s.name=o,i.find('input[name="panels_export_data"]').val(JSON.stringify(s))})},displayLayoutDirectory:function(e,t,i){var s=this,o=this.$(".so-content").empty().addClass("so-panels-loading");if(void 0===e&&(e=""),void 0===t&&(t=1),void 0===i&&(i="directory-siteorigin"),i.match("^directory-")&&!panelsOptions.directory_enabled)return o.removeClass("so-panels-loading").html(l("#siteorigin-panels-directory-enable").html()),void o.find(".so-panels-enable-directory").click(function(n){n.preventDefault(),l.get(panelsOptions.ajaxurl,{action:"so_panels_directory_enable"},function(){}),panelsOptions.directory_enabled=!0,o.addClass("so-panels-loading"),s.displayLayoutDirectory(e,t,i)});l.get(panelsOptions.ajaxurl,{action:"so_panels_layouts_query",search:e,page:t,type:i},function(n){if(s.currentTab===i){o.removeClass("so-panels-loading").html(s.directoryTemplate(n));var a=o.find(".so-previous"),r=o.find(".so-next");t<=1?a.addClass("button-disabled"):a.click(function(i){i.preventDefault(),s.displayLayoutDirectory(e,t-1,s.currentTab)}),t===n.max_num_pages||0===n.max_num_pages?r.addClass("button-disabled"):r.click(function(i){i.preventDefault(),s.displayLayoutDirectory(e,t+1,s.currentTab)}),o.find(".so-screenshot").each(function(){var e=l(this),t=e.find(".so-screenshot-wrapper");if(t.css("height",t.width()/4*3+"px").addClass("so-loading"),""!==e.data("src"))var i=l("<img/>").attr("src",e.data("src")).load(function(){t.removeClass("so-loading").css("height","auto"),i.appendTo(t).hide().fadeIn("fast")});else l("<img/>").attr("src",panelsOptions.prebuiltDefaultScreenshot).appendTo(t).hide().fadeIn("fast")}),o.find(".so-directory-browse").html(n.title)}},"json")},directoryItemClickHandler:function(e){var t=this.$(e.target).closest(".so-directory-item");this.$(".so-directory-items").find(".selected").removeClass("selected"),t.addClass("selected"),this.selectedLayoutItem={lid:t.data("layout-id"),type:t.data("layout-type")},this.updateButtonState(!0)},toolbarButtonClick:function(e){if(!this.canAddLayout())return!1;var t=e.data("value");if(_.isUndefined(t))return!1;if(this.updateButtonState(!1),e.hasClass("so-needs-confirm")&&!e.hasClass("so-confirmed")){if(this.updateButtonState(!0),e.hasClass("so-confirming"))return;e.addClass("so-confirming");var i=e.html();return e.html('<span class="dashicons dashicons-yes"></span>'+e.data("confirm")),setTimeout(function(){e.removeClass("so-confirmed").html(i)},2500),setTimeout(function(){e.removeClass("so-confirming"),e.addClass("so-confirmed")},200),!1}this.addingLayout=!0,"import"===this.currentTab?this.addLayoutToBuilder(this.uploadedLayout,t):this.loadSelectedLayout().then(function(e){this.addLayoutToBuilder(e,t)}.bind(this))},canAddLayout:function(){return(this.selectedLayoutItem||this.uploadedLayout)&&!this.addingLayout},loadSelectedLayout:function(){this.setStatusMessage(panelsOptions.loc.prebuilt_loading,!0);var e=_.extend(this.selectedLayoutItem,{action:"so_panels_get_layout"}),t=new l.Deferred;return l.get(panelsOptions.ajaxurl,e,function(e){var i="";e.success?t.resolve(e.data):(i=e.data.message,t.reject(e.data)),this.setStatusMessage(i,!1,!e.success),this.updateButtonState(!0)}.bind(this)),t.promise()},searchHandler:function(e){13===e.keyCode&&this.displayLayoutDirectory(l(e.currentTarget).val(),1,this.currentTab)},updateButtonState:function(e){e=e&&(this.selectedLayoutItem||this.uploadedLayout);var t=this.$(".so-import-layout");t.prop("disabled",!e),e?t.removeClass("disabled"):t.addClass("disabled")},addLayoutToBuilder:function(e,t){this.builder.addHistoryEntry("prebuilt_loaded"),this.builder.model.loadPanelsData(e,t),this.addingLayout=!1,this.closeDialog()}})},{}],8:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({cellPreviewTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-row-cell-preview").html())),editableLabel:!0,events:{"click .so-close":"closeDialog","click .so-toolbar .so-save":"saveHandler","click .so-toolbar .so-insert":"insertHandler","click .so-toolbar .so-delete":"deleteHandler","click .so-toolbar .so-duplicate":"duplicateHandler","change .row-set-form > *":"setCellsFromForm","click .row-set-form button.set-row":"setCellsFromForm"},dialogIcon:"add-row",dialogClass:"so-panels-dialog-row-edit",styleType:"row",dialogType:"edit",row:{cells:null,style:{}},cellStylesCache:[],initializeDialog:function(){this.on("open_dialog",function(){_.isUndefined(this.model)||_.isEmpty(this.model.get("cells"))?this.setRowModel(null):this.setRowModel(this.model),this.regenerateRowPreview()},this),this.row={cells:new s.collection.cells([{weight:.5},{weight:.5}]),style:{}},this.dialogFormsLoaded=0;var e=this;this.on("form_loaded styles_loaded",function(){2===++this.dialogFormsLoaded&&e.updateModel({refreshArgs:{silent:!0}})}),this.on("close_dialog",this.closeHandler),this.on("edit_label",function(e){if(e!==panelsOptions.loc.row.add&&e!==panelsOptions.loc.row.edit||(e=""),this.model.set("label",e),_.isEmpty(e)){var t="create"===this.dialogType?panelsOptions.loc.row.add:panelsOptions.loc.row.edit;this.$(".so-title").text(t)}}.bind(this))},setRowDialogType:function(e){this.dialogType=e},render:function(){var e="create"===this.dialogType?panelsOptions.loc.row.add:panelsOptions.loc.row.edit;this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-row").html(),{title:e,dialogType:this.dialogType}));var t=this.$(".so-title");this.model.has("label")&&!_.isEmpty(this.model.get("label"))&&t.text(this.model.get("label")),this.$(".so-edit-title").val(t.text()),this.styles=new s.view.styles,this.styles.model=this.model,this.styles.render("row",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this}),this.builder.supports("addRow")||this.$(".so-buttons .so-duplicate").remove(),this.builder.supports("deleteRow")||this.$(".so-buttons .so-delete").remove();var i=this.$(".so-sidebar.so-right-sidebar");return this.styles.attach(i),this.styles.on("styles_loaded",function(e){e||(i.closest(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar"),i.remove())},this),_.isUndefined(this.model)||(this.$('input[name="cells"].so-row-field').val(this.model.get("cells").length),this.model.has("ratio")&&this.$('select[name="ratio"].so-row-field').val(this.model.get("ratio")),this.model.has("ratio_direction")&&this.$('select[name="ratio_direction"].so-row-field').val(this.model.get("ratio_direction"))),this.$("input.so-row-field").keyup(function(){l(this).trigger("change")}),this},setRowModel:function(e){return this.model=e,_.isEmpty(this.model)?this:(this.row={cells:this.model.get("cells").clone(),style:{},ratio:this.model.get("ratio"),ratio_direction:this.model.get("ratio_direction")},this.$('input[name="cells"].so-row-field').val(this.model.get("cells").length),this.model.has("ratio")&&this.$('select[name="ratio"].so-row-field').val(this.model.get("ratio")),this.model.has("ratio_direction")&&this.$('select[name="ratio_direction"].so-row-field').val(this.model.get("ratio_direction")),this.clearCellStylesCache(),this)},regenerateRowPreview:function(){var e=this,t=this.$(".row-preview"),i=this.getSelectedCellIndex();t.empty();var s;this.row.cells.each(function(o,n){var a=l(this.cellPreviewTemplate({weight:o.get("weight")}));t.append(a),n==i&&a.find(".preview-cell-in").addClass("cell-selected");var r,d=a.prev();d.length&&(r=l('<div class="resize-handle"></div>'),r.appendTo(a).dblclick(function(){var t=e.row.cells.at(n-1),i=o.get("weight")+t.get("weight");o.set("weight",i/2),t.set("weight",i/2),e.scaleRowWidths()}),r.draggable({axis:"x",containment:t,start:function(e,t){var i=a.clone().appendTo(t.helper).css({position:"absolute",top:"0",width:a.outerWidth(),left:6,height:a.outerHeight()});i.find(".resize-handle").remove();var s=d.clone().appendTo(t.helper).css({position:"absolute",top:"0",width:d.outerWidth(),right:6,height:d.outerHeight()});s.find(".resize-handle").remove(),l(this).data({newCellClone:i,prevCellClone:s}),a.find("> .preview-cell-in").css("visibility","hidden"),d.find("> .preview-cell-in").css("visibility","hidden")},drag:function(i,s){var o=e.row.cells.at(n).get("weight"),a=e.row.cells.at(n-1).get("weight"),r=o-(s.position.left+6)/t.width(),d=a+(s.position.left+6)/t.width();s.helper.offset().left,t.offset().left;l(this).data("newCellClone").css("width",t.width()*r).find(".preview-cell-weight").html(Math.round(1e3*r)/10),l(this).data("prevCellClone").css("width",t.width()*d).find(".preview-cell-weight").html(Math.round(1e3*d)/10)},stop:function(i,s){l(this).data("newCellClone").remove(),l(this).data("prevCellClone").remove(),a.find(".preview-cell-in").css("visibility","visible"),d.find(".preview-cell-in").css("visibility","visible");var o=s.position.left+6,r=o/t.width(),c=e.row.cells.at(n),h=e.row.cells.at(n-1);c.get("weight")-r>.02&&h.get("weight")+r>.02&&(c.set("weight",c.get("weight")-r),h.set("weight",h.get("weight")+r)),e.scaleRowWidths(),s.helper.css("left",-6)}})),a.click(function(e){if(l(e.target).is(".preview-cell")||l(e.target).is(".preview-cell-in")){var t=l(e.target);t.closest(".row-preview").find(".preview-cell .preview-cell-in").removeClass("cell-selected"),t.addClass("cell-selected"),this.openSelectedCellStyles()}}.bind(this)),a.find(".preview-cell-weight").click(function(i){e.$(".resize-handle").css("pointer-event","none").draggable("disable"),t.find(".preview-cell-weight").each(function(){var i=jQuery(this).hide();l('<input type="text" class="preview-cell-weight-input no-user-interacted" />').val(parseFloat(i.html())).insertAfter(i).focus(function(){clearTimeout(s)}).keyup(function(e){9!==e.keyCode&&l(this).removeClass("no-user-interacted"),13===e.keyCode&&(e.preventDefault(),l(this).blur())}).keydown(function(e){if(9===e.keyCode){e.preventDefault();var i=t.find(".preview-cell-weight-input"),s=i.index(l(this));s===i.length-1?i.eq(0).focus().select():i.eq(s+1).focus().select()}}).blur(function(){t.find(".preview-cell-weight-input").each(function(t,i){isNaN(parseFloat(l(i).val()))&&l(i).val(Math.floor(1e3*e.row.cells.at(t).get("weight"))/10)}),s=setTimeout(function(){if(0===t.find(".preview-cell-weight-input").length)return!1;var i=[],s=[],o=0,n=0;if(t.find(".preview-cell-weight-input").each(function(t,a){var r=parseFloat(l(a).val());r=isNaN(r)?1/e.row.cells.length:Math.round(10*r)/1e3;var d=!l(a).hasClass("no-user-interacted");i.push(r),s.push(d),d?o+=r:n+=r}),o>0&&n>0&&1-o>0)for(var a=0;a<i.length;a++)s[a]||(i[a]=i[a]/n*(1-o));var r=_.reduce(i,function(e,t){return e+t});i=i.map(function(e){return e/r}),Math.min.apply(Math,i)>.01&&e.row.cells.each(function(e,t){e.set("weight",i[t])}),t.find(".preview-cell").each(function(t,i){var s=e.row.cells.at(t).get("weight");l(i).animate({width:Math.round(1e3*s)/10+"%"},250),l(i).find(".preview-cell-weight-input").val(Math.round(1e3*s)/10)}),t.find(".preview-cell").css("overflow","visible"),setTimeout(function(){e.regenerateRowPreview()},260)},100)}).click(function(){l(this).select()})}),l(this).siblings(".preview-cell-weight-input").select()})},this),this.openSelectedCellStyles(),this.trigger("form_loaded",this)},getSelectedCellIndex:function(){var e=-1;return this.$(".preview-cell .preview-cell-in").each(function(t,i){l(i).is(".cell-selected")&&(e=t)}),e},openSelectedCellStyles:function(){if(!_.isUndefined(this.cellStyles)){if(this.cellStyles.stylesLoaded){var e={};try{e=this.getFormValues(".so-sidebar .so-visual-styles.so-cell-styles").style}catch(e){console.log("Error retrieving cell styles - "+e.message)}this.cellStyles.model.set("style",e)}this.cellStyles.detach()}if(this.cellStyles=this.getSelectedCellStyles(),this.cellStyles){var t=this.$(".so-sidebar.so-right-sidebar");this.cellStyles.attach(t)}},getSelectedCellStyles:function(){var e=this.getSelectedCellIndex();if(e>-1){var t=this.cellStylesCache[e];t||(t=new s.view.styles,t.model=this.row.cells.at(e),t.render("cell",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this,index:e}),this.cellStylesCache[e]=t)}return t},clearCellStylesCache:function(){this.cellStylesCache.forEach(function(e){e.remove()}),this.cellStylesCache=[]},scaleRowWidths:function(){var e=this;this.$(".row-preview .preview-cell").each(function(t,i){var s=e.row.cells.at(t);l(i).css("width",100*s.get("weight")+"%").find(".preview-cell-weight").html(Math.round(1e3*s.get("weight"))/10)})},setCellsFromForm:function(){try{var e={cells:parseInt(this.$('.row-set-form input[name="cells"]').val()),ratio:parseFloat(this.$('.row-set-form select[name="ratio"]').val()),direction:this.$('.row-set-form select[name="ratio_direction"]').val()};_.isNaN(e.cells)&&(e.cells=1),isNaN(e.ratio)&&(e.ratio=1),e.cells<1?(e.cells=1,this.$('.row-set-form input[name="cells"]').val(e.cells)):e.cells>12&&(e.cells=12,this.$('.row-set-form input[name="cells"]').val(e.cells)),this.$('.row-set-form select[name="ratio"]').val(e.ratio);for(var t=[],i=this.row.cells.length!==e.cells,o=1,n=0;n<e.cells;n++)t.push(o),o*=e.ratio;var a=_.reduce(t,function(e,t){return e+t});if(t=_.map(t,function(e){return e/a}),t=_.filter(t,function(e){return e>.01}),"left"===e.direction&&(t=t.reverse()),this.row.cells=new s.collection.cells(this.row.cells.first(t.length)),_.each(t,function(e,t){var i=this.row.cells.at(t);i?i.set("weight",e):(i=new s.model.cell({weight:e,row:this.model}),this.row.cells.add(i))}.bind(this)),this.row.ratio=e.ratio,this.row.ratio_direction=e.direction,i)this.regenerateRowPreview();else{var r=this;this.$(".preview-cell").each(function(e,t){var i=r.row.cells.at(e).get("weight");l(t).animate({width:Math.round(1e3*i)/10+"%"},250),l(t).find(".preview-cell-weight").html(Math.round(1e3*i)/10)}),this.$(".preview-cell").css("overflow","visible"),setTimeout(function(){r.regenerateRowPreview()},260)}}catch(e){console.log("Error setting cells - "+e.message)}this.$(".row-set-form .so-button-row-set").removeClass("button-primary")},tabClickHandler:function(e){"#row-layout"===e.attr("href")?this.$(".so-panels-dialog").addClass("so-panels-dialog-has-right-sidebar"):this.$(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar")},updateModel:function(e){if(e=_.extend({refresh:!0,refreshArgs:null},e),_.isEmpty(this.model)||(this.model.setCells(this.row.cells),this.model.set("ratio",this.row.ratio),this.model.set("ratio_direction",this.row.ratio_direction)),!_.isUndefined(this.styles)&&this.styles.stylesLoaded){var t={};try{t=this.getFormValues(".so-sidebar .so-visual-styles.so-row-styles").style}catch(e){console.log("Error retrieving row styles - "+e.message)}this.model.set("style",t)}if(!_.isUndefined(this.cellStyles)&&this.cellStyles.stylesLoaded){var t={};try{t=this.getFormValues(".so-sidebar .so-visual-styles.so-cell-styles").style}catch(e){console.log("Error retrieving cell styles - "+e.message)}this.cellStyles.model.set("style",t)}e.refresh&&this.builder.model.refreshPanelsData(e.refreshArgs)},insertHandler:function(){this.builder.addHistoryEntry("row_added"),this.updateModel();var e=this.builder.getActiveCell({createCell:!1}),t={};return null!==e&&(t.at=this.builder.model.get("rows").indexOf(e.row)+1),this.model.collection=this.builder.model.get("rows"),this.builder.model.get("rows").add(this.model,t),this.closeDialog(),this.builder.model.refreshPanelsData(),!1},saveHandler:function(){return this.builder.addHistoryEntry("row_edited"),this.updateModel(),this.closeDialog(),this.builder.model.refreshPanelsData(),!1},deleteHandler:function(){return this.model.trigger("visual_destroy"),this.closeDialog({silent:!0}),!1},duplicateHandler:function(){this.builder.addHistoryEntry("row_duplicated");var e=this.model.clone(this.builder.model);return this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.closeDialog({silent:!0}),!1},closeHandler:function(){this.clearCellStylesCache(),_.isUndefined(this.cellStyles)||(this.cellStyles=void 0)}})},{}],9:[function(e,t,i){var s=window.panels,l=jQuery,o=e("../view/widgets/js-widget");t.exports=s.view.dialog.extend({builder:null,sidebarWidgetTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-widget-sidebar-widget").html())),dialogClass:"so-panels-dialog-edit-widget",dialogIcon:"add-widget",widgetView:!1,savingWidget:!1,editableLabel:!0,events:{"click .so-close":"saveHandler","click .so-nav.so-previous":"navToPrevious","click .so-nav.so-next":"navToNext","click .so-toolbar .so-delete":"deleteHandler","click .so-toolbar .so-duplicate":"duplicateHandler"},initializeDialog:function(){var e=this;this.model.on("change:values",this.handleChangeValues,this),this.model.on("destroy",this.remove,this),this.dialogFormsLoaded=0,this.on("form_loaded styles_loaded",function(){2===++this.dialogFormsLoaded&&e.updateModel({refreshArgs:{silent:!0}})}),this.on("edit_label",function(e){e===panelsOptions.widgets[this.model.get("class")].title&&(e=""),this.model.set("label",e),_.isEmpty(e)&&this.$(".so-title").text(this.model.getWidgetField("title"))}.bind(this))},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-widget").html(),{})),this.loadForm();var e=this.model.getWidgetField("title");this.$(".so-title .widget-name").html(e),this.$(".so-edit-title").val(e),this.builder.supports("addWidget")||this.$(".so-buttons .so-duplicate").remove(),this.builder.supports("deleteWidget")||this.$(".so-buttons .so-delete").remove(),this.styles=new s.view.styles,this.styles.model=this.model,this.styles.render("widget",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this});var t=this.$(".so-sidebar.so-right-sidebar");this.styles.attach(t),this.styles.on("styles_loaded",function(e){e||(t.closest(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar"),t.remove())},this)},getPrevDialog:function(){var e=this.builder.$(".so-cells .cell .so-widget");if(e.length<=1)return!1;var t=e.index(this.widgetView.$el);if(0===t)return!1;do{if(widgetView=e.eq(--t).data("view"),!_.isUndefined(widgetView)&&!widgetView.model.get("read_only"))return widgetView.getEditDialog()}while(!_.isUndefined(widgetView)&&t>0);return!1},getNextDialog:function(){var e=this.builder.$(".so-cells .cell .so-widget");if(e.length<=1)return!1;var t,i=e.index(this.widgetView.$el);if(i===e.length-1)return!1;do{if(t=e.eq(++i).data("view"),!_.isUndefined(t)&&!t.model.get("read_only"))return t.getEditDialog()}while(!_.isUndefined(t));return!1},loadForm:function(){if(this.$("> *").length){this.$(".so-content").addClass("so-panels-loading");var e={action:"so_panels_widget_form",widget:this.model.get("class"),instance:JSON.stringify(this.model.get("values")),raw:this.model.get("raw")},t=this.$(".so-content");l.post(panelsOptions.ajaxurl,e,null,"html").done(function(e){var i=e.replace(/{\$id}/g,this.model.cid);t.removeClass("so-panels-loading").html(i),this.trigger("form_loaded",this),this.$(".panel-dialog").trigger("panelsopen"),this.on("close_dialog",this.updateModel,this),t.find("> .widget-content").length>0&&o.addWidget(t,this.model.widget_id)}.bind(this)).fail(function(e){var i;i=e&&e.responseText?e.responseText:panelsOptions.forms.loadingFailed,t.removeClass("so-panels-loading").html(i)})}},updateModel:function(e){if(e=_.extend({refresh:!0,refreshArgs:null},e),this.savingWidget=!0,!this.model.get("missing")){var t=this.getFormValues();_.isUndefined(t.widgets)?t={}:(t=t.widgets,t=t[Object.keys(t)[0]]),this.model.setValues(t),this.model.set("raw",!0)}if(this.styles.stylesLoaded){var i={};try{i=this.getFormValues(".so-sidebar .so-visual-styles").style}catch(e){}this.model.set("style",i)}this.savingWidget=!1,e.refresh&&this.builder.model.refreshPanelsData(e.refreshArgs)},handleChangeValues:function(){this.savingWidget||this.loadForm()},saveHandler:function(){this.builder.addHistoryEntry("widget_edited"),this.closeDialog()},deleteHandler:function(){return this.model.trigger("visual_destroy"),this.closeDialog({silent:!0}),this.builder.model.refreshPanelsData(),!1},duplicateHandler:function(){return this.model.trigger("user_duplicate"),this.closeDialog({silent:!0}),this.builder.model.refreshPanelsData(),!1}})},{"../view/widgets/js-widget":31}],10:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({builder:null,widgetTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-widgets-widget").html())),filter:{},dialogClass:"so-panels-dialog-add-widget",dialogIcon:"add-widget",events:{"click .so-close":"closeDialog","click .widget-type":"widgetClickHandler","keyup .so-sidebar-search":"searchHandler"},initializeDialog:function(){this.on("open_dialog",function(){this.filter.search="",this.filterWidgets(this.filter)},this),this.on("open_dialog_complete",function(){this.$(".so-sidebar-search").val("").focus(),this.balanceWidgetHeights()}),this.on("tab_click",this.tabClickHandler,this)},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-widgets").html(),{})),_.each(panelsOptions.widgets,function(e){var t=l(this.widgetTemplate({title:e.title,description:e.description}));_.isUndefined(e.icon)&&(e.icon="dashicons dashicons-admin-generic"),l('<span class="widget-icon" />').addClass(e.icon).prependTo(t.find(".widget-type-wrapper")),t.data("class",e.class).appendTo(this.$(".widget-type-list"))},this);var e=this.$(".so-sidebar-tabs");_.each(panelsOptions.widget_dialog_tabs,function(t){l(this.dialogTabTemplate({title:t.title})).data({message:t.message,filter:t.filter}).appendTo(e)},this),this.initTabs();var t=this;l(window).resize(function(){t.balanceWidgetHeights()})},tabClickHandler:function(e){this.filter=e.parent().data("filter"),this.filter.search=this.$(".so-sidebar-search").val();var t=e.parent().data("message");return _.isEmpty(t)&&(t=""),this.$(".so-toolbar .so-status").html(t),this.filterWidgets(this.filter),!1},searchHandler:function(e){if(13===e.which){var t=this.$(".widget-type-list .widget-type:visible");1===t.length&&t.click()}else this.filter.search=l(e.target).val().trim(),this.filterWidgets(this.filter)},filterWidgets:function(e){_.isUndefined(e)&&(e={}),_.isUndefined(e.groups)&&(e.groups=""),this.$(".widget-type-list .widget-type").each(function(){var t,i=l(this),s=i.data("class"),o=_.isUndefined(panelsOptions.widgets[s])?null:panelsOptions.widgets[s];t=!!_.isEmpty(e.groups)||null!==o&&!_.isEmpty(_.intersection(e.groups,panelsOptions.widgets[s].groups)),t&&(_.isUndefined(e.search)||""===e.search||-1===o.title.toLowerCase().indexOf(e.search.toLowerCase())&&(t=!1)),t?i.show():i.hide()}),this.balanceWidgetHeights()},widgetClickHandler:function(e){this.builder.addHistoryEntry("widget_added");var t=l(e.currentTarget),i=new s.model.widget({class:t.data("class")})
2
- ;i.cell=this.builder.getActiveCell(),i.cell.get("widgets").add(i),this.closeDialog(),this.builder.model.refreshPanelsData()},balanceWidgetHeights:function(e){var t=[[]],i=null,s=Math.round(this.$(".widget-type").parent().width()/this.$(".widget-type").width());this.$(".widget-type").css("clear","none").filter(":visible").each(function(e,t){e%s==0&&0!==e&&l(t).css("clear","both")}),this.$(".widget-type-wrapper").css("height","auto").filter(":visible").each(function(e,s){var o=l(s);null!==i&&i.position().top!==o.position().top&&(t[t.length]=[]),i=o,t[t.length-1].push(o)}),_.each(t,function(e,t){var i=_.max(e.map(function(e){return e.height()}));_.each(e,function(e){e.height(i)})})}})},{}],11:[function(e,t,i){t.exports={canCopyPaste:function(){return"undefined"!=typeof Storage&&panelsOptions.user},setModel:function(e){if(!this.canCopyPaste())return!1;var t=panels.helpers.serialize.serialize(e);return e instanceof panels.model.row?t.thingType="row-model":e instanceof panels.model.widget&&(t.thingType="widget-model"),localStorage["panels_clipboard_"+panelsOptions.user]=JSON.stringify(t),!0},isModel:function(e){if(!this.canCopyPaste())return!1;var t=localStorage["panels_clipboard_"+panelsOptions.user];return void 0!==t&&(t=JSON.parse(t),t.thingType&&t.thingType===e)},getModel:function(e){if(!this.canCopyPaste())return null;var t=localStorage["panels_clipboard_"+panelsOptions.user];return void 0!==t&&(t=JSON.parse(t),t.thingType&&t.thingType===e)?panels.helpers.serialize.unserialize(t,t.thingType,null):null}}},{}],12:[function(e,t,i){t.exports={lock:function(){if("hidden"!==jQuery("body").css("overflow")){var e=[self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop];jQuery("body").data({"scroll-position":e}).css("overflow","hidden"),_.isUndefined(e)||window.scrollTo(e[0],e[1])}},unlock:function(){if("hidden"===jQuery("body").css("overflow")&&!jQuery(".so-panels-dialog-wrapper").is(":visible")&&!jQuery(".so-panels-live-editor").is(":visible")){jQuery("body").css("overflow","visible");var e=jQuery("body").data("scroll-position");_.isUndefined(e)||window.scrollTo(e[0],e[1])}}}},{}],13:[function(e,t,i){t.exports={serialize:function(e){var t;if(e instanceof Backbone.Model){var i={};for(var s in e.attributes)if(e.attributes.hasOwnProperty(s)){if("builder"===s||"collection"===s)continue;t=e.attributes[s],t instanceof Backbone.Model||t instanceof Backbone.Collection?i[s]=this.serialize(t):i[s]=t}return i}if(e instanceof Backbone.Collection){for(var l=[],o=0;o<e.models.length;o++)t=e.models[o],t instanceof Backbone.Model||t instanceof Backbone.Collection?l.push(this.serialize(t)):l.push(t);return l}},unserialize:function(e,t,i){var s;switch(t){case"row-model":s=new panels.model.row,s.builder=i,s.set("style",e.style),s.setCells(this.unserialize(e.cells,"cell-collection",s));break;case"cell-model":s=new panels.model.cell,s.row=i,s.set("weight",e.weight),s.set("style",e.style),s.set("widgets",this.unserialize(e.widgets,"widget-collection",s));break;case"widget-model":s=new panels.model.widget,s.cell=i;for(var l in e)e.hasOwnProperty(l)&&s.set(l,e[l]);s.set("widget_id",panels.helpers.utils.generateUUID());break;case"cell-collection":s=new panels.collection.cells;for(var o=0;o<e.length;o++)s.push(this.unserialize(e[o],"cell-model",i));break;case"widget-collection":s=new panels.collection.widgets;for(var o=0;o<e.length;o++)s.push(this.unserialize(e[o],"widget-model",i));break;default:console.log("Unknown Thing - "+t)}return s}}},{}],14:[function(e,t,i){t.exports={generateUUID:function(){var e=(new Date).getTime();return window.performance&&"function"==typeof window.performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)})},processTemplate:function(e){return _.isUndefined(e)||_.isNull(e)?"":(e=e.replace(/{{%/g,"<%"),e=e.replace(/%}}/g,"%>"),e=e.trim())},selectElementContents:function(e){var t=document.createRange();t.selectNodeContents(e);var i=window.getSelection();i.removeAllRanges(),i.addRange(t)}}},{}],15:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=function(e){return this.each(function(){var t=jQuery(this),i=t.closest("form").find(".widget-id").val(),o=l.extend(!0,{},e);if(_.isUndefined(i)||!(i.indexOf("__i__")>-1)){var n=new s.model.builder,a=new s.view.builder({model:n,config:o}),r=t.closest(".so-panels-dialog-wrapper").data("view");_.isUndefined(r)||(r.on("close_dialog",function(){n.refreshPanelsData()}),r.on("open_dialog_complete",function(){a.trigger("builder_resize")}),r.model.on("destroy",function(){n.emptyRows().destroy()}),a.setDialogParents(panelsOptions.loc.layout_widget,r));var d=Boolean(t.closest(".widget-content").length);a.render().attach({container:t,dialog:d||"dialog"===t.data("mode"),type:t.data("type")}).setDataField(t.find("input.panels-data")),d||"dialog"===t.data("mode")?(a.setDialogParents(panelsOptions.loc.layout_widget,a.dialog),t.find(".siteorigin-panels-display-builder").click(function(e){e.preventDefault(),a.dialog.openDialog()})):t.find(".siteorigin-panels-display-builder").parent().remove(),l(document).trigger("panels_setup",a)}})}},{}],16:[function(e,t,i){var s={};window.panels=s,window.siteoriginPanels=s,s.helpers={},s.helpers.clipboard=e("./helpers/clipboard"),s.helpers.utils=e("./helpers/utils"),s.helpers.serialize=e("./helpers/serialize"),s.helpers.pageScroll=e("./helpers/page-scroll"),s.model={},s.model.widget=e("./model/widget"),s.model.cell=e("./model/cell"),s.model.row=e("./model/row"),s.model.builder=e("./model/builder"),s.model.historyEntry=e("./model/history-entry"),s.collection={},s.collection.widgets=e("./collection/widgets"),s.collection.cells=e("./collection/cells"),s.collection.rows=e("./collection/rows"),s.collection.historyEntries=e("./collection/history-entries"),s.view={},s.view.widget=e("./view/widget"),s.view.cell=e("./view/cell"),s.view.row=e("./view/row"),s.view.builder=e("./view/builder"),s.view.dialog=e("./view/dialog"),s.view.styles=e("./view/styles"),s.view.liveEditor=e("./view/live-editor"),s.dialog={},s.dialog.builder=e("./dialog/builder"),s.dialog.widgets=e("./dialog/widgets"),s.dialog.widget=e("./dialog/widget"),s.dialog.prebuilt=e("./dialog/prebuilt"),s.dialog.row=e("./dialog/row"),s.dialog.history=e("./dialog/history"),s.utils={},s.utils.menu=e("./utils/menu"),jQuery.fn.soPanelsSetupBuilderWidget=e("./jquery/setup-builder-widget"),jQuery(function(e){var t,i,s,l,o=e("#siteorigin-panels-metabox");if(s=e("form#post"),o.length&&s.length)t=o,i=o.find(".siteorigin-panels-data-field"),l={editorType:"tinyMCE",postId:e("#post_ID").val(),editorId:"#content",builderType:o.data("builder-type"),builderSupports:o.data("builder-supports"),loadOnAttach:panelsOptions.loadOnAttach&&1==e("#auto_draft").val(),loadLiveEditor:1==o.data("live-editor"),liveEditorPreview:t.data("preview-url")};else if(e(".siteorigin-panels-builder-form").length){var n=e(".siteorigin-panels-builder-form");t=n.find(".siteorigin-panels-builder-container"),i=n.find('input[name="panels_data"]'),s=n,l={editorType:"standalone",postId:n.data("post-id"),editorId:"#post_content",builderType:n.data("type"),builderSupports:n.data("builder-supports"),loadLiveEditor:!1,liveEditorPreview:n.data("preview-url")}}if(!_.isUndefined(t)){var a=window.siteoriginPanels,r=new a.model.builder,d=new a.view.builder({model:r,config:l});d.render().attach({container:t}).setDataField(i).attachToEditor(),s.submit(function(){r.refreshPanelsData()}),t.removeClass("so-panels-loading"),e(document).trigger("panels_setup",d,window.panels)}e(document).on("widget-added",function(t,i){e(i).find(".siteorigin-page-builder-widget").soPanelsSetupBuilderWidget()}),e("body").hasClass("wp-customizer")||e(function(){e(".siteorigin-page-builder-widget").soPanelsSetupBuilderWidget()})})},{"./collection/cells":1,"./collection/history-entries":2,"./collection/rows":3,"./collection/widgets":4,"./dialog/builder":5,"./dialog/history":6,"./dialog/prebuilt":7,"./dialog/row":8,"./dialog/widget":9,"./dialog/widgets":10,"./helpers/clipboard":11,"./helpers/page-scroll":12,"./helpers/serialize":13,"./helpers/utils":14,"./jquery/setup-builder-widget":15,"./model/builder":17,"./model/cell":18,"./model/history-entry":19,"./model/row":20,"./model/widget":21,"./utils/menu":22,"./view/builder":23,"./view/cell":24,"./view/dialog":25,"./view/live-editor":26,"./view/row":27,"./view/styles":28,"./view/widget":29}],17:[function(e,t,i){t.exports=Backbone.Model.extend({layoutPosition:{BEFORE:"before",AFTER:"after",REPLACE:"replace"},rows:{},defaults:{data:{widgets:[],grids:[],grid_cells:[]}},initialize:function(){this.set("rows",new panels.collection.rows)},addRow:function(e,t,i){i=_.extend({noAnimate:!1},i);var s=new panels.collection.cells(t);e=_.extend({collection:this.get("rows"),cells:s},e);var l=new panels.model.row(e);return l.builder=this,this.get("rows").add(l,i),l},loadPanelsData:function(e,t){try{t===this.layoutPosition.BEFORE?e=this.concatPanelsData(e,this.getPanelsData()):t===this.layoutPosition.AFTER&&(e=this.concatPanelsData(this.getPanelsData(),e)),this.emptyRows(),this.set("data",JSON.parse(JSON.stringify(e)),{silent:!0});var i=[];if(_.isUndefined(e.grid_cells))return void this.trigger("load_panels_data");for(var s,l=0;l<e.grid_cells.length;l++)s=parseInt(e.grid_cells[l].grid),_.isUndefined(i[s])&&(i[s]=[]),i[s].push(e.grid_cells[l]);var o=this;if(_.each(i,function(t,i){var s={};_.isUndefined(e.grids[i].style)||(s.style=e.grids[i].style),_.isUndefined(e.grids[i].ratio)||(s.ratio=e.grids[i].ratio),_.isUndefined(e.grids[i].ratio_direction)||(s.ratio_direction=e.grids[i].ratio_direction),_.isUndefined(e.grids[i].color_label)||(s.color_label=e.grids[i].color_label),_.isUndefined(e.grids[i].label)||(s.label=e.grids[i].label),o.addRow(s,t,{noAnimate:!0})}),_.isUndefined(e.widgets))return;_.each(e.widgets,function(e){var t=null;_.isUndefined(e.panels_info)?(t=e.info,delete e.info):(t=e.panels_info,delete e.panels_info);var i=o.get("rows").at(parseInt(t.grid)),s=i.get("cells").at(parseInt(t.cell)),l=new panels.model.widget({class:t.class,values:e});_.isUndefined(t.style)||l.set("style",t.style),_.isUndefined(t.read_only)||l.set("read_only",t.read_only),_.isUndefined(t.widget_id)?l.set("widget_id",panels.helpers.utils.generateUUID()):l.set("widget_id",t.widget_id),_.isUndefined(t.label)||l.set("label",t.label),l.cell=s,s.get("widgets").add(l,{noAnimate:!0})}),this.trigger("load_panels_data")}catch(e){console.log("Error loading data: "+e.message)}},concatPanelsData:function(e,t){if(_.isUndefined(t)||_.isUndefined(t.grids)||_.isEmpty(t.grids)||_.isUndefined(t.grid_cells)||_.isEmpty(t.grid_cells))return e;if(_.isUndefined(e)||_.isUndefined(e.grids)||_.isEmpty(e.grids))return t;var i=e.grids.length,s=_.isUndefined(e.widgets)?0:e.widgets.length,l={grids:[],grid_cells:[],widgets:[]};l.grids=e.grids.concat(t.grids),_.isUndefined(e.grid_cells)||(l.grid_cells=e.grid_cells.slice()),_.isUndefined(e.widgets)||(l.widgets=e.widgets.slice());var o;for(o=0;o<t.grid_cells.length;o++){var n=t.grid_cells[o];n.grid=parseInt(n.grid)+i,l.grid_cells.push(n)}if(!_.isUndefined(t.widgets))for(o=0;o<t.widgets.length;o++){var a=t.widgets[o];a.panels_info.grid=parseInt(a.panels_info.grid)+i,a.panels_info.id=parseInt(a.panels_info.id)+s,l.widgets.push(a)}return l},getPanelsData:function(){var e={widgets:[],grids:[],grid_cells:[]},t=0;return this.get("rows").each(function(i,s){i.get("cells").each(function(i,l){i.get("widgets").each(function(i,o){var n={class:i.get("class"),raw:i.get("raw"),grid:s,cell:l,id:t++,widget_id:i.get("widget_id"),style:i.get("style"),label:i.get("label")};_.isEmpty(n.widget_id)&&(n.widget_id=panels.helpers.utils.generateUUID());var a=_.extend(_.clone(i.get("values")),{panels_info:n});e.widgets.push(a)}),e.grid_cells.push({grid:s,index:l,weight:i.get("weight"),style:i.get("style")})}),e.grids.push({cells:i.get("cells").length,style:i.get("style"),ratio:i.get("ratio"),ratio_direction:i.get("ratio_direction"),color_label:i.get("color_label"),label:i.get("label")})}),e},refreshPanelsData:function(e){e=_.extend({silent:!1},e);var t=this.get("data"),i=this.getPanelsData();this.set("data",i,{silent:!0}),e.silent||JSON.stringify(i)===JSON.stringify(t)||(this.trigger("change"),this.trigger("change:data"),this.trigger("refresh_panels_data",i,e))},emptyRows:function(){return _.invoke(this.get("rows").toArray(),"destroy"),this.get("rows").reset(),this},isValidLayoutPosition:function(e){return e===this.layoutPosition.BEFORE||e===this.layoutPosition.AFTER||e===this.layoutPosition.REPLACE},getPanelsDataFromHtml:function(e,t){var i=this,s=jQuery('<div id="wrapper">'+e+"</div>");if(s.find(".panel-layout .panel-grid").length){var l={grids:[],grid_cells:[],widgets:[]},o=new RegExp(panelsOptions.siteoriginWidgetRegex,"i"),n=function(){function e(e){return e&&"string"==typeof e&&(e=e.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim,""),e=e.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,""),t.innerHTML=e,e=t.textContent,t.textContent=""),e}var t=document.createElement("div");return e}(),a=function(e){var t=e.find("div");if(!t.length)return e.html();var i;for(i=0;i<t.length-1&&jQuery.trim(t.eq(i).text())==jQuery.trim(t.eq(i+1).text());i++);var s=t.eq(i).find(".widget-title:header"),l="";return s.length&&(l=s.html(),s.remove()),{title:l,text:t.eq(i).html()}},r=s.find(".panel-layout").eq(0),d=function(e,t){return jQuery(t).closest(".panel-layout").is(r)};return s.find("> .panel-layout > .panel-grid").filter(d).each(function(e,s){var r=jQuery(s),c=r.find(".panel-grid-cell").filter(d);l.grids.push({cells:c.length,style:r.data("style"),ratio:r.data("ratio"),ratio_direction:r.data("ratio-direction"),color_label:r.data("color-label"),label:r.data("label")}),c.each(function(s,r){var c=jQuery(r),h=c.find(".so-panel").filter(d);l.grid_cells.push({grid:e,weight:_.isUndefined(c.data("weight"))?1:parseFloat(c.data("weight")),style:c.data("style")}),h.each(function(r,d){var c=jQuery(d),h=c.find(".panel-widget-style").length?c.find(".panel-widget-style").html():c.html(),u={grid:e,cell:s,style:c.data("style"),raw:!1,label:c.data("label")};h=h.trim();var p=o.exec(h);if(!_.isNull(p)&&""===h.replace(o,"").trim()){try{var g=/class="(.*?)"/.exec(p[3]),f=jQuery(p[5]),w=JSON.parse(n(f.val())),m=w.instance;u.class=g[1].replace(/\\\\+/g,"\\"),u.raw=!1,m.panels_info=u,l.widgets.push(m)}catch(e){u.class=t,l.widgets.push(_.extend(a(c),{filter:"1",type:"visual",panels_info:u}))}return!0}if(-1!==h.indexOf("panel-layout")){if(jQuery("<div>"+h+"</div>").find(".panel-layout .panel-grid").length)return u.class="SiteOrigin_Panels_Widgets_Layout",l.widgets.push({panels_data:i.getPanelsDataFromHtml(h,t),panels_info:u}),!0}return u.class=t,l.widgets.push(_.extend(a(c),{filter:"1",type:"visual",panels_info:u})),!0})})}),s.find(".panel-layout").remove(),s.find("style[data-panels-style-for-post]").remove(),s.html().replace(/^\s+|\s+$/gm,"").length&&(l.grids.push({cells:1,style:{}}),l.grid_cells.push({grid:l.grids.length-1,weight:1}),l.widgets.push({filter:"1",text:s.html().replace(/^\s+|\s+$/gm,""),title:"",type:"visual",panels_info:{class:t,raw:!1,grid:l.grids.length-1,cell:0}})),l}return{grid_cells:[{grid:0,weight:1}],grids:[{cells:1}],widgets:[{filter:"1",text:e,title:"",type:"visual",panels_info:{class:t,raw:!1,grid:0,cell:0}}]}}})},{}],18:[function(e,t,i){t.exports=Backbone.Model.extend({widgets:{},row:null,defaults:{weight:0,style:{}},indexes:null,initialize:function(){this.set("widgets",new panels.collection.widgets),this.on("destroy",this.onDestroy,this)},onDestroy:function(){_.invoke(this.get("widgets").toArray(),"destroy"),this.get("widgets").reset()},clone:function(e,t){_.isUndefined(e)&&(e=this.row),t=_.extend({cloneWidgets:!0},t);var i=new this.constructor(this.attributes);return i.set("collection",e.get("cells"),{silent:!0}),i.row=e,t.cloneWidgets&&this.get("widgets").each(function(e){i.get("widgets").add(e.clone(i,t),{silent:!0})}),i}})},{}],19:[function(e,t,i){t.exports=Backbone.Model.extend({defaults:{text:"",data:"",time:null,count:1}})},{}],20:[function(e,t,i){t.exports=Backbone.Model.extend({builder:null,defaults:{style:{}},indexes:null,initialize:function(){_.isEmpty(this.get("cells"))?this.set("cells",new panels.collection.cells):this.get("cells").each(function(e){e.row=this}.bind(this)),this.on("destroy",this.onDestroy,this)},setCells:function(e){var t=this.get("cells")||new panels.collection.cells,i=[];t.each(function(s,l){var o=e.at(l);if(o)s.set("weight",o.get("weight"));else{for(var n=t.at(e.length-1),a=s.get("widgets").models.slice(),r=0;r<a.length;r++)a[r].moveToCell(n,{silent:!1});i.push(s)}}),_.each(i,function(e){t.remove(e)}),e.length>t.length&&_.each(e.slice(t.length,e.length),function(e){e.set({collection:t}),e.row=this,t.add(e)}.bind(this)),this.reweightCells()},reweightCells:function(){var e=0,t=this.get("cells");t.each(function(t){e+=t.get("weight")}),t.each(function(t){t.set("weight",t.get("weight")/e)}),this.trigger("reweight_cells")},onDestroy:function(){_.invoke(this.get("cells").toArray(),"destroy"),this.get("cells").reset()},clone:function(e){_.isUndefined(e)&&(e=this.builder);var t=new this.constructor(this.attributes);t.set("collection",e.get("rows"),{silent:!0}),t.builder=e;var i=new panels.collection.cells;return this.get("cells").each(function(e){i.add(e.clone(t),{silent:!0})}),t.set("cells",i),t}})},{}],21:[function(e,t,i){t.exports=Backbone.Model.extend({cell:null,defaults:{class:null,missing:!1,values:{},raw:!1,style:{},read_only:!1,widget_id:""},indexes:null,initialize:function(){var e=this.get("class");!_.isUndefined(panelsOptions.widgets[e])&&panelsOptions.widgets[e].installed||this.set("missing",!0)},getWidgetField:function(e){return _.isUndefined(panelsOptions.widgets[this.get("class")])?"title"===e||"description"===e?panelsOptions.loc.missing_widget[e]:"":this.has("label")&&!_.isEmpty(this.get("label"))?this.get("label"):panelsOptions.widgets[this.get("class")][e]},moveToCell:function(e,t,i){return t=_.extend({silent:!0},t),this.cell=e,this.collection.remove(this,t),e.get("widgets").add(this,_.extend({at:i},t)),this.trigger("move_to_cell",e,i),this},triggerEdit:function(){this.trigger("user_edit",this)},triggerDuplicate:function(){this.trigger("user_duplicate",this)},setValues:function(e){var t=!1;JSON.stringify(e)!==JSON.stringify(this.get("values"))&&(t=!0),this.set("values",e,{silent:!0}),t&&(this.trigger("change",this),this.trigger("change:values"))},clone:function(e,t){_.isUndefined(e)&&(e=this.cell);var i=new this.constructor(this.attributes),s=JSON.parse(JSON.stringify(this.get("values"))),l=function(e){return _.each(e,function(t,i){_.isString(i)&&"_"===i[0]?delete e[i]:_.isObject(e[i])&&l(e[i])}),e};return s=l(s),"SiteOrigin_Panels_Widgets_Layout"===this.get("class")&&(s.builder_id=Math.random().toString(36).substr(2)),i.set("widget_id",""),i.set("values",s,{silent:!0}),i.set("collection",e.get("widgets"),{silent:!0}),i.cell=e,i.isDuplicate=!0,i},getTitle:function(){var e=panelsOptions.widgets[this.get("class")];if(_.isUndefined(e))return this.get("class").replace(/_/g," ");if(!_.isUndefined(e.panels_title)&&!1===e.panels_title)return panelsOptions.widgets[this.get("class")].description;var t=this.get("values"),i=["title","text"];for(var s in t)t.hasOwnProperty(s)&&i.push(s);i=_.uniq(i);for(var l in i)if(!_.isUndefined(t[i[l]])&&_.isString(t[i[l]])&&""!==t[i[l]]&&"on"!==t[i[l]]&&"_"!==i[l][0]&&!jQuery.isNumeric(t[i[l]])){var o=t[i[l]];o=o.replace(/<\/?[^>]+(>|$)/g,"");var n=o.split(" ");return n=n.slice(0,20),n.join(" ")}return this.getWidgetField("description")}})},{}],22:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({wrapperTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-context-menu").html())),sectionTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-context-menu-section").html())),contexts:[],active:!1,events:{"keyup .so-search-wrapper input":"searchKeyUp"},initialize:function(){this.listenContextMenu(),this.render(),this.attach()},listenContextMenu:function(){var e=this;l(window).on("contextmenu",function(t){return e.active&&!e.isOverEl(e.$el,t)?(e.closeMenu(),e.active=!1,t.preventDefault(),!1):!!e.active||(e.active=!1,e.trigger("activate_context",t,e),void(e.active&&(t.preventDefault(),e.openMenu({left:t.pageX,top:t.pageY}))))})},render:function(){this.setElement(this.wrapperTemplate())},attach:function(){this.$el.appendTo("body")},openMenu:function(e){this.trigger("open_menu"),l(window).on("keyup",{menu:this},this.keyboardListen),l(window).on("click",{menu:this},this.clickOutsideListen),this.$el.css("max-height",l(window).height()-20),e.left+this.$el.outerWidth()+10>=l(window).width()&&(e.left=l(window).width()-this.$el.outerWidth()-10),e.left<=0&&(e.left=10),e.top+this.$el.outerHeight()-l(window).scrollTop()+10>=l(window).height()&&(e.top=l(window).height()+l(window).scrollTop()-this.$el.outerHeight()-10),e.left<=0&&(e.left=10),this.$el.css({left:e.left+1,top:e.top+1}).show(),this.$(".so-search-wrapper input").focus()},closeMenu:function(){this.trigger("close_menu"),l(window).off("keyup",this.keyboardListen),l(window).off("click",this.clickOutsideListen),this.active=!1,this.$el.empty().hide()},keyboardListen:function(e){var t=e.data.menu;switch(e.which){case 27:t.closeMenu()}},clickOutsideListen:function(e){var t=e.data.menu;3!==e.which&&t.$el.is(":visible")&&!t.isOverEl(t.$el,e)&&t.closeMenu()},addSection:function(e,t,i,s){var o=this;t=_.extend({display:5,defaultDisplay:!1,search:!0,sectionTitle:"",searchPlaceholder:"",titleKey:"title"},t);var n=l(this.sectionTemplate({settings:t,items:i})).attr("id","panels-menu-section-"+e);this.$el.append(n),n.find(".so-item:not(.so-confirm)").click(function(){var e=l(this);s(e.data("key")),o.closeMenu()}),n.find(".so-item.so-confirm").click(function(){var e=l(this);if(e.hasClass("so-confirming"))return s(e.data("key")),void o.closeMenu();e.data("original-text",e.html()).addClass("so-confirming").html('<span class="dashicons dashicons-yes"></span> '+panelsOptions.loc.dropdown_confirm),setTimeout(function(){e.removeClass("so-confirming"),e.html(e.data("original-text"))},2500)}),n.data("settings",t).find(".so-search-wrapper input").trigger("keyup"),this.active=!0},hasSection:function(e){return this.$el.find("#panels-menu-section-"+e).length>0},searchKeyUp:function(e){var t=l(e.currentTarget),i=t.closest(".so-section"),s=i.data("settings");if(38===e.which||40===e.which){var o=i.find("ul li:visible"),n=o.filter(".so-active").eq(0);if(n.length){o.removeClass("so-active");var a=o.index(n);38===e.which?n=a-1<0?o.last():o.eq(a-1):40===e.which&&(n=a+1>=o.length?o.first():o.eq(a+1))}else 38===e.which?n=o.last():40===e.which&&(n=o.first());return n.addClass("so-active"),!1}if(13===e.which)return 1===i.find("ul li:visible").length?(i.find("ul li:visible").trigger("click"),!1):(i.find("ul li.so-active:visible").trigger("click"),!1);if(""===t.val())if(s.defaultDisplay){i.find(".so-item").hide();for(var r=0;r<s.defaultDisplay.length;r++)i.find('.so-item[data-key="'+s.defaultDisplay[r]+'"]').show()}else i.find(".so-item").show();else i.find(".so-item").hide().each(function(){var e=l(this);-1!==e.html().toLowerCase().indexOf(t.val().toLowerCase())&&e.show()});i.find(".so-item:visible:gt("+(s.display-1)+")").hide(),0===i.find(".so-item:visible").length&&""!==t.val()?i.find(".so-no-results").show():i.find(".so-no-results").hide()},isOverEl:function(e,t){var i=[[e.offset().left,e.offset().top],[e.offset().left+e.outerWidth(),e.offset().top+e.outerHeight()]];return t.pageX>=i[0][0]&&t.pageX<=i[1][0]&&t.pageY>=i[0][1]&&t.pageY<=i[1][1]}})},{}],23:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({config:{},template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder").html())),dialogs:{},rowsSortable:null,dataField:!1,currentData:"",attachedToEditor:!1,attachedVisible:!1,liveEditor:void 0,menu:!1,activeCell:null,events:{"click .so-tool-button.so-widget-add":"displayAddWidgetDialog","click .so-tool-button.so-row-add":"displayAddRowDialog","click .so-tool-button.so-prebuilt-add":"displayAddPrebuiltDialog","click .so-tool-button.so-history":"displayHistoryDialog","click .so-tool-button.so-live-editor":"displayLiveEditor"},rows:null,initialize:function(e){var t=this;return this.config=_.extend({loadLiveEditor:!1,builderSupports:{}},e.config),this.config.builderSupports=_.extend({addRow:!0,editRow:!0,deleteRow:!0,moveRow:!0,addWidget:!0,editWidget:!0,deleteWidget:!0,moveWidget:!0,prebuilt:!0,history:!0,liveEditor:!0,revertToEditor:!0},this.config.builderSupports),e.config.loadLiveEditor&&this.on("builder_live_editor_added",function(){this.displayLiveEditor()}),this.dialogs={widgets:new s.dialog.widgets,row:new s.dialog.row,prebuilt:new s.dialog.prebuilt},_.each(this.dialogs,function(e,i,s){s[i].setBuilder(t)}),this.dialogs.row.setRowDialogType("create"),this.model.get("rows").on("add",this.onAddRow,this),l(window).resize(function(e){e.target===window&&t.trigger("builder_resize")}),this.model.on("change:data load_panels_data",this.storeModelData,this),this.on("content_change",this.handleContentChange,this),this.on("display_builder",this.handleDisplayBuilder,this),this.on("hide_builder",this.handleHideBuilder,this),this.on("builder_rendered builder_resize",this.handleBuilderSizing,this),this.model.on("change:data load_panels_data",this.toggleWelcomeDisplay,this),this.on("display_builder",this.wrapEditorExpandAdjust,this),this.menu=new s.utils.menu({}),this.menu.on("activate_context",this.activateContextMenu,this),this.config.loadOnAttach&&this.on("builder_attached_to_editor",function(){this.displayAttachedBuilder({confirm:!1})},this),this},render:function(){return this.setElement(this.template()),this.$el.attr("id","siteorigin-panels-builder-"+this.cid).addClass("so-builder-container"),this.trigger("builder_rendered"),this},attach:function(e){e=_.extend({container:!1,dialog:!1},e),e.dialog?(this.dialog=new s.dialog.builder,this.dialog.builder=this):(this.$el.appendTo(e.container),this.metabox=e.container.closest(".postbox"),this.initSortable(),this.trigger("attached_to_container",e.container)),this.trigger("builder_attached"),this.supports("liveEditor")&&this.addLiveEditor(),this.supports("history")&&this.addHistoryBrowser();var t=this.$(".so-builder-toolbar"),i=this.$(".so-panels-welcome-message"),l=panelsOptions.loc.welcomeMessage,o=[];this.supports("addWidget")?o.push(l.addWidgetButton):t.find(".so-widget-add").hide(),this.supports("addRow")?o.push(l.addRowButton):t.find(".so-row-add").hide(),this.supports("prebuilt")?o.push(l.addPrebuiltButton):t.find(".so-prebuilt-add").hide();var n="";3===o.length?n=l.threeEnabled:2===o.length?n=l.twoEnabled:1===o.length?n=l.oneEnabled:0===o.length&&(n=l.addingDisabled);var a=_.template(s.helpers.utils.processTemplate(n)),r=a({items:o})+" "+l.docsMessage;return i.find(".so-message-wrapper").html(r),this},attachToEditor:function(){if("tinyMCE"!==this.config.editorType)return this;this.attachedToEditor=!0;var e=this.metabox,t=this;l("#wp-content-wrap .wp-editor-tabs").find(".wp-switch-editor").click(function(e){e.preventDefault(),l("#wp-content-editor-container").show(),l("#wp-content-wrap").removeClass("panels-active"),l("#content-resize-handle").show(),t.trigger("hide_builder")}).end().append(l('<a id="content-panels" class="hide-if-no-js wp-switch-editor switch-panels">'+e.find(".hndle span").html()+"</a>").click(function(e){t.displayAttachedBuilder({confirm:!0})&&e.preventDefault()})),this.supports("revertToEditor")&&e.find(".so-switch-to-standard").click(function(i){i.preventDefault(),confirm(panelsOptions.loc.confirm_stop_builder)&&(t.addHistoryEntry("back_to_editor"),t.model.loadPanelsData(!1),l("#wp-content-wrap").show(),e.hide(),l(window).resize(),t.attachedVisible=!1,t.trigger("hide_builder"))}).show(),e.insertAfter("#wp-content-wrap").hide().addClass("attached-to-editor");var i=this.model.get("data");_.isEmpty(i.widgets)&&_.isEmpty(i.grids)&&this.supports("revertToEditor")||this.displayAttachedBuilder({confirm:!1});var s=function(){var e=t.$(".so-builder-toolbar");if(t.$el.hasClass("so-display-narrow"))return e.css({top:0,left:0,width:"100%",position:"absolute"}),void t.$el.css("padding-top",e.outerHeight());var i=l(window).scrollTop()-t.$el.offset().top;"fixed"===l("#wpadminbar").css("position")&&(i+=l("#wpadminbar").outerHeight());var s={top:0,bottom:t.$el.outerHeight()-e.outerHeight()+20};i>s.top&&i<s.bottom?"fixed"!==e.css("position")&&e.css({top:l("#wpadminbar").outerHeight(),left:t.$el.offset().left,width:t.$el.outerWidth(),position:"fixed"}):e.css({top:Math.min(Math.max(i,0),t.$el.outerHeight()-e.outerHeight()+20),left:0,width:"100%",position:"absolute"}),t.$el.css("padding-top",e.outerHeight())};return this.on("builder_resize",s,this),l(document).scroll(s),s(),this.trigger("builder_attached_to_editor"),this},displayAttachedBuilder:function(e){if(e=_.extend({confirm:!0},e),e.confirm){var t="undefined"!=typeof tinyMCE&&tinyMCE.get("content");if(""!==(t&&_.isFunction(t.getContent)?t.getContent():l("textarea#content").val())&&!confirm(panelsOptions.loc.confirm_use_builder))return!1}return l("#wp-content-wrap").hide(),l("#editor-expand-toggle").on("change.editor-expand",function(){l(this).prop("checked")||l("#wp-content-wrap").hide()}),this.metabox.show().find("> .inside").show(),l(window).resize(),l(document).scroll(),this.attachedVisible=!0,this.trigger("display_builder"),!0},initSortable:function(){if(!this.supports("moveRow"))return this;var e=this;return this.rowsSortable=this.$(".so-rows-container").sortable({appendTo:"#wpwrap",items:".so-row-container",handle:".so-row-move",connectWith:".so-rows-container",axis:"y",tolerance:"pointer",scroll:!1,remove:function(t,i){e.model.get("rows").remove(l(i.item).data("view").model,{silent:!0}),e.model.refreshPanelsData()},receive:function(t,i){e.model.get("rows").add(l(i.item).data("view").model,{silent:!0,at:l(i.item).index()}),e.model.refreshPanelsData()},stop:function(t,i){var s=l(i.item),o=s.data("view"),n=e.model.get("rows");n.get(o.model)&&(e.addHistoryEntry("row_moved"),n.remove(o.model,{silent:!0}),n.add(o.model,{silent:!0,at:s.index()}),o.trigger("move",s.index()),e.model.refreshPanelsData())}}),this},refreshSortable:function(){_.isNull(this.rowsSortable)||this.rowsSortable.sortable("refresh")},setDataField:function(e,t){if(t=_.extend({load:!0},t),this.dataField=e,this.dataField.data("builder",this),t.load&&""!==e.val()){var i=this.dataField.val();try{i=JSON.parse(i)}catch(e){i={}}this.setData(i)}return this},setData:function(e){this.model.loadPanelsData(e),this.currentData=e,this.toggleWelcomeDisplay()},getData:function(){return this.model.get("data")},storeModelData:function(){var e=JSON.stringify(this.model.get("data"));l(this.dataField).val()!==e&&(l(this.dataField).val(e),l(this.dataField).trigger("change"),this.trigger("content_change"))},onAddRow:function(e,t,i){i=_.extend({noAnimate:!1},i);var l=new s.view.row({model:e});l.builder=this,l.render(),_.isUndefined(i.at)||t.length<=1?l.$el.appendTo(this.$(".so-rows-container")):l.$el.insertAfter(this.$(".so-rows-container .so-row-container").eq(i.at-1)),!1===i.noAnimate&&l.visualCreate(),this.refreshSortable(),l.resize(),this.trigger("row_added")},displayAddWidgetDialog:function(){this.dialogs.widgets.openDialog()},displayAddRowDialog:function(){var e=new s.model.row,t=new s.collection.cells([{weight:.5},{weight:.5}]);t.each(function(t){t.row=e}),e.set("cells",t),e.builder=this.model,this.dialogs.row.setRowModel(e),this.dialogs.row.openDialog()},displayAddPrebuiltDialog:function(){this.dialogs.prebuilt.openDialog()},displayHistoryDialog:function(){this.dialogs.history.openDialog()},pasteRowHandler:function(){var e=s.helpers.clipboard.getModel("row-model")
3
- ;!_.isEmpty(e)&&e instanceof s.model.row&&(this.addHistoryEntry("row_pasted"),e.builder=this.model,this.model.get("rows").add(e,{at:this.model.get("rows").indexOf(this.model)+1}),this.model.refreshPanelsData())},getActiveCell:function(e){if(e=_.extend({createCell:!0},e),!this.model.get("rows").length){if(!e.createCell)return null;this.model.addRow({},[{weight:1}],{noAnimate:!0})}var t=this.activeCell;return _.isEmpty(t)||-1===this.model.get("rows").indexOf(t.model.row)?this.model.get("rows").last().get("cells").first():t.model},addLiveEditor:function(){return _.isEmpty(this.config.liveEditorPreview)?this:(this.liveEditor=new s.view.liveEditor({builder:this,previewUrl:this.config.liveEditorPreview}),this.liveEditor.hasPreviewUrl()&&this.$(".so-builder-toolbar .so-live-editor").show(),this.trigger("builder_live_editor_added"),this)},displayLiveEditor:function(){_.isUndefined(this.liveEditor)||this.liveEditor.open()},addHistoryBrowser:function(){if(_.isEmpty(this.config.liveEditorPreview))return this;this.dialogs.history=new s.dialog.history,this.dialogs.history.builder=this,this.dialogs.history.entries.builder=this.model,this.dialogs.history.setRevertEntry(this.model),this.$(".so-builder-toolbar .so-history").show()},addHistoryEntry:function(e,t){_.isUndefined(t)&&(t=null),_.isUndefined(this.dialogs.history)||this.dialogs.history.entries.addEntry(e,t)},supports:function(e){return"rowAction"===e?this.supports("addRow")||this.supports("editRow")||this.supports("deleteRow"):"widgetAction"===e?this.supports("addWidget")||this.supports("editWidget")||this.supports("deleteWidget"):!_.isUndefined(this.config.builderSupports[e])&&this.config.builderSupports[e]},handleContentChange:function(){if(panelsOptions.copy_content&&this.attachedToEditor&&this.$el.is(":visible")){var e=this.model.getPanelsData();_.isEmpty(e.widgets)||l.post(panelsOptions.ajaxurl,{action:"so_panels_builder_content",panels_data:JSON.stringify(e),post_id:this.config.postId},function(e){""!==e&&this.updateEditorContent(e)}.bind(this))}},updateEditorContent:function(e){if("tinyMCE"!==this.config.editorType||"undefined"==typeof tinyMCE||_.isNull(tinyMCE.get("content"))){l(this.config.editorId).val(e).trigger("change").trigger("keyup")}else{var t=tinyMCE.get("content");t.setContent(e),t.fire("change"),t.fire("keyup")}this.triggerYoastSeoChange()},triggerYoastSeoChange:function(){if(l("#yoast_wpseo_focuskw_text_input").length){var e,t=document.getElementById("yoast_wpseo_focuskw_text_input");document.createEvent?(e=document.createEvent("HTMLEvents"),e.initEvent("keyup",!0,!0)):(e=document.createEventObject(),e.eventType="keyup"),e.eventName="keyup",document.createEvent?t.dispatchEvent(e):t.fireEvent("on"+e.eventType,e)}},handleDisplayBuilder:function(){var e="undefined"!=typeof tinyMCE&&tinyMCE.get("content"),t=e&&_.isFunction(e.getContent)?e.getContent():l("textarea#content").val();if((_.isEmpty(this.model.get("data"))||_.isEmpty(this.model.get("data").widgets)&&_.isEmpty(this.model.get("data").grids))&&""!==t){var i=panelsOptions.text_widget;if(_.isEmpty(i))return;this.model.loadPanelsData(this.model.getPanelsDataFromHtml(t,i)),this.model.trigger("change"),this.model.trigger("change:data")}l("#post-status-info").addClass("for-siteorigin-panels")},handleHideBuilder:function(){l("#post-status-info").show().removeClass("for-siteorigin-panels")},wrapEditorExpandAdjust:function(){try{for(var e,t=(l.hasData(window)&&l._data(window)).events.scroll,i=0;i<t.length;i++)if("editor-expand"===t[i].namespace){e=t[i],l(window).unbind("scroll",e.handler),l(window).bind("scroll",function(t){this.attachedVisible||e.handler(t)}.bind(this));break}}catch(e){return}},handleBuilderSizing:function(){var e=this.$el.width();return e?(e<480?this.$el.addClass("so-display-narrow"):this.$el.removeClass("so-display-narrow"),this):this},setDialogParents:function(e,t){_.each(this.dialogs,function(i,s,l){l[s].setParent(e,t)}),this.on("add_dialog",function(i){i.setParent(e,t)},this)},toggleWelcomeDisplay:function(){this.model.get("rows").isEmpty()?this.$(".so-panels-welcome-message").show():this.$(".so-panels-welcome-message").hide()},activateContextMenu:function(e,t){var i=this,s=l(".siteorigin-panels-builder:visible").sort(function(e,t){return l(e).zIndex()>l(t).zIndex()?1:-1}).last(),o=l(".so-panels-dialog-wrapper:visible").sort(function(e,t){return l(e).zIndex()>l(t).zIndex()?1:-1}).last(),n=i.$el.closest(".so-panels-dialog-wrapper");if((i.$el.is(s)||i.$el.parent().is(".siteorigin-panels-layout-block-container"))&&(0===o.length||o.is(n))){var a=l([]).add(i.$(".so-panels-welcome-message:visible")).add(i.$(".so-rows-container > .so-row-container")).add(i.$(".so-cells > .cell")).add(i.$(".cell-wrapper > .so-widget")).filter(function(i){return t.isOverEl(l(this),e)}),r=a.last().data("view");void 0!==r&&void 0!==r.buildContextualMenu?r.buildContextualMenu(e,t):a.last().hasClass("so-panels-welcome-message")&&this.buildContextualMenu(e,t)}},buildContextualMenu:function(e,t){var i={};this.supports("addRow")&&(i.add_row={title:panelsOptions.loc.contextual.add_row}),s.helpers.clipboard.canCopyPaste()&&s.helpers.clipboard.isModel("row-model")&&this.supports("addRow")&&(i.paste_row={title:panelsOptions.loc.contextual.row_paste}),_.isEmpty(i)||t.addSection("builder-actions",{sectionTitle:panelsOptions.loc.contextual.row_actions,search:!1},i,function(e){switch(e){case"add_row":this.displayAddRowDialog();break;case"paste_row":this.pasteRowHandler()}}.bind(this))}})},{}],24:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-cell").html())),events:{"click .cell-wrapper":"handleCellClick"},row:null,widgetSortable:null,initialize:function(){this.model.get("widgets").on("add",this.onAddWidget,this)},render:function(){var e={weight:this.model.get("weight"),totalWeight:this.row.model.get("cells").totalWeight()};this.setElement(this.template(e)),this.$el.data("view",this);var t=this;return this.model.get("widgets").each(function(e){var i=new s.view.widget({model:e});i.cell=t,i.render(),i.$el.appendTo(t.$(".widgets-container"))}),this.initSortable(),this.initResizable(),this},initSortable:function(){if(!this.row.builder.supports("moveWidget"))return this;var e=this,t=e.row.builder.model;return this.widgetSortable=this.$(".widgets-container").sortable({placeholder:"so-widget-sortable-highlight",connectWith:".so-cells .cell .widgets-container",tolerance:"pointer",scroll:!1,over:function(t,i){e.row.builder.trigger("widget_sortable_move")},remove:function(i,s){e.model.get("widgets").remove(l(s.item).data("view").model,{silent:!0}),t.refreshPanelsData()},receive:function(i,s){var o=l(s.item).data("view").model;o.cell=e.model,e.model.get("widgets").add(o,{silent:!0,at:l(s.item).index()}),t.refreshPanelsData()},stop:function(i,s){var o=l(s.item),n=o.data("view"),a=o.closest(".cell").data("view");e.model.get("widgets").get(n.model)&&(e.row.builder.addHistoryEntry("widget_moved"),n.model.moveToCell(a.model,{},o.index()),n.cell=a,t.refreshPanelsData())},helper:function(e,t){var i=t.clone().css({width:t.outerWidth(),"z-index":1e4,position:"fixed"}).addClass("widget-being-dragged").appendTo("body");return t.outerWidth()>720&&i.animate({"margin-left":e.pageX-t.offset().left-240,width:480},"fast"),i}}),this},refreshSortable:function(){_.isNull(this.widgetSortable)||this.widgetSortable.sortable("refresh")},initResizable:function(){if(!this.row.builder.supports("editRow"))return this;var e,t=this.$(".resize-handle").css("position","absolute"),i=this.row.$el,s=this;return t.draggable({axis:"x",containment:i,start:function(t,i){if(e=s.$el.prev().data("view"),!_.isUndefined(e)){var o=s.$el.clone().appendTo(i.helper).css({position:"absolute",top:"0",width:s.$el.outerWidth(),left:5,height:s.$el.outerHeight()});o.find(".resize-handle").remove();var n=e.$el.clone().appendTo(i.helper).css({position:"absolute",top:"0",width:e.$el.outerWidth(),right:5,height:e.$el.outerHeight()});n.find(".resize-handle").remove(),l(this).data({newCellClone:o,prevCellClone:n})}},drag:function(i,o){var n=s.row.$el.width()+10,a=s.model.get("weight")-(o.position.left+t.outerWidth()/2)/n,r=e.model.get("weight")+(o.position.left+t.outerWidth()/2)/n;l(this).data("newCellClone").css("width",n*a).find(".preview-cell-weight").html(Math.round(1e3*a)/10),l(this).data("prevCellClone").css("width",n*r).find(".preview-cell-weight").html(Math.round(1e3*r)/10)},stop:function(i,o){l(this).data("newCellClone").remove(),l(this).data("prevCellClone").remove();var n=s.row.$el.width()+10,a=s.model.get("weight")-(o.position.left+t.outerWidth()/2)/n,r=e.model.get("weight")+(o.position.left+t.outerWidth()/2)/n;a>.02&&r>.02&&(s.row.builder.addHistoryEntry("cell_resized"),s.model.set("weight",a),e.model.set("weight",r),s.row.resize()),o.helper.css("left",-t.outerWidth()/2),s.row.builder.model.refreshPanelsData()}}),this},onAddWidget:function(e,t,i){i=_.extend({noAnimate:!1},i);var l=new s.view.widget({model:e});l.cell=this,_.isUndefined(e.isDuplicate)&&(e.isDuplicate=!1),l.render({loadForm:e.isDuplicate}),_.isUndefined(i.at)||t.length<=1?l.$el.appendTo(this.$(".widgets-container")):l.$el.insertAfter(this.$(".widgets-container .so-widget").eq(i.at-1)),!1===i.noAnimate&&l.visualCreate(),this.refreshSortable(),this.row.resize(),this.row.builder.trigger("widget_added")},handleCellClick:function(e){this.row.builder.$el.find(".so-cells .cell").removeClass("cell-selected"),this.row.builder.activeCell!==this||this.model.get("widgets").length?(this.$el.addClass("cell-selected"),this.row.builder.activeCell=this):this.row.builder.activeCell=null},pasteHandler:function(){var e=s.helpers.clipboard.getModel("widget-model");!_.isEmpty(e)&&e instanceof s.model.widget&&(this.row.builder.addHistoryEntry("widget_pasted"),e.cell=this.model,this.model.get("widgets").add(e),this.row.builder.model.refreshPanelsData())},buildContextualMenu:function(e,t){var i=this;t.hasSection("add-widget-below")||t.addSection("add-widget-cell",{sectionTitle:panelsOptions.loc.contextual.add_widget_cell,searchPlaceholder:panelsOptions.loc.contextual.search_widgets,defaultDisplay:panelsOptions.contextual.default_widgets},panelsOptions.widgets,function(e){i.row.builder.addHistoryEntry("widget_added");var t=new s.model.widget({class:e});t.cell=i.model,t.cell.get("widgets").add(t),i.row.builder.model.refreshPanelsData()});var l={};this.row.builder.supports("addWidget")&&s.helpers.clipboard.isModel("widget-model")&&(l.paste={title:panelsOptions.loc.contextual.cell_paste_widget}),_.isEmpty(l)||t.addSection("cell-actions",{sectionTitle:panelsOptions.loc.contextual.cell_actions,search:!1},l,function(e){switch(e){case"paste":this.pasteHandler()}this.row.builder.model.refreshPanelsData()}.bind(this)),this.row.buildContextualMenu(e,t)}})},{}],25:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({dialogTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog").html())),dialogTabTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-tab").html())),tabbed:!1,rendered:!1,builder:!1,className:"so-panels-dialog-wrapper",dialogClass:"",dialogIcon:"",parentDialog:!1,dialogOpen:!1,editableLabel:!1,events:{"click .so-close":"closeDialog","click .so-nav.so-previous":"navToPrevious","click .so-nav.so-next":"navToNext"},initialize:function(){this.once("open_dialog",this.render),this.once("open_dialog",this.attach),this.once("open_dialog",this.setDialogClass),this.trigger("initialize_dialog",this),_.isUndefined(this.initializeDialog)||this.initializeDialog()},getNextDialog:function(){return null},getPrevDialog:function(){return null},setDialogClass:function(){""!==this.dialogClass&&this.$(".so-panels-dialog").addClass(this.dialogClass)},setBuilder:function(e){return this.builder=e,e.trigger("add_dialog",this,this.builder),this},attach:function(){return this.$el.appendTo("body"),this},parseDialogContent:function(e,t){t=_.extend({cid:this.cid},t);var i=l(_.template(s.helpers.utils.processTemplate(e))(t)),o={title:i.find(".title").html(),buttons:i.find(".buttons").html(),content:i.find(".content").html()};return i.has(".left-sidebar")&&(o.left_sidebar=i.find(".left-sidebar").html()),i.has(".right-sidebar")&&(o.right_sidebar=i.find(".right-sidebar").html()),o},renderDialog:function(e){if(e=_.extend({editableLabel:this.editableLabel,dialogIcon:this.dialogIcon},e),this.$el.html(this.dialogTemplate(e)).hide(),this.$el.data("view",this),this.$el.addClass("so-panels-dialog-wrapper"),!1!==this.parentDialog){var t=this,i=l('<h3 class="so-parent-link"></h3>').html(this.parentDialog.text+'<div class="so-separator"></div>');i.click(function(e){e.preventDefault(),t.closeDialog(),t.parentDialog.openDialog()}),this.$(".so-title-bar").prepend(i)}return this.$(".so-title-bar .so-title-editable").length&&this.initEditableLabel(),this},initTabs:function(){var e=this.$(".so-sidebar-tabs li a");if(0===e.length)return this;var t=this;return e.click(function(e){e.preventDefault();var i=l(this);t.$(".so-sidebar-tabs li").removeClass("tab-active"),t.$(".so-content .so-content-tabs > *").hide(),i.parent().addClass("tab-active");var s=i.attr("href");if(!_.isUndefined(s)&&"#"===s.charAt(0)){var o=s.split("#")[1];t.$(".so-content .so-content-tabs .tab-"+o).show()}t.trigger("tab_click",i)}),this.$(".so-sidebar-tabs li a").first().click(),this},initToolbar:function(){this.$(".so-toolbar .so-buttons .so-toolbar-button").click(function(e){e.preventDefault(),this.trigger("button_click",l(e.currentTarget))}.bind(this)),this.$(".so-toolbar .so-buttons .so-dropdown-button").click(function(e){e.preventDefault();var t=l(e.currentTarget),i=t.siblings(".so-dropdown-links-wrapper");i.is(".hidden")?i.removeClass("hidden"):i.addClass("hidden")}.bind(this)),l("html").click(function(e){this.$(".so-dropdown-links-wrapper").not(".hidden").each(function(t,i){var s=l(i),o=l(e.target);0!==o.length&&(o.is(".so-needs-confirm")&&!o.is(".so-confirmed")||o.is(".so-dropdown-button"))||s.addClass("hidden")})}.bind(this))},initEditableLabel:function(){var e=this.$(".so-title-bar .so-title-editable");e.keypress(function(t){var i="keypress"===t.type&&13===t.keyCode;if(i){var s=l(":tabbable"),o=s.index(e);s.eq(o+1).focus(),window.getSelection().removeAllRanges()}return!i}).blur(function(){var t=e.text().replace(/^\s+|\s+$/gm,"");t!==e.data("original-value").replace(/^\s+|\s+$/gm,"")&&(e.text(t),this.trigger("edit_label",t))}.bind(this)),e.focus(function(){e.data("original-value",e.text()),s.helpers.utils.selectElementContents(this)})},setupDialog:function(){this.openDialog(),this.closeDialog()},refreshDialogNav:function(){this.$(".so-title-bar .so-nav").show().removeClass("so-disabled");var e=this.getNextDialog(),t=this.$(".so-title-bar .so-next"),i=this.getPrevDialog(),s=this.$(".so-title-bar .so-previous");null===e?t.hide():!1===e&&t.addClass("so-disabled"),null===i?s.hide():!1===i&&s.addClass("so-disabled")},openDialog:function(e){e=_.extend({silent:!1},e),e.silent||this.trigger("open_dialog"),this.dialogOpen=!0,this.refreshDialogNav(),s.helpers.pageScroll.lock(),l(window).on("keyup",this.keyboardListen),this.$el.show(),e.silent||(this.trigger("open_dialog_complete"),this.builder.trigger("open_dialog",this),l(document).trigger("open_dialog",this))},closeDialog:function(e){e=_.extend({silent:!1},e),e.silent||this.trigger("close_dialog"),this.dialogOpen=!1,this.$el.hide(),s.helpers.pageScroll.unlock(),l(window).off("keyup",this.keyboardListen),e.silent||(this.trigger("close_dialog_complete"),this.builder.trigger("close_dialog",this))},keyboardListen:function(e){27===e.which&&l(".so-panels-dialog-wrapper .so-close").trigger("click")},navToPrevious:function(){this.closeDialog();var e=this.getPrevDialog();null!==e&&!1!==e&&e.openDialog()},navToNext:function(){this.closeDialog();var e=this.getNextDialog();null!==e&&!1!==e&&e.openDialog()},getFormValues:function(e){_.isUndefined(e)&&(e=".so-content");var t,i=this.$(e),s={};return i.find("[name]").each(function(){var e=l(this);try{var i=/([A-Za-z_]+)\[(.*)\]/.exec(e.attr("name"));if(_.isEmpty(i))return!0;_.isUndefined(i[2])?t=e.attr("name"):(t=i[2].split("]["),t.unshift(i[1])),t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var o=s,n=null,a=!!_.isString(e.attr("type"))&&e.attr("type").toLowerCase();if("checkbox"===a)n=e.is(":checked")?""===e.val()||e.val():null;else if("radio"===a){if(!e.is(":checked"))return;n=e.val()}else if("SELECT"===e.prop("tagName")){var r=e.find("option:selected");1===r.length?n=e.find("option:selected").val():r.length>1&&(n=_.map(e.find("option:selected"),function(e,t){return l(e).val()}))}else n=e.val();if(!_.isUndefined(e.data("panels-filter")))switch(e.data("panels-filter")){case"json_parse":try{n=JSON.parse(n)}catch(e){n=""}}if(null!==n)for(var d=0;d<t.length;d++)d===t.length-1?""===t[d]?o.push(n):o[t[d]]=n:(_.isUndefined(o[t[d]])&&(""===t[d+1]?o[t[d]]=[]:o[t[d]]={}),o=o[t[d]])}catch(t){console.log("Field ["+e.attr("name")+"] could not be processed and was skipped - "+t.message)}}),s},setStatusMessage:function(e,t,i){var s=i?'<span class="dashicons dashicons-warning"></span>'+e:e;this.$(".so-toolbar .so-status").html(s),!_.isUndefined(t)&&t?this.$(".so-toolbar .so-status").addClass("so-panels-loading"):this.$(".so-toolbar .so-status").removeClass("so-panels-loading")},setParent:function(e,t){this.parentDialog={text:e,dialog:t}}})},{}],26:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-live-editor").html())),previewScrollTop:0,loadTimes:[],previewFrameId:1,previewUrl:null,previewIframe:null,events:{"click .live-editor-close":"close","click .live-editor-collapse":"collapse","click .live-editor-mode":"mobileToggle"},initialize:function(e){e=_.extend({builder:!1,previewUrl:!1},e),_.isEmpty(e.previewUrl)&&(e.previewUrl=panelsOptions.ajaxurl+"&action=so_panels_live_editor_preview"),this.builder=e.builder,this.previewUrl=e.previewUrl,this.builder.model.on("refresh_panels_data",this.handleRefreshData,this),this.builder.model.on("load_panels_data",this.handleLoadData,this)},render:function(){this.setElement(this.template()),this.$el.hide();var e=this,t=!1;return l(document).mousedown(function(){t=!0}).mouseup(function(){t=!1}),this.$el.on("mouseenter",".so-widget-wrapper",function(){var i=l(this),s=i.data("live-editor-preview-widget");t||void 0===s||!s.length||e.$(".so-preview-overlay").is(":visible")||(e.highlightElement(s),e.scrollToElement(s))}),e.$el.on("mouseleave",".so-widget-wrapper",function(){e.resetHighlights()}),e.builder.on("open_dialog",function(){e.resetHighlights()}),this},attach:function(){this.$el.appendTo("body")},open:function(){if(""===this.$el.html()&&this.render(),0===this.$el.closest("body").length&&this.attach(),s.helpers.pageScroll.lock(),this.$el.is(":visible"))return this;if(this.$el.show(),this.refreshPreview(this.builder.model.getPanelsData()),this.originalContainer=this.builder.$el.parent(),this.builder.$el.appendTo(this.$(".so-live-editor-builder")),this.builder.$(".so-tool-button.so-live-editor").hide(),this.builder.trigger("builder_resize"),"auto-draft"===l("#original_post_status").val()&&!this.autoSaved){var e=this;wp.autosave&&(""===l('#title[name="post_title"]').val()&&l('#title[name="post_title"]').val(panelsOptions.loc.draft).trigger("keydown"),l(document).one("heartbeat-tick.autosave",function(){e.autoSaved=!0,e.refreshPreview(e.builder.model.getPanelsData())}),wp.autosave.server.triggerSave())}},close:function(){if(!this.$el.is(":visible"))return this;this.$el.hide(),s.helpers.pageScroll.unlock(),this.builder.$el.appendTo(this.originalContainer),this.builder.$(".so-tool-button.so-live-editor").show(),this.builder.trigger("builder_resize")},collapse:function(){this.$el.toggleClass("so-collapsed");var e=this.$(".live-editor-collapse span");e.html(e.data(this.$el.hasClass("so-collapsed")?"expand":"collapse"))},highlightElement:function(e){_.isUndefined(this.resetHighlightTimeout)||clearTimeout(this.resetHighlightTimeout),this.previewIframe.contents().find("body").find(".panel-grid .panel-grid-cell .so-panel").filter(function(){return 0===l(this).parents(".so-panel").length}).not(e).addClass("so-panels-faded"),e.removeClass("so-panels-faded").addClass("so-panels-highlighted")},resetHighlights:function(){var e=this.previewIframe.contents().find("body");this.resetHighlightTimeout=setTimeout(function(){e.find(".panel-grid .panel-grid-cell .so-panel").removeClass("so-panels-faded so-panels-highlighted")},100)},scrollToElement:function(e){this.$(".so-preview iframe")[0].contentWindow.liveEditorScrollTo(e)},handleRefreshData:function(e,t){if(!this.$el.is(":visible"))return this;this.refreshPreview(e)},handleLoadData:function(){if(!this.$el.is(":visible"))return this;this.refreshPreview(this.builder.model.getPanelsData())},refreshPreview:function(e){var t=this.loadTimes.length?_.reduce(this.loadTimes,function(e,t){return e+t},0)/this.loadTimes.length:1e3;_.isNull(this.previewIframe)||this.$(".so-preview-overlay").is(":visible")||(this.previewScrollTop=this.previewIframe.contents().scrollTop()),this.$(".so-preview-overlay").show(),this.$(".so-preview-overlay .so-loading-bar").clearQueue().css("width","0%").animate({width:"100%"},parseInt(t)+100),this.postToIframe({live_editor_panels_data:JSON.stringify(e),live_editor_post_ID:this.builder.config.postId},this.previewUrl,this.$(".so-preview")),this.previewIframe.data("load-start",(new Date).getTime())},postToIframe:function(e,t,i){_.isNull(this.previewIframe)||this.previewIframe.remove();var s="siteorigin-panels-live-preview-"+this.previewFrameId;this.previewIframe=l('<iframe src="javascript:false;" />').attr({id:s,name:s}).appendTo(i),this.setupPreviewFrame(this.previewIframe);var o=l('<form id="soPostToPreviewFrame" method="post" />').attr({id:s,target:this.previewIframe.attr("id"),action:t}).appendTo("body");return l.each(e,function(e,t){l('<input type="hidden" />').attr({name:e,value:t}).appendTo(o)}),o.submit().remove(),this.previewFrameId++,this.previewIframe},setupPreviewFrame:function(e){var t=this;e.data("iframeready",!1).on("iframeready",function(){var e=l(this),i=e.contents();if(!e.data("iframeready")){e.data("iframeready",!0),void 0!==e.data("load-start")&&(t.loadTimes.unshift((new Date).getTime()-e.data("load-start")),_.isEmpty(t.loadTimes)||(t.loadTimes=t.loadTimes.slice(0,4))),setTimeout(function(){i.scrollTop(t.previewScrollTop),t.$(".so-preview-overlay").hide()},100);var s=i.find("#pl-"+t.builder.config.postId);s.find(".panel-grid .panel-grid-cell .so-panel").filter(function(){return l(this).closest(".panel-layout").is(s)}).each(function(e,i){var s=l(i),o=t.$(".so-live-editor-builder .so-widget-wrapper").eq(s.data("index"));o.data("live-editor-preview-widget",s),s.css({cursor:"pointer"}).mouseenter(function(){o.parent().addClass("so-hovered"),t.highlightElement(s)}).mouseleave(function(){o.parent().removeClass("so-hovered"),t.resetHighlights()}).click(function(e){e.preventDefault(),o.find(".title h4").click()})}),i.find("a").css({"pointer-events":"none"}).click(function(e){e.preventDefault()})}}).on("load",function(){var e=l(this);e.data("iframeready")||e.trigger("iframeready")})},hasPreviewUrl:function(){return""!==this.$("form.live-editor-form").attr("action")},mobileToggle:function(e){var t=l(e.currentTarget);this.$(".live-editor-mode").not(t).removeClass("so-active"),t.addClass("so-active"),this.$el.removeClass("live-editor-desktop-mode live-editor-tablet-mode live-editor-mobile-mode").addClass("live-editor-"+t.data("mode")+"-mode")}})},{}],27:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-row").html())),events:{"click .so-row-settings":"editSettingsHandler","click .so-row-duplicate":"duplicateHandler","click .so-row-delete":"confirmedDeleteHandler","click .so-row-color":"rowColorChangeHandler"},builder:null,dialog:null,initialize:function(){var e=this.model.get("cells");e.on("add",this.handleCellAdd,this),e.on("remove",this.handleCellRemove,this),this.model.on("reweight_cells",this.resize,this),this.model.on("destroy",this.onModelDestroy,this),this.model.on("visual_destroy",this.visualDestroyModel,this);var t=this;e.each(function(e){t.listenTo(e.get("widgets"),"add",t.resize)}),e.on("add",function(e){t.listenTo(e.get("widgets"),"add",t.resize)},this),this.model.on("change:label",this.onLabelChange,this)},render:function(){var e=this.model.has("color_label")?this.model.get("color_label"):1,t=this.model.has("label")?this.model.get("label"):"";this.setElement(this.template({rowColorLabel:e,rowLabel:t})),this.$el.data("view",this);var i=this;return this.model.get("cells").each(function(e){var t=new s.view.cell({model:e});t.row=i,t.render(),t.$el.appendTo(i.$(".so-cells"))}),this.builder.supports("rowAction")?(this.builder.supports("editRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-settings").parent().remove(),this.$el.addClass("so-row-no-edit")),this.builder.supports("addRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-duplicate").parent().remove(),this.$el.addClass("so-row-no-duplicate")),this.builder.supports("deleteRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-delete").parent().remove(),this.$el.addClass("so-row-no-delete"))):(this.$(".so-row-toolbar .so-dropdown-wrapper").remove(),this.$el.addClass("so-row-no-actions")),this.builder.supports("moveRow")||(this.$(".so-row-toolbar .so-row-move").remove(),this.$el.addClass("so-row-no-move")),l.trim(this.$(".so-row-toolbar").html()).length||this.$(".so-row-toolbar").remove(),this.builder.on("widget_sortable_move",this.resize,this),this.builder.on("builder_resize",this.resize,this),this.resize(),this},visualCreate:function(){this.$el.hide().fadeIn("fast")},resize:function(e){if(this.$el.is(":visible")){this.$(".so-cells .cell-wrapper").css("min-height",0),this.$(".so-cells .resize-handle").css("height",0);var t=0;this.$(".so-cells .cell").each(function(){t=Math.max(t,l(this).height()),l(this).css("width",100*l(this).data("view").model.get("weight")+"%")}),this.$(".so-cells .cell-wrapper").css("min-height",Math.max(t,63)),this.$(".so-cells .resize-handle").css("height",this.$(".so-cells .cell-wrapper").outerHeight())}},onModelDestroy:function(){this.remove()},visualDestroyModel:function(){this.builder.addHistoryEntry("row_deleted");var e=this;this.$el.fadeOut("normal",function(){e.model.destroy(),e.builder.model.refreshPanelsData()})},onLabelChange:function(e,t){0==this.$(".so-row-label").length?this.$(".so-row-toolbar").prepend('<h3 class="so-row-label">'+t+"</h3>"):this.$(".so-row-label").text(t)},duplicateHandler:function(){this.builder.addHistoryEntry("row_duplicated");var e=this.model.clone(this.builder.model);this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData()},copyHandler:function(){s.helpers.clipboard.setModel(this.model)},pasteHandler:function(){var e=s.helpers.clipboard.getModel("row-model");!_.isEmpty(e)&&e instanceof s.model.row&&(this.builder.addHistoryEntry("row_pasted"),e.builder=this.builder.model,this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData())},confirmedDeleteHandler:function(e){var t=l(e.target);if(t.hasClass("dashicons")&&(t=l.parent()),t.hasClass("so-confirmed"))this.visualDestroyModel();else{var i=t.html();t.addClass("so-confirmed").html('<span class="dashicons dashicons-yes"></span>'+panelsOptions.loc.dropdown_confirm),setTimeout(function(){t.removeClass("so-confirmed").html(i)},2500)}},editSettingsHandler:function(){if(this.builder.supports("editRow"))return null===this.dialog&&(this.dialog=new s.dialog.row,this.dialog.setBuilder(this.builder).setRowModel(this.model)),this.dialog.openDialog(),this},deleteHandler:function(){return this.model.destroy(),this},rowColorChangeHandler:function(e){this.$(".so-row-color").removeClass("so-row-color-selected");var t=l(e.target),i=t.data("color-label"),s=this.model.has("color_label")?this.model.get("color_label"):1;t.addClass("so-row-color-selected"),this.$el.removeClass("so-row-color-"+s),this.$el.addClass("so-row-color-"+i),this.model.set("color_label",i)},handleCellAdd:function(e){var t=new s.view.cell({model:e});t.row=this,t.render(),t.$el.appendTo(this.$(".so-cells"))},handleCellRemove:function(e){this.$(".so-cells > .cell").each(function(){var t=l(this).data("view");_.isUndefined(t)||t.model.cid===e.cid&&t.remove()})},buildContextualMenu:function(e,t){for(var i=[],l=1;l<5;l++)i.push({title:l+" "+panelsOptions.loc.contextual.column});this.builder.supports("addRow")&&t.addSection("add-row",{sectionTitle:panelsOptions.loc.contextual.add_row,search:!1},i,function(e){this.builder.addHistoryEntry("row_added");for(var t=Number(e)+1,i=[],l=0;l<t;l++)i.push({weight:100/t});var o=new s.model.row({collection:this.collection}),n=new s.collection.cells(i);n.each(function(e){e.row=o}),o.setCells(n),o.builder=this.builder.model,this.builder.model.get("rows").add(o,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData()}.bind(this));var o={};this.builder.supports("editRow")&&(o.edit={title:panelsOptions.loc.contextual.row_edit}),s.helpers.clipboard.canCopyPaste()&&(o.copy={title:panelsOptions.loc.contextual.row_copy},this.builder.supports("addRow")&&s.helpers.clipboard.isModel("row-model")&&(o.paste={title:panelsOptions.loc.contextual.row_paste})),this.builder.supports("addRow")&&(o.duplicate={title:panelsOptions.loc.contextual.row_duplicate}),this.builder.supports("deleteRow")&&(o.delete={title:panelsOptions.loc.contextual.row_delete,confirm:!0}),_.isEmpty(o)||t.addSection("row-actions",{sectionTitle:panelsOptions.loc.contextual.row_actions,search:!1},o,function(e){switch(e){case"edit":this.editSettingsHandler();break;case"copy":this.copyHandler();break;case"paste":this.pasteHandler();break;case"duplicate":this.duplicateHandler();break;case"delete":this.visualDestroyModel()}}.bind(this))}})},{}],28:[function(e,t,i){var s=(window.panels,jQuery);t.exports=Backbone.View.extend({stylesLoaded:!1,initialize:function(){},render:function(e,t,i){if(!_.isUndefined(e)){i=_.extend({builderType:"",dialog:null},i),this.$el.addClass("so-visual-styles so-"+e+"-styles so-panels-loading");var l={builderType:i.builderType};return"cell"===e&&(l.index=i.index),s.post(panelsOptions.ajaxurl,{action:"so_panels_style_form",type:e,style:this.model.get("style"),args:JSON.stringify(l),postId:t},null,"html").done(function(e){this.$el.html(e),this.setupFields(),this.stylesLoaded=!0,this.trigger("styles_loaded",!_.isEmpty(e)),_.isNull(i.dialog)||i.dialog.trigger("styles_loaded",!_.isEmpty(e))}.bind(this)).fail(function(e){var t;t=e&&e.responseText?e.responseText:panelsOptions.forms.loadingFailed,this.$el.html(t)}.bind(this)).always(function(){this.$el.removeClass("so-panels-loading")}.bind(this)),this}},attach:function(e){e.append(this.$el)},detach:function(){this.$el.detach()},setupFields:function(){this.$(".style-section-wrapper").each(function(){var e=s(this);e.find(".style-section-head").click(function(t){t.preventDefault(),e.find(".style-section-fields").slideToggle("fast")})}),_.isUndefined(s.fn.wpColorPicker)||(_.isObject(panelsOptions.wpColorPickerOptions.palettes)&&!s.isArray(panelsOptions.wpColorPickerOptions.palettes)&&(panelsOptions.wpColorPickerOptions.palettes=s.map(panelsOptions.wpColorPickerOptions.palettes,function(e){return e})),this.$(".so-wp-color-field").wpColorPicker(panelsOptions.wpColorPickerOptions)),this.$(".style-field-image").each(function(){var e=null,t=s(this);t.find(".so-image-selector").click(function(i){i.preventDefault(),null===e&&(e=wp.media({title:"choose",library:{type:"image"},button:{text:"Done",close:!0}}),
4
- e.on("select",function(){var i=e.state().get("selection").first().attributes,s=i.url;if(!_.isUndefined(i.sizes))try{s=i.sizes.thumbnail.url}catch(e){s=i.sizes.full.url}t.find(".current-image").css("background-image","url("+s+")"),t.find(".so-image-selector > input").val(i.id),t.find(".remove-image").removeClass("hidden")})),e.open()}),t.find(".remove-image").click(function(e){e.preventDefault(),t.find(".current-image").css("background-image","none"),t.find(".so-image-selector > input").val(""),t.find(".remove-image").addClass("hidden")})}),this.$(".style-field-measurement").each(function(){var e=s(this),t=e.find('input[type="text"]'),i=e.find("select"),l=e.find('input[type="hidden"]');t.focus(function(){s(this).select()});!function(e){if(""!==e){var o=/(?:([0-9\.,\-]+)(.*))+/,n=l.val().split(" "),a=[];for(var r in n){var d=o.exec(n[r]);_.isNull(d)||_.isUndefined(d[1])||_.isUndefined(d[2])||(a.push(d[1]),i.val(d[2]))}1===t.length?t.val(a.join(" ")):(1===a.length?a=[a[0],a[0],a[0],a[0]]:2===a.length?a=[a[0],a[1],a[0],a[1]]:3===a.length&&(a=[a[0],a[1],a[2],a[1]]),t.each(function(e,t){s(t).val(a[e])}))}}(l.val());var o=function(e){if(1===t.length){var o=t.val().split(" ").filter(function(e){return""!==e}).map(function(e){return e+i.val()}).join(" ");l.val(o)}else{var n=s(e.target),a=[],r=[],d=[];t.each(function(e,t){var i=""!==s(t).val()?parseFloat(s(t).val()):null;a.push(i),null===i?r.push(e):d.push(e)}),3===r.length&&d[0]===t.index(n)&&(t.val(n.val()),a=[n.val(),n.val(),n.val(),n.val()]),JSON.stringify(a)===JSON.stringify([null,null,null,null])?l.val(""):l.val(a.map(function(e){return(null===e?0:e)+i.val()}).join(" "))}};t.change(o),i.change(o)})}})},{}],29:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-widget").html())),cell:null,dialog:null,events:{"click .widget-edit":"editHandler","click .title h4":"titleClickHandler","click .actions .widget-duplicate":"duplicateHandler","click .actions .widget-delete":"deleteHandler"},initialize:function(){this.model.on("user_edit",this.editHandler,this),this.model.on("user_duplicate",this.duplicateHandler,this),this.model.on("destroy",this.onModelDestroy,this),this.model.on("visual_destroy",this.visualDestroyModel,this),this.model.on("change:values",this.onModelChange,this),this.model.on("change:label",this.onLabelChange,this)},render:function(e){if(e=_.extend({loadForm:!1},e),this.setElement(this.template({title:this.model.getWidgetField("title"),description:this.model.getTitle()})),this.$el.data("view",this),this.cell.row.builder.supports("editWidget")&&!this.model.get("read_only")||(this.$(".actions .widget-edit").remove(),this.$el.addClass("so-widget-no-edit")),this.cell.row.builder.supports("addWidget")||(this.$(".actions .widget-duplicate").remove(),this.$el.addClass("so-widget-no-duplicate")),this.cell.row.builder.supports("deleteWidget")||(this.$(".actions .widget-delete").remove(),this.$el.addClass("so-widget-no-delete")),this.cell.row.builder.supports("moveWidget")||this.$el.addClass("so-widget-no-move"),l.trim(this.$(".actions").html()).length||this.$(".actions").remove(),this.model.get("read_only")&&this.$el.addClass("so-widget-read-only"),0===_.size(this.model.get("values"))||e.loadForm){var t=this.getEditDialog();t.once("form_loaded",t.saveWidget,t),t.setupDialog()}return this},visualCreate:function(){this.$el.hide().fadeIn("fast")},getEditDialog:function(){return null===this.dialog&&(this.dialog=new s.dialog.widget({model:this.model}),this.dialog.setBuilder(this.cell.row.builder),this.dialog.widgetView=this),this.dialog},editHandler:function(){this.getEditDialog().openDialog()},titleClickHandler:function(e){return!this.cell.row.builder.supports("editWidget")||this.model.get("read_only")?this:(this.editHandler(),this)},duplicateHandler:function(){this.cell.row.builder.addHistoryEntry("widget_duplicated");var e=this.model.clone(this.model.cell);return this.cell.model.get("widgets").add(e,{at:this.model.collection.indexOf(this.model)+1}),this.cell.row.builder.model.refreshPanelsData(),this},copyHandler:function(){s.helpers.clipboard.setModel(this.model)},deleteHandler:function(){return this.model.trigger("visual_destroy"),this},onModelChange:function(){this.$(".description").html(this.model.getTitle())},onLabelChange:function(e){this.$(".title > h4").text(e.getWidgetField("title"))},onModelDestroy:function(){this.remove()},visualDestroyModel:function(){this.cell.row.builder.addHistoryEntry("widget_deleted");var e=this;return this.$el.fadeOut("fast",function(){e.cell.row.resize(),e.model.destroy(),e.cell.row.builder.model.refreshPanelsData(),e.remove()}),this},buildContextualMenu:function(e,t){this.cell.row.builder.supports("addWidget")&&t.addSection("add-widget-below",{sectionTitle:panelsOptions.loc.contextual.add_widget_below,searchPlaceholder:panelsOptions.loc.contextual.search_widgets,defaultDisplay:panelsOptions.contextual.default_widgets},panelsOptions.widgets,function(e){this.cell.row.builder.addHistoryEntry("widget_added");var t=new s.model.widget({class:e});t.cell=this.cell.model,this.cell.model.get("widgets").add(t,{at:this.model.collection.indexOf(this.model)+1}),this.cell.row.builder.model.refreshPanelsData()}.bind(this));var i={};this.cell.row.builder.supports("editWidget")&&!this.model.get("read_only")&&(i.edit={title:panelsOptions.loc.contextual.widget_edit}),s.helpers.clipboard.canCopyPaste()&&(i.copy={title:panelsOptions.loc.contextual.widget_copy}),this.cell.row.builder.supports("addWidget")&&(i.duplicate={title:panelsOptions.loc.contextual.widget_duplicate}),this.cell.row.builder.supports("deleteWidget")&&(i.delete={title:panelsOptions.loc.contextual.widget_delete,confirm:!0}),_.isEmpty(i)||t.addSection("widget-actions",{sectionTitle:panelsOptions.loc.contextual.widget_actions,search:!1},i,function(e){switch(e){case"edit":this.editHandler();break;case"copy":this.copyHandler();break;case"duplicate":this.duplicateHandler();break;case"delete":this.visualDestroyModel()}}.bind(this)),this.cell.buildContextualMenu(e,t)}})},{}],30:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.customHtmlWidgets,o=s("<div></div>"),n=t.find(".widget-content:first");n.before(o);var a=new l.CustomHtmlWidgetControl({el:o,syncContainer:n});return a.initializeEditor(),a.editor.codemirror.refresh(),a}};t.exports=l},{}],31:[function(e,t,i){var s=e("./custom-html-widget"),l=e("./media-widget"),o=e("./text-widget"),n={CUSTOM_HTML:"custom_html",MEDIA_AUDIO:"media_audio",MEDIA_GALLERY:"media_gallery",MEDIA_IMAGE:"media_image",MEDIA_VIDEO:"media_video",TEXT:"text",addWidget:function(e,t){var i,n=e.find("> .id_base").val();switch(n){case this.CUSTOM_HTML:i=s;break;case this.MEDIA_AUDIO:case this.MEDIA_GALLERY:case this.MEDIA_IMAGE:case this.MEDIA_VIDEO:i=l;break;case this.TEXT:i=o}i.addWidget(n,e,t)}};t.exports=n},{"./custom-html-widget":30,"./media-widget":32,"./text-widget":33}],32:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.mediaWidgets,o=l.controlConstructors[e];if(o){var n=l.modelConstructors[e]||l.MediaWidgetModel,a=t.find("> .widget-content"),r=s('<div class="media-widget-control"></div>');a.before(r);var d={};a.find(".media-widget-instance-property").each(function(){var e=s(this);d[e.data("property")]=e.val()}),d.widget_id=i;var c=new n(d),h=new o({el:r,syncContainer:a,model:c});return h.render(),h}}};t.exports=l},{}],33:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.textWidgets,o={},n=t.find(".visual");if(n.length>0){if(!n.val())return null;var a=s("<div></div>"),r=t.find(".widget-content:first");r.before(a),o={el:a,syncContainer:r}}else o={el:t};var d=new l.TextWidgetControl(o);return d.initializeEditor(),d}};t.exports=l},{}]},{},[16]);
 
 
 
 
js/{siteorigin-panels-269.js → siteorigin-panels-270.js} RENAMED
@@ -383,497 +383,506 @@ module.exports = panels.view.dialog.extend( {
383
  } );
384
 
385
  },{}],7:[function(require,module,exports){
386
- var panels = window.panels, $ = jQuery;
387
-
388
- module.exports = panels.view.dialog.extend( {
389
-
390
- directoryTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-directory-items' ).html() ) ),
391
-
392
- builder: null,
393
- dialogClass: 'so-panels-dialog-prebuilt-layouts',
394
- dialogIcon: 'layouts',
395
-
396
- layoutCache: {},
397
- currentTab: false,
398
- directoryPage: 1,
399
-
400
- events: {
401
- 'click .so-close': 'closeDialog',
402
- 'click .so-sidebar-tabs li a': 'tabClickHandler',
403
- 'click .so-content .layout': 'layoutClickHandler',
404
- 'keyup .so-sidebar-search': 'searchHandler',
405
-
406
- // The directory items
407
- 'click .so-screenshot, .so-title': 'directoryItemClickHandler'
408
- },
409
-
410
- /**
411
- * Initialize the prebuilt dialog.
412
- */
413
- initializeDialog: function () {
414
- var thisView = this;
415
-
416
- this.on( 'open_dialog', function () {
417
- thisView.$( '.so-sidebar-tabs li a' ).first().click();
418
- thisView.$( '.so-status' ).removeClass( 'so-panels-loading' );
419
- } );
420
-
421
- this.on( 'button_click', this.toolbarButtonClick, this );
422
- },
423
-
424
- /**
425
- * Render the prebuilt layouts dialog
426
- */
427
- render: function () {
428
- this.renderDialog( this.parseDialogContent( $( '#siteorigin-panels-dialog-prebuilt' ).html(), {} ) );
429
-
430
- this.initToolbar();
431
- },
432
-
433
- /**
434
- *
435
- * @param e
436
- * @return {boolean}
437
- */
438
- tabClickHandler: function ( e ) {
439
- e.preventDefault();
440
- // Reset selected item state when changing tabs
441
- this.selectedLayoutItem = null;
442
- this.uploadedLayout = null;
443
- this.updateButtonState( false );
444
-
445
- this.$( '.so-sidebar-tabs li' ).removeClass( 'tab-active' );
446
-
447
- var $$ = $( e.target );
448
- var tab = $$.attr( 'href' ).split( '#' )[1];
449
- $$.parent().addClass( 'tab-active' );
450
-
451
- var thisView = this;
452
-
453
- // Empty everything
454
- this.$( '.so-content' ).empty();
455
-
456
- thisView.currentTab = tab;
457
- if ( tab == 'import' ) {
458
- this.displayImportExport();
459
- } else {
460
- this.displayLayoutDirectory( '', 1, tab );
461
- }
462
-
463
- thisView.$( '.so-sidebar-search' ).val( '' );
464
- },
465
-
466
- /**
467
- * Display and setup the import/export form
468
- */
469
- displayImportExport: function () {
470
- var c = this.$( '.so-content' ).empty().removeClass( 'so-panels-loading' );
471
- c.html( $( '#siteorigin-panels-dialog-prebuilt-importexport' ).html() );
472
-
473
- var thisView = this;
474
- var uploadUi = thisView.$( '.import-upload-ui' ).hide();
475
-
476
- // Create the uploader
477
- var uploader = new plupload.Uploader( {
478
- runtimes: 'html5,silverlight,flash,html4',
479
-
480
- browse_button: uploadUi.find( '.file-browse-button' ).get( 0 ),
481
- container: uploadUi.get( 0 ),
482
- drop_element: uploadUi.find( '.drag-upload-area' ).get( 0 ),
483
-
484
- file_data_name: 'panels_import_data',
485
- multiple_queues: false,
486
- max_file_size: panelsOptions.plupload.max_file_size,
487
- url: panelsOptions.plupload.url,
488
- flash_swf_url: panelsOptions.plupload.flash_swf_url,
489
- silverlight_xap_url: panelsOptions.plupload.silverlight_xap_url,
490
- filters: [
491
- {title: panelsOptions.plupload.filter_title, extensions: 'json'}
492
- ],
493
-
494
- multipart_params: {
495
- action: 'so_panels_import_layout'
496
- },
497
-
498
- init: {
499
- PostInit: function ( uploader ) {
500
- if ( uploader.features.dragdrop ) {
501
- uploadUi.addClass( 'has-drag-drop' );
502
- }
503
- uploadUi.show().find( '.progress-precent' ).css( 'width', '0%' );
504
- },
505
- FilesAdded: function ( uploader ) {
506
- uploadUi.find( '.file-browse-button' ).blur();
507
- uploadUi.find( '.drag-upload-area' ).removeClass( 'file-dragover' );
508
- uploadUi.find( '.progress-bar' ).fadeIn( 'fast' );
509
- thisView.$( '.js-so-selected-file' ).text( panelsOptions.loc.prebuilt_loading );
510
- uploader.start();
511
- },
512
- UploadProgress: function ( uploader, file ) {
513
- uploadUi.find( '.progress-precent' ).css( 'width', file.percent + '%' );
514
- },
515
- FileUploaded: function ( uploader, file, response ) {
516
- var layout = JSON.parse( response.response );
517
- if ( ! _.isUndefined( layout.widgets ) ) {
518
-
519
- thisView.uploadedLayout = layout;
520
- uploadUi.find( '.progress-bar' ).hide();
521
- thisView.$( '.js-so-selected-file' ).text(
522
- panelsOptions.loc.ready_to_insert.replace( '%s', file.name )
523
- );
524
- thisView.updateButtonState( true );
525
- } else {
526
- alert( panelsOptions.plupload.error_message );
527
- }
528
- },
529
- Error: function () {
530
- alert( panelsOptions.plupload.error_message );
531
- }
532
- }
533
- } );
534
- uploader.init();
535
-
536
- // This is
537
- uploadUi.find( '.drag-upload-area' )
538
- .on( 'dragover', function () {
539
- $( this ).addClass( 'file-dragover' );
540
- } )
541
- .on( 'dragleave', function () {
542
- $( this ).removeClass( 'file-dragover' );
543
- } );
544
-
545
- // Handle exporting the file
546
- c.find( '.so-export' ).submit( function ( e ) {
547
- var $$ = $( this );
548
- var panelsData = thisView.builder.model.getPanelsData();
549
- var postName = $('input[name="post_title"]').val();
550
- if ( ! postName ) {
551
- postName = $('input[name="post_ID"]').val();
552
- }
553
- panelsData.name = postName;
554
- $$.find( 'input[name="panels_export_data"]' ).val( JSON.stringify( panelsData ) );
555
- } );
556
-
557
- },
558
-
559
- /**
560
- * Display the layout directory tab.
561
- *
562
- * @param query
563
- */
564
- displayLayoutDirectory: function ( search, page, type ) {
565
- var thisView = this;
566
- var c = this.$( '.so-content' ).empty().addClass( 'so-panels-loading' );
567
-
568
- if ( search === undefined ) {
569
- search = '';
570
- }
571
- if ( page === undefined ) {
572
- page = 1;
573
- }
574
- if ( type === undefined ) {
575
- type = 'directory-siteorigin';
576
- }
577
-
578
- if ( type.match('^directory-') && ! panelsOptions.directory_enabled ) {
579
- // Display the button to enable the prebuilt layout
580
- c.removeClass( 'so-panels-loading' ).html( $( '#siteorigin-panels-directory-enable' ).html() );
581
- c.find( '.so-panels-enable-directory' ).click( function ( e ) {
582
- e.preventDefault();
583
- // Sent the query to enable the directory, then enable the directory
584
- $.get(
585
- panelsOptions.ajaxurl,
586
- {action: 'so_panels_directory_enable'},
587
- function () {
588
-
589
- }
590
- );
591
-
592
- // Enable the layout directory
593
- panelsOptions.directory_enabled = true;
594
- c.addClass( 'so-panels-loading' );
595
- thisView.displayLayoutDirectory( search, page, type );
596
- } );
597
- return;
598
- }
599
-
600
- // Get all the items for the current query
601
- $.get(
602
- panelsOptions.ajaxurl,
603
- {
604
- action: 'so_panels_layouts_query',
605
- search: search,
606
- page: page,
607
- type: type,
608
- },
609
- function ( data ) {
610
- // Skip this if we're no longer viewing the layout directory
611
- if ( thisView.currentTab !== type ) {
612
- return;
613
- }
614
-
615
- // Add the directory items
616
- c.removeClass( 'so-panels-loading' ).html( thisView.directoryTemplate( data ) );
617
-
618
- // Lets setup the next and previous buttons
619
- var prev = c.find( '.so-previous' ), next = c.find( '.so-next' );
620
-
621
- if ( page <= 1 ) {
622
- prev.addClass( 'button-disabled' );
623
- } else {
624
- prev.click( function ( e ) {
625
- e.preventDefault();
626
- thisView.displayLayoutDirectory( search, page - 1, thisView.currentTab );
627
- } );
628
- }
629
-
630
- if ( page === data.max_num_pages || data.max_num_pages === 0 ) {
631
- next.addClass( 'button-disabled' );
632
- } else {
633
- next.click( function ( e ) {
634
- e.preventDefault();
635
- thisView.displayLayoutDirectory( search, page + 1, thisView.currentTab );
636
- } );
637
- }
638
-
639
- // Handle nice preloading of the screenshots
640
- c.find( '.so-screenshot' ).each( function () {
641
- var $$ = $( this ), $a = $$.find( '.so-screenshot-wrapper' );
642
- $a.css( 'height', ( $a.width() / 4 * 3 ) + 'px' ).addClass( 'so-loading' );
643
-
644
- if ( $$.data( 'src' ) !== '' ) {
645
- // Set the initial height
646
- var $img = $( '<img/>' ).attr( 'src', $$.data( 'src' ) ).load( function () {
647
- $a.removeClass( 'so-loading' ).css( 'height', 'auto' );
648
- $img.appendTo( $a ).hide().fadeIn( 'fast' );
649
- } );
650
- } else {
651
- $( '<img/>' ).attr( 'src', panelsOptions.prebuiltDefaultScreenshot ).appendTo( $a ).hide().fadeIn( 'fast' );
652
- }
653
-
654
- } );
655
-
656
- // Set the title
657
- c.find( '.so-directory-browse' ).html( data.title );
658
- },
659
- 'json'
660
- );
661
- },
662
-
663
- /**
664
- * Set the selected state for the clicked layout directory item and remove previously selected item.
665
- * Enable the toolbar buttons.
666
- */
667
- directoryItemClickHandler: function ( e ) {
668
- var $directoryItem = this.$( e.target ).closest( '.so-directory-item' );
669
- this.$( '.so-directory-items' ).find( '.selected' ).removeClass( 'selected' );
670
- $directoryItem.addClass( 'selected' );
671
- this.selectedLayoutItem = {lid: $directoryItem.data( 'layout-id' ), type: $directoryItem.data( 'layout-type' )};
672
- this.updateButtonState( true );
673
-
674
- },
675
-
676
- /**
677
- * Load a particular layout into the builder.
678
- *
679
- * @param id
680
- */
681
- toolbarButtonClick: function ( $button ) {
682
- if ( ! this.canAddLayout() ) {
683
- return false;
684
- }
685
- var position = $button.data( 'value' );
686
- if ( _.isUndefined( position ) ) {
687
- return false;
688
- }
689
- this.updateButtonState( false );
690
-
691
- if ( $button.hasClass( 'so-needs-confirm' ) && ! $button.hasClass( 'so-confirmed' ) ) {
692
- this.updateButtonState( true );
693
- if ( $button.hasClass( 'so-confirming' ) ) {
694
- return;
695
- }
696
- $button.addClass( 'so-confirming' );
697
- var originalText = $button.html();
698
- $button.html( '<span class="dashicons dashicons-yes"></span>' + $button.data( 'confirm' ) );
699
- setTimeout( function () {
700
- $button.removeClass( 'so-confirmed' ).html( originalText );
701
- }, 2500 );
702
- setTimeout( function () {
703
- $button.removeClass( 'so-confirming' );
704
- $button.addClass( 'so-confirmed' );
705
- }, 200 );
706
- return false;
707
- }
708
- this.addingLayout = true;
709
- if ( this.currentTab === 'import' ) {
710
- this.addLayoutToBuilder( this.uploadedLayout, position );
711
- } else {
712
- this.loadSelectedLayout().then( function ( layout ) {
713
- this.addLayoutToBuilder( layout, position );
714
- }.bind( this ) );
715
- }
716
- },
717
-
718
- canAddLayout: function () {
719
- return (
720
- this.selectedLayoutItem || this.uploadedLayout
721
- ) && ! this.addingLayout;
722
- },
723
-
724
- /**
725
- * Load the layout according to selectedLayoutItem.
726
- */
727
- loadSelectedLayout: function () {
728
- this.setStatusMessage( panelsOptions.loc.prebuilt_loading, true );
729
-
730
- var args = _.extend( this.selectedLayoutItem, {action: 'so_panels_get_layout'} );
731
- var deferredLayout = new $.Deferred();
732
-
733
- $.get(
734
- panelsOptions.ajaxurl,
735
- args,
736
- function ( layout ) {
737
- var msg = '';
738
- if ( ! layout.success ) {
739
- msg = layout.data.message;
740
- deferredLayout.reject( layout.data );
741
- } else {
742
- deferredLayout.resolve( layout.data );
743
- }
744
- this.setStatusMessage( msg, false, ! layout.success );
745
- this.updateButtonState( true );
746
- }.bind( this )
747
- );
748
- return deferredLayout.promise();
749
- },
750
-
751
- /**
752
- * Handle an update to the search
753
- */
754
- searchHandler: function ( e ) {
755
- if ( e.keyCode === 13 ) {
756
- this.displayLayoutDirectory( $( e.currentTarget ).val(), 1, this.currentTab );
757
- }
758
- },
759
-
760
- /**
761
- * Attempt to set the 'Insert' button's state according to the `enabled` argument, also checking whether the
762
- * requirements for inserting a layout have valid values.
763
- */
764
- updateButtonState: function ( enabled ) {
765
- enabled = enabled && (
766
- this.selectedLayoutItem || this.uploadedLayout
767
- );
768
- var $button = this.$( '.so-import-layout' );
769
- $button.prop( "disabled", ! enabled );
770
- if ( enabled ) {
771
- $button.removeClass( 'disabled' );
772
- } else {
773
- $button.addClass( 'disabled' );
774
- }
775
- },
776
-
777
- addLayoutToBuilder: function ( layout, position ) {
778
- this.builder.addHistoryEntry( 'prebuilt_loaded' );
779
- this.builder.model.loadPanelsData( layout, position );
780
- this.addingLayout = false;
781
- this.closeDialog();
782
- }
783
- } );
784
-
785
- },{}],8:[function(require,module,exports){
786
  var panels = window.panels, $ = jQuery;
787
 
788
- module.exports = panels.view.dialog.extend({
789
 
790
- cellPreviewTemplate: _.template( panels.helpers.utils.processTemplate( $('#siteorigin-panels-dialog-row-cell-preview').html() ) ),
791
 
792
- editableLabel: true,
 
 
 
 
 
 
793
 
794
  events: {
795
  'click .so-close': 'closeDialog',
 
 
 
796
 
797
- // Toolbar buttons
798
- 'click .so-toolbar .so-save': 'saveHandler',
799
- 'click .so-toolbar .so-insert': 'insertHandler',
800
- 'click .so-toolbar .so-delete': 'deleteHandler',
801
- 'click .so-toolbar .so-duplicate': 'duplicateHandler',
802
-
803
- // Changing the row
804
- 'change .row-set-form > *': 'setCellsFromForm',
805
- 'click .row-set-form button.set-row': 'setCellsFromForm',
806
  },
807
 
808
- dialogIcon: 'add-row',
809
- dialogClass: 'so-panels-dialog-row-edit',
810
- styleType: 'row',
 
 
811
 
812
- dialogType: 'edit',
 
 
 
 
 
 
813
 
814
  /**
815
- * The current settings, not yet saved to the model
816
  */
817
- row: {
818
- // This will be a clone of cells collection.
819
- cells: null,
820
- // The style settings of the row
821
- style: {}
822
  },
823
 
824
- cellStylesCache: [],
 
 
 
 
 
 
 
 
 
 
825
 
826
- initializeDialog: function () {
827
- this.on('open_dialog', function () {
828
- if (!_.isUndefined(this.model) && !_.isEmpty(this.model.get('cells'))) {
829
- this.setRowModel(this.model);
830
- } else {
831
- this.setRowModel(null);
832
- }
833
 
834
- this.regenerateRowPreview();
835
- }, this);
 
836
 
837
- // This is the default row layout
838
- this.row = {
839
- cells: new panels.collection.cells([{weight: 0.5}, {weight: 0.5}]),
840
- style: {}
841
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
842
 
843
- // Refresh panels data after both dialog form components are loaded
844
- this.dialogFormsLoaded = 0;
845
  var thisView = this;
846
- this.on('form_loaded styles_loaded', function () {
847
- this.dialogFormsLoaded++;
848
- if (this.dialogFormsLoaded === 2) {
849
- thisView.updateModel({
850
- refreshArgs: {
851
- silent: true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
  }
853
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
854
  }
855
- });
 
 
 
 
 
 
 
 
 
856
 
857
- this.on('close_dialog', this.closeHandler);
 
 
 
 
 
 
 
858
 
859
- this.on( 'edit_label', function ( text ) {
860
- // If text is set to default values, just clear it.
861
- if ( text === panelsOptions.loc.row.add || text === panelsOptions.loc.row.edit ) {
862
- text = '';
863
- }
864
- this.model.set( 'label', text );
865
- if ( _.isEmpty( text ) ) {
866
- var title = this.dialogType === 'create' ? panelsOptions.loc.row.add : panelsOptions.loc.row.edit;
867
- this.$( '.so-title').text( title );
868
  }
869
- }.bind( this ) );
 
 
 
870
  },
871
 
872
  /**
 
873
  *
874
- * @param dialogType Either "edit" or "create"
875
  */
876
- setRowDialogType: function (dialogType) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
877
  this.dialogType = dialogType;
878
  },
879
 
@@ -1227,10 +1236,7 @@ module.exports = panels.view.dialog.extend({
1227
 
1228
  // So the draggable handle is not hidden.
1229
  rowPreview.find('.preview-cell').css('overflow', 'visible');
1230
-
1231
- setTimeout(function () {
1232
- thisDialog.regenerateRowPreview();
1233
- }, 260);
1234
 
1235
  }, 100);
1236
  })
@@ -1414,9 +1420,7 @@ module.exports = panels.view.dialog.extend({
1414
  // So the draggable handle is not hidden.
1415
  this.$('.preview-cell').css('overflow', 'visible');
1416
 
1417
- setTimeout(function () {
1418
- thisDialog.regenerateRowPreview();
1419
- }, 260);
1420
  }
1421
  }
1422
  catch (err) {
@@ -1534,7 +1538,7 @@ module.exports = panels.view.dialog.extend({
1534
  */
1535
  deleteHandler: function () {
1536
  // Trigger a destroy on the model that will happen with a visual indication to the user
1537
- this.model.trigger('visual_destroy');
1538
  this.closeDialog({silent: true});
1539
 
1540
  return false;
@@ -1594,8 +1598,8 @@ module.exports = panels.view.dialog.extend( {
1594
 
1595
  initializeDialog: function () {
1596
  var thisView = this;
1597
- this.model.on( 'change:values', this.handleChangeValues, this );
1598
- this.model.on( 'destroy', this.remove, this );
1599
 
1600
  // Refresh panels data after both dialog form components are loaded
1601
  this.dialogFormsLoaded = 0;
@@ -1676,6 +1680,7 @@ module.exports = panels.view.dialog.extend( {
1676
  if ( currentIndex === 0 ) {
1677
  return false;
1678
  } else {
 
1679
  do {
1680
  widgetView = widgets.eq( --currentIndex ).data( 'view' );
1681
  if ( ! _.isUndefined( widgetView ) && ! widgetView.model.get( 'read_only' ) ) {
@@ -1697,11 +1702,12 @@ module.exports = panels.view.dialog.extend( {
1697
  return false;
1698
  }
1699
 
1700
- var currentIndex = widgets.index( this.widgetView.$el ), widgetView;
1701
 
1702
  if ( currentIndex === widgets.length - 1 ) {
1703
  return false;
1704
  } else {
 
1705
  do {
1706
  widgetView = widgets.eq( ++currentIndex ).data( 'view' );
1707
  if ( ! _.isUndefined( widgetView ) && ! widgetView.model.get( 'read_only' ) ) {
@@ -1843,8 +1849,7 @@ module.exports = panels.view.dialog.extend( {
1843
  * @returns {boolean}
1844
  */
1845
  deleteHandler: function () {
1846
-
1847
- this.model.trigger( 'visual_destroy' );
1848
  this.closeDialog( {silent: true} );
1849
  this.builder.model.refreshPanelsData();
1850
 
@@ -1852,7 +1857,8 @@ module.exports = panels.view.dialog.extend( {
1852
  },
1853
 
1854
  duplicateHandler: function () {
1855
- this.model.trigger( 'user_duplicate' );
 
1856
 
1857
  this.closeDialog( {silent: true} );
1858
  this.builder.model.refreshPanelsData();
@@ -1863,242 +1869,245 @@ module.exports = panels.view.dialog.extend( {
1863
  } );
1864
 
1865
  },{"../view/widgets/js-widget":31}],10:[function(require,module,exports){
1866
- var panels = window.panels, $ = jQuery;
1867
-
1868
- module.exports = panels.view.dialog.extend( {
1869
-
1870
- builder: null,
1871
- widgetTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-dialog-widgets-widget' ).html() ) ),
1872
- filter: {},
1873
-
1874
- dialogClass: 'so-panels-dialog-add-widget',
1875
- dialogIcon: 'add-widget',
1876
-
1877
- events: {
1878
- 'click .so-close': 'closeDialog',
1879
- 'click .widget-type': 'widgetClickHandler',
1880
- 'keyup .so-sidebar-search': 'searchHandler'
1881
- },
1882
-
1883
- /**
1884
- * Initialize the widget adding dialog
1885
- */
1886
- initializeDialog: function () {
1887
-
1888
- this.on( 'open_dialog', function () {
1889
- this.filter.search = '';
1890
- this.filterWidgets( this.filter );
1891
- }, this );
1892
-
1893
- this.on( 'open_dialog_complete', function () {
1894
- // Clear the search and re-filter the widgets when we open the dialog
1895
- this.$( '.so-sidebar-search' ).val( '' ).focus();
1896
- this.balanceWidgetHeights();
1897
- } );
1898
-
1899
- // We'll implement a custom tab click handler
1900
- this.on( 'tab_click', this.tabClickHandler, this );
1901
- },
1902
-
1903
- render: function () {
1904
- // Render the dialog and attach it to the builder interface
1905
- this.renderDialog( this.parseDialogContent( $( '#siteorigin-panels-dialog-widgets' ).html(), {} ) );
1906
-
1907
- // Add all the widgets
1908
- _.each( panelsOptions.widgets, function ( widget ) {
1909
- var $w = $( this.widgetTemplate( {
1910
- title: widget.title,
1911
- description: widget.description
1912
- } ) );
1913
-
1914
- if ( _.isUndefined( widget.icon ) ) {
1915
- widget.icon = 'dashicons dashicons-admin-generic';
1916
- }
1917
-
1918
- $( '<span class="widget-icon" />' ).addClass( widget.icon ).prependTo( $w.find( '.widget-type-wrapper' ) );
1919
-
1920
- $w.data( 'class', widget.class ).appendTo( this.$( '.widget-type-list' ) );
1921
- }, this );
1922
-
1923
- // Add the sidebar tabs
1924
- var tabs = this.$( '.so-sidebar-tabs' );
1925
- _.each( panelsOptions.widget_dialog_tabs, function ( tab ) {
1926
- $( this.dialogTabTemplate( {'title': tab.title} ) ).data( {
1927
- 'message': tab.message,
1928
- 'filter': tab.filter
1929
- } ).appendTo( tabs );
1930
- }, this );
1931
-
1932
- // We'll be using tabs, so initialize them
1933
- this.initTabs();
1934
-
1935
- var thisDialog = this;
1936
- $( window ).resize( function () {
1937
- thisDialog.balanceWidgetHeights();
1938
- } );
1939
- },
1940
-
1941
- /**
1942
- * Handle a tab being clicked
1943
- */
1944
- tabClickHandler: function ( $t ) {
1945
- // Get the filter from the tab, and filter the widgets
1946
- this.filter = $t.parent().data( 'filter' );
1947
- this.filter.search = this.$( '.so-sidebar-search' ).val();
1948
-
1949
- var message = $t.parent().data( 'message' );
1950
- if ( _.isEmpty( message ) ) {
1951
- message = '';
1952
- }
1953
-
1954
- this.$( '.so-toolbar .so-status' ).html( message );
1955
-
1956
- this.filterWidgets( this.filter );
1957
-
1958
- return false;
1959
- },
1960
-
1961
- /**
1962
- * Handle changes to the search value
1963
- */
1964
- searchHandler: function ( e ) {
1965
- if( e.which === 13 ) {
1966
- var visibleWidgets = this.$( '.widget-type-list .widget-type:visible' );
1967
- if( visibleWidgets.length === 1 ) {
1968
- visibleWidgets.click();
1969
- }
1970
- }
1971
- else {
1972
- this.filter.search = $( e.target ).val().trim();
1973
- this.filterWidgets( this.filter );
1974
- }
1975
- },
1976
-
1977
- /**
1978
- * Filter the widgets that we're displaying
1979
- * @param filter
1980
- */
1981
- filterWidgets: function ( filter ) {
1982
- if ( _.isUndefined( filter ) ) {
1983
- filter = {};
1984
- }
1985
-
1986
- if ( _.isUndefined( filter.groups ) ) {
1987
- filter.groups = '';
1988
- }
1989
-
1990
- this.$( '.widget-type-list .widget-type' ).each( function () {
1991
- var $$ = $( this ), showWidget;
1992
- var widgetClass = $$.data( 'class' );
1993
-
1994
- var widgetData = (
1995
- ! _.isUndefined( panelsOptions.widgets[widgetClass] )
1996
- ) ? panelsOptions.widgets[widgetClass] : null;
1997
-
1998
- if ( _.isEmpty( filter.groups ) ) {
1999
- // This filter doesn't specify groups, so show all
2000
- showWidget = true;
2001
- } else if ( widgetData !== null && ! _.isEmpty( _.intersection( filter.groups, panelsOptions.widgets[widgetClass].groups ) ) ) {
2002
- // This widget is in the filter group
2003
- showWidget = true;
2004
- } else {
2005
- // This widget is not in the filter group
2006
- showWidget = false;
2007
- }
2008
-
2009
- // This can probably be done with a more intelligent operator
2010
- if ( showWidget ) {
2011
-
2012
- if ( ! _.isUndefined( filter.search ) && filter.search !== '' ) {
2013
- // Check if the widget title contains the search term
2014
- if ( widgetData.title.toLowerCase().indexOf( filter.search.toLowerCase() ) === - 1 ) {
2015
- showWidget = false;
2016
- }
2017
- }
2018
-
2019
- }
2020
-
2021
- if ( showWidget ) {
2022
- $$.show();
2023
- } else {
2024
- $$.hide();
2025
- }
2026
- } );
2027
-
2028
- // Balance the tags after filtering
2029
- this.balanceWidgetHeights();
2030
- },
2031
-
2032
- /**
2033
- * Add the widget to the current builder
2034
- *
2035
- * @param e
2036
- */
2037
- widgetClickHandler: function ( e ) {
2038
- // Add the history entry
2039
- this.builder.addHistoryEntry( 'widget_added' );
2040
-
2041
- var $w = $( e.currentTarget );
2042
-
2043
- var widget = new panels.model.widget( {
2044
- class: $w.data( 'class' )
2045
- } );
2046
-
2047
- // Add the widget to the cell model
2048
- widget.cell = this.builder.getActiveCell();
2049
- widget.cell.get('widgets').add( widget );
2050
-
2051
- this.closeDialog();
2052
- this.builder.model.refreshPanelsData();
2053
- },
2054
-
2055
- /**
2056
- * Balance widgets in a given row so they have enqual height.
2057
- * @param e
2058
- */
2059
- balanceWidgetHeights: function ( e ) {
2060
- var widgetRows = [[]];
2061
- var previousWidget = null;
2062
-
2063
- // Work out how many widgets there are per row
2064
- var perRow = Math.round( this.$( '.widget-type' ).parent().width() / this.$( '.widget-type' ).width() );
2065
-
2066
- // Add clears to create balanced rows
2067
- this.$( '.widget-type' )
2068
- .css( 'clear', 'none' )
2069
- .filter( ':visible' )
2070
- .each( function ( i, el ) {
2071
- if ( i % perRow === 0 && i !== 0 ) {
2072
- $( el ).css( 'clear', 'both' );
2073
- }
2074
- } );
2075
-
2076
- // Group the widgets into rows
2077
- this.$( '.widget-type-wrapper' )
2078
- .css( 'height', 'auto' )
2079
- .filter( ':visible' )
2080
- .each( function ( i, el ) {
2081
- var $el = $( el );
2082
- if ( previousWidget !== null && previousWidget.position().top !== $el.position().top ) {
2083
- widgetRows[widgetRows.length] = [];
2084
- }
2085
- previousWidget = $el;
2086
- widgetRows[widgetRows.length - 1].push( $el );
2087
- } );
2088
-
2089
- // Balance the height of the widgets within the row.
2090
- _.each( widgetRows, function ( row, i ) {
2091
- var maxHeight = _.max( row.map( function ( el ) {
2092
- return el.height();
2093
- } ) );
2094
- // Set the height of each widget in the row
2095
- _.each( row, function ( el ) {
2096
- el.height( maxHeight );
2097
- } );
2098
-
2099
- } );
2100
- }
2101
- } );
 
 
 
2102
 
2103
  },{}],11:[function(require,module,exports){
2104
  module.exports = {
@@ -3323,245 +3332,231 @@ module.exports = Backbone.Model.extend( {
3323
  } );
3324
 
3325
  },{}],21:[function(require,module,exports){
3326
- /**
3327
- * Model for an instance of a widget
3328
- */
3329
- module.exports = Backbone.Model.extend( {
3330
-
3331
- cell: null,
3332
-
3333
- defaults: {
3334
- // The PHP Class of the widget
3335
- class: null,
3336
-
3337
- // Is this class missing? Missing widgets are a special case.
3338
- missing: false,
3339
-
3340
- // The values of the widget
3341
- values: {},
3342
-
3343
- // Have the current values been passed through the widgets update function
3344
- raw: false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3345
 
3346
- // Visual style fields
3347
- style: {},
3348
 
3349
- read_only: false,
3350
- widget_id: '',
3351
- },
3352
 
3353
- indexes: null,
 
3354
 
3355
- initialize: function () {
3356
- var widgetClass = this.get( 'class' );
3357
- if ( _.isUndefined( panelsOptions.widgets[widgetClass] ) || ! panelsOptions.widgets[widgetClass].installed ) {
3358
- this.set( 'missing', true );
3359
- }
3360
  },
3361
 
3362
  /**
3363
- * @param field
3364
- * @returns {*}
3365
  */
3366
- getWidgetField: function ( field ) {
3367
- if ( _.isUndefined( panelsOptions.widgets[this.get( 'class' )] ) ) {
3368
- if ( field === 'title' || field === 'description' ) {
3369
- return panelsOptions.loc.missing_widget[field];
3370
- } else {
3371
- return '';
3372
- }
3373
- } else if ( this.has( 'label' ) && ! _.isEmpty( this.get( 'label' ) ) ) {
3374
- // Use the label instead of the actual widget title
3375
- return this.get( 'label' );
3376
- } else {
3377
- return panelsOptions.widgets[ this.get( 'class' ) ][ field ];
3378
- }
3379
  },
3380
 
3381
  /**
3382
- * Move this widget model to a new cell. Called by the views.
3383
- *
3384
- * @param panels.model.cell newCell
3385
- * @param object options The options passed to the
3386
- *
3387
- * @return boolean Indicating if the widget was moved into a different cell
3388
  */
3389
- moveToCell: function ( newCell, options, at ) {
3390
- options = _.extend( {
3391
- silent: true,
3392
- }, options );
3393
-
3394
- this.cell = newCell;
3395
- this.collection.remove( this, options );
3396
- newCell.get('widgets').add( this, _.extend( {
3397
- at: at
3398
- }, options ) );
3399
-
3400
- // This should be used by views to reposition everything.
3401
- this.trigger( 'move_to_cell', newCell, at );
3402
-
3403
- return this;
3404
- },
3405
-
3406
- /**
3407
- * Trigger an event on the model that indicates a user wants to edit it
3408
- */
3409
- triggerEdit: function () {
3410
- this.trigger( 'user_edit', this );
3411
- },
3412
-
3413
- /**
3414
- * Trigger an event on the widget that indicates a user wants to duplicate it
3415
- */
3416
- triggerDuplicate: function () {
3417
- this.trigger( 'user_duplicate', this );
3418
- },
3419
-
3420
- /**
3421
- * This is basically a wrapper for set that checks if we need to trigger a change
3422
- */
3423
- setValues: function ( values ) {
3424
- var hasChanged = false;
3425
- if ( JSON.stringify( values ) !== JSON.stringify( this.get( 'values' ) ) ) {
3426
- hasChanged = true;
3427
- }
3428
-
3429
- this.set( 'values', values, {silent: true} );
3430
-
3431
- if ( hasChanged ) {
3432
- // We'll trigger our own change events.
3433
- // NB: Must include the model being changed (i.e. `this`) as a workaround for a bug in Backbone 1.2.3
3434
- this.trigger( 'change', this );
3435
- this.trigger( 'change:values' );
3436
- }
3437
- },
3438
-
3439
- /**
3440
- * Create a clone of this widget attached to the given cell.
3441
- *
3442
- * @param {panels.model.cell} cell The cell model we're attaching this widget clone to.
3443
- * @returns {panels.model.widget}
3444
- */
3445
- clone: function ( cell, options ) {
3446
- if ( _.isUndefined( cell ) ) {
3447
- cell = this.cell;
3448
- }
3449
-
3450
- var clone = new this.constructor( this.attributes );
3451
-
3452
- // Create a deep clone of the original values
3453
- var cloneValues = JSON.parse( JSON.stringify( this.get( 'values' ) ) );
3454
-
3455
- // We want to exclude any fields that start with _ from the clone. Assuming these are internal.
3456
- var cleanClone = function ( vals ) {
3457
- _.each( vals, function ( el, i ) {
3458
- if ( _.isString( i ) && i[0] === '_' ) {
3459
- delete vals[i];
3460
- }
3461
- else if ( _.isObject( vals[i] ) ) {
3462
- cleanClone( vals[i] );
3463
- }
3464
- } );
3465
-
3466
- return vals;
3467
- };
3468
- cloneValues = cleanClone( cloneValues );
3469
-
3470
- if ( this.get( 'class' ) === "SiteOrigin_Panels_Widgets_Layout" ) {
3471
- // Special case of this being a layout widget, it needs a new ID
3472
- cloneValues.builder_id = Math.random().toString( 36 ).substr( 2 );
3473
- }
3474
-
3475
- clone.set( 'widget_id', '' );
3476
- clone.set( 'values', cloneValues, {silent: true} );
3477
- clone.set( 'collection', cell.get('widgets'), {silent: true} );
3478
- clone.cell = cell;
3479
-
3480
- // This is used to force a form reload later on
3481
- clone.isDuplicate = true;
3482
-
3483
- return clone;
3484
- },
3485
-
3486
- /**
3487
- * Gets the value that makes most sense as the title.
3488
- */
3489
- getTitle: function () {
3490
- var widgetData = panelsOptions.widgets[this.get( 'class' )];
3491
-
3492
- if ( _.isUndefined( widgetData ) ) {
3493
- return this.get( 'class' ).replace( /_/g, ' ' );
3494
- }
3495
- else if ( ! _.isUndefined( widgetData.panels_title ) ) {
3496
- // This means that the widget has told us which field it wants us to use as a title
3497
- if ( widgetData.panels_title === false ) {
3498
- return panelsOptions.widgets[this.get( 'class' )].description;
3499
- }
3500
- }
3501
-
3502
- var values = this.get( 'values' );
3503
-
3504
- // Create a list of fields to check for a title
3505
- var titleFields = ['title', 'text'];
3506
-
3507
- for ( var k in values ) {
3508
- if ( values.hasOwnProperty( k ) ) {
3509
- titleFields.push( k );
3510
- }
3511
- }
3512
-
3513
- titleFields = _.uniq( titleFields );
3514
-
3515
- for ( var i in titleFields ) {
3516
- if (
3517
- ! _.isUndefined( values[titleFields[i]] ) &&
3518
- _.isString( values[titleFields[i]] ) &&
3519
- values[titleFields[i]] !== '' &&
3520
- values[titleFields[i]] !== 'on' &&
3521
- titleFields[i][0] !== '_' && ! jQuery.isNumeric( values[titleFields[i]] )
3522
- ) {
3523
- var title = values[titleFields[i]];
3524
- title = title.replace( /<\/?[^>]+(>|$)/g, "" );
3525
- var parts = title.split( " " );
3526
- parts = parts.slice( 0, 20 );
3527
- return parts.join( ' ' );
3528
- }
3529
- }
3530
-
3531
- // If we still have nothing, then just return the widget description
3532
- return this.getWidgetField( 'description' );
3533
- }
3534
-
3535
- } );
3536
-
3537
- },{}],22:[function(require,module,exports){
3538
- var panels = window.panels, $ = jQuery;
3539
-
3540
- module.exports = Backbone.View.extend( {
3541
- wrapperTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-context-menu' ).html() ) ),
3542
- sectionTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-context-menu-section' ).html() ) ),
3543
-
3544
- contexts: [],
3545
- active: false,
3546
-
3547
- events: {
3548
- 'keyup .so-search-wrapper input': 'searchKeyUp'
3549
- },
3550
-
3551
- /**
3552
- * Intialize the context menu
3553
- */
3554
- initialize: function () {
3555
- this.listenContextMenu();
3556
- this.render();
3557
- this.attach();
3558
- },
3559
-
3560
- /**
3561
- * Listen for the right click context menu
3562
- */
3563
- listenContextMenu: function () {
3564
- var thisView = this;
3565
 
3566
  $( window ).on( 'contextmenu', function ( e ) {
3567
  if ( thisView.active && ! thisView.isOverEl( thisView.$el, e ) ) {
@@ -3936,7 +3931,7 @@ module.exports = Backbone.View.extend( {
3936
  this.dialogs.row.setRowDialogType( 'create' );
3937
 
3938
  // This handles a new row being added to the collection - we'll display it in the interface
3939
- this.model.get( 'rows' ).on( 'add', this.onAddRow, this );
3940
 
3941
  // Reflow the entire builder when ever the
3942
  $( window ).resize( function ( e ) {
@@ -3946,21 +3941,21 @@ module.exports = Backbone.View.extend( {
3946
  } );
3947
 
3948
  // When the data changes in the model, store it in the field
3949
- this.model.on( 'change:data load_panels_data', this.storeModelData, this );
 
3950
 
3951
  // Handle a content change
3952
  this.on( 'content_change', this.handleContentChange, this );
3953
  this.on( 'display_builder', this.handleDisplayBuilder, this );
3954
  this.on( 'hide_builder', this.handleHideBuilder, this );
3955
  this.on( 'builder_rendered builder_resize', this.handleBuilderSizing, this );
3956
- this.model.on( 'change:data load_panels_data', this.toggleWelcomeDisplay, this );
3957
-
3958
  this.on( 'display_builder', this.wrapEditorExpandAdjust, this );
3959
 
3960
  // Create the context menu for this builder
3961
  this.menu = new panels.utils.menu( {} );
3962
- this.menu.on( 'activate_context', this.activateContextMenu, this );
3963
-
3964
  if ( this.config.loadOnAttach ) {
3965
  this.on( 'builder_attached_to_editor', function () {
3966
  this.displayAttachedBuilder( { confirm: false } );
@@ -4254,45 +4249,26 @@ module.exports = Backbone.View.extend( {
4254
  appendTo: '#wpwrap',
4255
  items: '.so-row-container',
4256
  handle: '.so-row-move',
4257
- connectWith: '.so-rows-container', // For Gutenberg, where it's possible to have multiple Page Builder blocks on a page.
4258
  axis: 'y',
4259
  tolerance: 'pointer',
4260
  scroll: false,
4261
- remove: function ( e, ui ) {
4262
- builderView.model.get( 'rows' ).remove(
4263
- $( ui.item ).data( 'view' ).model,
4264
- { silent: true }
4265
- );
4266
- builderView.model.refreshPanelsData();
4267
- },
4268
- receive: function ( e, ui ) {
4269
- builderView.model.get( 'rows' ).add(
4270
- $( ui.item ).data( 'view' ).model,
4271
- { silent: true, at: $( ui.item ).index() }
4272
- );
4273
- builderView.model.refreshPanelsData();
4274
- },
4275
  stop: function ( e, ui ) {
 
 
4276
  var $$ = $( ui.item ),
4277
- row = $$.data( 'view' ),
4278
- rows = builderView.model.get( 'rows' );
4279
 
4280
- // If this hasn't already been removed and added to a different builder.
4281
- if ( rows.get( row.model ) ) {
4282
- builderView.addHistoryEntry( 'row_moved' );
4283
-
4284
- rows.remove( row.model, {
4285
- 'silent': true
4286
- } );
4287
- rows.add( row.model, {
4288
- 'silent': true,
4289
- 'at': $$.index()
4290
- } );
4291
-
4292
- row.trigger( 'move', $$.index() );
4293
-
4294
- builderView.model.refreshPanelsData();
4295
- }
4296
  }
4297
  } );
4298
 
@@ -4312,7 +4288,6 @@ module.exports = Backbone.View.extend( {
4312
  /**
4313
  * Set the field that's used to store the data
4314
  * @param field
4315
- * @param options
4316
  */
4317
  setDataField: function ( field, options ) {
4318
  options = _.extend( {
@@ -4331,31 +4306,14 @@ module.exports = Backbone.View.extend( {
4331
  data = {};
4332
  }
4333
 
4334
- this.setData( data );
 
 
4335
  }
4336
 
4337
  return this;
4338
  },
4339
 
4340
- /**
4341
- * Set the current panels data to be used.
4342
- *
4343
- * @param data
4344
- */
4345
- setData: function( data ) {
4346
- this.model.loadPanelsData( data );
4347
- this.currentData = data;
4348
- this.toggleWelcomeDisplay();
4349
- },
4350
-
4351
- /**
4352
- * Get the current panels data.
4353
- *
4354
- */
4355
- getData: function() {
4356
- return this.model.get( 'data' );
4357
- },
4358
-
4359
  /**
4360
  * Store the model data in the data html field set in this.setDataField.
4361
  */
@@ -4401,7 +4359,6 @@ module.exports = Backbone.View.extend( {
4401
 
4402
  this.refreshSortable();
4403
  rowView.resize();
4404
- this.trigger( 'row_added' );
4405
  },
4406
 
4407
  /**
@@ -4785,11 +4742,7 @@ module.exports = Backbone.View.extend( {
4785
 
4786
  // Only run this if its element is the topmost builder, in the topmost dialog
4787
  if (
4788
- (
4789
- builder.$el.is( topmostBuilder ) ||
4790
- builder.$el.parent().is( '.siteorigin-panels-layout-block-container' ) // Gutenberg builder
4791
- )
4792
- &&
4793
  (
4794
  topmostDialog.length === 0 ||
4795
  topmostDialog.is( closestDialog )
@@ -4871,7 +4824,7 @@ module.exports = Backbone.View.extend( {
4871
  widgetSortable: null,
4872
 
4873
  initialize: function () {
4874
- this.model.get('widgets').on( 'add', this.onAddWidget, this );
4875
  },
4876
 
4877
  /**
@@ -4911,52 +4864,32 @@ module.exports = Backbone.View.extend( {
4911
  }
4912
 
4913
  var cellView = this;
4914
-
4915
- var builderModel = cellView.row.builder.model;
 
4916
 
4917
  // Create a widget sortable that's connected with all other cells
4918
  this.widgetSortable = this.$( '.widgets-container' ).sortable( {
4919
  placeholder: "so-widget-sortable-highlight",
4920
- connectWith: '.so-cells .cell .widgets-container',
4921
  tolerance: 'pointer',
4922
  scroll: false,
4923
  over: function ( e, ui ) {
4924
  // This will make all the rows in the current builder resize
4925
  cellView.row.builder.trigger( 'widget_sortable_move' );
4926
  },
4927
- remove: function ( e, ui ) {
4928
- cellView.model.get( 'widgets' ).remove(
4929
- $( ui.item ).data( 'view' ).model,
4930
- { silent: true }
4931
- );
4932
- builderModel.refreshPanelsData();
4933
- },
4934
- receive: function ( e, ui ) {
4935
- var widgetModel = $( ui.item ).data( 'view' ).model;
4936
- widgetModel.cell = cellView.model;
4937
- cellView.model.get( 'widgets' ).add(
4938
- widgetModel,
4939
- { silent: true, at: $( ui.item ).index() }
4940
- );
4941
- builderModel.refreshPanelsData();
4942
- },
4943
  stop: function ( e, ui ) {
 
 
4944
  var $$ = $( ui.item ),
4945
  widget = $$.data( 'view' ),
4946
  targetCell = $$.closest( '.cell' ).data( 'view' );
4947
-
4948
-
4949
- // If this hasn't already been removed and added to a different builder.
4950
- if ( cellView.model.get( 'widgets' ).get( widget.model ) ) {
4951
-
4952
- cellView.row.builder.addHistoryEntry( 'widget_moved' );
4953
-
4954
- // Move the model and the view to the new cell
4955
- widget.model.moveToCell( targetCell.model, {}, $$.index() );
4956
- widget.cell = targetCell;
4957
-
4958
- builderModel.refreshPanelsData();
4959
- }
4960
  },
4961
  helper: function ( e, el ) {
4962
  var helper = el.clone()
@@ -5138,7 +5071,6 @@ module.exports = Backbone.View.extend( {
5138
 
5139
  this.refreshSortable();
5140
  this.row.resize();
5141
- this.row.builder.trigger( 'widget_added' );
5142
  },
5143
 
5144
  /**
@@ -5193,6 +5125,7 @@ module.exports = Backbone.View.extend( {
5193
  },
5194
  panelsOptions.widgets,
5195
  function ( c ) {
 
5196
  thisView.row.builder.addHistoryEntry( 'widget_added' );
5197
 
5198
  var widget = new panels.model.widget( {
@@ -5204,6 +5137,7 @@ module.exports = Backbone.View.extend( {
5204
  widget.cell.get('widgets').add( widget );
5205
 
5206
  thisView.row.builder.model.refreshPanelsData();
 
5207
  }
5208
  );
5209
  }
@@ -5786,417 +5720,416 @@ module.exports = Backbone.View.extend( {
5786
  } );
5787
 
5788
  },{}],26:[function(require,module,exports){
5789
- var panels = window.panels, $ = jQuery;
5790
-
5791
- module.exports = Backbone.View.extend( {
5792
- template: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-live-editor' ).html() ) ),
5793
-
5794
- previewScrollTop: 0,
5795
- loadTimes: [],
5796
- previewFrameId: 1,
5797
-
5798
- previewUrl: null,
5799
- previewIframe: null,
5800
-
5801
- events: {
5802
- 'click .live-editor-close': 'close',
5803
- 'click .live-editor-collapse': 'collapse',
5804
- 'click .live-editor-mode': 'mobileToggle'
5805
- },
5806
-
5807
- initialize: function ( options ) {
5808
- options = _.extend( {
5809
- builder: false,
5810
- previewUrl: false,
5811
- }, options );
5812
-
5813
- if( _.isEmpty( options.previewUrl ) ) {
5814
- options.previewUrl = panelsOptions.ajaxurl + "&action=so_panels_live_editor_preview";
5815
- }
5816
-
5817
- this.builder = options.builder;
5818
- this.previewUrl = options.previewUrl;
5819
-
5820
- this.builder.model.on( 'refresh_panels_data', this.handleRefreshData, this );
5821
- this.builder.model.on( 'load_panels_data', this.handleLoadData, this );
5822
- },
5823
-
5824
- /**
5825
- * Render the live editor
5826
- */
5827
- render: function () {
5828
- this.setElement( this.template() );
5829
- this.$el.hide();
5830
- var thisView = this;
5831
-
5832
- var isMouseDown = false;
5833
-
5834
- $( document )
5835
- .mousedown( function () {
5836
- isMouseDown = true;
5837
- } )
5838
- .mouseup( function () {
5839
- isMouseDown = false;
5840
- } );
5841
-
5842
- // Handle highlighting the relevant widget in the live editor preview
5843
- this.$el.on( 'mouseenter', '.so-widget-wrapper', function () {
5844
- var $$ = $( this ),
5845
- previewWidget = $$.data( 'live-editor-preview-widget' );
5846
-
5847
- if ( ! isMouseDown && previewWidget !== undefined && previewWidget.length && ! thisView.$( '.so-preview-overlay' ).is( ':visible' ) ) {
5848
- thisView.highlightElement( previewWidget );
5849
- thisView.scrollToElement( previewWidget );
5850
- }
5851
- } );
5852
-
5853
- thisView.$el.on( 'mouseleave', '.so-widget-wrapper', function () {
5854
- thisView.resetHighlights();
5855
- } );
5856
-
5857
- thisView.builder.on( 'open_dialog', function () {
5858
- thisView.resetHighlights();
5859
- } );
5860
-
5861
- return this;
5862
- },
5863
-
5864
- /**
5865
- * Attach the live editor to the document
5866
- */
5867
- attach: function () {
5868
- this.$el.appendTo( 'body' );
5869
- },
5870
-
5871
- /**
5872
- * Display the live editor
5873
- */
5874
- open: function () {
5875
- if ( this.$el.html() === '' ) {
5876
- this.render();
5877
- }
5878
- if ( this.$el.closest( 'body' ).length === 0 ) {
5879
- this.attach();
5880
- }
5881
-
5882
- // Disable page scrolling
5883
- panels.helpers.pageScroll.lock();
5884
-
5885
- if ( this.$el.is( ':visible' ) ) {
5886
- return this;
5887
- }
5888
-
5889
- // Refresh the preview display
5890
- this.$el.show();
5891
- this.refreshPreview( this.builder.model.getPanelsData() );
5892
-
5893
- // Move the builder view into the Live Editor
5894
- this.originalContainer = this.builder.$el.parent();
5895
- this.builder.$el.appendTo( this.$( '.so-live-editor-builder' ) );
5896
- this.builder.$( '.so-tool-button.so-live-editor' ).hide();
5897
- this.builder.trigger( 'builder_resize' );
5898
-
5899
-
5900
- if( $('#original_post_status' ).val() === 'auto-draft' && ! this.autoSaved ) {
5901
- // The live editor requires a saved draft post, so we'll create one for auto-draft posts
5902
- var thisView = this;
5903
-
5904
- if ( wp.autosave ) {
5905
- // Set a temporary post title so the autosave triggers properly
5906
- if( $('#title[name="post_title"]' ).val() === '' ) {
5907
- $('#title[name="post_title"]' ).val( panelsOptions.loc.draft ).trigger('keydown');
5908
- }
5909
-
5910
- $( document ).one( 'heartbeat-tick.autosave', function(){
5911
- thisView.autoSaved = true;
5912
- thisView.refreshPreview( thisView.builder.model.getPanelsData() );
5913
- } );
5914
- wp.autosave.server.triggerSave();
5915
- }
5916
- }
5917
- },
5918
-
5919
- /**
5920
- * Close the live editor
5921
- */
5922
- close: function () {
5923
- if ( ! this.$el.is( ':visible' ) ) {
5924
- return this;
5925
- }
5926
-
5927
- this.$el.hide();
5928
- panels.helpers.pageScroll.unlock();
5929
-
5930
- // Move the builder back to its original container
5931
- this.builder.$el.appendTo( this.originalContainer );
5932
- this.builder.$( '.so-tool-button.so-live-editor' ).show();
5933
- this.builder.trigger( 'builder_resize' );
5934
- },
5935
-
5936
- /**
5937
- * Collapse the live editor
5938
- */
5939
- collapse: function () {
5940
- this.$el.toggleClass( 'so-collapsed' );
5941
-
5942
- var text = this.$( '.live-editor-collapse span' );
5943
- text.html( text.data( this.$el.hasClass( 'so-collapsed' ) ? 'expand' : 'collapse' ) );
5944
- },
5945
-
5946
- /**
5947
- * Create an overlay in the preview.
5948
- *
5949
- * @param over
5950
- * @return {*|Object} The item we're hovering over.
5951
- */
5952
- highlightElement: function ( over ) {
5953
- if( ! _.isUndefined( this.resetHighlightTimeout ) ) {
5954
- clearTimeout( this.resetHighlightTimeout );
5955
- }
5956
-
5957
- // Remove any old overlays
5958
-
5959
- var body = this.previewIframe.contents().find( 'body' );
5960
- body.find( '.panel-grid .panel-grid-cell .so-panel' )
5961
- .filter( function () {
5962
- // Filter to only include non nested
5963
- return $( this ).parents( '.so-panel' ).length === 0;
5964
- } )
5965
- .not( over )
5966
- .addClass( 'so-panels-faded' );
5967
-
5968
- over.removeClass( 'so-panels-faded' ).addClass( 'so-panels-highlighted' );
5969
- },
5970
-
5971
- /**
5972
- * Reset highlights in the live preview
5973
- */
5974
- resetHighlights: function() {
5975
-
5976
- var body = this.previewIframe.contents().find( 'body' );
5977
- this.resetHighlightTimeout = setTimeout( function(){
5978
- body.find( '.panel-grid .panel-grid-cell .so-panel' )
5979
- .removeClass( 'so-panels-faded so-panels-highlighted' );
5980
- }, 100 );
5981
- },
5982
-
5983
- /**
5984
- * Scroll over an element in the live preview
5985
- * @param over
5986
- */
5987
- scrollToElement: function( over ) {
5988
- var contentWindow = this.$( '.so-preview iframe' )[0].contentWindow;
5989
- contentWindow.liveEditorScrollTo( over );
5990
- },
5991
-
5992
- handleRefreshData: function ( newData, args ) {
5993
- if ( ! this.$el.is( ':visible' ) ) {
5994
- return this;
5995
- }
5996
-
5997
- this.refreshPreview( newData );
5998
- },
5999
-
6000
- handleLoadData: function () {
6001
- if ( ! this.$el.is( ':visible' ) ) {
6002
- return this;
6003
- }
6004
-
6005
- this.refreshPreview( this.builder.model.getPanelsData() );
6006
- },
6007
-
6008
- /**
6009
- * Refresh the Live Editor preview.
6010
- * @returns {exports}
6011
- */
6012
- refreshPreview: function ( data ) {
6013
- var loadTimePrediction = this.loadTimes.length ?
6014
- _.reduce( this.loadTimes, function ( memo, num ) {
6015
- return memo + num;
6016
- }, 0 ) / this.loadTimes.length : 1000;
6017
-
6018
- // Store the last preview iframe position
6019
- if( ! _.isNull( this.previewIframe ) ) {
6020
- if ( ! this.$( '.so-preview-overlay' ).is( ':visible' ) ) {
6021
- this.previewScrollTop = this.previewIframe.contents().scrollTop();
6022
- }
6023
- }
6024
-
6025
- // Add a loading bar
6026
- this.$( '.so-preview-overlay' ).show();
6027
- this.$( '.so-preview-overlay .so-loading-bar' )
6028
- .clearQueue()
6029
- .css( 'width', '0%' )
6030
- .animate( {width: '100%'}, parseInt( loadTimePrediction ) + 100 );
6031
-
6032
-
6033
- this.postToIframe(
6034
- {
6035
- live_editor_panels_data: JSON.stringify( data ),
6036
- live_editor_post_ID: this.builder.config.postId
6037
- },
6038
- this.previewUrl,
6039
- this.$('.so-preview')
6040
- );
6041
-
6042
- this.previewIframe.data( 'load-start', new Date().getTime() );
6043
- },
6044
-
6045
- /**
6046
- * Use a temporary form to post data to an iframe.
6047
- *
6048
- * @param data The data to send
6049
- * @param url The preview URL
6050
- * @param target The target iframe
6051
- */
6052
- postToIframe: function( data, url, target ){
6053
- // Store the old preview
6054
-
6055
- if( ! _.isNull( this.previewIframe ) ) {
6056
- this.previewIframe.remove();
6057
- }
6058
-
6059
- var iframeId = 'siteorigin-panels-live-preview-' + this.previewFrameId;
6060
-
6061
- // Remove the old preview frame
6062
- this.previewIframe = $('<iframe src="javascript:false;" />')
6063
- .attr( {
6064
- 'id' : iframeId,
6065
- 'name' : iframeId,
6066
- } )
6067
- .appendTo( target )
6068
-
6069
- this.setupPreviewFrame( this.previewIframe );
6070
-
6071
- // We can use a normal POST form submit
6072
- var tempForm = $('<form id="soPostToPreviewFrame" method="post" />')
6073
- .attr( {
6074
- id: iframeId,
6075
- target: this.previewIframe.attr('id'),
6076
- action: url
6077
- } )
6078
- .appendTo( 'body' );
6079
-
6080
- $.each( data, function( name, value ){
6081
- $('<input type="hidden" />')
6082
- .attr( {
6083
- name: name,
6084
- value: value
6085
- } )
6086
- .appendTo( tempForm );
6087
- } );
6088
-
6089
- tempForm
6090
- .submit()
6091
- .remove();
6092
-
6093
- this.previewFrameId++;
6094
-
6095
- return this.previewIframe;
6096
- },
6097
-
6098
- /**
6099
- * Do all the basic setup for the preview Iframe element
6100
- * @param iframe
6101
- */
6102
- setupPreviewFrame: function( iframe ){
6103
- var thisView = this;
6104
- iframe
6105
- .data( 'iframeready', false )
6106
- .on( 'iframeready', function () {
6107
- var $$ = $( this ),
6108
- $iframeContents = $$.contents();
6109
-
6110
- if( $$.data( 'iframeready' ) ) {
6111
- // Skip this if the iframeready function has already run
6112
- return;
6113
- }
6114
-
6115
- $$.data( 'iframeready', true );
6116
-
6117
- if ( $$.data( 'load-start' ) !== undefined ) {
6118
- thisView.loadTimes.unshift( new Date().getTime() - $$.data( 'load-start' ) );
6119
-
6120
- if ( ! _.isEmpty( thisView.loadTimes ) ) {
6121
- thisView.loadTimes = thisView.loadTimes.slice( 0, 4 );
6122
- }
6123
- }
6124
-
6125
- setTimeout( function(){
6126
- // Scroll to the correct position
6127
- $iframeContents.scrollTop( thisView.previewScrollTop );
6128
- thisView.$( '.so-preview-overlay' ).hide();
6129
- }, 100 );
6130
-
6131
-
6132
- // Lets find all the first level grids. This is to account for the Page Builder layout widget.
6133
- var layoutWrapper = $iframeContents.find( '#pl-' + thisView.builder.config.postId );
6134
- layoutWrapper.find( '.panel-grid .panel-grid-cell .so-panel' )
6135
- .filter( function () {
6136
- // Filter to only include non nested
6137
- return $( this ).closest( '.panel-layout' ).is( layoutWrapper );
6138
- } )
6139
- .each( function ( i, el ) {
6140
- var $$ = $( el );
6141
- var widgetEdit = thisView.$( '.so-live-editor-builder .so-widget-wrapper' ).eq( $$.data( 'index' ) );
6142
- widgetEdit.data( 'live-editor-preview-widget', $$ );
6143
-
6144
- $$
6145
- .css( {
6146
- 'cursor': 'pointer'
6147
- } )
6148
- .mouseenter( function () {
6149
- widgetEdit.parent().addClass( 'so-hovered' );
6150
- thisView.highlightElement( $$ );
6151
- } )
6152
- .mouseleave( function () {
6153
- widgetEdit.parent().removeClass( 'so-hovered' );
6154
- thisView.resetHighlights();
6155
- } )
6156
- .click( function ( e ) {
6157
- e.preventDefault();
6158
- // When we click a widget, send that click to the form
6159
- widgetEdit.find( '.title h4' ).click();
6160
- } );
6161
- } );
6162
-
6163
- // Prevent default clicks inside the preview iframe
6164
- $iframeContents.find( "a" ).css( {'pointer-events': 'none'} ).click( function ( e ) {
6165
- e.preventDefault();
6166
- } );
6167
-
6168
- } )
6169
- .on( 'load', function(){
6170
- var $$ = $( this );
6171
- if( ! $$.data( 'iframeready' ) ) {
6172
- $$.trigger('iframeready');
6173
- }
6174
- } );
6175
- },
6176
-
6177
- /**
6178
- * Return true if the live editor has a valid preview URL.
6179
- * @return {boolean}
6180
- */
6181
- hasPreviewUrl: function () {
6182
- return this.$( 'form.live-editor-form' ).attr( 'action' ) !== '';
6183
- },
6184
-
6185
- /**
6186
- * Toggle the size of the preview iframe to simulate mobile devices.
6187
- * @param e
6188
- */
6189
- mobileToggle: function( e ){
6190
- var button = $( e.currentTarget );
6191
- this.$('.live-editor-mode' ).not( button ).removeClass('so-active');
6192
- button.addClass( 'so-active' );
6193
-
6194
- this.$el
6195
- .removeClass( 'live-editor-desktop-mode live-editor-tablet-mode live-editor-mobile-mode' )
6196
- .addClass( 'live-editor-' + button.data( 'mode' ) + '-mode' );
6197
-
6198
- }
6199
- } );
6200
 
6201
  },{}],27:[function(require,module,exports){
6202
  var panels = window.panels, $ = jQuery;
@@ -6220,12 +6153,11 @@ module.exports = Backbone.View.extend( {
6220
  initialize: function () {
6221
 
6222
  var rowCells = this.model.get('cells');
6223
- rowCells.on( 'add', this.handleCellAdd, this );
6224
- rowCells.on( 'remove', this.handleCellRemove, this );
6225
- this.model.on( 'reweight_cells', this.resize, this );
6226
 
6227
- this.model.on( 'destroy', this.onModelDestroy, this );
6228
- this.model.on( 'visual_destroy', this.visualDestroyModel, this );
6229
 
6230
  var thisView = this;
6231
  rowCells.each( function ( cell ) {
@@ -6237,7 +6169,7 @@ module.exports = Backbone.View.extend( {
6237
  thisView.listenTo( cell.get('widgets'), 'add', thisView.resize );
6238
  }, this );
6239
 
6240
- this.model.on( 'change:label', this.onLabelChange, this );
6241
  },
6242
 
6243
  /**
@@ -6290,8 +6222,8 @@ module.exports = Backbone.View.extend( {
6290
  }
6291
 
6292
  // Resize the rows when ever the widget sortable moves
6293
- this.builder.on( 'widget_sortable_move', this.resize, this );
6294
- this.builder.on( 'builder_resize', this.resize, this );
6295
 
6296
  this.resize();
6297
 
@@ -6444,6 +6376,7 @@ module.exports = Backbone.View.extend( {
6444
  // Create the dialog
6445
  this.dialog = new panels.dialog.row();
6446
  this.dialog.setBuilder( this.builder ).setRowModel( this.model );
 
6447
  }
6448
 
6449
  this.dialog.openDialog();
@@ -6907,289 +6840,295 @@ module.exports = Backbone.View.extend( {
6907
  } );
6908
 
6909
  },{}],29:[function(require,module,exports){
6910
- var panels = window.panels, $ = jQuery;
6911
-
6912
- module.exports = Backbone.View.extend( {
6913
- template: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-builder-widget' ).html() ) ),
6914
-
6915
- // The cell view that this widget belongs to
6916
- cell: null,
6917
-
6918
- // The edit dialog
6919
- dialog: null,
6920
-
6921
- events: {
6922
- 'click .widget-edit': 'editHandler',
6923
- 'click .title h4': 'titleClickHandler',
6924
- 'click .actions .widget-duplicate': 'duplicateHandler',
6925
- 'click .actions .widget-delete': 'deleteHandler'
6926
- },
6927
-
6928
- /**
6929
- * Initialize the widget
6930
- */
6931
- initialize: function () {
6932
- this.model.on( 'user_edit', this.editHandler, this ); // When a user wants to edit the widget model
6933
- this.model.on( 'user_duplicate', this.duplicateHandler, this ); // When a user wants to duplicate the widget model
6934
- this.model.on( 'destroy', this.onModelDestroy, this );
6935
- this.model.on( 'visual_destroy', this.visualDestroyModel, this );
6936
-
6937
- this.model.on( 'change:values', this.onModelChange, this );
6938
- this.model.on( 'change:label', this.onLabelChange, this );
6939
- },
6940
-
6941
- /**
6942
- * Render the widget
6943
- */
6944
- render: function ( options ) {
6945
- options = _.extend( {'loadForm': false}, options );
6946
-
6947
- this.setElement( this.template( {
6948
- title: this.model.getWidgetField( 'title' ),
6949
- description: this.model.getTitle()
6950
- } ) );
6951
-
6952
- this.$el.data( 'view', this );
6953
-
6954
- // Remove any unsupported actions
6955
- if( ! this.cell.row.builder.supports( 'editWidget' ) || this.model.get( 'read_only' ) ) {
6956
- this.$( '.actions .widget-edit' ).remove();
6957
- this.$el.addClass('so-widget-no-edit');
6958
- }
6959
- if( ! this.cell.row.builder.supports( 'addWidget' ) ) {
6960
- this.$( '.actions .widget-duplicate' ).remove();
6961
- this.$el.addClass('so-widget-no-duplicate');
6962
- }
6963
- if( ! this.cell.row.builder.supports( 'deleteWidget' ) ) {
6964
- this.$( '.actions .widget-delete' ).remove();
6965
- this.$el.addClass('so-widget-no-delete');
6966
- }
6967
- if( ! this.cell.row.builder.supports( 'moveWidget' ) ) {
6968
- this.$el.addClass('so-widget-no-move');
6969
- }
6970
- if( !$.trim( this.$('.actions').html() ).length ) {
6971
- this.$( '.actions' ).remove();
6972
- }
6973
-
6974
- if( this.model.get( 'read_only' ) ) {
6975
- this.$el.addClass('so-widget-read-only');
6976
- }
6977
-
6978
- if ( _.size( this.model.get( 'values' ) ) === 0 || options.loadForm ) {
6979
- // If this widget doesn't have a value, create a form and save it
6980
- var dialog = this.getEditDialog();
6981
-
6982
- // Save the widget as soon as the form is loaded
6983
- dialog.once( 'form_loaded', dialog.saveWidget, dialog );
6984
-
6985
- // Setup the dialog to load the form
6986
- dialog.setupDialog();
6987
- }
6988
-
6989
- return this;
6990
- },
6991
-
6992
- /**
6993
- * Display an animation that implies creation using a visual animation
6994
- */
6995
- visualCreate: function () {
6996
- this.$el.hide().fadeIn( 'fast' );
6997
- },
6998
-
6999
- /**
7000
- * Get the dialog view of the form that edits this widget
7001
- *
7002
- * @returns {null}
7003
- */
7004
- getEditDialog: function () {
7005
- if ( this.dialog === null ) {
7006
- this.dialog = new panels.dialog.widget( {
7007
- model: this.model
7008
- } );
7009
- this.dialog.setBuilder( this.cell.row.builder );
7010
-
7011
- // Store the widget view
7012
- this.dialog.widgetView = this;
7013
- }
7014
- return this.dialog;
7015
- },
7016
-
7017
- /**
7018
- * Handle clicking on edit widget.
7019
- *
7020
- * @returns {boolean}
7021
- */
7022
- editHandler: function () {
7023
- // Create a new dialog for editing this
7024
- this.getEditDialog().openDialog();
7025
- },
7026
-
7027
- titleClickHandler: function( event ){
7028
- if ( ! this.cell.row.builder.supports( 'editWidget' ) || this.model.get( 'read_only' ) ) {
7029
- return this;
7030
- }
7031
- this.editHandler();
7032
- return this;
7033
- },
7034
-
7035
- /**
7036
- * Handle clicking on duplicate.
7037
- *
7038
- * @returns {boolean}
7039
- */
7040
- duplicateHandler: function () {
7041
- // Add the history entry
7042
- this.cell.row.builder.addHistoryEntry( 'widget_duplicated' );
7043
-
7044
- // Create the new widget and connect it to the widget collection for the current row
7045
- var newWidget = this.model.clone( this.model.cell );
7046
-
7047
- this.cell.model.get('widgets').add( newWidget, {
7048
- // Add this after the existing model
7049
- at: this.model.collection.indexOf( this.model ) + 1
7050
- } );
7051
-
7052
- this.cell.row.builder.model.refreshPanelsData();
7053
- return this;
7054
- },
7055
-
7056
- /**
7057
- * Copy the row to a cookie based clipboard
7058
- */
7059
- copyHandler: function(){
7060
- panels.helpers.clipboard.setModel( this.model );
7061
- },
7062
-
7063
- /**
7064
- * Handle clicking on delete.
7065
- *
7066
- * @returns {boolean}
7067
- */
7068
- deleteHandler: function () {
7069
- this.model.trigger( 'visual_destroy' );
7070
- return this;
7071
- },
7072
-
7073
- onModelChange: function () {
7074
- // Update the description when ever the model changes
7075
- this.$( '.description' ).html( this.model.getTitle() );
7076
- },
7077
-
7078
- onLabelChange: function( model ) {
7079
- this.$( '.title > h4' ).text( model.getWidgetField( 'title' ) );
7080
- },
7081
-
7082
- /**
7083
- * When the model is destroyed, fade it out
7084
- */
7085
- onModelDestroy: function () {
7086
- this.remove();
7087
- },
7088
-
7089
- /**
7090
- * Visually destroy a model
7091
- */
7092
- visualDestroyModel: function () {
7093
- // Add the history entry
7094
- this.cell.row.builder.addHistoryEntry( 'widget_deleted' );
7095
-
7096
- var thisView = this;
7097
- this.$el.fadeOut( 'fast', function () {
7098
- thisView.cell.row.resize();
7099
- thisView.model.destroy();
7100
- thisView.cell.row.builder.model.refreshPanelsData();
7101
- thisView.remove();
7102
- } );
7103
-
7104
- return this;
7105
- },
7106
-
7107
- /**
7108
- * Build up the contextual menu for a widget
7109
- *
7110
- * @param e
7111
- * @param menu
7112
- */
7113
- buildContextualMenu: function ( e, menu ) {
7114
- if( this.cell.row.builder.supports( 'addWidget' ) ) {
7115
- menu.addSection(
7116
- 'add-widget-below',
7117
- {
7118
- sectionTitle: panelsOptions.loc.contextual.add_widget_below,
7119
- searchPlaceholder: panelsOptions.loc.contextual.search_widgets,
7120
- defaultDisplay: panelsOptions.contextual.default_widgets
7121
- },
7122
- panelsOptions.widgets,
7123
- function ( c ) {
7124
- this.cell.row.builder.addHistoryEntry( 'widget_added' );
7125
-
7126
- var widget = new panels.model.widget( {
7127
- class: c
7128
- } );
7129
- widget.cell = this.cell.model;
7130
-
7131
- // Insert the new widget below
7132
- this.cell.model.get('widgets').add( widget, {
7133
- // Add this after the existing model
7134
- at: this.model.collection.indexOf( this.model ) + 1
7135
- } );
7136
-
7137
- this.cell.row.builder.model.refreshPanelsData();
7138
- }.bind( this )
7139
- );
7140
- }
7141
-
7142
- var actions = {};
7143
-
7144
- if( this.cell.row.builder.supports( 'editWidget' ) && ! this.model.get( 'read_only' ) ) {
7145
- actions.edit = { title: panelsOptions.loc.contextual.widget_edit };
7146
- }
7147
-
7148
- // Copy and paste functions
7149
- if ( panels.helpers.clipboard.canCopyPaste() ) {
7150
- actions.copy = {title: panelsOptions.loc.contextual.widget_copy};
7151
- }
7152
-
7153
- if( this.cell.row.builder.supports( 'addWidget' ) ) {
7154
- actions.duplicate = { title: panelsOptions.loc.contextual.widget_duplicate };
7155
- }
7156
-
7157
- if( this.cell.row.builder.supports( 'deleteWidget' ) ) {
7158
- actions.delete = { title: panelsOptions.loc.contextual.widget_delete, confirm: true };
7159
- }
7160
-
7161
- if( ! _.isEmpty( actions ) ) {
7162
- menu.addSection(
7163
- 'widget-actions',
7164
- {
7165
- sectionTitle: panelsOptions.loc.contextual.widget_actions,
7166
- search: false,
7167
- },
7168
- actions,
7169
- function ( c ) {
7170
- switch ( c ) {
7171
- case 'edit':
7172
- this.editHandler();
7173
- break;
7174
- case 'copy':
7175
- this.copyHandler();
7176
- break;
7177
- case 'duplicate':
7178
- this.duplicateHandler();
7179
- break;
7180
- case 'delete':
7181
- this.visualDestroyModel();
7182
- break;
7183
- }
7184
- }.bind( this )
7185
- );
7186
- }
7187
-
7188
- // Lets also add the contextual menu for the entire row
7189
- this.cell.buildContextualMenu( e, menu );
7190
- }
7191
-
7192
- } );
 
 
 
 
 
 
7193
 
7194
  },{}],30:[function(require,module,exports){
7195
  var $ = jQuery;
383
  } );
384
 
385
  },{}],7:[function(require,module,exports){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
386
  var panels = window.panels, $ = jQuery;
387
 
388
+ module.exports = panels.view.dialog.extend( {
389
 
390
+ directoryTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-directory-items' ).html() ) ),
391
 
392
+ builder: null,
393
+ dialogClass: 'so-panels-dialog-prebuilt-layouts',
394
+ dialogIcon: 'layouts',
395
+
396
+ layoutCache: {},
397
+ currentTab: false,
398
+ directoryPage: 1,
399
 
400
  events: {
401
  'click .so-close': 'closeDialog',
402
+ 'click .so-sidebar-tabs li a': 'tabClickHandler',
403
+ 'click .so-content .layout': 'layoutClickHandler',
404
+ 'keyup .so-sidebar-search': 'searchHandler',
405
 
406
+ // The directory items
407
+ 'click .so-screenshot, .so-title': 'directoryItemClickHandler'
 
 
 
 
 
 
 
408
  },
409
 
410
+ /**
411
+ * Initialize the prebuilt dialog.
412
+ */
413
+ initializeDialog: function () {
414
+ var thisView = this;
415
 
416
+ this.on( 'open_dialog', function () {
417
+ thisView.$( '.so-sidebar-tabs li a' ).first().click();
418
+ thisView.$( '.so-status' ).removeClass( 'so-panels-loading' );
419
+ } );
420
+
421
+ this.on( 'button_click', this.toolbarButtonClick, this );
422
+ },
423
 
424
  /**
425
+ * Render the prebuilt layouts dialog
426
  */
427
+ render: function () {
428
+ this.renderDialog( this.parseDialogContent( $( '#siteorigin-panels-dialog-prebuilt' ).html(), {} ) );
429
+
430
+ this.initToolbar();
 
431
  },
432
 
433
+ /**
434
+ *
435
+ * @param e
436
+ * @return {boolean}
437
+ */
438
+ tabClickHandler: function ( e ) {
439
+ e.preventDefault();
440
+ // Reset selected item state when changing tabs
441
+ this.selectedLayoutItem = null;
442
+ this.uploadedLayout = null;
443
+ this.updateButtonState( false );
444
 
445
+ this.$( '.so-sidebar-tabs li' ).removeClass( 'tab-active' );
 
 
 
 
 
 
446
 
447
+ var $$ = $( e.target );
448
+ var tab = $$.attr( 'href' ).split( '#' )[1];
449
+ $$.parent().addClass( 'tab-active' );
450
 
451
+ var thisView = this;
452
+
453
+ // Empty everything
454
+ this.$( '.so-content' ).empty();
455
+
456
+ thisView.currentTab = tab;
457
+ if ( tab == 'import' ) {
458
+ this.displayImportExport();
459
+ } else {
460
+ this.displayLayoutDirectory( '', 1, tab );
461
+ }
462
+
463
+ thisView.$( '.so-sidebar-search' ).val( '' );
464
+ },
465
+
466
+ /**
467
+ * Display and setup the import/export form
468
+ */
469
+ displayImportExport: function () {
470
+ var c = this.$( '.so-content' ).empty().removeClass( 'so-panels-loading' );
471
+ c.html( $( '#siteorigin-panels-dialog-prebuilt-importexport' ).html() );
472
 
 
 
473
  var thisView = this;
474
+ var uploadUi = thisView.$( '.import-upload-ui' );
475
+
476
+ // Create the uploader
477
+ var uploader = new plupload.Uploader( {
478
+ runtimes: 'html5,silverlight,flash,html4',
479
+
480
+ browse_button: uploadUi.find( '.file-browse-button' ).get( 0 ),
481
+ container: uploadUi.get( 0 ),
482
+ drop_element: uploadUi.find( '.drag-upload-area' ).get( 0 ),
483
+
484
+ file_data_name: 'panels_import_data',
485
+ multiple_queues: false,
486
+ max_file_size: panelsOptions.plupload.max_file_size,
487
+ url: panelsOptions.plupload.url,
488
+ flash_swf_url: panelsOptions.plupload.flash_swf_url,
489
+ silverlight_xap_url: panelsOptions.plupload.silverlight_xap_url,
490
+ filters: [
491
+ {title: panelsOptions.plupload.filter_title, extensions: 'json'}
492
+ ],
493
+
494
+ multipart_params: {
495
+ action: 'so_panels_import_layout'
496
+ },
497
+
498
+ init: {
499
+ PostInit: function ( uploader ) {
500
+ if ( uploader.features.dragdrop ) {
501
+ uploadUi.addClass( 'has-drag-drop' );
502
  }
503
+ uploadUi.find( '.progress-precent' ).css( 'width', '0%' );
504
+ },
505
+ FilesAdded: function ( uploader ) {
506
+ uploadUi.find( '.file-browse-button' ).blur();
507
+ uploadUi.find( '.drag-upload-area' ).removeClass( 'file-dragover' );
508
+ uploadUi.find( '.progress-bar' ).fadeIn( 'fast' );
509
+ thisView.$( '.js-so-selected-file' ).text( panelsOptions.loc.prebuilt_loading );
510
+ uploader.start();
511
+ },
512
+ UploadProgress: function ( uploader, file ) {
513
+ uploadUi.find( '.progress-precent' ).css( 'width', file.percent + '%' );
514
+ },
515
+ FileUploaded: function ( uploader, file, response ) {
516
+ var layout = JSON.parse( response.response );
517
+ if ( ! _.isUndefined( layout.widgets ) ) {
518
+
519
+ thisView.uploadedLayout = layout;
520
+ uploadUi.find( '.progress-bar' ).hide();
521
+ thisView.$( '.js-so-selected-file' ).text(
522
+ panelsOptions.loc.ready_to_insert.replace( '%s', file.name )
523
+ );
524
+ thisView.updateButtonState( true );
525
+ } else {
526
+ alert( panelsOptions.plupload.error_message );
527
+ }
528
+ },
529
+ Error: function () {
530
+ alert( panelsOptions.plupload.error_message );
531
+ }
532
  }
533
+ } );
534
+ uploader.init();
535
+
536
+ if ( /Edge\/\d./i.test(navigator.userAgent) ){
537
+ // A very dirty fix for a Microsoft Edge issue.
538
+ // TODO find a more elegant fix if Edge gains market share
539
+ setTimeout( function(){
540
+ uploader.refresh();
541
+ }, 250 );
542
+ }
543
 
544
+ // This is
545
+ uploadUi.find( '.drag-upload-area' )
546
+ .on( 'dragover', function () {
547
+ $( this ).addClass( 'file-dragover' );
548
+ } )
549
+ .on( 'dragleave', function () {
550
+ $( this ).removeClass( 'file-dragover' );
551
+ } );
552
 
553
+ // Handle exporting the file
554
+ c.find( '.so-export' ).submit( function ( e ) {
555
+ var $$ = $( this );
556
+ var panelsData = thisView.builder.model.getPanelsData();
557
+ var postName = $('input[name="post_title"]').val();
558
+ if ( ! postName ) {
559
+ postName = $('input[name="post_ID"]').val();
 
 
560
  }
561
+ panelsData.name = postName;
562
+ $$.find( 'input[name="panels_export_data"]' ).val( JSON.stringify( panelsData ) );
563
+ } );
564
+
565
  },
566
 
567
  /**
568
+ * Display the layout directory tab.
569
  *
570
+ * @param query
571
  */
572
+ displayLayoutDirectory: function ( search, page, type ) {
573
+ var thisView = this;
574
+ var c = this.$( '.so-content' ).empty().addClass( 'so-panels-loading' );
575
+
576
+ if ( search === undefined ) {
577
+ search = '';
578
+ }
579
+ if ( page === undefined ) {
580
+ page = 1;
581
+ }
582
+ if ( type === undefined ) {
583
+ type = 'directory-siteorigin';
584
+ }
585
+
586
+ if ( type.match('^directory-') && ! panelsOptions.directory_enabled ) {
587
+ // Display the button to enable the prebuilt layout
588
+ c.removeClass( 'so-panels-loading' ).html( $( '#siteorigin-panels-directory-enable' ).html() );
589
+ c.find( '.so-panels-enable-directory' ).click( function ( e ) {
590
+ e.preventDefault();
591
+ // Sent the query to enable the directory, then enable the directory
592
+ $.get(
593
+ panelsOptions.ajaxurl,
594
+ {action: 'so_panels_directory_enable'},
595
+ function () {
596
+
597
+ }
598
+ );
599
+
600
+ // Enable the layout directory
601
+ panelsOptions.directory_enabled = true;
602
+ c.addClass( 'so-panels-loading' );
603
+ thisView.displayLayoutDirectory( search, page, type );
604
+ } );
605
+ return;
606
+ }
607
+
608
+ // Get all the items for the current query
609
+ $.get(
610
+ panelsOptions.ajaxurl,
611
+ {
612
+ action: 'so_panels_layouts_query',
613
+ search: search,
614
+ page: page,
615
+ type: type,
616
+ },
617
+ function ( data ) {
618
+ // Skip this if we're no longer viewing the layout directory
619
+ if ( thisView.currentTab !== type ) {
620
+ return;
621
+ }
622
+
623
+ // Add the directory items
624
+ c.removeClass( 'so-panels-loading' ).html( thisView.directoryTemplate( data ) );
625
+
626
+ // Lets setup the next and previous buttons
627
+ var prev = c.find( '.so-previous' ), next = c.find( '.so-next' );
628
+
629
+ if ( page <= 1 ) {
630
+ prev.addClass( 'button-disabled' );
631
+ } else {
632
+ prev.click( function ( e ) {
633
+ e.preventDefault();
634
+ thisView.displayLayoutDirectory( search, page - 1, thisView.currentTab );
635
+ } );
636
+ }
637
+
638
+ if ( page === data.max_num_pages || data.max_num_pages === 0 ) {
639
+ next.addClass( 'button-disabled' );
640
+ } else {
641
+ next.click( function ( e ) {
642
+ e.preventDefault();
643
+ thisView.displayLayoutDirectory( search, page + 1, thisView.currentTab );
644
+ } );
645
+ }
646
+
647
+ // Handle nice preloading of the screenshots
648
+ c.find( '.so-screenshot' ).each( function () {
649
+ var $$ = $( this ), $a = $$.find( '.so-screenshot-wrapper' );
650
+ $a.css( 'height', ( $a.width() / 4 * 3 ) + 'px' ).addClass( 'so-loading' );
651
+
652
+ if ( $$.data( 'src' ) !== '' ) {
653
+ // Set the initial height
654
+ var $img = $( '<img/>' ).attr( 'src', $$.data( 'src' ) ).load( function () {
655
+ $a.removeClass( 'so-loading' ).css( 'height', 'auto' );
656
+ $img.appendTo( $a ).hide().fadeIn( 'fast' );
657
+ } );
658
+ } else {
659
+ $( '<img/>' ).attr( 'src', panelsOptions.prebuiltDefaultScreenshot ).appendTo( $a ).hide().fadeIn( 'fast' );
660
+ }
661
+
662
+ } );
663
+
664
+ // Set the title
665
+ c.find( '.so-directory-browse' ).html( data.title );
666
+ },
667
+ 'json'
668
+ );
669
+ },
670
+
671
+ /**
672
+ * Set the selected state for the clicked layout directory item and remove previously selected item.
673
+ * Enable the toolbar buttons.
674
+ */
675
+ directoryItemClickHandler: function ( e ) {
676
+ var $directoryItem = this.$( e.target ).closest( '.so-directory-item' );
677
+ this.$( '.so-directory-items' ).find( '.selected' ).removeClass( 'selected' );
678
+ $directoryItem.addClass( 'selected' );
679
+ this.selectedLayoutItem = {lid: $directoryItem.data( 'layout-id' ), type: $directoryItem.data( 'layout-type' )};
680
+ this.updateButtonState( true );
681
+
682
+ },
683
+
684
+ /**
685
+ * Load a particular layout into the builder.
686
+ *
687
+ * @param id
688
+ */
689
+ toolbarButtonClick: function ( $button ) {
690
+ if ( ! this.canAddLayout() ) {
691
+ return false;
692
+ }
693
+ var position = $button.data( 'value' );
694
+ if ( _.isUndefined( position ) ) {
695
+ return false;
696
+ }
697
+ this.updateButtonState( false );
698
+
699
+ if ( $button.hasClass( 'so-needs-confirm' ) && ! $button.hasClass( 'so-confirmed' ) ) {
700
+ this.updateButtonState( true );
701
+ if ( $button.hasClass( 'so-confirming' ) ) {
702
+ return;
703
+ }
704
+ $button.addClass( 'so-confirming' );
705
+ var originalText = $button.html();
706
+ $button.html( '<span class="dashicons dashicons-yes"></span>' + $button.data( 'confirm' ) );
707
+ setTimeout( function () {
708
+ $button.removeClass( 'so-confirmed' ).html( originalText );
709
+ }, 2500 );
710
+ setTimeout( function () {
711
+ $button.removeClass( 'so-confirming' );
712
+ $button.addClass( 'so-confirmed' );
713
+ }, 200 );
714
+ return false;
715
+ }
716
+ this.addingLayout = true;
717
+ if ( this.currentTab === 'import' ) {
718
+ this.addLayoutToBuilder( this.uploadedLayout, position );
719
+ } else {
720
+ this.loadSelectedLayout().then( function ( layout ) {
721
+ this.addLayoutToBuilder( layout, position );
722
+ }.bind( this ) );
723
+ }
724
+ },
725
+
726
+ canAddLayout: function () {
727
+ return (
728
+ this.selectedLayoutItem || this.uploadedLayout
729
+ ) && ! this.addingLayout;
730
+ },
731
+
732
+ /**
733
+ * Load the layout according to selectedLayoutItem.
734
+ */
735
+ loadSelectedLayout: function () {
736
+ this.setStatusMessage( panelsOptions.loc.prebuilt_loading, true );
737
+
738
+ var args = _.extend( this.selectedLayoutItem, {action: 'so_panels_get_layout'} );
739
+ var deferredLayout = new $.Deferred();
740
+
741
+ $.get(
742
+ panelsOptions.ajaxurl,
743
+ args,
744
+ function ( layout ) {
745
+ var msg = '';
746
+ if ( ! layout.success ) {
747
+ msg = layout.data.message;
748
+ deferredLayout.reject( layout.data );
749
+ } else {
750
+ deferredLayout.resolve( layout.data );
751
+ }
752
+ this.setStatusMessage( msg, false, ! layout.success );
753
+ this.updateButtonState( true );
754
+ }.bind( this )
755
+ );
756
+ return deferredLayout.promise();
757
+ },
758
+
759
+ /**
760
+ * Handle an update to the search
761
+ */
762
+ searchHandler: function ( e ) {
763
+ if ( e.keyCode === 13 ) {
764
+ this.displayLayoutDirectory( $( e.currentTarget ).val(), 1, this.currentTab );
765
+ }
766
+ },
767
+
768
+ /**
769
+ * Attempt to set the 'Insert' button's state according to the `enabled` argument, also checking whether the
770
+ * requirements for inserting a layout have valid values.
771
+ */
772
+ updateButtonState: function ( enabled ) {
773
+ enabled = enabled && (
774
+ this.selectedLayoutItem || this.uploadedLayout
775
+ );
776
+ var $button = this.$( '.so-import-layout' );
777
+ $button.prop( "disabled", ! enabled );
778
+ if ( enabled ) {
779
+ $button.removeClass( 'disabled' );
780
+ } else {
781
+ $button.addClass( 'disabled' );
782
+ }
783
+ },
784
+
785
+ addLayoutToBuilder: function ( layout, position ) {
786
+ this.builder.addHistoryEntry( 'prebuilt_loaded' );
787
+ this.builder.model.loadPanelsData( layout, position );
788
+ this.addingLayout = false;
789
+ this.closeDialog();
790
+ }
791
+ } );
792
+
793
+ },{}],8:[function(require,module,exports){
794
+ var panels = window.panels, $ = jQuery;
795
+
796
+ module.exports = panels.view.dialog.extend({
797
+
798
+ cellPreviewTemplate: _.template( panels.helpers.utils.processTemplate( $('#siteorigin-panels-dialog-row-cell-preview').html() ) ),
799
+
800
+ editableLabel: true,
801
+
802
+ events: {
803
+ 'click .so-close': 'closeDialog',
804
+
805
+ // Toolbar buttons
806
+ 'click .so-toolbar .so-save': 'saveHandler',
807
+ 'click .so-toolbar .so-insert': 'insertHandler',
808
+ 'click .so-toolbar .so-delete': 'deleteHandler',
809
+ 'click .so-toolbar .so-duplicate': 'duplicateHandler',
810
+
811
+ // Changing the row
812
+ 'change .row-set-form > *': 'setCellsFromForm',
813
+ 'click .row-set-form button.set-row': 'setCellsFromForm',
814
+ },
815
+
816
+ rowView: null,
817
+ dialogIcon: 'add-row',
818
+ dialogClass: 'so-panels-dialog-row-edit',
819
+ styleType: 'row',
820
+
821
+ dialogType: 'edit',
822
+
823
+ /**
824
+ * The current settings, not yet saved to the model
825
+ */
826
+ row: {
827
+ // This will be a clone of cells collection.
828
+ cells: null,
829
+ // The style settings of the row
830
+ style: {}
831
+ },
832
+
833
+ cellStylesCache: [],
834
+
835
+ initializeDialog: function () {
836
+ this.on('open_dialog', function () {
837
+ if (!_.isUndefined(this.model) && !_.isEmpty(this.model.get('cells'))) {
838
+ this.setRowModel(this.model);
839
+ } else {
840
+ this.setRowModel(null);
841
+ }
842
+
843
+ this.regenerateRowPreview();
844
+ }, this);
845
+
846
+ // This is the default row layout
847
+ this.row = {
848
+ cells: new panels.collection.cells([{weight: 0.5}, {weight: 0.5}]),
849
+ style: {}
850
+ };
851
+
852
+ // Refresh panels data after both dialog form components are loaded
853
+ this.dialogFormsLoaded = 0;
854
+ var thisView = this;
855
+ this.on('form_loaded styles_loaded', function () {
856
+ this.dialogFormsLoaded++;
857
+ if (this.dialogFormsLoaded === 2) {
858
+ thisView.updateModel({
859
+ refreshArgs: {
860
+ silent: true
861
+ }
862
+ });
863
+ }
864
+ });
865
+
866
+ this.on('close_dialog', this.closeHandler);
867
+
868
+ this.on( 'edit_label', function ( text ) {
869
+ // If text is set to default values, just clear it.
870
+ if ( text === panelsOptions.loc.row.add || text === panelsOptions.loc.row.edit ) {
871
+ text = '';
872
+ }
873
+ this.model.set( 'label', text );
874
+ if ( _.isEmpty( text ) ) {
875
+ var title = this.dialogType === 'create' ? panelsOptions.loc.row.add : panelsOptions.loc.row.edit;
876
+ this.$( '.so-title').text( title );
877
+ }
878
+ }.bind( this ) );
879
+ },
880
+
881
+ /**
882
+ *
883
+ * @param dialogType Either "edit" or "create"
884
+ */
885
+ setRowDialogType: function (dialogType) {
886
  this.dialogType = dialogType;
887
  },
888
 
1236
 
1237
  // So the draggable handle is not hidden.
1238
  rowPreview.find('.preview-cell').css('overflow', 'visible');
1239
+ setTimeout(thisDialog.regenerateRowPreview, 260);
 
 
 
1240
 
1241
  }, 100);
1242
  })
1420
  // So the draggable handle is not hidden.
1421
  this.$('.preview-cell').css('overflow', 'visible');
1422
 
1423
+ setTimeout(thisDialog.regenerateRowPreview, 260);
 
 
1424
  }
1425
  }
1426
  catch (err) {
1538
  */
1539
  deleteHandler: function () {
1540
  // Trigger a destroy on the model that will happen with a visual indication to the user
1541
+ this.rowView.visualDestroyModel();
1542
  this.closeDialog({silent: true});
1543
 
1544
  return false;
1598
 
1599
  initializeDialog: function () {
1600
  var thisView = this;
1601
+ this.listenTo( this.model, 'change:values', this.handleChangeValues );
1602
+ this.listenTo( this.model, 'destroy', this.remove );
1603
 
1604
  // Refresh panels data after both dialog form components are loaded
1605
  this.dialogFormsLoaded = 0;
1680
  if ( currentIndex === 0 ) {
1681
  return false;
1682
  } else {
1683
+ var widgetView;
1684
  do {
1685
  widgetView = widgets.eq( --currentIndex ).data( 'view' );
1686
  if ( ! _.isUndefined( widgetView ) && ! widgetView.model.get( 'read_only' ) ) {
1702
  return false;
1703
  }
1704
 
1705
+ var currentIndex = widgets.index( this.widgetView.$el );
1706
 
1707
  if ( currentIndex === widgets.length - 1 ) {
1708
  return false;
1709
  } else {
1710
+ var widgetView;
1711
  do {
1712
  widgetView = widgets.eq( ++currentIndex ).data( 'view' );
1713
  if ( ! _.isUndefined( widgetView ) && ! widgetView.model.get( 'read_only' ) ) {
1849
  * @returns {boolean}
1850
  */
1851
  deleteHandler: function () {
1852
+ this.widgetView.visualDestroyModel();
 
1853
  this.closeDialog( {silent: true} );
1854
  this.builder.model.refreshPanelsData();
1855
 
1857
  },
1858
 
1859
  duplicateHandler: function () {
1860
+ // Call the widget duplicate handler directly
1861
+ this.widgetView.duplicateHandler();
1862
 
1863
  this.closeDialog( {silent: true} );
1864
  this.builder.model.refreshPanelsData();
1869
  } );
1870
 
1871
  },{"../view/widgets/js-widget":31}],10:[function(require,module,exports){
1872
+ var panels = window.panels, $ = jQuery;
1873
+
1874
+ module.exports = panels.view.dialog.extend( {
1875
+
1876
+ builder: null,
1877
+ widgetTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-dialog-widgets-widget' ).html() ) ),
1878
+ filter: {},
1879
+
1880
+ dialogClass: 'so-panels-dialog-add-widget',
1881
+ dialogIcon: 'add-widget',
1882
+
1883
+ events: {
1884
+ 'click .so-close': 'closeDialog',
1885
+ 'click .widget-type': 'widgetClickHandler',
1886
+ 'keyup .so-sidebar-search': 'searchHandler'
1887
+ },
1888
+
1889
+ /**
1890
+ * Initialize the widget adding dialog
1891
+ */
1892
+ initializeDialog: function () {
1893
+
1894
+ this.on( 'open_dialog', function () {
1895
+ this.filter.search = '';
1896
+ this.filterWidgets( this.filter );
1897
+ }, this );
1898
+
1899
+ this.on( 'open_dialog_complete', function () {
1900
+ // Clear the search and re-filter the widgets when we open the dialog
1901
+ this.$( '.so-sidebar-search' ).val( '' ).focus();
1902
+ this.balanceWidgetHeights();
1903
+ } );
1904
+
1905
+ // We'll implement a custom tab click handler
1906
+ this.on( 'tab_click', this.tabClickHandler, this );
1907
+ },
1908
+
1909
+ render: function () {
1910
+ // Render the dialog and attach it to the builder interface
1911
+ this.renderDialog( this.parseDialogContent( $( '#siteorigin-panels-dialog-widgets' ).html(), {} ) );
1912
+
1913
+ // Add all the widgets
1914
+ _.each( panelsOptions.widgets, function ( widget ) {
1915
+ var $w = $( this.widgetTemplate( {
1916
+ title: widget.title,
1917
+ description: widget.description
1918
+ } ) );
1919
+
1920
+ if ( _.isUndefined( widget.icon ) ) {
1921
+ widget.icon = 'dashicons dashicons-admin-generic';
1922
+ }
1923
+
1924
+ $( '<span class="widget-icon" />' ).addClass( widget.icon ).prependTo( $w.find( '.widget-type-wrapper' ) );
1925
+
1926
+ $w.data( 'class', widget.class ).appendTo( this.$( '.widget-type-list' ) );
1927
+ }, this );
1928
+
1929
+ // Add the sidebar tabs
1930
+ var tabs = this.$( '.so-sidebar-tabs' );
1931
+ _.each( panelsOptions.widget_dialog_tabs, function ( tab ) {
1932
+ $( this.dialogTabTemplate( {'title': tab.title} ) ).data( {
1933
+ 'message': tab.message,
1934
+ 'filter': tab.filter
1935
+ } ).appendTo( tabs );
1936
+ }, this );
1937
+
1938
+ // We'll be using tabs, so initialize them
1939
+ this.initTabs();
1940
+
1941
+ var thisDialog = this;
1942
+ $( window ).resize( function () {
1943
+ thisDialog.balanceWidgetHeights();
1944
+ } );
1945
+ },
1946
+
1947
+ /**
1948
+ * Handle a tab being clicked
1949
+ */
1950
+ tabClickHandler: function ( $t ) {
1951
+ // Get the filter from the tab, and filter the widgets
1952
+ this.filter = $t.parent().data( 'filter' );
1953
+ this.filter.search = this.$( '.so-sidebar-search' ).val();
1954
+
1955
+ var message = $t.parent().data( 'message' );
1956
+ if ( _.isEmpty( message ) ) {
1957
+ message = '';
1958
+ }
1959
+
1960
+ this.$( '.so-toolbar .so-status' ).html( message );
1961
+
1962
+ this.filterWidgets( this.filter );
1963
+
1964
+ return false;
1965
+ },
1966
+
1967
+ /**
1968
+ * Handle changes to the search value
1969
+ */
1970
+ searchHandler: function ( e ) {
1971
+ if( e.which === 13 ) {
1972
+ var visibleWidgets = this.$( '.widget-type-list .widget-type:visible' );
1973
+ if( visibleWidgets.length === 1 ) {
1974
+ visibleWidgets.click();
1975
+ }
1976
+ }
1977
+ else {
1978
+ this.filter.search = $( e.target ).val().trim();
1979
+ this.filterWidgets( this.filter );
1980
+ }
1981
+ },
1982
+
1983
+ /**
1984
+ * Filter the widgets that we're displaying
1985
+ * @param filter
1986
+ */
1987
+ filterWidgets: function ( filter ) {
1988
+ if ( _.isUndefined( filter ) ) {
1989
+ filter = {};
1990
+ }
1991
+
1992
+ if ( _.isUndefined( filter.groups ) ) {
1993
+ filter.groups = '';
1994
+ }
1995
+
1996
+ this.$( '.widget-type-list .widget-type' ).each( function () {
1997
+ var $$ = $( this ), showWidget;
1998
+ var widgetClass = $$.data( 'class' );
1999
+
2000
+ var widgetData = (
2001
+ ! _.isUndefined( panelsOptions.widgets[widgetClass] )
2002
+ ) ? panelsOptions.widgets[widgetClass] : null;
2003
+
2004
+ if ( _.isEmpty( filter.groups ) ) {
2005
+ // This filter doesn't specify groups, so show all
2006
+ showWidget = true;
2007
+ } else if ( widgetData !== null && ! _.isEmpty( _.intersection( filter.groups, panelsOptions.widgets[widgetClass].groups ) ) ) {
2008
+ // This widget is in the filter group
2009
+ showWidget = true;
2010
+ } else {
2011
+ // This widget is not in the filter group
2012
+ showWidget = false;
2013
+ }
2014
+
2015
+ // This can probably be done with a more intelligent operator
2016
+ if ( showWidget ) {
2017
+
2018
+ if ( ! _.isUndefined( filter.search ) && filter.search !== '' ) {
2019
+ // Check if the widget title contains the search term
2020
+ if ( widgetData.title.toLowerCase().indexOf( filter.search.toLowerCase() ) === - 1 ) {
2021
+ showWidget = false;
2022
+ }
2023
+ }
2024
+
2025
+ }
2026
+
2027
+ if ( showWidget ) {
2028
+ $$.show();
2029
+ } else {
2030
+ $$.hide();
2031
+ }
2032
+ } );
2033
+
2034
+ // Balance the tags after filtering
2035
+ this.balanceWidgetHeights();
2036
+ },
2037
+
2038
+ /**
2039
+ * Add the widget to the current builder
2040
+ *
2041
+ * @param e
2042
+ */
2043
+ widgetClickHandler: function ( e ) {
2044
+ // Add the history entry
2045
+ this.builder.trigger('before_user_adds_widget');
2046
+ this.builder.addHistoryEntry( 'widget_added' );
2047
+
2048
+ var $w = $( e.currentTarget );
2049
+
2050
+ var widget = new panels.model.widget( {
2051
+ class: $w.data( 'class' )
2052
+ } );
2053
+
2054
+ // Add the widget to the cell model
2055
+ widget.cell = this.builder.getActiveCell();
2056
+ widget.cell.get('widgets').add( widget );
2057
+
2058
+ this.closeDialog();
2059
+ this.builder.model.refreshPanelsData();
2060
+
2061
+ this.builder.trigger('after_user_adds_widget', widget);
2062
+ },
2063
+
2064
+ /**
2065
+ * Balance widgets in a given row so they have enqual height.
2066
+ * @param e
2067
+ */
2068
+ balanceWidgetHeights: function ( e ) {
2069
+ var widgetRows = [[]];
2070
+ var previousWidget = null;
2071
+
2072
+ // Work out how many widgets there are per row
2073
+ var perRow = Math.round( this.$( '.widget-type' ).parent().width() / this.$( '.widget-type' ).width() );
2074
+
2075
+ // Add clears to create balanced rows
2076
+ this.$( '.widget-type' )
2077
+ .css( 'clear', 'none' )
2078
+ .filter( ':visible' )
2079
+ .each( function ( i, el ) {
2080
+ if ( i % perRow === 0 && i !== 0 ) {
2081
+ $( el ).css( 'clear', 'both' );
2082
+ }
2083
+ } );
2084
+
2085
+ // Group the widgets into rows
2086
+ this.$( '.widget-type-wrapper' )
2087
+ .css( 'height', 'auto' )
2088
+ .filter( ':visible' )
2089
+ .each( function ( i, el ) {
2090
+ var $el = $( el );
2091
+ if ( previousWidget !== null && previousWidget.position().top !== $el.position().top ) {
2092
+ widgetRows[widgetRows.length] = [];
2093
+ }
2094
+ previousWidget = $el;
2095
+ widgetRows[widgetRows.length - 1].push( $el );
2096
+ } );
2097
+
2098
+ // Balance the height of the widgets within the row.
2099
+ _.each( widgetRows, function ( row, i ) {
2100
+ var maxHeight = _.max( row.map( function ( el ) {
2101
+ return el.height();
2102
+ } ) );
2103
+ // Set the height of each widget in the row
2104
+ _.each( row, function ( el ) {
2105
+ el.height( maxHeight );
2106
+ } );
2107
+
2108
+ } );
2109
+ }
2110
+ } );
2111
 
2112
  },{}],11:[function(require,module,exports){
2113
  module.exports = {
3332
  } );
3333
 
3334
  },{}],21:[function(require,module,exports){
3335
+ /**
3336
+ * Model for an instance of a widget
3337
+ */
3338
+ module.exports = Backbone.Model.extend( {
3339
+
3340
+ cell: null,
3341
+
3342
+ defaults: {
3343
+ // The PHP Class of the widget
3344
+ class: null,
3345
+
3346
+ // Is this class missing? Missing widgets are a special case.
3347
+ missing: false,
3348
+
3349
+ // The values of the widget
3350
+ values: {},
3351
+
3352
+ // Have the current values been passed through the widgets update function
3353
+ raw: false,
3354
+
3355
+ // Visual style fields
3356
+ style: {},
3357
+
3358
+ read_only: false,
3359
+ widget_id: '',
3360
+ },
3361
+
3362
+ indexes: null,
3363
+
3364
+ initialize: function () {
3365
+ var widgetClass = this.get( 'class' );
3366
+ if ( _.isUndefined( panelsOptions.widgets[widgetClass] ) || ! panelsOptions.widgets[widgetClass].installed ) {
3367
+ this.set( 'missing', true );
3368
+ }
3369
+ },
3370
+
3371
+ /**
3372
+ * @param field
3373
+ * @returns {*}
3374
+ */
3375
+ getWidgetField: function ( field ) {
3376
+ if ( _.isUndefined( panelsOptions.widgets[this.get( 'class' )] ) ) {
3377
+ if ( field === 'title' || field === 'description' ) {
3378
+ return panelsOptions.loc.missing_widget[field];
3379
+ } else {
3380
+ return '';
3381
+ }
3382
+ } else if ( this.has( 'label' ) && ! _.isEmpty( this.get( 'label' ) ) ) {
3383
+ // Use the label instead of the actual widget title
3384
+ return this.get( 'label' );
3385
+ } else {
3386
+ return panelsOptions.widgets[ this.get( 'class' ) ][ field ];
3387
+ }
3388
+ },
3389
+
3390
+ /**
3391
+ * Move this widget model to a new cell. Called by the views.
3392
+ *
3393
+ * @param panels.model.cell newCell
3394
+ * @param object options The options passed to the
3395
+ *
3396
+ * @return boolean Indicating if the widget was moved into a different cell
3397
+ */
3398
+ moveToCell: function ( newCell, options, at ) {
3399
+ options = _.extend( {
3400
+ silent: true,
3401
+ }, options );
3402
+
3403
+ this.cell = newCell;
3404
+ this.collection.remove( this, options );
3405
+ newCell.get('widgets').add( this, _.extend( {
3406
+ at: at
3407
+ }, options ) );
3408
+
3409
+ // This should be used by views to reposition everything.
3410
+ this.trigger( 'move_to_cell', newCell, at );
3411
+
3412
+ return this;
3413
+ },
3414
+
3415
+ /**
3416
+ * This is basically a wrapper for set that checks if we need to trigger a change
3417
+ */
3418
+ setValues: function ( values ) {
3419
+ var hasChanged = false;
3420
+ if ( JSON.stringify( values ) !== JSON.stringify( this.get( 'values' ) ) ) {
3421
+ hasChanged = true;
3422
+ }
3423
+
3424
+ this.set( 'values', values, {silent: true} );
3425
+
3426
+ if ( hasChanged ) {
3427
+ // We'll trigger our own change events.
3428
+ // NB: Must include the model being changed (i.e. `this`) as a workaround for a bug in Backbone 1.2.3
3429
+ this.trigger( 'change', this );
3430
+ this.trigger( 'change:values' );
3431
+ }
3432
+ },
3433
+
3434
+ /**
3435
+ * Create a clone of this widget attached to the given cell.
3436
+ *
3437
+ * @param {panels.model.cell} cell The cell model we're attaching this widget clone to.
3438
+ * @returns {panels.model.widget}
3439
+ */
3440
+ clone: function ( cell, options ) {
3441
+ if ( _.isUndefined( cell ) ) {
3442
+ cell = this.cell;
3443
+ }
3444
+
3445
+ var clone = new this.constructor( this.attributes );
3446
+
3447
+ // Create a deep clone of the original values
3448
+ var cloneValues = JSON.parse( JSON.stringify( this.get( 'values' ) ) );
3449
+
3450
+ // We want to exclude any fields that start with _ from the clone. Assuming these are internal.
3451
+ var cleanClone = function ( vals ) {
3452
+ _.each( vals, function ( el, i ) {
3453
+ if ( _.isString( i ) && i[0] === '_' ) {
3454
+ delete vals[i];
3455
+ }
3456
+ else if ( _.isObject( vals[i] ) ) {
3457
+ cleanClone( vals[i] );
3458
+ }
3459
+ } );
3460
+
3461
+ return vals;
3462
+ };
3463
+ cloneValues = cleanClone( cloneValues );
3464
+
3465
+ if ( this.get( 'class' ) === "SiteOrigin_Panels_Widgets_Layout" ) {
3466
+ // Special case of this being a layout widget, it needs a new ID
3467
+ cloneValues.builder_id = Math.random().toString( 36 ).substr( 2 );
3468
+ }
3469
+
3470
+ clone.set( 'widget_id', '' );
3471
+ clone.set( 'values', cloneValues, {silent: true} );
3472
+ clone.set( 'collection', cell.get('widgets'), {silent: true} );
3473
+ clone.cell = cell;
3474
+
3475
+ // This is used to force a form reload later on
3476
+ clone.isDuplicate = true;
3477
+
3478
+ return clone;
3479
+ },
3480
+
3481
+ /**
3482
+ * Gets the value that makes most sense as the title.
3483
+ */
3484
+ getTitle: function () {
3485
+ var widgetData = panelsOptions.widgets[this.get( 'class' )];
3486
+
3487
+ if ( _.isUndefined( widgetData ) ) {
3488
+ return this.get( 'class' ).replace( /_/g, ' ' );
3489
+ }
3490
+ else if ( ! _.isUndefined( widgetData.panels_title ) ) {
3491
+ // This means that the widget has told us which field it wants us to use as a title
3492
+ if ( widgetData.panels_title === false ) {
3493
+ return panelsOptions.widgets[this.get( 'class' )].description;
3494
+ }
3495
+ }
3496
+
3497
+ var values = this.get( 'values' );
3498
+
3499
+ // Create a list of fields to check for a title
3500
+ var titleFields = ['title', 'text'];
3501
+
3502
+ for ( var k in values ) {
3503
+ if ( values.hasOwnProperty( k ) ) {
3504
+ titleFields.push( k );
3505
+ }
3506
+ }
3507
+
3508
+ titleFields = _.uniq( titleFields );
3509
+
3510
+ for ( var i in titleFields ) {
3511
+ if (
3512
+ ! _.isUndefined( values[titleFields[i]] ) &&
3513
+ _.isString( values[titleFields[i]] ) &&
3514
+ values[titleFields[i]] !== '' &&
3515
+ values[titleFields[i]] !== 'on' &&
3516
+ titleFields[i][0] !== '_' && ! jQuery.isNumeric( values[titleFields[i]] )
3517
+ ) {
3518
+ var title = values[titleFields[i]];
3519
+ title = title.replace( /<\/?[^>]+(>|$)/g, "" );
3520
+ var parts = title.split( " " );
3521
+ parts = parts.slice( 0, 20 );
3522
+ return parts.join( ' ' );
3523
+ }
3524
+ }
3525
+
3526
+ // If we still have nothing, then just return the widget description
3527
+ return this.getWidgetField( 'description' );
3528
+ }
3529
+
3530
+ } );
3531
 
3532
+ },{}],22:[function(require,module,exports){
3533
+ var panels = window.panels, $ = jQuery;
3534
 
3535
+ module.exports = Backbone.View.extend( {
3536
+ wrapperTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-context-menu' ).html() ) ),
3537
+ sectionTemplate: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-context-menu-section' ).html() ) ),
3538
 
3539
+ contexts: [],
3540
+ active: false,
3541
 
3542
+ events: {
3543
+ 'keyup .so-search-wrapper input': 'searchKeyUp'
 
 
 
3544
  },
3545
 
3546
  /**
3547
+ * Intialize the context menu
 
3548
  */
3549
+ initialize: function () {
3550
+ this.listenContextMenu();
3551
+ this.render();
3552
+ this.attach();
 
 
 
 
 
 
 
 
 
3553
  },
3554
 
3555
  /**
3556
+ * Listen for the right click context menu
 
 
 
 
 
3557
  */
3558
+ listenContextMenu: function () {
3559
+ var thisView = this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3560
 
3561
  $( window ).on( 'contextmenu', function ( e ) {
3562
  if ( thisView.active && ! thisView.isOverEl( thisView.$el, e ) ) {
3931
  this.dialogs.row.setRowDialogType( 'create' );
3932
 
3933
  // This handles a new row being added to the collection - we'll display it in the interface
3934
+ this.listenTo( this.model.get( 'rows' ), 'add', this.onAddRow );
3935
 
3936
  // Reflow the entire builder when ever the
3937
  $( window ).resize( function ( e ) {
3941
  } );
3942
 
3943
  // When the data changes in the model, store it in the field
3944
+ this.listenTo( this.model, 'change:data load_panels_data', this.storeModelData );
3945
+ this.listenTo( this.model, 'change:data load_panels_data', this.toggleWelcomeDisplay );
3946
 
3947
  // Handle a content change
3948
  this.on( 'content_change', this.handleContentChange, this );
3949
  this.on( 'display_builder', this.handleDisplayBuilder, this );
3950
  this.on( 'hide_builder', this.handleHideBuilder, this );
3951
  this.on( 'builder_rendered builder_resize', this.handleBuilderSizing, this );
3952
+
 
3953
  this.on( 'display_builder', this.wrapEditorExpandAdjust, this );
3954
 
3955
  // Create the context menu for this builder
3956
  this.menu = new panels.utils.menu( {} );
3957
+ this.listenTo( this.menu, 'activate_context', this.activateContextMenu )
3958
+
3959
  if ( this.config.loadOnAttach ) {
3960
  this.on( 'builder_attached_to_editor', function () {
3961
  this.displayAttachedBuilder( { confirm: false } );
4249
  appendTo: '#wpwrap',
4250
  items: '.so-row-container',
4251
  handle: '.so-row-move',
 
4252
  axis: 'y',
4253
  tolerance: 'pointer',
4254
  scroll: false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4255
  stop: function ( e, ui ) {
4256
+ builderView.addHistoryEntry( 'row_moved' );
4257
+
4258
  var $$ = $( ui.item ),
4259
+ row = $$.data( 'view' );
 
4260
 
4261
+ builderView.model.get( 'rows' ).remove( row.model, {
4262
+ 'silent': true
4263
+ } );
4264
+ builderView.model.get( 'rows' ).add( row.model, {
4265
+ 'silent': true,
4266
+ 'at': $$.index()
4267
+ } );
4268
+
4269
+ row.trigger( 'move', $$.index() );
4270
+
4271
+ builderView.model.refreshPanelsData();
 
 
 
 
 
4272
  }
4273
  } );
4274
 
4288
  /**
4289
  * Set the field that's used to store the data
4290
  * @param field
 
4291
  */
4292
  setDataField: function ( field, options ) {
4293
  options = _.extend( {
4306
  data = {};
4307
  }
4308
 
4309
+ this.model.loadPanelsData( data );
4310
+ this.currentData = data;
4311
+ this.toggleWelcomeDisplay();
4312
  }
4313
 
4314
  return this;
4315
  },
4316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4317
  /**
4318
  * Store the model data in the data html field set in this.setDataField.
4319
  */
4359
 
4360
  this.refreshSortable();
4361
  rowView.resize();
 
4362
  },
4363
 
4364
  /**
4742
 
4743
  // Only run this if its element is the topmost builder, in the topmost dialog
4744
  if (
4745
+ builder.$el.is( topmostBuilder ) &&
 
 
 
 
4746
  (
4747
  topmostDialog.length === 0 ||
4748
  topmostDialog.is( closestDialog )
4824
  widgetSortable: null,
4825
 
4826
  initialize: function () {
4827
+ this.listenTo(this.model.get('widgets'), 'add', this.onAddWidget );
4828
  },
4829
 
4830
  /**
4864
  }
4865
 
4866
  var cellView = this;
4867
+
4868
+ // Go up the view hierarchy until we find the ID attribute
4869
+ var builderID = cellView.row.builder.$el.attr( 'id' );
4870
 
4871
  // Create a widget sortable that's connected with all other cells
4872
  this.widgetSortable = this.$( '.widgets-container' ).sortable( {
4873
  placeholder: "so-widget-sortable-highlight",
4874
+ connectWith: '#' + builderID + ' .so-cells .cell .widgets-container',
4875
  tolerance: 'pointer',
4876
  scroll: false,
4877
  over: function ( e, ui ) {
4878
  // This will make all the rows in the current builder resize
4879
  cellView.row.builder.trigger( 'widget_sortable_move' );
4880
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4881
  stop: function ( e, ui ) {
4882
+ cellView.row.builder.addHistoryEntry( 'widget_moved' );
4883
+
4884
  var $$ = $( ui.item ),
4885
  widget = $$.data( 'view' ),
4886
  targetCell = $$.closest( '.cell' ).data( 'view' );
4887
+
4888
+ // Move the model and the view to the new cell
4889
+ widget.model.moveToCell( targetCell.model, {}, $$.index() );
4890
+ widget.cell = targetCell;
4891
+
4892
+ widget.cell.row.builder.model.refreshPanelsData();
 
 
 
 
 
 
 
4893
  },
4894
  helper: function ( e, el ) {
4895
  var helper = el.clone()
5071
 
5072
  this.refreshSortable();
5073
  this.row.resize();
 
5074
  },
5075
 
5076
  /**
5125
  },
5126
  panelsOptions.widgets,
5127
  function ( c ) {
5128
+ thisView.row.builder.trigger('before_user_adds_widget')
5129
  thisView.row.builder.addHistoryEntry( 'widget_added' );
5130
 
5131
  var widget = new panels.model.widget( {
5137
  widget.cell.get('widgets').add( widget );
5138
 
5139
  thisView.row.builder.model.refreshPanelsData();
5140
+ thisView.row.builder.trigger('after_user_adds_widget', widget);
5141
  }
5142
  );
5143
  }
5720
  } );
5721
 
5722
  },{}],26:[function(require,module,exports){
5723
+ var panels = window.panels, $ = jQuery;
5724
+
5725
+ module.exports = Backbone.View.extend( {
5726
+ template: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-live-editor' ).html() ) ),
5727
+
5728
+ previewScrollTop: 0,
5729
+ loadTimes: [],
5730
+ previewFrameId: 1,
5731
+
5732
+ previewUrl: null,
5733
+ previewIframe: null,
5734
+
5735
+ events: {
5736
+ 'click .live-editor-close': 'close',
5737
+ 'click .live-editor-collapse': 'collapse',
5738
+ 'click .live-editor-mode': 'mobileToggle'
5739
+ },
5740
+
5741
+ initialize: function ( options ) {
5742
+ options = _.extend( {
5743
+ builder: false,
5744
+ previewUrl: false,
5745
+ }, options );
5746
+
5747
+ if( _.isEmpty( options.previewUrl ) ) {
5748
+ options.previewUrl = panelsOptions.ajaxurl + "&action=so_panels_live_editor_preview";
5749
+ }
5750
+
5751
+ this.builder = options.builder;
5752
+ this.previewUrl = options.previewUrl;
5753
+
5754
+ this.listenTo( this.builder.model, 'refresh_panels_data', this.handleRefreshData );
5755
+ this.listenTo( this.builder.model, 'load_panels_data', this.handleLoadData );
5756
+ },
5757
+
5758
+ /**
5759
+ * Render the live editor
5760
+ */
5761
+ render: function () {
5762
+ this.setElement( this.template() );
5763
+ this.$el.hide();
5764
+
5765
+ var isMouseDown = false;
5766
+ $( document )
5767
+ .mousedown( function () {
5768
+ isMouseDown = true;
5769
+ } )
5770
+ .mouseup( function () {
5771
+ isMouseDown = false;
5772
+ } );
5773
+
5774
+ // Handle highlighting the relevant widget in the live editor preview
5775
+ var liveEditorView = this;
5776
+ this.$el.on( 'mouseenter', '.so-widget-wrapper', function () {
5777
+ var $$ = $( this ),
5778
+ previewWidget = $$.data( 'live-editor-preview-widget' );
5779
+
5780
+ if ( ! isMouseDown && previewWidget !== undefined && previewWidget.length && ! liveEditorView.$( '.so-preview-overlay' ).is( ':visible' ) ) {
5781
+ liveEditorView.highlightElement( previewWidget );
5782
+ liveEditorView.scrollToElement( previewWidget );
5783
+ }
5784
+ } );
5785
+
5786
+ this.$el.on( 'mouseleave', '.so-widget-wrapper', function () {
5787
+ this.resetHighlights();
5788
+ }.bind(this) );
5789
+
5790
+ this.listenTo( this.builder, 'open_dialog', function () {
5791
+ this.resetHighlights();
5792
+ } );
5793
+
5794
+ return this;
5795
+ },
5796
+
5797
+ /**
5798
+ * Attach the live editor to the document
5799
+ */
5800
+ attach: function () {
5801
+ this.$el.appendTo( 'body' );
5802
+ },
5803
+
5804
+ /**
5805
+ * Display the live editor
5806
+ */
5807
+ open: function () {
5808
+ if ( this.$el.html() === '' ) {
5809
+ this.render();
5810
+ }
5811
+ if ( this.$el.closest( 'body' ).length === 0 ) {
5812
+ this.attach();
5813
+ }
5814
+
5815
+ // Disable page scrolling
5816
+ panels.helpers.pageScroll.lock();
5817
+
5818
+ if ( this.$el.is( ':visible' ) ) {
5819
+ return this;
5820
+ }
5821
+
5822
+ // Refresh the preview display
5823
+ this.$el.show();
5824
+ this.refreshPreview( this.builder.model.getPanelsData() );
5825
+
5826
+ // Move the builder view into the Live Editor
5827
+ this.originalContainer = this.builder.$el.parent();
5828
+ this.builder.$el.appendTo( this.$( '.so-live-editor-builder' ) );
5829
+ this.builder.$( '.so-tool-button.so-live-editor' ).hide();
5830
+ this.builder.trigger( 'builder_resize' );
5831
+
5832
+
5833
+ if( $('#original_post_status' ).val() === 'auto-draft' && ! this.autoSaved ) {
5834
+ // The live editor requires a saved draft post, so we'll create one for auto-draft posts
5835
+ var thisView = this;
5836
+
5837
+ if ( wp.autosave ) {
5838
+ // Set a temporary post title so the autosave triggers properly
5839
+ if( $('#title[name="post_title"]' ).val() === '' ) {
5840
+ $('#title[name="post_title"]' ).val( panelsOptions.loc.draft ).trigger('keydown');
5841
+ }
5842
+
5843
+ $( document ).one( 'heartbeat-tick.autosave', function(){
5844
+ thisView.autoSaved = true;
5845
+ thisView.refreshPreview( thisView.builder.model.getPanelsData() );
5846
+ } );
5847
+ wp.autosave.server.triggerSave();
5848
+ }
5849
+ }
5850
+ },
5851
+
5852
+ /**
5853
+ * Close the live editor
5854
+ */
5855
+ close: function () {
5856
+ if ( ! this.$el.is( ':visible' ) ) {
5857
+ return this;
5858
+ }
5859
+
5860
+ this.$el.hide();
5861
+ panels.helpers.pageScroll.unlock();
5862
+
5863
+ // Move the builder back to its original container
5864
+ this.builder.$el.appendTo( this.originalContainer );
5865
+ this.builder.$( '.so-tool-button.so-live-editor' ).show();
5866
+ this.builder.trigger( 'builder_resize' );
5867
+ },
5868
+
5869
+ /**
5870
+ * Collapse the live editor
5871
+ */
5872
+ collapse: function () {
5873
+ this.$el.toggleClass( 'so-collapsed' );
5874
+
5875
+ var text = this.$( '.live-editor-collapse span' );
5876
+ text.html( text.data( this.$el.hasClass( 'so-collapsed' ) ? 'expand' : 'collapse' ) );
5877
+ },
5878
+
5879
+ /**
5880
+ * Create an overlay in the preview.
5881
+ *
5882
+ * @param over
5883
+ * @return {*|Object} The item we're hovering over.
5884
+ */
5885
+ highlightElement: function ( over ) {
5886
+ if( ! _.isUndefined( this.resetHighlightTimeout ) ) {
5887
+ clearTimeout( this.resetHighlightTimeout );
5888
+ }
5889
+
5890
+ // Remove any old overlays
5891
+
5892
+ var body = this.previewIframe.contents().find( 'body' );
5893
+ body.find( '.panel-grid .panel-grid-cell .so-panel' )
5894
+ .filter( function () {
5895
+ // Filter to only include non nested
5896
+ return $( this ).parents( '.so-panel' ).length === 0;
5897
+ } )
5898
+ .not( over )
5899
+ .addClass( 'so-panels-faded' );
5900
+
5901
+ over.removeClass( 'so-panels-faded' ).addClass( 'so-panels-highlighted' );
5902
+ },
5903
+
5904
+ /**
5905
+ * Reset highlights in the live preview
5906
+ */
5907
+ resetHighlights: function() {
5908
+
5909
+ var body = this.previewIframe.contents().find( 'body' );
5910
+ this.resetHighlightTimeout = setTimeout( function(){
5911
+ body.find( '.panel-grid .panel-grid-cell .so-panel' )
5912
+ .removeClass( 'so-panels-faded so-panels-highlighted' );
5913
+ }, 100 );
5914
+ },
5915
+
5916
+ /**
5917
+ * Scroll over an element in the live preview
5918
+ * @param over
5919
+ */
5920
+ scrollToElement: function( over ) {
5921
+ var contentWindow = this.$( '.so-preview iframe' )[0].contentWindow;
5922
+ contentWindow.liveEditorScrollTo( over );
5923
+ },
5924
+
5925
+ handleRefreshData: function ( newData, args ) {
5926
+ if ( ! this.$el.is( ':visible' ) ) {
5927
+ return this;
5928
+ }
5929
+
5930
+ this.refreshPreview( newData );
5931
+ },
5932
+
5933
+ handleLoadData: function () {
5934
+ if ( ! this.$el.is( ':visible' ) ) {
5935
+ return this;
5936
+ }
5937
+
5938
+ this.refreshPreview( this.builder.model.getPanelsData() );
5939
+ },
5940
+
5941
+ /**
5942
+ * Refresh the Live Editor preview.
5943
+ * @returns {exports}
5944
+ */
5945
+ refreshPreview: function ( data ) {
5946
+ var loadTimePrediction = this.loadTimes.length ?
5947
+ _.reduce( this.loadTimes, function ( memo, num ) {
5948
+ return memo + num;
5949
+ }, 0 ) / this.loadTimes.length : 1000;
5950
+
5951
+ // Store the last preview iframe position
5952
+ if( ! _.isNull( this.previewIframe ) ) {
5953
+ if ( ! this.$( '.so-preview-overlay' ).is( ':visible' ) ) {
5954
+ this.previewScrollTop = this.previewIframe.contents().scrollTop();
5955
+ }
5956
+ }
5957
+
5958
+ // Add a loading bar
5959
+ this.$( '.so-preview-overlay' ).show();
5960
+ this.$( '.so-preview-overlay .so-loading-bar' )
5961
+ .clearQueue()
5962
+ .css( 'width', '0%' )
5963
+ .animate( {width: '100%'}, parseInt( loadTimePrediction ) + 100 );
5964
+
5965
+
5966
+ this.postToIframe(
5967
+ {
5968
+ live_editor_panels_data: JSON.stringify( data ),
5969
+ live_editor_post_ID: this.builder.config.postId
5970
+ },
5971
+ this.previewUrl,
5972
+ this.$('.so-preview')
5973
+ );
5974
+
5975
+ this.previewIframe.data( 'load-start', new Date().getTime() );
5976
+ },
5977
+
5978
+ /**
5979
+ * Use a temporary form to post data to an iframe.
5980
+ *
5981
+ * @param data The data to send
5982
+ * @param url The preview URL
5983
+ * @param target The target iframe
5984
+ */
5985
+ postToIframe: function( data, url, target ){
5986
+ // Store the old preview
5987
+
5988
+ if( ! _.isNull( this.previewIframe ) ) {
5989
+ this.previewIframe.remove();
5990
+ }
5991
+
5992
+ var iframeId = 'siteorigin-panels-live-preview-' + this.previewFrameId;
5993
+
5994
+ // Remove the old preview frame
5995
+ this.previewIframe = $('<iframe src="javascript:false;" />')
5996
+ .attr( {
5997
+ 'id' : iframeId,
5998
+ 'name' : iframeId,
5999
+ } )
6000
+ .appendTo( target )
6001
+
6002
+ this.setupPreviewFrame( this.previewIframe );
6003
+
6004
+ // We can use a normal POST form submit
6005
+ var tempForm = $('<form id="soPostToPreviewFrame" method="post" />')
6006
+ .attr( {
6007
+ id: iframeId,
6008
+ target: this.previewIframe.attr('id'),
6009
+ action: url
6010
+ } )
6011
+ .appendTo( 'body' );
6012
+
6013
+ $.each( data, function( name, value ){
6014
+ $('<input type="hidden" />')
6015
+ .attr( {
6016
+ name: name,
6017
+ value: value
6018
+ } )
6019
+ .appendTo( tempForm );
6020
+ } );
6021
+
6022
+ tempForm
6023
+ .submit()
6024
+ .remove();
6025
+
6026
+ this.previewFrameId++;
6027
+
6028
+ return this.previewIframe;
6029
+ },
6030
+
6031
+ /**
6032
+ * Do all the basic setup for the preview Iframe element
6033
+ * @param iframe
6034
+ */
6035
+ setupPreviewFrame: function( iframe ){
6036
+ var thisView = this;
6037
+ iframe
6038
+ .data( 'iframeready', false )
6039
+ .on( 'iframeready', function () {
6040
+ var $$ = $( this ),
6041
+ $iframeContents = $$.contents();
6042
+
6043
+ if( $$.data( 'iframeready' ) ) {
6044
+ // Skip this if the iframeready function has already run
6045
+ return;
6046
+ }
6047
+
6048
+ $$.data( 'iframeready', true );
6049
+
6050
+ if ( $$.data( 'load-start' ) !== undefined ) {
6051
+ thisView.loadTimes.unshift( new Date().getTime() - $$.data( 'load-start' ) );
6052
+
6053
+ if ( ! _.isEmpty( thisView.loadTimes ) ) {
6054
+ thisView.loadTimes = thisView.loadTimes.slice( 0, 4 );
6055
+ }
6056
+ }
6057
+
6058
+ setTimeout( function(){
6059
+ // Scroll to the correct position
6060
+ $iframeContents.scrollTop( thisView.previewScrollTop );
6061
+ thisView.$( '.so-preview-overlay' ).hide();
6062
+ }, 100 );
6063
+
6064
+
6065
+ // Lets find all the first level grids. This is to account for the Page Builder layout widget.
6066
+ var layoutWrapper = $iframeContents.find( '#pl-' + thisView.builder.config.postId );
6067
+ layoutWrapper.find( '.panel-grid .panel-grid-cell .so-panel' )
6068
+ .filter( function () {
6069
+ // Filter to only include non nested
6070
+ return $( this ).closest( '.panel-layout' ).is( layoutWrapper );
6071
+ } )
6072
+ .each( function ( i, el ) {
6073
+ var $$ = $( el );
6074
+ var widgetEdit = thisView.$( '.so-live-editor-builder .so-widget-wrapper' ).eq( $$.data( 'index' ) );
6075
+ widgetEdit.data( 'live-editor-preview-widget', $$ );
6076
+
6077
+ $$
6078
+ .css( {
6079
+ 'cursor': 'pointer'
6080
+ } )
6081
+ .mouseenter( function () {
6082
+ widgetEdit.parent().addClass( 'so-hovered' );
6083
+ thisView.highlightElement( $$ );
6084
+ } )
6085
+ .mouseleave( function () {
6086
+ widgetEdit.parent().removeClass( 'so-hovered' );
6087
+ thisView.resetHighlights();
6088
+ } )
6089
+ .click( function ( e ) {
6090
+ e.preventDefault();
6091
+ // When we click a widget, send that click to the form
6092
+ widgetEdit.find( '.title h4' ).click();
6093
+ } );
6094
+ } );
6095
+
6096
+ // Prevent default clicks inside the preview iframe
6097
+ $iframeContents.find( "a" ).css( {'pointer-events': 'none'} ).click( function ( e ) {
6098
+ e.preventDefault();
6099
+ } );
6100
+
6101
+ } )
6102
+ .on( 'load', function(){
6103
+ var $$ = $( this );
6104
+ if( ! $$.data( 'iframeready' ) ) {
6105
+ $$.trigger('iframeready');
6106
+ }
6107
+ } );
6108
+ },
6109
+
6110
+ /**
6111
+ * Return true if the live editor has a valid preview URL.
6112
+ * @return {boolean}
6113
+ */
6114
+ hasPreviewUrl: function () {
6115
+ return this.$( 'form.live-editor-form' ).attr( 'action' ) !== '';
6116
+ },
6117
+
6118
+ /**
6119
+ * Toggle the size of the preview iframe to simulate mobile devices.
6120
+ * @param e
6121
+ */
6122
+ mobileToggle: function( e ){
6123
+ var button = $( e.currentTarget );
6124
+ this.$('.live-editor-mode' ).not( button ).removeClass('so-active');
6125
+ button.addClass( 'so-active' );
6126
+
6127
+ this.$el
6128
+ .removeClass( 'live-editor-desktop-mode live-editor-tablet-mode live-editor-mobile-mode' )
6129
+ .addClass( 'live-editor-' + button.data( 'mode' ) + '-mode' );
6130
+
6131
+ }
6132
+ } );
 
6133
 
6134
  },{}],27:[function(require,module,exports){
6135
  var panels = window.panels, $ = jQuery;
6153
  initialize: function () {
6154
 
6155
  var rowCells = this.model.get('cells');
6156
+ this.listenTo(rowCells, 'add', this.handleCellAdd );
6157
+ this.listenTo(rowCells, 'remove', this.handleCellRemove );
 
6158
 
6159
+ this.listenTo( this.model, 'reweight_cells', this.resize );
6160
+ this.listenTo( this.model, 'destroy', this.onModelDestroy );
6161
 
6162
  var thisView = this;
6163
  rowCells.each( function ( cell ) {
6169
  thisView.listenTo( cell.get('widgets'), 'add', thisView.resize );
6170
  }, this );
6171
 
6172
+ this.listenTo( this.model, 'change:label', this.onLabelChange );
6173
  },
6174
 
6175
  /**
6222
  }
6223
 
6224
  // Resize the rows when ever the widget sortable moves
6225
+ this.listenTo( this.builder, 'widget_sortable_move', this.resize );
6226
+ this.listenTo( this.builder, 'builder_resize', this.resize );
6227
 
6228
  this.resize();
6229
 
6376
  // Create the dialog
6377
  this.dialog = new panels.dialog.row();
6378
  this.dialog.setBuilder( this.builder ).setRowModel( this.model );
6379
+ this.dialog.rowView = this;
6380
  }
6381
 
6382
  this.dialog.openDialog();
6840
  } );
6841
 
6842
  },{}],29:[function(require,module,exports){
6843
+ var panels = window.panels, $ = jQuery;
6844
+
6845
+ module.exports = Backbone.View.extend( {
6846
+ template: _.template( panels.helpers.utils.processTemplate( $( '#siteorigin-panels-builder-widget' ).html() ) ),
6847
+
6848
+ // The cell view that this widget belongs to
6849
+ cell: null,
6850
+
6851
+ // The edit dialog
6852
+ dialog: null,
6853
+
6854
+ events: {
6855
+ 'click .widget-edit': 'editHandler',
6856
+ 'click .title h4': 'editHandler',
6857
+ 'click .actions .widget-duplicate': 'duplicateHandler',
6858
+ 'click .actions .widget-delete': 'deleteHandler'
6859
+ },
6860
+
6861
+ /**
6862
+ * Initialize the widget
6863
+ */
6864
+ initialize: function () {
6865
+ this.listenTo(this.model, 'destroy', this.onModelDestroy);
6866
+ this.listenTo(this.model, 'change:values', this.onModelChange);
6867
+ this.listenTo(this.model, 'change:label', this.onLabelChange);
6868
+ },
6869
+
6870
+ /**
6871
+ * Render the widget
6872
+ */
6873
+ render: function ( options ) {
6874
+ options = _.extend( {'loadForm': false}, options );
6875
+
6876
+ this.setElement( this.template( {
6877
+ title: this.model.getWidgetField( 'title' ),
6878
+ description: this.model.getTitle()
6879
+ } ) );
6880
+
6881
+ this.$el.data( 'view', this );
6882
+
6883
+ // Remove any unsupported actions
6884
+ if( ! this.cell.row.builder.supports( 'editWidget' ) || this.model.get( 'read_only' ) ) {
6885
+ this.$( '.actions .widget-edit' ).remove();
6886
+ this.$el.addClass('so-widget-no-edit');
6887
+ }
6888
+ if( ! this.cell.row.builder.supports( 'addWidget' ) ) {
6889
+ this.$( '.actions .widget-duplicate' ).remove();
6890
+ this.$el.addClass('so-widget-no-duplicate');
6891
+ }
6892
+ if( ! this.cell.row.builder.supports( 'deleteWidget' ) ) {
6893
+ this.$( '.actions .widget-delete' ).remove();
6894
+ this.$el.addClass('so-widget-no-delete');
6895
+ }
6896
+ if( ! this.cell.row.builder.supports( 'moveWidget' ) ) {
6897
+ this.$el.addClass('so-widget-no-move');
6898
+ }
6899
+ if( !$.trim( this.$('.actions').html() ).length ) {
6900
+ this.$( '.actions' ).remove();
6901
+ }
6902
+
6903
+ if( this.model.get( 'read_only' ) ) {
6904
+ this.$el.addClass('so-widget-read-only');
6905
+ }
6906
+
6907
+ if ( _.size( this.model.get( 'values' ) ) === 0 || options.loadForm ) {
6908
+ // If this widget doesn't have a value, create a form and save it
6909
+ var dialog = this.getEditDialog();
6910
+
6911
+ // Save the widget as soon as the form is loaded
6912
+ dialog.once( 'form_loaded', dialog.saveWidget, dialog );
6913
+
6914
+ // Setup the dialog to load the form
6915
+ dialog.setupDialog();
6916
+ }
6917
+
6918
+ // Add the global builder listeners
6919
+ this.listenTo(this.cell.row.builder, 'after_user_adds_widget', this.afterUserAddsWidgetHandler);
6920
+
6921
+ return this;
6922
+ },
6923
+
6924
+ /**
6925
+ * Display an animation that implies creation using a visual animation
6926
+ */
6927
+ visualCreate: function () {
6928
+ this.$el.hide().fadeIn( 'fast' );
6929
+ },
6930
+
6931
+ /**
6932
+ * Get the dialog view of the form that edits this widget
6933
+ *
6934
+ * @returns {null}
6935
+ */
6936
+ getEditDialog: function () {
6937
+ if ( this.dialog === null ) {
6938
+ this.dialog = new panels.dialog.widget( {
6939
+ model: this.model
6940
+ } );
6941
+ this.dialog.setBuilder( this.cell.row.builder );
6942
+
6943
+ // Store the widget view
6944
+ this.dialog.widgetView = this;
6945
+ }
6946
+ return this.dialog;
6947
+ },
6948
+
6949
+ /**
6950
+ * Handle clicking on edit widget.
6951
+ */
6952
+ editHandler: function () {
6953
+ // Create a new dialog for editing this
6954
+ if ( ! this.cell.row.builder.supports( 'editWidget' ) || this.model.get( 'read_only' ) ) {
6955
+ return this;
6956
+ }
6957
+
6958
+ this.getEditDialog().openDialog();
6959
+ return this;
6960
+ },
6961
+
6962
+ /**
6963
+ * Handle clicking on duplicate.
6964
+ *
6965
+ * @returns {boolean}
6966
+ */
6967
+ duplicateHandler: function () {
6968
+ // Add the history entry
6969
+ this.cell.row.builder.addHistoryEntry( 'widget_duplicated' );
6970
+
6971
+ // Create the new widget and connect it to the widget collection for the current row
6972
+ var newWidget = this.model.clone( this.model.cell );
6973
+
6974
+ this.cell.model.get('widgets').add( newWidget, {
6975
+ // Add this after the existing model
6976
+ at: this.model.collection.indexOf( this.model ) + 1
6977
+ } );
6978
+
6979
+ this.cell.row.builder.model.refreshPanelsData();
6980
+ return this;
6981
+ },
6982
+
6983
+ /**
6984
+ * Copy the row to a cookie based clipboard
6985
+ */
6986
+ copyHandler: function(){
6987
+ panels.helpers.clipboard.setModel( this.model );
6988
+ },
6989
+
6990
+ /**
6991
+ * Handle clicking on delete.
6992
+ *
6993
+ * @returns {boolean}
6994
+ */
6995
+ deleteHandler: function () {
6996
+ this.visualDestroyModel();
6997
+ return this;
6998
+ },
6999
+
7000
+ onModelChange: function () {
7001
+ // Update the description when ever the model changes
7002
+ this.$( '.description' ).html( this.model.getTitle() );
7003
+ },
7004
+
7005
+ onLabelChange: function( model ) {
7006
+ this.$( '.title > h4' ).text( model.getWidgetField( 'title' ) );
7007
+ },
7008
+
7009
+ /**
7010
+ * When the model is destroyed, fade it out
7011
+ */
7012
+ onModelDestroy: function () {
7013
+ this.remove();
7014
+ },
7015
+
7016
+ /**
7017
+ * Visually destroy a model
7018
+ */
7019
+ visualDestroyModel: function () {
7020
+ // Add the history entry
7021
+ this.cell.row.builder.addHistoryEntry( 'widget_deleted' );
7022
+
7023
+ this.$el.fadeOut( 'fast', function () {
7024
+ this.cell.row.resize();
7025
+ this.model.destroy();
7026
+ this.cell.row.builder.model.refreshPanelsData();
7027
+ this.remove();
7028
+ }.bind(this) );
7029
+
7030
+ return this;
7031
+ },
7032
+
7033
+ /**
7034
+ * Build up the contextual menu for a widget
7035
+ *
7036
+ * @param e
7037
+ * @param menu
7038
+ */
7039
+ buildContextualMenu: function ( e, menu ) {
7040
+ if( this.cell.row.builder.supports( 'addWidget' ) ) {
7041
+ menu.addSection(
7042
+ 'add-widget-below',
7043
+ {
7044
+ sectionTitle: panelsOptions.loc.contextual.add_widget_below,
7045
+ searchPlaceholder: panelsOptions.loc.contextual.search_widgets,
7046
+ defaultDisplay: panelsOptions.contextual.default_widgets
7047
+ },
7048
+ panelsOptions.widgets,
7049
+ function ( c ) {
7050
+ this.cell.row.builder.trigger('before_user_adds_widget');
7051
+ this.cell.row.builder.addHistoryEntry( 'widget_added' );
7052
+
7053
+ var widget = new panels.model.widget( {
7054
+ class: c
7055
+ } );
7056
+ widget.cell = this.cell.model;
7057
+
7058
+ // Insert the new widget below
7059
+ this.cell.model.get('widgets').add( widget, {
7060
+ // Add this after the existing model
7061
+ at: this.model.collection.indexOf( this.model ) + 1
7062
+ } );
7063
+
7064
+ this.cell.row.builder.model.refreshPanelsData();
7065
+
7066
+ this.cell.row.builder.trigger('after_user_adds_widget', widget);
7067
+ }.bind( this )
7068
+ );
7069
+ }
7070
+
7071
+ var actions = {};
7072
+
7073
+ if( this.cell.row.builder.supports( 'editWidget' ) && ! this.model.get( 'read_only' ) ) {
7074
+ actions.edit = { title: panelsOptions.loc.contextual.widget_edit };
7075
+ }
7076
+
7077
+ // Copy and paste functions
7078
+ if ( panels.helpers.clipboard.canCopyPaste() ) {
7079
+ actions.copy = {title: panelsOptions.loc.contextual.widget_copy};
7080
+ }
7081
+
7082
+ if( this.cell.row.builder.supports( 'addWidget' ) ) {
7083
+ actions.duplicate = { title: panelsOptions.loc.contextual.widget_duplicate };
7084
+ }
7085
+
7086
+ if( this.cell.row.builder.supports( 'deleteWidget' ) ) {
7087
+ actions.delete = { title: panelsOptions.loc.contextual.widget_delete, confirm: true };
7088
+ }
7089
+
7090
+ if( ! _.isEmpty( actions ) ) {
7091
+ menu.addSection(
7092
+ 'widget-actions',
7093
+ {
7094
+ sectionTitle: panelsOptions.loc.contextual.widget_actions,
7095
+ search: false,
7096
+ },
7097
+ actions,
7098
+ function ( c ) {
7099
+ switch ( c ) {
7100
+ case 'edit':
7101
+ this.editHandler();
7102
+ break;
7103
+ case 'copy':
7104
+ this.copyHandler();
7105
+ break;
7106
+ case 'duplicate':
7107
+ this.duplicateHandler();
7108
+ break;
7109
+ case 'delete':
7110
+ this.visualDestroyModel();
7111
+ break;
7112
+ }
7113
+ }.bind( this )
7114
+ );
7115
+ }
7116
+
7117
+ // Lets also add the contextual menu for the entire row
7118
+ this.cell.buildContextualMenu( e, menu );
7119
+ },
7120
+
7121
+ /**
7122
+ * Handler for any action after the user adds a new widget.
7123
+ * @param widget
7124
+ */
7125
+ afterUserAddsWidgetHandler: function( widget ) {
7126
+ if( this.model === widget && panelsOptions.instant_open ) {
7127
+ setTimeout(this.editHandler, 350);
7128
+ }
7129
+ }
7130
+
7131
+ } );
7132
 
7133
  },{}],30:[function(require,module,exports){
7134
  var $ = jQuery;
js/siteorigin-panels-270.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ !function e(t,i,s){function l(n,a){if(!i[n]){if(!t[n]){var r="function"==typeof require&&require;if(!a&&r)return r(n,!0);if(o)return o(n,!0);var d=new Error("Cannot find module '"+n+"'");throw d.code="MODULE_NOT_FOUND",d}var c=i[n]={exports:{}};t[n][0].call(c.exports,function(e){var i=t[n][1][e];return l(i||e)},c,c.exports,e,t,i,s)}return i[n].exports}for(var o="function"==typeof require&&require,n=0;n<s.length;n++)l(s[n]);return l}({1:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.cell,initialize:function(){},totalWeight:function(){var e=0;return this.each(function(t){e+=t.get("weight")}),e}})},{}],2:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.historyEntry,builder:null,maxSize:12,initialize:function(){this.on("add",this.onAddEntry,this)},addEntry:function(e,t){_.isEmpty(t)&&(t=this.builder.getPanelsData());var i=new s.model.historyEntry({text:e,data:JSON.stringify(t),time:parseInt((new Date).getTime()/1e3),collection:this});this.add(i)},onAddEntry:function(e){if(this.models.length>1){var t=this.at(this.models.length-2);(e.get("text")===t.get("text")&&e.get("time")-t.get("time")<15||e.get("data")===t.get("data"))&&(this.remove(e),t.set("count",t.get("count")+1))}for(;this.models.length>this.maxSize;)this.shift()}})},{}],3:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.row,empty:function(){for(var e;;){if(!(e=this.collection.first()))break;e.destroy()}}})},{}],4:[function(e,t,i){var s=window.panels;t.exports=Backbone.Collection.extend({model:s.model.widget,initialize:function(){}})},{}],5:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({dialogClass:"so-panels-dialog-add-builder",render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-builder").html(),{})),this.$(".so-content .siteorigin-panels-builder").append(this.builder.$el)},initializeDialog:function(){var e=this;this.once("open_dialog_complete",function(){e.builder.initSortable()}),this.on("open_dialog_complete",function(){e.builder.trigger("builder_resize")})}})},{}],6:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({historyEntryTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-history-entry").html())),entries:{},currentEntry:null,revertEntry:null,selectedEntry:null,previewScrollTop:null,dialogClass:"so-panels-dialog-history",dialogIcon:"history",events:{"click .so-close":"closeDialog","click .so-restore":"restoreSelectedEntry"},initializeDialog:function(){this.entries=new s.collection.historyEntries,this.on("open_dialog",this.setCurrentEntry,this),this.on("open_dialog",this.renderHistoryEntries,this)},render:function(){var e=this;this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-history").html(),{})),this.$("iframe.siteorigin-panels-history-iframe").load(function(){var t=l(this);t.show(),t.contents().scrollTop(e.previewScrollTop)})},setRevertEntry:function(e){this.revertEntry=new s.model.historyEntry({data:JSON.stringify(e.getPanelsData()),time:parseInt((new Date).getTime()/1e3)})},setCurrentEntry:function(){this.currentEntry=new s.model.historyEntry({data:JSON.stringify(this.builder.model.getPanelsData()),time:parseInt((new Date).getTime()/1e3)}),this.selectedEntry=this.currentEntry,this.previewEntry(this.currentEntry),this.$(".so-buttons .so-restore").addClass("disabled")},renderHistoryEntries:function(){var e=this,t=this.$(".history-entries").empty();this.currentEntry.get("data")===this.revertEntry.get("data")&&_.isEmpty(this.entries.models)||l(this.historyEntryTemplate({title:panelsOptions.loc.history.revert,count:1})).data("historyEntry",this.revertEntry).prependTo(t),this.entries.each(function(i){var s=e.historyEntryTemplate({title:panelsOptions.loc.history[i.get("text")],count:i.get("count")});l(s).data("historyEntry",i).prependTo(t)}),l(this.historyEntryTemplate({title:panelsOptions.loc.history.current,count:1})).data("historyEntry",this.currentEntry).addClass("so-selected").prependTo(t),t.find(".history-entry").click(function(){var i=jQuery(this);t.find(".history-entry").not(i).removeClass("so-selected"),i.addClass("so-selected");var s=i.data("historyEntry");e.selectedEntry=s,e.selectedEntry.cid!==e.currentEntry.cid?e.$(".so-buttons .so-restore").removeClass("disabled"):e.$(".so-buttons .so-restore").addClass("disabled"),e.previewEntry(s)}),this.updateEntryTimes()},previewEntry:function(e){var t=this.$("iframe.siteorigin-panels-history-iframe");t.hide(),this.previewScrollTop=t.contents().scrollTop(),this.$('form.history-form input[name="live_editor_panels_data"]').val(e.get("data")),this.$('form.history-form input[name="live_editor_post_ID"]').val(this.builder.config.postId),this.$("form.history-form").submit()},restoreSelectedEntry:function(){return!this.$(".so-buttons .so-restore").hasClass("disabled")&&(this.currentEntry.get("data")===this.selectedEntry.get("data")?(this.closeDialog(),!1):("restore"!==this.selectedEntry.get("text")&&this.builder.addHistoryEntry("restore",this.builder.model.getPanelsData()),this.builder.model.loadPanelsData(JSON.parse(this.selectedEntry.get("data"))),this.closeDialog(),!1))},updateEntryTimes:function(){var e=this;this.$(".history-entries .history-entry").each(function(){var t=jQuery(this),i=t.find(".timesince"),s=t.data("historyEntry");i.html(e.timeSince(s.get("time")))})},timeSince:function(e){var t,i=parseInt((new Date).getTime()/1e3)-e,s=[];return i>3600&&(t=Math.floor(i/3600),1===t?s.push(panelsOptions.loc.time.hour.replace("%d",t)):s.push(panelsOptions.loc.time.hours.replace("%d",t)),i-=3600*t),i>60&&(t=Math.floor(i/60),1===t?s.push(panelsOptions.loc.time.minute.replace("%d",t)):s.push(panelsOptions.loc.time.minutes.replace("%d",t)),i-=60*t),i>0&&(1===i?s.push(panelsOptions.loc.time.second.replace("%d",i)):s.push(panelsOptions.loc.time.seconds.replace("%d",i))),_.isEmpty(s)?panelsOptions.loc.time.now:panelsOptions.loc.time.ago.replace("%s",s.slice(0,2).join(", "))}})},{}],7:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({directoryTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-directory-items").html())),builder:null,dialogClass:"so-panels-dialog-prebuilt-layouts",dialogIcon:"layouts",layoutCache:{},currentTab:!1,directoryPage:1,events:{"click .so-close":"closeDialog","click .so-sidebar-tabs li a":"tabClickHandler","click .so-content .layout":"layoutClickHandler","keyup .so-sidebar-search":"searchHandler","click .so-screenshot, .so-title":"directoryItemClickHandler"},initializeDialog:function(){var e=this;this.on("open_dialog",function(){e.$(".so-sidebar-tabs li a").first().click(),e.$(".so-status").removeClass("so-panels-loading")}),this.on("button_click",this.toolbarButtonClick,this)},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-prebuilt").html(),{})),this.initToolbar()},tabClickHandler:function(e){e.preventDefault(),this.selectedLayoutItem=null,this.uploadedLayout=null,this.updateButtonState(!1),this.$(".so-sidebar-tabs li").removeClass("tab-active");var t=l(e.target),i=t.attr("href").split("#")[1];t.parent().addClass("tab-active");var s=this;this.$(".so-content").empty(),s.currentTab=i,"import"==i?this.displayImportExport():this.displayLayoutDirectory("",1,i),s.$(".so-sidebar-search").val("")},displayImportExport:function(){var e=this.$(".so-content").empty().removeClass("so-panels-loading");e.html(l("#siteorigin-panels-dialog-prebuilt-importexport").html());var t=this,i=t.$(".import-upload-ui"),s=new plupload.Uploader({runtimes:"html5,silverlight,flash,html4",browse_button:i.find(".file-browse-button").get(0),container:i.get(0),drop_element:i.find(".drag-upload-area").get(0),file_data_name:"panels_import_data",multiple_queues:!1,max_file_size:panelsOptions.plupload.max_file_size,url:panelsOptions.plupload.url,flash_swf_url:panelsOptions.plupload.flash_swf_url,silverlight_xap_url:panelsOptions.plupload.silverlight_xap_url,filters:[{title:panelsOptions.plupload.filter_title,extensions:"json"}],multipart_params:{action:"so_panels_import_layout"},init:{PostInit:function(e){e.features.dragdrop&&i.addClass("has-drag-drop"),i.find(".progress-precent").css("width","0%")},FilesAdded:function(e){i.find(".file-browse-button").blur(),i.find(".drag-upload-area").removeClass("file-dragover"),i.find(".progress-bar").fadeIn("fast"),t.$(".js-so-selected-file").text(panelsOptions.loc.prebuilt_loading),e.start()},UploadProgress:function(e,t){i.find(".progress-precent").css("width",t.percent+"%")},FileUploaded:function(e,s,l){var o=JSON.parse(l.response);_.isUndefined(o.widgets)?alert(panelsOptions.plupload.error_message):(t.uploadedLayout=o,i.find(".progress-bar").hide(),t.$(".js-so-selected-file").text(panelsOptions.loc.ready_to_insert.replace("%s",s.name)),t.updateButtonState(!0))},Error:function(){alert(panelsOptions.plupload.error_message)}}});s.init(),/Edge\/\d./i.test(navigator.userAgent)&&setTimeout(function(){s.refresh()},250),i.find(".drag-upload-area").on("dragover",function(){l(this).addClass("file-dragover")}).on("dragleave",function(){l(this).removeClass("file-dragover")}),e.find(".so-export").submit(function(e){var i=l(this),s=t.builder.model.getPanelsData(),o=l('input[name="post_title"]').val();o||(o=l('input[name="post_ID"]').val()),s.name=o,i.find('input[name="panels_export_data"]').val(JSON.stringify(s))})},displayLayoutDirectory:function(e,t,i){var s=this,o=this.$(".so-content").empty().addClass("so-panels-loading");if(void 0===e&&(e=""),void 0===t&&(t=1),void 0===i&&(i="directory-siteorigin"),i.match("^directory-")&&!panelsOptions.directory_enabled)return o.removeClass("so-panels-loading").html(l("#siteorigin-panels-directory-enable").html()),void o.find(".so-panels-enable-directory").click(function(n){n.preventDefault(),l.get(panelsOptions.ajaxurl,{action:"so_panels_directory_enable"},function(){}),panelsOptions.directory_enabled=!0,o.addClass("so-panels-loading"),s.displayLayoutDirectory(e,t,i)});l.get(panelsOptions.ajaxurl,{action:"so_panels_layouts_query",search:e,page:t,type:i},function(n){if(s.currentTab===i){o.removeClass("so-panels-loading").html(s.directoryTemplate(n));var a=o.find(".so-previous"),r=o.find(".so-next");t<=1?a.addClass("button-disabled"):a.click(function(i){i.preventDefault(),s.displayLayoutDirectory(e,t-1,s.currentTab)}),t===n.max_num_pages||0===n.max_num_pages?r.addClass("button-disabled"):r.click(function(i){i.preventDefault(),s.displayLayoutDirectory(e,t+1,s.currentTab)}),o.find(".so-screenshot").each(function(){var e=l(this),t=e.find(".so-screenshot-wrapper");if(t.css("height",t.width()/4*3+"px").addClass("so-loading"),""!==e.data("src"))var i=l("<img/>").attr("src",e.data("src")).load(function(){t.removeClass("so-loading").css("height","auto"),i.appendTo(t).hide().fadeIn("fast")});else l("<img/>").attr("src",panelsOptions.prebuiltDefaultScreenshot).appendTo(t).hide().fadeIn("fast")}),o.find(".so-directory-browse").html(n.title)}},"json")},directoryItemClickHandler:function(e){var t=this.$(e.target).closest(".so-directory-item");this.$(".so-directory-items").find(".selected").removeClass("selected"),t.addClass("selected"),this.selectedLayoutItem={lid:t.data("layout-id"),type:t.data("layout-type")},this.updateButtonState(!0)},toolbarButtonClick:function(e){if(!this.canAddLayout())return!1;var t=e.data("value");if(_.isUndefined(t))return!1;if(this.updateButtonState(!1),e.hasClass("so-needs-confirm")&&!e.hasClass("so-confirmed")){if(this.updateButtonState(!0),e.hasClass("so-confirming"))return;e.addClass("so-confirming");var i=e.html();return e.html('<span class="dashicons dashicons-yes"></span>'+e.data("confirm")),setTimeout(function(){e.removeClass("so-confirmed").html(i)},2500),setTimeout(function(){e.removeClass("so-confirming"),e.addClass("so-confirmed")},200),!1}this.addingLayout=!0,"import"===this.currentTab?this.addLayoutToBuilder(this.uploadedLayout,t):this.loadSelectedLayout().then(function(e){this.addLayoutToBuilder(e,t)}.bind(this))},canAddLayout:function(){return(this.selectedLayoutItem||this.uploadedLayout)&&!this.addingLayout},loadSelectedLayout:function(){this.setStatusMessage(panelsOptions.loc.prebuilt_loading,!0);var e=_.extend(this.selectedLayoutItem,{action:"so_panels_get_layout"}),t=new l.Deferred;return l.get(panelsOptions.ajaxurl,e,function(e){var i="";e.success?t.resolve(e.data):(i=e.data.message,t.reject(e.data)),this.setStatusMessage(i,!1,!e.success),this.updateButtonState(!0)}.bind(this)),t.promise()},searchHandler:function(e){13===e.keyCode&&this.displayLayoutDirectory(l(e.currentTarget).val(),1,this.currentTab)},updateButtonState:function(e){e=e&&(this.selectedLayoutItem||this.uploadedLayout);var t=this.$(".so-import-layout");t.prop("disabled",!e),e?t.removeClass("disabled"):t.addClass("disabled")},addLayoutToBuilder:function(e,t){this.builder.addHistoryEntry("prebuilt_loaded"),this.builder.model.loadPanelsData(e,t),this.addingLayout=!1,this.closeDialog()}})},{}],8:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({cellPreviewTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-row-cell-preview").html())),editableLabel:!0,events:{"click .so-close":"closeDialog","click .so-toolbar .so-save":"saveHandler","click .so-toolbar .so-insert":"insertHandler","click .so-toolbar .so-delete":"deleteHandler","click .so-toolbar .so-duplicate":"duplicateHandler","change .row-set-form > *":"setCellsFromForm","click .row-set-form button.set-row":"setCellsFromForm"},rowView:null,dialogIcon:"add-row",dialogClass:"so-panels-dialog-row-edit",styleType:"row",dialogType:"edit",row:{cells:null,style:{}},cellStylesCache:[],initializeDialog:function(){this.on("open_dialog",function(){_.isUndefined(this.model)||_.isEmpty(this.model.get("cells"))?this.setRowModel(null):this.setRowModel(this.model),this.regenerateRowPreview()},this),this.row={cells:new s.collection.cells([{weight:.5},{weight:.5}]),style:{}},this.dialogFormsLoaded=0;var e=this;this.on("form_loaded styles_loaded",function(){2===++this.dialogFormsLoaded&&e.updateModel({refreshArgs:{silent:!0}})}),this.on("close_dialog",this.closeHandler),this.on("edit_label",function(e){if(e!==panelsOptions.loc.row.add&&e!==panelsOptions.loc.row.edit||(e=""),this.model.set("label",e),_.isEmpty(e)){var t="create"===this.dialogType?panelsOptions.loc.row.add:panelsOptions.loc.row.edit;this.$(".so-title").text(t)}}.bind(this))},setRowDialogType:function(e){this.dialogType=e},render:function(){var e="create"===this.dialogType?panelsOptions.loc.row.add:panelsOptions.loc.row.edit;this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-row").html(),{title:e,dialogType:this.dialogType}));var t=this.$(".so-title");this.model.has("label")&&!_.isEmpty(this.model.get("label"))&&t.text(this.model.get("label")),this.$(".so-edit-title").val(t.text()),this.styles=new s.view.styles,this.styles.model=this.model,this.styles.render("row",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this}),this.builder.supports("addRow")||this.$(".so-buttons .so-duplicate").remove(),this.builder.supports("deleteRow")||this.$(".so-buttons .so-delete").remove();var i=this.$(".so-sidebar.so-right-sidebar");return this.styles.attach(i),this.styles.on("styles_loaded",function(e){e||(i.closest(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar"),i.remove())},this),_.isUndefined(this.model)||(this.$('input[name="cells"].so-row-field').val(this.model.get("cells").length),this.model.has("ratio")&&this.$('select[name="ratio"].so-row-field').val(this.model.get("ratio")),this.model.has("ratio_direction")&&this.$('select[name="ratio_direction"].so-row-field').val(this.model.get("ratio_direction"))),this.$("input.so-row-field").keyup(function(){l(this).trigger("change")}),this},setRowModel:function(e){return this.model=e,_.isEmpty(this.model)?this:(this.row={cells:this.model.get("cells").clone(),style:{},ratio:this.model.get("ratio"),ratio_direction:this.model.get("ratio_direction")},this.$('input[name="cells"].so-row-field').val(this.model.get("cells").length),this.model.has("ratio")&&this.$('select[name="ratio"].so-row-field').val(this.model.get("ratio")),this.model.has("ratio_direction")&&this.$('select[name="ratio_direction"].so-row-field').val(this.model.get("ratio_direction")),this.clearCellStylesCache(),this)},regenerateRowPreview:function(){var e=this,t=this.$(".row-preview"),i=this.getSelectedCellIndex();t.empty();var s;this.row.cells.each(function(o,n){var a=l(this.cellPreviewTemplate({weight:o.get("weight")}));t.append(a),n==i&&a.find(".preview-cell-in").addClass("cell-selected");var r,d=a.prev();d.length&&(r=l('<div class="resize-handle"></div>'),r.appendTo(a).dblclick(function(){var t=e.row.cells.at(n-1),i=o.get("weight")+t.get("weight");o.set("weight",i/2),t.set("weight",i/2),e.scaleRowWidths()}),r.draggable({axis:"x",containment:t,start:function(e,t){var i=a.clone().appendTo(t.helper).css({position:"absolute",top:"0",width:a.outerWidth(),left:6,height:a.outerHeight()});i.find(".resize-handle").remove();var s=d.clone().appendTo(t.helper).css({position:"absolute",top:"0",width:d.outerWidth(),right:6,height:d.outerHeight()});s.find(".resize-handle").remove(),l(this).data({newCellClone:i,prevCellClone:s}),a.find("> .preview-cell-in").css("visibility","hidden"),d.find("> .preview-cell-in").css("visibility","hidden")},drag:function(i,s){var o=e.row.cells.at(n).get("weight"),a=e.row.cells.at(n-1).get("weight"),r=o-(s.position.left+6)/t.width(),d=a+(s.position.left+6)/t.width();s.helper.offset().left,t.offset().left;l(this).data("newCellClone").css("width",t.width()*r).find(".preview-cell-weight").html(Math.round(1e3*r)/10),l(this).data("prevCellClone").css("width",t.width()*d).find(".preview-cell-weight").html(Math.round(1e3*d)/10)},stop:function(i,s){l(this).data("newCellClone").remove(),l(this).data("prevCellClone").remove(),a.find(".preview-cell-in").css("visibility","visible"),d.find(".preview-cell-in").css("visibility","visible");var o=s.position.left+6,r=o/t.width(),c=e.row.cells.at(n),h=e.row.cells.at(n-1);c.get("weight")-r>.02&&h.get("weight")+r>.02&&(c.set("weight",c.get("weight")-r),h.set("weight",h.get("weight")+r)),e.scaleRowWidths(),s.helper.css("left",-6)}})),a.click(function(e){if(l(e.target).is(".preview-cell")||l(e.target).is(".preview-cell-in")){var t=l(e.target);t.closest(".row-preview").find(".preview-cell .preview-cell-in").removeClass("cell-selected"),t.addClass("cell-selected"),this.openSelectedCellStyles()}}.bind(this)),a.find(".preview-cell-weight").click(function(i){e.$(".resize-handle").css("pointer-event","none").draggable("disable"),t.find(".preview-cell-weight").each(function(){var i=jQuery(this).hide();l('<input type="text" class="preview-cell-weight-input no-user-interacted" />').val(parseFloat(i.html())).insertAfter(i).focus(function(){clearTimeout(s)}).keyup(function(e){9!==e.keyCode&&l(this).removeClass("no-user-interacted"),13===e.keyCode&&(e.preventDefault(),l(this).blur())}).keydown(function(e){if(9===e.keyCode){e.preventDefault();var i=t.find(".preview-cell-weight-input"),s=i.index(l(this));s===i.length-1?i.eq(0).focus().select():i.eq(s+1).focus().select()}}).blur(function(){t.find(".preview-cell-weight-input").each(function(t,i){isNaN(parseFloat(l(i).val()))&&l(i).val(Math.floor(1e3*e.row.cells.at(t).get("weight"))/10)}),s=setTimeout(function(){if(0===t.find(".preview-cell-weight-input").length)return!1;var i=[],s=[],o=0,n=0;if(t.find(".preview-cell-weight-input").each(function(t,a){var r=parseFloat(l(a).val());r=isNaN(r)?1/e.row.cells.length:Math.round(10*r)/1e3;var d=!l(a).hasClass("no-user-interacted");i.push(r),s.push(d),d?o+=r:n+=r}),o>0&&n>0&&1-o>0)for(var a=0;a<i.length;a++)s[a]||(i[a]=i[a]/n*(1-o));var r=_.reduce(i,function(e,t){return e+t});i=i.map(function(e){return e/r}),Math.min.apply(Math,i)>.01&&e.row.cells.each(function(e,t){e.set("weight",i[t])}),t.find(".preview-cell").each(function(t,i){var s=e.row.cells.at(t).get("weight");l(i).animate({width:Math.round(1e3*s)/10+"%"},250),l(i).find(".preview-cell-weight-input").val(Math.round(1e3*s)/10)}),t.find(".preview-cell").css("overflow","visible"),setTimeout(e.regenerateRowPreview,260)},100)}).click(function(){l(this).select()})}),l(this).siblings(".preview-cell-weight-input").select()})},this),this.openSelectedCellStyles(),this.trigger("form_loaded",this)},getSelectedCellIndex:function(){var e=-1;return this.$(".preview-cell .preview-cell-in").each(function(t,i){l(i).is(".cell-selected")&&(e=t)}),e},openSelectedCellStyles:function(){if(!_.isUndefined(this.cellStyles)){if(this.cellStyles.stylesLoaded){var e={};try{e=this.getFormValues(".so-sidebar .so-visual-styles.so-cell-styles").style}catch(e){console.log("Error retrieving cell styles - "+e.message)}this.cellStyles.model.set("style",e)}this.cellStyles.detach()}if(this.cellStyles=this.getSelectedCellStyles(),this.cellStyles){var t=this.$(".so-sidebar.so-right-sidebar");this.cellStyles.attach(t)}},getSelectedCellStyles:function(){var e=this.getSelectedCellIndex();if(e>-1){var t=this.cellStylesCache[e];t||(t=new s.view.styles,t.model=this.row.cells.at(e),t.render("cell",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this,index:e}),this.cellStylesCache[e]=t)}return t},clearCellStylesCache:function(){this.cellStylesCache.forEach(function(e){e.remove()}),this.cellStylesCache=[]},scaleRowWidths:function(){var e=this;this.$(".row-preview .preview-cell").each(function(t,i){var s=e.row.cells.at(t);l(i).css("width",100*s.get("weight")+"%").find(".preview-cell-weight").html(Math.round(1e3*s.get("weight"))/10)})},setCellsFromForm:function(){try{var e={cells:parseInt(this.$('.row-set-form input[name="cells"]').val()),ratio:parseFloat(this.$('.row-set-form select[name="ratio"]').val()),direction:this.$('.row-set-form select[name="ratio_direction"]').val()};_.isNaN(e.cells)&&(e.cells=1),isNaN(e.ratio)&&(e.ratio=1),e.cells<1?(e.cells=1,this.$('.row-set-form input[name="cells"]').val(e.cells)):e.cells>12&&(e.cells=12,this.$('.row-set-form input[name="cells"]').val(e.cells)),this.$('.row-set-form select[name="ratio"]').val(e.ratio);for(var t=[],i=this.row.cells.length!==e.cells,o=1,n=0;n<e.cells;n++)t.push(o),o*=e.ratio;var a=_.reduce(t,function(e,t){return e+t});if(t=_.map(t,function(e){return e/a}),t=_.filter(t,function(e){return e>.01}),"left"===e.direction&&(t=t.reverse()),this.row.cells=new s.collection.cells(this.row.cells.first(t.length)),_.each(t,function(e,t){var i=this.row.cells.at(t);i?i.set("weight",e):(i=new s.model.cell({weight:e,row:this.model}),this.row.cells.add(i))}.bind(this)),this.row.ratio=e.ratio,this.row.ratio_direction=e.direction,i)this.regenerateRowPreview();else{var r=this;this.$(".preview-cell").each(function(e,t){var i=r.row.cells.at(e).get("weight");l(t).animate({width:Math.round(1e3*i)/10+"%"},250),l(t).find(".preview-cell-weight").html(Math.round(1e3*i)/10)}),this.$(".preview-cell").css("overflow","visible"),setTimeout(r.regenerateRowPreview,260)}}catch(e){console.log("Error setting cells - "+e.message)}this.$(".row-set-form .so-button-row-set").removeClass("button-primary")},tabClickHandler:function(e){"#row-layout"===e.attr("href")?this.$(".so-panels-dialog").addClass("so-panels-dialog-has-right-sidebar"):this.$(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar")},updateModel:function(e){if(e=_.extend({refresh:!0,refreshArgs:null},e),_.isEmpty(this.model)||(this.model.setCells(this.row.cells),this.model.set("ratio",this.row.ratio),this.model.set("ratio_direction",this.row.ratio_direction)),!_.isUndefined(this.styles)&&this.styles.stylesLoaded){var t={};try{t=this.getFormValues(".so-sidebar .so-visual-styles.so-row-styles").style}catch(e){console.log("Error retrieving row styles - "+e.message)}this.model.set("style",t)}if(!_.isUndefined(this.cellStyles)&&this.cellStyles.stylesLoaded){var t={};try{t=this.getFormValues(".so-sidebar .so-visual-styles.so-cell-styles").style}catch(e){console.log("Error retrieving cell styles - "+e.message)}this.cellStyles.model.set("style",t)}e.refresh&&this.builder.model.refreshPanelsData(e.refreshArgs)},insertHandler:function(){this.builder.addHistoryEntry("row_added"),this.updateModel();var e=this.builder.getActiveCell({createCell:!1}),t={};return null!==e&&(t.at=this.builder.model.get("rows").indexOf(e.row)+1),this.model.collection=this.builder.model.get("rows"),this.builder.model.get("rows").add(this.model,t),this.closeDialog(),this.builder.model.refreshPanelsData(),!1},saveHandler:function(){return this.builder.addHistoryEntry("row_edited"),this.updateModel(),this.closeDialog(),this.builder.model.refreshPanelsData(),!1},deleteHandler:function(){return this.rowView.visualDestroyModel(),this.closeDialog({silent:!0}),!1},duplicateHandler:function(){this.builder.addHistoryEntry("row_duplicated");var e=this.model.clone(this.builder.model);return this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.closeDialog({silent:!0}),!1},closeHandler:function(){this.clearCellStylesCache(),_.isUndefined(this.cellStyles)||(this.cellStyles=void 0)}})},{}],9:[function(e,t,i){var s=window.panels,l=jQuery,o=e("../view/widgets/js-widget");t.exports=s.view.dialog.extend({builder:null,sidebarWidgetTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-widget-sidebar-widget").html())),dialogClass:"so-panels-dialog-edit-widget",dialogIcon:"add-widget",widgetView:!1,savingWidget:!1,editableLabel:!0,events:{"click .so-close":"saveHandler","click .so-nav.so-previous":"navToPrevious","click .so-nav.so-next":"navToNext","click .so-toolbar .so-delete":"deleteHandler","click .so-toolbar .so-duplicate":"duplicateHandler"},initializeDialog:function(){var e=this;this.listenTo(this.model,"change:values",this.handleChangeValues),this.listenTo(this.model,"destroy",this.remove),this.dialogFormsLoaded=0,this.on("form_loaded styles_loaded",function(){2===++this.dialogFormsLoaded&&e.updateModel({refreshArgs:{silent:!0}})}),this.on("edit_label",function(e){e===panelsOptions.widgets[this.model.get("class")].title&&(e=""),this.model.set("label",e),_.isEmpty(e)&&this.$(".so-title").text(this.model.getWidgetField("title"))}.bind(this))},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-widget").html(),{})),this.loadForm();var e=this.model.getWidgetField("title");this.$(".so-title .widget-name").html(e),this.$(".so-edit-title").val(e),this.builder.supports("addWidget")||this.$(".so-buttons .so-duplicate").remove(),this.builder.supports("deleteWidget")||this.$(".so-buttons .so-delete").remove(),this.styles=new s.view.styles,this.styles.model=this.model,this.styles.render("widget",this.builder.config.postId,{builderType:this.builder.config.builderType,dialog:this});var t=this.$(".so-sidebar.so-right-sidebar");this.styles.attach(t),this.styles.on("styles_loaded",function(e){e||(t.closest(".so-panels-dialog").removeClass("so-panels-dialog-has-right-sidebar"),t.remove())},this)},getPrevDialog:function(){var e=this.builder.$(".so-cells .cell .so-widget");if(e.length<=1)return!1;var t=e.index(this.widgetView.$el);if(0===t)return!1;var i;do{if(i=e.eq(--t).data("view"),!_.isUndefined(i)&&!i.model.get("read_only"))return i.getEditDialog()}while(!_.isUndefined(i)&&t>0);return!1},getNextDialog:function(){var e=this.builder.$(".so-cells .cell .so-widget");if(e.length<=1)return!1;var t=e.index(this.widgetView.$el);if(t===e.length-1)return!1;var i;do{if(i=e.eq(++t).data("view"),!_.isUndefined(i)&&!i.model.get("read_only"))return i.getEditDialog()}while(!_.isUndefined(i));return!1},loadForm:function(){if(this.$("> *").length){this.$(".so-content").addClass("so-panels-loading");var e={action:"so_panels_widget_form",widget:this.model.get("class"),instance:JSON.stringify(this.model.get("values")),raw:this.model.get("raw")},t=this.$(".so-content");l.post(panelsOptions.ajaxurl,e,null,"html").done(function(e){var i=e.replace(/{\$id}/g,this.model.cid);t.removeClass("so-panels-loading").html(i),this.trigger("form_loaded",this),this.$(".panel-dialog").trigger("panelsopen"),this.on("close_dialog",this.updateModel,this),t.find("> .widget-content").length>0&&o.addWidget(t,this.model.widget_id)}.bind(this)).fail(function(e){var i;i=e&&e.responseText?e.responseText:panelsOptions.forms.loadingFailed,t.removeClass("so-panels-loading").html(i)})}},updateModel:function(e){if(e=_.extend({refresh:!0,refreshArgs:null},e),this.savingWidget=!0,!this.model.get("missing")){var t=this.getFormValues();_.isUndefined(t.widgets)?t={}:(t=t.widgets,t=t[Object.keys(t)[0]]),this.model.setValues(t),this.model.set("raw",!0)}if(this.styles.stylesLoaded){var i={};try{i=this.getFormValues(".so-sidebar .so-visual-styles").style}catch(e){}this.model.set("style",i)}this.savingWidget=!1,e.refresh&&this.builder.model.refreshPanelsData(e.refreshArgs)},handleChangeValues:function(){this.savingWidget||this.loadForm()},saveHandler:function(){this.builder.addHistoryEntry("widget_edited"),this.closeDialog()},deleteHandler:function(){return this.widgetView.visualDestroyModel(),this.closeDialog({silent:!0}),this.builder.model.refreshPanelsData(),!1},duplicateHandler:function(){return this.widgetView.duplicateHandler(),this.closeDialog({silent:!0}),this.builder.model.refreshPanelsData(),!1}})},{"../view/widgets/js-widget":31}],10:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=s.view.dialog.extend({builder:null,widgetTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-widgets-widget").html())),filter:{},dialogClass:"so-panels-dialog-add-widget",dialogIcon:"add-widget",events:{"click .so-close":"closeDialog","click .widget-type":"widgetClickHandler","keyup .so-sidebar-search":"searchHandler"},initializeDialog:function(){this.on("open_dialog",function(){this.filter.search="",this.filterWidgets(this.filter)},this),this.on("open_dialog_complete",function(){this.$(".so-sidebar-search").val("").focus(),this.balanceWidgetHeights()}),this.on("tab_click",this.tabClickHandler,this)},render:function(){this.renderDialog(this.parseDialogContent(l("#siteorigin-panels-dialog-widgets").html(),{})),_.each(panelsOptions.widgets,function(e){var t=l(this.widgetTemplate({title:e.title,description:e.description}));_.isUndefined(e.icon)&&(e.icon="dashicons dashicons-admin-generic"),l('<span class="widget-icon" />').addClass(e.icon).prependTo(t.find(".widget-type-wrapper")),t.data("class",e.class).appendTo(this.$(".widget-type-list"))},this);var e=this.$(".so-sidebar-tabs");_.each(panelsOptions.widget_dialog_tabs,function(t){l(this.dialogTabTemplate({title:t.title})).data({message:t.message,filter:t.filter}).appendTo(e)},this),this.initTabs();var t=this;l(window).resize(function(){t.balanceWidgetHeights()})},tabClickHandler:function(e){this.filter=e.parent().data("filter"),this.filter.search=this.$(".so-sidebar-search").val();var t=e.parent().data("message");return _.isEmpty(t)&&(t=""),this.$(".so-toolbar .so-status").html(t),this.filterWidgets(this.filter),!1},searchHandler:function(e){if(13===e.which){var t=this.$(".widget-type-list .widget-type:visible");1===t.length&&t.click()}else this.filter.search=l(e.target).val().trim(),this.filterWidgets(this.filter)},filterWidgets:function(e){_.isUndefined(e)&&(e={}),_.isUndefined(e.groups)&&(e.groups=""),this.$(".widget-type-list .widget-type").each(function(){var t,i=l(this),s=i.data("class"),o=_.isUndefined(panelsOptions.widgets[s])?null:panelsOptions.widgets[s];t=!!_.isEmpty(e.groups)||null!==o&&!_.isEmpty(_.intersection(e.groups,panelsOptions.widgets[s].groups)),t&&(_.isUndefined(e.search)||""===e.search||-1===o.title.toLowerCase().indexOf(e.search.toLowerCase())&&(t=!1)),t?i.show():i.hide()}),this.balanceWidgetHeights()},widgetClickHandler:function(e){this.builder.trigger("before_user_adds_widget"),this.builder.addHistoryEntry("widget_added")
2
+ ;var t=l(e.currentTarget),i=new s.model.widget({class:t.data("class")});i.cell=this.builder.getActiveCell(),i.cell.get("widgets").add(i),this.closeDialog(),this.builder.model.refreshPanelsData(),this.builder.trigger("after_user_adds_widget",i)},balanceWidgetHeights:function(e){var t=[[]],i=null,s=Math.round(this.$(".widget-type").parent().width()/this.$(".widget-type").width());this.$(".widget-type").css("clear","none").filter(":visible").each(function(e,t){e%s==0&&0!==e&&l(t).css("clear","both")}),this.$(".widget-type-wrapper").css("height","auto").filter(":visible").each(function(e,s){var o=l(s);null!==i&&i.position().top!==o.position().top&&(t[t.length]=[]),i=o,t[t.length-1].push(o)}),_.each(t,function(e,t){var i=_.max(e.map(function(e){return e.height()}));_.each(e,function(e){e.height(i)})})}})},{}],11:[function(e,t,i){t.exports={canCopyPaste:function(){return"undefined"!=typeof Storage&&panelsOptions.user},setModel:function(e){if(!this.canCopyPaste())return!1;var t=panels.helpers.serialize.serialize(e);return e instanceof panels.model.row?t.thingType="row-model":e instanceof panels.model.widget&&(t.thingType="widget-model"),localStorage["panels_clipboard_"+panelsOptions.user]=JSON.stringify(t),!0},isModel:function(e){if(!this.canCopyPaste())return!1;var t=localStorage["panels_clipboard_"+panelsOptions.user];return void 0!==t&&(t=JSON.parse(t),t.thingType&&t.thingType===e)},getModel:function(e){if(!this.canCopyPaste())return null;var t=localStorage["panels_clipboard_"+panelsOptions.user];return void 0!==t&&(t=JSON.parse(t),t.thingType&&t.thingType===e)?panels.helpers.serialize.unserialize(t,t.thingType,null):null}}},{}],12:[function(e,t,i){t.exports={lock:function(){if("hidden"!==jQuery("body").css("overflow")){var e=[self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop];jQuery("body").data({"scroll-position":e}).css("overflow","hidden"),_.isUndefined(e)||window.scrollTo(e[0],e[1])}},unlock:function(){if("hidden"===jQuery("body").css("overflow")&&!jQuery(".so-panels-dialog-wrapper").is(":visible")&&!jQuery(".so-panels-live-editor").is(":visible")){jQuery("body").css("overflow","visible");var e=jQuery("body").data("scroll-position");_.isUndefined(e)||window.scrollTo(e[0],e[1])}}}},{}],13:[function(e,t,i){t.exports={serialize:function(e){var t;if(e instanceof Backbone.Model){var i={};for(var s in e.attributes)if(e.attributes.hasOwnProperty(s)){if("builder"===s||"collection"===s)continue;t=e.attributes[s],t instanceof Backbone.Model||t instanceof Backbone.Collection?i[s]=this.serialize(t):i[s]=t}return i}if(e instanceof Backbone.Collection){for(var l=[],o=0;o<e.models.length;o++)t=e.models[o],t instanceof Backbone.Model||t instanceof Backbone.Collection?l.push(this.serialize(t)):l.push(t);return l}},unserialize:function(e,t,i){var s;switch(t){case"row-model":s=new panels.model.row,s.builder=i,s.set("style",e.style),s.setCells(this.unserialize(e.cells,"cell-collection",s));break;case"cell-model":s=new panels.model.cell,s.row=i,s.set("weight",e.weight),s.set("style",e.style),s.set("widgets",this.unserialize(e.widgets,"widget-collection",s));break;case"widget-model":s=new panels.model.widget,s.cell=i;for(var l in e)e.hasOwnProperty(l)&&s.set(l,e[l]);s.set("widget_id",panels.helpers.utils.generateUUID());break;case"cell-collection":s=new panels.collection.cells;for(var o=0;o<e.length;o++)s.push(this.unserialize(e[o],"cell-model",i));break;case"widget-collection":s=new panels.collection.widgets;for(var o=0;o<e.length;o++)s.push(this.unserialize(e[o],"widget-model",i));break;default:console.log("Unknown Thing - "+t)}return s}}},{}],14:[function(e,t,i){t.exports={generateUUID:function(){var e=(new Date).getTime();return window.performance&&"function"==typeof window.performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)})},processTemplate:function(e){return _.isUndefined(e)||_.isNull(e)?"":(e=e.replace(/{{%/g,"<%"),e=e.replace(/%}}/g,"%>"),e=e.trim())},selectElementContents:function(e){var t=document.createRange();t.selectNodeContents(e);var i=window.getSelection();i.removeAllRanges(),i.addRange(t)}}},{}],15:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=function(e){return this.each(function(){var t=jQuery(this),i=t.closest("form").find(".widget-id").val(),o=l.extend(!0,{},e);if(_.isUndefined(i)||!(i.indexOf("__i__")>-1)){var n=new s.model.builder,a=new s.view.builder({model:n,config:o}),r=t.closest(".so-panels-dialog-wrapper").data("view");_.isUndefined(r)||(r.on("close_dialog",function(){n.refreshPanelsData()}),r.on("open_dialog_complete",function(){a.trigger("builder_resize")}),r.model.on("destroy",function(){n.emptyRows().destroy()}),a.setDialogParents(panelsOptions.loc.layout_widget,r));var d=Boolean(t.closest(".widget-content").length);a.render().attach({container:t,dialog:d||"dialog"===t.data("mode"),type:t.data("type")}).setDataField(t.find("input.panels-data")),d||"dialog"===t.data("mode")?(a.setDialogParents(panelsOptions.loc.layout_widget,a.dialog),t.find(".siteorigin-panels-display-builder").click(function(e){e.preventDefault(),a.dialog.openDialog()})):t.find(".siteorigin-panels-display-builder").parent().remove(),l(document).trigger("panels_setup",a)}})}},{}],16:[function(e,t,i){var s={};window.panels=s,window.siteoriginPanels=s,s.helpers={},s.helpers.clipboard=e("./helpers/clipboard"),s.helpers.utils=e("./helpers/utils"),s.helpers.serialize=e("./helpers/serialize"),s.helpers.pageScroll=e("./helpers/page-scroll"),s.model={},s.model.widget=e("./model/widget"),s.model.cell=e("./model/cell"),s.model.row=e("./model/row"),s.model.builder=e("./model/builder"),s.model.historyEntry=e("./model/history-entry"),s.collection={},s.collection.widgets=e("./collection/widgets"),s.collection.cells=e("./collection/cells"),s.collection.rows=e("./collection/rows"),s.collection.historyEntries=e("./collection/history-entries"),s.view={},s.view.widget=e("./view/widget"),s.view.cell=e("./view/cell"),s.view.row=e("./view/row"),s.view.builder=e("./view/builder"),s.view.dialog=e("./view/dialog"),s.view.styles=e("./view/styles"),s.view.liveEditor=e("./view/live-editor"),s.dialog={},s.dialog.builder=e("./dialog/builder"),s.dialog.widgets=e("./dialog/widgets"),s.dialog.widget=e("./dialog/widget"),s.dialog.prebuilt=e("./dialog/prebuilt"),s.dialog.row=e("./dialog/row"),s.dialog.history=e("./dialog/history"),s.utils={},s.utils.menu=e("./utils/menu"),jQuery.fn.soPanelsSetupBuilderWidget=e("./jquery/setup-builder-widget"),jQuery(function(e){var t,i,s,l,o=e("#siteorigin-panels-metabox");if(s=e("form#post"),o.length&&s.length)t=o,i=o.find(".siteorigin-panels-data-field"),l={editorType:"tinyMCE",postId:e("#post_ID").val(),editorId:"#content",builderType:o.data("builder-type"),builderSupports:o.data("builder-supports"),loadOnAttach:panelsOptions.loadOnAttach&&1==e("#auto_draft").val(),loadLiveEditor:1==o.data("live-editor"),liveEditorPreview:t.data("preview-url")};else if(e(".siteorigin-panels-builder-form").length){var n=e(".siteorigin-panels-builder-form");t=n.find(".siteorigin-panels-builder-container"),i=n.find('input[name="panels_data"]'),s=n,l={editorType:"standalone",postId:n.data("post-id"),editorId:"#post_content",builderType:n.data("type"),builderSupports:n.data("builder-supports"),loadLiveEditor:!1,liveEditorPreview:n.data("preview-url")}}if(!_.isUndefined(t)){var a=window.siteoriginPanels,r=new a.model.builder,d=new a.view.builder({model:r,config:l});d.render().attach({container:t}).setDataField(i).attachToEditor(),s.submit(function(){r.refreshPanelsData()}),t.removeClass("so-panels-loading"),e(document).trigger("panels_setup",d,window.panels)}e(document).on("widget-added",function(t,i){e(i).find(".siteorigin-page-builder-widget").soPanelsSetupBuilderWidget()}),e("body").hasClass("wp-customizer")||e(function(){e(".siteorigin-page-builder-widget").soPanelsSetupBuilderWidget()})})},{"./collection/cells":1,"./collection/history-entries":2,"./collection/rows":3,"./collection/widgets":4,"./dialog/builder":5,"./dialog/history":6,"./dialog/prebuilt":7,"./dialog/row":8,"./dialog/widget":9,"./dialog/widgets":10,"./helpers/clipboard":11,"./helpers/page-scroll":12,"./helpers/serialize":13,"./helpers/utils":14,"./jquery/setup-builder-widget":15,"./model/builder":17,"./model/cell":18,"./model/history-entry":19,"./model/row":20,"./model/widget":21,"./utils/menu":22,"./view/builder":23,"./view/cell":24,"./view/dialog":25,"./view/live-editor":26,"./view/row":27,"./view/styles":28,"./view/widget":29}],17:[function(e,t,i){t.exports=Backbone.Model.extend({layoutPosition:{BEFORE:"before",AFTER:"after",REPLACE:"replace"},rows:{},defaults:{data:{widgets:[],grids:[],grid_cells:[]}},initialize:function(){this.set("rows",new panels.collection.rows)},addRow:function(e,t,i){i=_.extend({noAnimate:!1},i);var s=new panels.collection.cells(t);e=_.extend({collection:this.get("rows"),cells:s},e);var l=new panels.model.row(e);return l.builder=this,this.get("rows").add(l,i),l},loadPanelsData:function(e,t){try{t===this.layoutPosition.BEFORE?e=this.concatPanelsData(e,this.getPanelsData()):t===this.layoutPosition.AFTER&&(e=this.concatPanelsData(this.getPanelsData(),e)),this.emptyRows(),this.set("data",JSON.parse(JSON.stringify(e)),{silent:!0});var i=[];if(_.isUndefined(e.grid_cells))return void this.trigger("load_panels_data");for(var s,l=0;l<e.grid_cells.length;l++)s=parseInt(e.grid_cells[l].grid),_.isUndefined(i[s])&&(i[s]=[]),i[s].push(e.grid_cells[l]);var o=this;if(_.each(i,function(t,i){var s={};_.isUndefined(e.grids[i].style)||(s.style=e.grids[i].style),_.isUndefined(e.grids[i].ratio)||(s.ratio=e.grids[i].ratio),_.isUndefined(e.grids[i].ratio_direction)||(s.ratio_direction=e.grids[i].ratio_direction),_.isUndefined(e.grids[i].color_label)||(s.color_label=e.grids[i].color_label),_.isUndefined(e.grids[i].label)||(s.label=e.grids[i].label),o.addRow(s,t,{noAnimate:!0})}),_.isUndefined(e.widgets))return;_.each(e.widgets,function(e){var t=null;_.isUndefined(e.panels_info)?(t=e.info,delete e.info):(t=e.panels_info,delete e.panels_info);var i=o.get("rows").at(parseInt(t.grid)),s=i.get("cells").at(parseInt(t.cell)),l=new panels.model.widget({class:t.class,values:e});_.isUndefined(t.style)||l.set("style",t.style),_.isUndefined(t.read_only)||l.set("read_only",t.read_only),_.isUndefined(t.widget_id)?l.set("widget_id",panels.helpers.utils.generateUUID()):l.set("widget_id",t.widget_id),_.isUndefined(t.label)||l.set("label",t.label),l.cell=s,s.get("widgets").add(l,{noAnimate:!0})}),this.trigger("load_panels_data")}catch(e){console.log("Error loading data: "+e.message)}},concatPanelsData:function(e,t){if(_.isUndefined(t)||_.isUndefined(t.grids)||_.isEmpty(t.grids)||_.isUndefined(t.grid_cells)||_.isEmpty(t.grid_cells))return e;if(_.isUndefined(e)||_.isUndefined(e.grids)||_.isEmpty(e.grids))return t;var i=e.grids.length,s=_.isUndefined(e.widgets)?0:e.widgets.length,l={grids:[],grid_cells:[],widgets:[]};l.grids=e.grids.concat(t.grids),_.isUndefined(e.grid_cells)||(l.grid_cells=e.grid_cells.slice()),_.isUndefined(e.widgets)||(l.widgets=e.widgets.slice());var o;for(o=0;o<t.grid_cells.length;o++){var n=t.grid_cells[o];n.grid=parseInt(n.grid)+i,l.grid_cells.push(n)}if(!_.isUndefined(t.widgets))for(o=0;o<t.widgets.length;o++){var a=t.widgets[o];a.panels_info.grid=parseInt(a.panels_info.grid)+i,a.panels_info.id=parseInt(a.panels_info.id)+s,l.widgets.push(a)}return l},getPanelsData:function(){var e={widgets:[],grids:[],grid_cells:[]},t=0;return this.get("rows").each(function(i,s){i.get("cells").each(function(i,l){i.get("widgets").each(function(i,o){var n={class:i.get("class"),raw:i.get("raw"),grid:s,cell:l,id:t++,widget_id:i.get("widget_id"),style:i.get("style"),label:i.get("label")};_.isEmpty(n.widget_id)&&(n.widget_id=panels.helpers.utils.generateUUID());var a=_.extend(_.clone(i.get("values")),{panels_info:n});e.widgets.push(a)}),e.grid_cells.push({grid:s,index:l,weight:i.get("weight"),style:i.get("style")})}),e.grids.push({cells:i.get("cells").length,style:i.get("style"),ratio:i.get("ratio"),ratio_direction:i.get("ratio_direction"),color_label:i.get("color_label"),label:i.get("label")})}),e},refreshPanelsData:function(e){e=_.extend({silent:!1},e);var t=this.get("data"),i=this.getPanelsData();this.set("data",i,{silent:!0}),e.silent||JSON.stringify(i)===JSON.stringify(t)||(this.trigger("change"),this.trigger("change:data"),this.trigger("refresh_panels_data",i,e))},emptyRows:function(){return _.invoke(this.get("rows").toArray(),"destroy"),this.get("rows").reset(),this},isValidLayoutPosition:function(e){return e===this.layoutPosition.BEFORE||e===this.layoutPosition.AFTER||e===this.layoutPosition.REPLACE},getPanelsDataFromHtml:function(e,t){var i=this,s=jQuery('<div id="wrapper">'+e+"</div>");if(s.find(".panel-layout .panel-grid").length){var l={grids:[],grid_cells:[],widgets:[]},o=new RegExp(panelsOptions.siteoriginWidgetRegex,"i"),n=function(){function e(e){return e&&"string"==typeof e&&(e=e.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim,""),e=e.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,""),t.innerHTML=e,e=t.textContent,t.textContent=""),e}var t=document.createElement("div");return e}(),a=function(e){var t=e.find("div");if(!t.length)return e.html();var i;for(i=0;i<t.length-1&&jQuery.trim(t.eq(i).text())==jQuery.trim(t.eq(i+1).text());i++);var s=t.eq(i).find(".widget-title:header"),l="";return s.length&&(l=s.html(),s.remove()),{title:l,text:t.eq(i).html()}},r=s.find(".panel-layout").eq(0),d=function(e,t){return jQuery(t).closest(".panel-layout").is(r)};return s.find("> .panel-layout > .panel-grid").filter(d).each(function(e,s){var r=jQuery(s),c=r.find(".panel-grid-cell").filter(d);l.grids.push({cells:c.length,style:r.data("style"),ratio:r.data("ratio"),ratio_direction:r.data("ratio-direction"),color_label:r.data("color-label"),label:r.data("label")}),c.each(function(s,r){var c=jQuery(r),h=c.find(".so-panel").filter(d);l.grid_cells.push({grid:e,weight:_.isUndefined(c.data("weight"))?1:parseFloat(c.data("weight")),style:c.data("style")}),h.each(function(r,d){var c=jQuery(d),h=c.find(".panel-widget-style").length?c.find(".panel-widget-style").html():c.html(),u={grid:e,cell:s,style:c.data("style"),raw:!1,label:c.data("label")};h=h.trim();var p=o.exec(h);if(!_.isNull(p)&&""===h.replace(o,"").trim()){try{var g=/class="(.*?)"/.exec(p[3]),f=jQuery(p[5]),w=JSON.parse(n(f.val())),m=w.instance;u.class=g[1].replace(/\\\\+/g,"\\"),u.raw=!1,m.panels_info=u,l.widgets.push(m)}catch(e){u.class=t,l.widgets.push(_.extend(a(c),{filter:"1",type:"visual",panels_info:u}))}return!0}if(-1!==h.indexOf("panel-layout")){if(jQuery("<div>"+h+"</div>").find(".panel-layout .panel-grid").length)return u.class="SiteOrigin_Panels_Widgets_Layout",l.widgets.push({panels_data:i.getPanelsDataFromHtml(h,t),panels_info:u}),!0}return u.class=t,l.widgets.push(_.extend(a(c),{filter:"1",type:"visual",panels_info:u})),!0})})}),s.find(".panel-layout").remove(),s.find("style[data-panels-style-for-post]").remove(),s.html().replace(/^\s+|\s+$/gm,"").length&&(l.grids.push({cells:1,style:{}}),l.grid_cells.push({grid:l.grids.length-1,weight:1}),l.widgets.push({filter:"1",text:s.html().replace(/^\s+|\s+$/gm,""),title:"",type:"visual",panels_info:{class:t,raw:!1,grid:l.grids.length-1,cell:0}})),l}return{grid_cells:[{grid:0,weight:1}],grids:[{cells:1}],widgets:[{filter:"1",text:e,title:"",type:"visual",panels_info:{class:t,raw:!1,grid:0,cell:0}}]}}})},{}],18:[function(e,t,i){t.exports=Backbone.Model.extend({widgets:{},row:null,defaults:{weight:0,style:{}},indexes:null,initialize:function(){this.set("widgets",new panels.collection.widgets),this.on("destroy",this.onDestroy,this)},onDestroy:function(){_.invoke(this.get("widgets").toArray(),"destroy"),this.get("widgets").reset()},clone:function(e,t){_.isUndefined(e)&&(e=this.row),t=_.extend({cloneWidgets:!0},t);var i=new this.constructor(this.attributes);return i.set("collection",e.get("cells"),{silent:!0}),i.row=e,t.cloneWidgets&&this.get("widgets").each(function(e){i.get("widgets").add(e.clone(i,t),{silent:!0})}),i}})},{}],19:[function(e,t,i){t.exports=Backbone.Model.extend({defaults:{text:"",data:"",time:null,count:1}})},{}],20:[function(e,t,i){t.exports=Backbone.Model.extend({builder:null,defaults:{style:{}},indexes:null,initialize:function(){_.isEmpty(this.get("cells"))?this.set("cells",new panels.collection.cells):this.get("cells").each(function(e){e.row=this}.bind(this)),this.on("destroy",this.onDestroy,this)},setCells:function(e){var t=this.get("cells")||new panels.collection.cells,i=[];t.each(function(s,l){var o=e.at(l);if(o)s.set("weight",o.get("weight"));else{for(var n=t.at(e.length-1),a=s.get("widgets").models.slice(),r=0;r<a.length;r++)a[r].moveToCell(n,{silent:!1});i.push(s)}}),_.each(i,function(e){t.remove(e)}),e.length>t.length&&_.each(e.slice(t.length,e.length),function(e){e.set({collection:t}),e.row=this,t.add(e)}.bind(this)),this.reweightCells()},reweightCells:function(){var e=0,t=this.get("cells");t.each(function(t){e+=t.get("weight")}),t.each(function(t){t.set("weight",t.get("weight")/e)}),this.trigger("reweight_cells")},onDestroy:function(){_.invoke(this.get("cells").toArray(),"destroy"),this.get("cells").reset()},clone:function(e){_.isUndefined(e)&&(e=this.builder);var t=new this.constructor(this.attributes);t.set("collection",e.get("rows"),{silent:!0}),t.builder=e;var i=new panels.collection.cells;return this.get("cells").each(function(e){i.add(e.clone(t),{silent:!0})}),t.set("cells",i),t}})},{}],21:[function(e,t,i){t.exports=Backbone.Model.extend({cell:null,defaults:{class:null,missing:!1,values:{},raw:!1,style:{},read_only:!1,widget_id:""},indexes:null,initialize:function(){var e=this.get("class");!_.isUndefined(panelsOptions.widgets[e])&&panelsOptions.widgets[e].installed||this.set("missing",!0)},getWidgetField:function(e){return _.isUndefined(panelsOptions.widgets[this.get("class")])?"title"===e||"description"===e?panelsOptions.loc.missing_widget[e]:"":this.has("label")&&!_.isEmpty(this.get("label"))?this.get("label"):panelsOptions.widgets[this.get("class")][e]},moveToCell:function(e,t,i){return t=_.extend({silent:!0},t),this.cell=e,this.collection.remove(this,t),e.get("widgets").add(this,_.extend({at:i},t)),this.trigger("move_to_cell",e,i),this},setValues:function(e){var t=!1;JSON.stringify(e)!==JSON.stringify(this.get("values"))&&(t=!0),this.set("values",e,{silent:!0}),t&&(this.trigger("change",this),this.trigger("change:values"))},clone:function(e,t){_.isUndefined(e)&&(e=this.cell);var i=new this.constructor(this.attributes),s=JSON.parse(JSON.stringify(this.get("values"))),l=function(e){return _.each(e,function(t,i){_.isString(i)&&"_"===i[0]?delete e[i]:_.isObject(e[i])&&l(e[i])}),e};return s=l(s),"SiteOrigin_Panels_Widgets_Layout"===this.get("class")&&(s.builder_id=Math.random().toString(36).substr(2)),i.set("widget_id",""),i.set("values",s,{silent:!0}),i.set("collection",e.get("widgets"),{silent:!0}),i.cell=e,i.isDuplicate=!0,i},getTitle:function(){var e=panelsOptions.widgets[this.get("class")];if(_.isUndefined(e))return this.get("class").replace(/_/g," ");if(!_.isUndefined(e.panels_title)&&!1===e.panels_title)return panelsOptions.widgets[this.get("class")].description;var t=this.get("values"),i=["title","text"];for(var s in t)t.hasOwnProperty(s)&&i.push(s);i=_.uniq(i);for(var l in i)if(!_.isUndefined(t[i[l]])&&_.isString(t[i[l]])&&""!==t[i[l]]&&"on"!==t[i[l]]&&"_"!==i[l][0]&&!jQuery.isNumeric(t[i[l]])){var o=t[i[l]];o=o.replace(/<\/?[^>]+(>|$)/g,"");var n=o.split(" ");return n=n.slice(0,20),n.join(" ")}return this.getWidgetField("description")}})},{}],22:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({wrapperTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-context-menu").html())),sectionTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-context-menu-section").html())),contexts:[],active:!1,events:{"keyup .so-search-wrapper input":"searchKeyUp"},initialize:function(){this.listenContextMenu(),this.render(),this.attach()},listenContextMenu:function(){var e=this;l(window).on("contextmenu",function(t){return e.active&&!e.isOverEl(e.$el,t)?(e.closeMenu(),e.active=!1,t.preventDefault(),!1):!!e.active||(e.active=!1,e.trigger("activate_context",t,e),void(e.active&&(t.preventDefault(),e.openMenu({left:t.pageX,top:t.pageY}))))})},render:function(){this.setElement(this.wrapperTemplate())},attach:function(){this.$el.appendTo("body")},openMenu:function(e){this.trigger("open_menu"),l(window).on("keyup",{menu:this},this.keyboardListen),l(window).on("click",{menu:this},this.clickOutsideListen),this.$el.css("max-height",l(window).height()-20),e.left+this.$el.outerWidth()+10>=l(window).width()&&(e.left=l(window).width()-this.$el.outerWidth()-10),e.left<=0&&(e.left=10),e.top+this.$el.outerHeight()-l(window).scrollTop()+10>=l(window).height()&&(e.top=l(window).height()+l(window).scrollTop()-this.$el.outerHeight()-10),e.left<=0&&(e.left=10),this.$el.css({left:e.left+1,top:e.top+1}).show(),this.$(".so-search-wrapper input").focus()},closeMenu:function(){this.trigger("close_menu"),l(window).off("keyup",this.keyboardListen),l(window).off("click",this.clickOutsideListen),this.active=!1,this.$el.empty().hide()},keyboardListen:function(e){var t=e.data.menu;switch(e.which){case 27:t.closeMenu()}},clickOutsideListen:function(e){var t=e.data.menu;3!==e.which&&t.$el.is(":visible")&&!t.isOverEl(t.$el,e)&&t.closeMenu()},addSection:function(e,t,i,s){var o=this;t=_.extend({display:5,defaultDisplay:!1,search:!0,sectionTitle:"",searchPlaceholder:"",titleKey:"title"},t);var n=l(this.sectionTemplate({settings:t,items:i})).attr("id","panels-menu-section-"+e);this.$el.append(n),n.find(".so-item:not(.so-confirm)").click(function(){var e=l(this);s(e.data("key")),o.closeMenu()}),n.find(".so-item.so-confirm").click(function(){var e=l(this);if(e.hasClass("so-confirming"))return s(e.data("key")),void o.closeMenu();e.data("original-text",e.html()).addClass("so-confirming").html('<span class="dashicons dashicons-yes"></span> '+panelsOptions.loc.dropdown_confirm),setTimeout(function(){e.removeClass("so-confirming"),e.html(e.data("original-text"))},2500)}),n.data("settings",t).find(".so-search-wrapper input").trigger("keyup"),this.active=!0},hasSection:function(e){return this.$el.find("#panels-menu-section-"+e).length>0},searchKeyUp:function(e){var t=l(e.currentTarget),i=t.closest(".so-section"),s=i.data("settings");if(38===e.which||40===e.which){var o=i.find("ul li:visible"),n=o.filter(".so-active").eq(0);if(n.length){o.removeClass("so-active");var a=o.index(n);38===e.which?n=a-1<0?o.last():o.eq(a-1):40===e.which&&(n=a+1>=o.length?o.first():o.eq(a+1))}else 38===e.which?n=o.last():40===e.which&&(n=o.first());return n.addClass("so-active"),!1}if(13===e.which)return 1===i.find("ul li:visible").length?(i.find("ul li:visible").trigger("click"),!1):(i.find("ul li.so-active:visible").trigger("click"),!1);if(""===t.val())if(s.defaultDisplay){i.find(".so-item").hide();for(var r=0;r<s.defaultDisplay.length;r++)i.find('.so-item[data-key="'+s.defaultDisplay[r]+'"]').show()}else i.find(".so-item").show();else i.find(".so-item").hide().each(function(){var e=l(this);-1!==e.html().toLowerCase().indexOf(t.val().toLowerCase())&&e.show()});i.find(".so-item:visible:gt("+(s.display-1)+")").hide(),0===i.find(".so-item:visible").length&&""!==t.val()?i.find(".so-no-results").show():i.find(".so-no-results").hide()},isOverEl:function(e,t){var i=[[e.offset().left,e.offset().top],[e.offset().left+e.outerWidth(),e.offset().top+e.outerHeight()]];return t.pageX>=i[0][0]&&t.pageX<=i[1][0]&&t.pageY>=i[0][1]&&t.pageY<=i[1][1]}})},{}],23:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({config:{},template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder").html())),dialogs:{},rowsSortable:null,dataField:!1,currentData:"",attachedToEditor:!1,attachedVisible:!1,liveEditor:void 0,menu:!1,activeCell:null,events:{"click .so-tool-button.so-widget-add":"displayAddWidgetDialog","click .so-tool-button.so-row-add":"displayAddRowDialog","click .so-tool-button.so-prebuilt-add":"displayAddPrebuiltDialog","click .so-tool-button.so-history":"displayHistoryDialog","click .so-tool-button.so-live-editor":"displayLiveEditor"},rows:null,initialize:function(e){var t=this;return this.config=_.extend({loadLiveEditor:!1,builderSupports:{}},e.config),this.config.builderSupports=_.extend({addRow:!0,editRow:!0,deleteRow:!0,moveRow:!0,addWidget:!0,editWidget:!0,deleteWidget:!0,moveWidget:!0,prebuilt:!0,history:!0,liveEditor:!0,revertToEditor:!0},this.config.builderSupports),e.config.loadLiveEditor&&this.on("builder_live_editor_added",function(){this.displayLiveEditor()}),this.dialogs={widgets:new s.dialog.widgets,row:new s.dialog.row,prebuilt:new s.dialog.prebuilt},_.each(this.dialogs,function(e,i,s){s[i].setBuilder(t)}),this.dialogs.row.setRowDialogType("create"),this.listenTo(this.model.get("rows"),"add",this.onAddRow),l(window).resize(function(e){e.target===window&&t.trigger("builder_resize")}),this.listenTo(this.model,"change:data load_panels_data",this.storeModelData),this.listenTo(this.model,"change:data load_panels_data",this.toggleWelcomeDisplay),this.on("content_change",this.handleContentChange,this),this.on("display_builder",this.handleDisplayBuilder,this),this.on("hide_builder",this.handleHideBuilder,this),this.on("builder_rendered builder_resize",this.handleBuilderSizing,this),this.on("display_builder",this.wrapEditorExpandAdjust,this),this.menu=new s.utils.menu({}),this.listenTo(this.menu,"activate_context",this.activateContextMenu),this.config.loadOnAttach&&this.on("builder_attached_to_editor",function(){this.displayAttachedBuilder({confirm:!1})},this),this},render:function(){return this.setElement(this.template()),this.$el.attr("id","siteorigin-panels-builder-"+this.cid).addClass("so-builder-container"),this.trigger("builder_rendered"),this},attach:function(e){e=_.extend({container:!1,dialog:!1},e),e.dialog?(this.dialog=new s.dialog.builder,this.dialog.builder=this):(this.$el.appendTo(e.container),this.metabox=e.container.closest(".postbox"),this.initSortable(),this.trigger("attached_to_container",e.container)),this.trigger("builder_attached"),this.supports("liveEditor")&&this.addLiveEditor(),this.supports("history")&&this.addHistoryBrowser();var t=this.$(".so-builder-toolbar"),i=this.$(".so-panels-welcome-message"),l=panelsOptions.loc.welcomeMessage,o=[];this.supports("addWidget")?o.push(l.addWidgetButton):t.find(".so-widget-add").hide(),this.supports("addRow")?o.push(l.addRowButton):t.find(".so-row-add").hide(),this.supports("prebuilt")?o.push(l.addPrebuiltButton):t.find(".so-prebuilt-add").hide();var n="";3===o.length?n=l.threeEnabled:2===o.length?n=l.twoEnabled:1===o.length?n=l.oneEnabled:0===o.length&&(n=l.addingDisabled);var a=_.template(s.helpers.utils.processTemplate(n)),r=a({items:o})+" "+l.docsMessage;return i.find(".so-message-wrapper").html(r),this},attachToEditor:function(){if("tinyMCE"!==this.config.editorType)return this;this.attachedToEditor=!0;var e=this.metabox,t=this;l("#wp-content-wrap .wp-editor-tabs").find(".wp-switch-editor").click(function(e){e.preventDefault(),l("#wp-content-editor-container").show(),l("#wp-content-wrap").removeClass("panels-active"),l("#content-resize-handle").show(),t.trigger("hide_builder")}).end().append(l('<a id="content-panels" class="hide-if-no-js wp-switch-editor switch-panels">'+e.find(".hndle span").html()+"</a>").click(function(e){t.displayAttachedBuilder({confirm:!0})&&e.preventDefault()})),this.supports("revertToEditor")&&e.find(".so-switch-to-standard").click(function(i){i.preventDefault(),confirm(panelsOptions.loc.confirm_stop_builder)&&(t.addHistoryEntry("back_to_editor"),t.model.loadPanelsData(!1),l("#wp-content-wrap").show(),e.hide(),l(window).resize(),t.attachedVisible=!1,t.trigger("hide_builder"))}).show(),e.insertAfter("#wp-content-wrap").hide().addClass("attached-to-editor");var i=this.model.get("data");_.isEmpty(i.widgets)&&_.isEmpty(i.grids)&&this.supports("revertToEditor")||this.displayAttachedBuilder({confirm:!1});var s=function(){var e=t.$(".so-builder-toolbar");if(t.$el.hasClass("so-display-narrow"))return e.css({top:0,left:0,width:"100%",position:"absolute"}),void t.$el.css("padding-top",e.outerHeight());var i=l(window).scrollTop()-t.$el.offset().top;"fixed"===l("#wpadminbar").css("position")&&(i+=l("#wpadminbar").outerHeight());var s={top:0,bottom:t.$el.outerHeight()-e.outerHeight()+20};i>s.top&&i<s.bottom?"fixed"!==e.css("position")&&e.css({top:l("#wpadminbar").outerHeight(),left:t.$el.offset().left,width:t.$el.outerWidth(),position:"fixed"}):e.css({top:Math.min(Math.max(i,0),t.$el.outerHeight()-e.outerHeight()+20),left:0,width:"100%",position:"absolute"}),t.$el.css("padding-top",e.outerHeight())};return this.on("builder_resize",s,this),l(document).scroll(s),s(),this.trigger("builder_attached_to_editor"),this},displayAttachedBuilder:function(e){if(e=_.extend({confirm:!0},e),e.confirm){var t="undefined"!=typeof tinyMCE&&tinyMCE.get("content");if(""!==(t&&_.isFunction(t.getContent)?t.getContent():l("textarea#content").val())&&!confirm(panelsOptions.loc.confirm_use_builder))return!1}return l("#wp-content-wrap").hide(),l("#editor-expand-toggle").on("change.editor-expand",function(){l(this).prop("checked")||l("#wp-content-wrap").hide()}),this.metabox.show().find("> .inside").show(),l(window).resize(),l(document).scroll(),this.attachedVisible=!0,this.trigger("display_builder"),!0},initSortable:function(){if(!this.supports("moveRow"))return this;var e=this;return this.rowsSortable=this.$(".so-rows-container").sortable({appendTo:"#wpwrap",items:".so-row-container",handle:".so-row-move",axis:"y",tolerance:"pointer",scroll:!1,stop:function(t,i){e.addHistoryEntry("row_moved");var s=l(i.item),o=s.data("view");e.model.get("rows").remove(o.model,{silent:!0}),e.model.get("rows").add(o.model,{silent:!0,at:s.index()}),o.trigger("move",s.index()),e.model.refreshPanelsData()}}),this},refreshSortable:function(){_.isNull(this.rowsSortable)||this.rowsSortable.sortable("refresh")},setDataField:function(e,t){if(t=_.extend({load:!0},t),this.dataField=e,this.dataField.data("builder",this),t.load&&""!==e.val()){var i=this.dataField.val();try{i=JSON.parse(i)}catch(e){i={}}this.model.loadPanelsData(i),this.currentData=i,this.toggleWelcomeDisplay()}return this},storeModelData:function(){var e=JSON.stringify(this.model.get("data"));l(this.dataField).val()!==e&&(l(this.dataField).val(e),l(this.dataField).trigger("change"),this.trigger("content_change"))},onAddRow:function(e,t,i){i=_.extend({noAnimate:!1},i);var l=new s.view.row({model:e});l.builder=this,l.render(),_.isUndefined(i.at)||t.length<=1?l.$el.appendTo(this.$(".so-rows-container")):l.$el.insertAfter(this.$(".so-rows-container .so-row-container").eq(i.at-1)),!1===i.noAnimate&&l.visualCreate(),this.refreshSortable(),l.resize()},displayAddWidgetDialog:function(){this.dialogs.widgets.openDialog()},displayAddRowDialog:function(){var e=new s.model.row,t=new s.collection.cells([{weight:.5},{weight:.5}]);t.each(function(t){t.row=e}),e.set("cells",t),e.builder=this.model,this.dialogs.row.setRowModel(e),this.dialogs.row.openDialog()},displayAddPrebuiltDialog:function(){this.dialogs.prebuilt.openDialog()},displayHistoryDialog:function(){this.dialogs.history.openDialog()},pasteRowHandler:function(){var e=s.helpers.clipboard.getModel("row-model");!_.isEmpty(e)&&e instanceof s.model.row&&(this.addHistoryEntry("row_pasted"),e.builder=this.model,this.model.get("rows").add(e,{at:this.model.get("rows").indexOf(this.model)+1}),this.model.refreshPanelsData())},getActiveCell:function(e){if(e=_.extend({createCell:!0},e),!this.model.get("rows").length){if(!e.createCell)return null;this.model.addRow({},[{weight:1}],{noAnimate:!0})}var t=this.activeCell
3
+ ;return _.isEmpty(t)||-1===this.model.get("rows").indexOf(t.model.row)?this.model.get("rows").last().get("cells").first():t.model},addLiveEditor:function(){return _.isEmpty(this.config.liveEditorPreview)?this:(this.liveEditor=new s.view.liveEditor({builder:this,previewUrl:this.config.liveEditorPreview}),this.liveEditor.hasPreviewUrl()&&this.$(".so-builder-toolbar .so-live-editor").show(),this.trigger("builder_live_editor_added"),this)},displayLiveEditor:function(){_.isUndefined(this.liveEditor)||this.liveEditor.open()},addHistoryBrowser:function(){if(_.isEmpty(this.config.liveEditorPreview))return this;this.dialogs.history=new s.dialog.history,this.dialogs.history.builder=this,this.dialogs.history.entries.builder=this.model,this.dialogs.history.setRevertEntry(this.model),this.$(".so-builder-toolbar .so-history").show()},addHistoryEntry:function(e,t){_.isUndefined(t)&&(t=null),_.isUndefined(this.dialogs.history)||this.dialogs.history.entries.addEntry(e,t)},supports:function(e){return"rowAction"===e?this.supports("addRow")||this.supports("editRow")||this.supports("deleteRow"):"widgetAction"===e?this.supports("addWidget")||this.supports("editWidget")||this.supports("deleteWidget"):!_.isUndefined(this.config.builderSupports[e])&&this.config.builderSupports[e]},handleContentChange:function(){if(panelsOptions.copy_content&&this.attachedToEditor&&this.$el.is(":visible")){var e=this.model.getPanelsData();_.isEmpty(e.widgets)||l.post(panelsOptions.ajaxurl,{action:"so_panels_builder_content",panels_data:JSON.stringify(e),post_id:this.config.postId},function(e){""!==e&&this.updateEditorContent(e)}.bind(this))}},updateEditorContent:function(e){if("tinyMCE"!==this.config.editorType||"undefined"==typeof tinyMCE||_.isNull(tinyMCE.get("content"))){l(this.config.editorId).val(e).trigger("change").trigger("keyup")}else{var t=tinyMCE.get("content");t.setContent(e),t.fire("change"),t.fire("keyup")}this.triggerYoastSeoChange()},triggerYoastSeoChange:function(){if(l("#yoast_wpseo_focuskw_text_input").length){var e,t=document.getElementById("yoast_wpseo_focuskw_text_input");document.createEvent?(e=document.createEvent("HTMLEvents"),e.initEvent("keyup",!0,!0)):(e=document.createEventObject(),e.eventType="keyup"),e.eventName="keyup",document.createEvent?t.dispatchEvent(e):t.fireEvent("on"+e.eventType,e)}},handleDisplayBuilder:function(){var e="undefined"!=typeof tinyMCE&&tinyMCE.get("content"),t=e&&_.isFunction(e.getContent)?e.getContent():l("textarea#content").val();if((_.isEmpty(this.model.get("data"))||_.isEmpty(this.model.get("data").widgets)&&_.isEmpty(this.model.get("data").grids))&&""!==t){var i=panelsOptions.text_widget;if(_.isEmpty(i))return;this.model.loadPanelsData(this.model.getPanelsDataFromHtml(t,i)),this.model.trigger("change"),this.model.trigger("change:data")}l("#post-status-info").addClass("for-siteorigin-panels")},handleHideBuilder:function(){l("#post-status-info").show().removeClass("for-siteorigin-panels")},wrapEditorExpandAdjust:function(){try{for(var e,t=(l.hasData(window)&&l._data(window)).events.scroll,i=0;i<t.length;i++)if("editor-expand"===t[i].namespace){e=t[i],l(window).unbind("scroll",e.handler),l(window).bind("scroll",function(t){this.attachedVisible||e.handler(t)}.bind(this));break}}catch(e){return}},handleBuilderSizing:function(){var e=this.$el.width();return e?(e<480?this.$el.addClass("so-display-narrow"):this.$el.removeClass("so-display-narrow"),this):this},setDialogParents:function(e,t){_.each(this.dialogs,function(i,s,l){l[s].setParent(e,t)}),this.on("add_dialog",function(i){i.setParent(e,t)},this)},toggleWelcomeDisplay:function(){this.model.get("rows").isEmpty()?this.$(".so-panels-welcome-message").show():this.$(".so-panels-welcome-message").hide()},activateContextMenu:function(e,t){var i=this,s=l(".siteorigin-panels-builder:visible").sort(function(e,t){return l(e).zIndex()>l(t).zIndex()?1:-1}).last(),o=l(".so-panels-dialog-wrapper:visible").sort(function(e,t){return l(e).zIndex()>l(t).zIndex()?1:-1}).last(),n=i.$el.closest(".so-panels-dialog-wrapper");if(i.$el.is(s)&&(0===o.length||o.is(n))){var a=l([]).add(i.$(".so-panels-welcome-message:visible")).add(i.$(".so-rows-container > .so-row-container")).add(i.$(".so-cells > .cell")).add(i.$(".cell-wrapper > .so-widget")).filter(function(i){return t.isOverEl(l(this),e)}),r=a.last().data("view");void 0!==r&&void 0!==r.buildContextualMenu?r.buildContextualMenu(e,t):a.last().hasClass("so-panels-welcome-message")&&this.buildContextualMenu(e,t)}},buildContextualMenu:function(e,t){var i={};this.supports("addRow")&&(i.add_row={title:panelsOptions.loc.contextual.add_row}),s.helpers.clipboard.canCopyPaste()&&s.helpers.clipboard.isModel("row-model")&&this.supports("addRow")&&(i.paste_row={title:panelsOptions.loc.contextual.row_paste}),_.isEmpty(i)||t.addSection("builder-actions",{sectionTitle:panelsOptions.loc.contextual.row_actions,search:!1},i,function(e){switch(e){case"add_row":this.displayAddRowDialog();break;case"paste_row":this.pasteRowHandler()}}.bind(this))}})},{}],24:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-cell").html())),events:{"click .cell-wrapper":"handleCellClick"},row:null,widgetSortable:null,initialize:function(){this.listenTo(this.model.get("widgets"),"add",this.onAddWidget)},render:function(){var e={weight:this.model.get("weight"),totalWeight:this.row.model.get("cells").totalWeight()};this.setElement(this.template(e)),this.$el.data("view",this);var t=this;return this.model.get("widgets").each(function(e){var i=new s.view.widget({model:e});i.cell=t,i.render(),i.$el.appendTo(t.$(".widgets-container"))}),this.initSortable(),this.initResizable(),this},initSortable:function(){if(!this.row.builder.supports("moveWidget"))return this;var e=this,t=e.row.builder.$el.attr("id");return this.widgetSortable=this.$(".widgets-container").sortable({placeholder:"so-widget-sortable-highlight",connectWith:"#"+t+" .so-cells .cell .widgets-container",tolerance:"pointer",scroll:!1,over:function(t,i){e.row.builder.trigger("widget_sortable_move")},stop:function(t,i){e.row.builder.addHistoryEntry("widget_moved");var s=l(i.item),o=s.data("view"),n=s.closest(".cell").data("view");o.model.moveToCell(n.model,{},s.index()),o.cell=n,o.cell.row.builder.model.refreshPanelsData()},helper:function(e,t){var i=t.clone().css({width:t.outerWidth(),"z-index":1e4,position:"fixed"}).addClass("widget-being-dragged").appendTo("body");return t.outerWidth()>720&&i.animate({"margin-left":e.pageX-t.offset().left-240,width:480},"fast"),i}}),this},refreshSortable:function(){_.isNull(this.widgetSortable)||this.widgetSortable.sortable("refresh")},initResizable:function(){if(!this.row.builder.supports("editRow"))return this;var e,t=this.$(".resize-handle").css("position","absolute"),i=this.row.$el,s=this;return t.draggable({axis:"x",containment:i,start:function(t,i){if(e=s.$el.prev().data("view"),!_.isUndefined(e)){var o=s.$el.clone().appendTo(i.helper).css({position:"absolute",top:"0",width:s.$el.outerWidth(),left:5,height:s.$el.outerHeight()});o.find(".resize-handle").remove();var n=e.$el.clone().appendTo(i.helper).css({position:"absolute",top:"0",width:e.$el.outerWidth(),right:5,height:e.$el.outerHeight()});n.find(".resize-handle").remove(),l(this).data({newCellClone:o,prevCellClone:n})}},drag:function(i,o){var n=s.row.$el.width()+10,a=s.model.get("weight")-(o.position.left+t.outerWidth()/2)/n,r=e.model.get("weight")+(o.position.left+t.outerWidth()/2)/n;l(this).data("newCellClone").css("width",n*a).find(".preview-cell-weight").html(Math.round(1e3*a)/10),l(this).data("prevCellClone").css("width",n*r).find(".preview-cell-weight").html(Math.round(1e3*r)/10)},stop:function(i,o){l(this).data("newCellClone").remove(),l(this).data("prevCellClone").remove();var n=s.row.$el.width()+10,a=s.model.get("weight")-(o.position.left+t.outerWidth()/2)/n,r=e.model.get("weight")+(o.position.left+t.outerWidth()/2)/n;a>.02&&r>.02&&(s.row.builder.addHistoryEntry("cell_resized"),s.model.set("weight",a),e.model.set("weight",r),s.row.resize()),o.helper.css("left",-t.outerWidth()/2),s.row.builder.model.refreshPanelsData()}}),this},onAddWidget:function(e,t,i){i=_.extend({noAnimate:!1},i);var l=new s.view.widget({model:e});l.cell=this,_.isUndefined(e.isDuplicate)&&(e.isDuplicate=!1),l.render({loadForm:e.isDuplicate}),_.isUndefined(i.at)||t.length<=1?l.$el.appendTo(this.$(".widgets-container")):l.$el.insertAfter(this.$(".widgets-container .so-widget").eq(i.at-1)),!1===i.noAnimate&&l.visualCreate(),this.refreshSortable(),this.row.resize()},handleCellClick:function(e){this.row.builder.$el.find(".so-cells .cell").removeClass("cell-selected"),this.row.builder.activeCell!==this||this.model.get("widgets").length?(this.$el.addClass("cell-selected"),this.row.builder.activeCell=this):this.row.builder.activeCell=null},pasteHandler:function(){var e=s.helpers.clipboard.getModel("widget-model");!_.isEmpty(e)&&e instanceof s.model.widget&&(this.row.builder.addHistoryEntry("widget_pasted"),e.cell=this.model,this.model.get("widgets").add(e),this.row.builder.model.refreshPanelsData())},buildContextualMenu:function(e,t){var i=this;t.hasSection("add-widget-below")||t.addSection("add-widget-cell",{sectionTitle:panelsOptions.loc.contextual.add_widget_cell,searchPlaceholder:panelsOptions.loc.contextual.search_widgets,defaultDisplay:panelsOptions.contextual.default_widgets},panelsOptions.widgets,function(e){i.row.builder.trigger("before_user_adds_widget"),i.row.builder.addHistoryEntry("widget_added");var t=new s.model.widget({class:e});t.cell=i.model,t.cell.get("widgets").add(t),i.row.builder.model.refreshPanelsData(),i.row.builder.trigger("after_user_adds_widget",t)});var l={};this.row.builder.supports("addWidget")&&s.helpers.clipboard.isModel("widget-model")&&(l.paste={title:panelsOptions.loc.contextual.cell_paste_widget}),_.isEmpty(l)||t.addSection("cell-actions",{sectionTitle:panelsOptions.loc.contextual.cell_actions,search:!1},l,function(e){switch(e){case"paste":this.pasteHandler()}this.row.builder.model.refreshPanelsData()}.bind(this)),this.row.buildContextualMenu(e,t)}})},{}],25:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({dialogTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog").html())),dialogTabTemplate:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-dialog-tab").html())),tabbed:!1,rendered:!1,builder:!1,className:"so-panels-dialog-wrapper",dialogClass:"",dialogIcon:"",parentDialog:!1,dialogOpen:!1,editableLabel:!1,events:{"click .so-close":"closeDialog","click .so-nav.so-previous":"navToPrevious","click .so-nav.so-next":"navToNext"},initialize:function(){this.once("open_dialog",this.render),this.once("open_dialog",this.attach),this.once("open_dialog",this.setDialogClass),this.trigger("initialize_dialog",this),_.isUndefined(this.initializeDialog)||this.initializeDialog()},getNextDialog:function(){return null},getPrevDialog:function(){return null},setDialogClass:function(){""!==this.dialogClass&&this.$(".so-panels-dialog").addClass(this.dialogClass)},setBuilder:function(e){return this.builder=e,e.trigger("add_dialog",this,this.builder),this},attach:function(){return this.$el.appendTo("body"),this},parseDialogContent:function(e,t){t=_.extend({cid:this.cid},t);var i=l(_.template(s.helpers.utils.processTemplate(e))(t)),o={title:i.find(".title").html(),buttons:i.find(".buttons").html(),content:i.find(".content").html()};return i.has(".left-sidebar")&&(o.left_sidebar=i.find(".left-sidebar").html()),i.has(".right-sidebar")&&(o.right_sidebar=i.find(".right-sidebar").html()),o},renderDialog:function(e){if(e=_.extend({editableLabel:this.editableLabel,dialogIcon:this.dialogIcon},e),this.$el.html(this.dialogTemplate(e)).hide(),this.$el.data("view",this),this.$el.addClass("so-panels-dialog-wrapper"),!1!==this.parentDialog){var t=this,i=l('<h3 class="so-parent-link"></h3>').html(this.parentDialog.text+'<div class="so-separator"></div>');i.click(function(e){e.preventDefault(),t.closeDialog(),t.parentDialog.openDialog()}),this.$(".so-title-bar").prepend(i)}return this.$(".so-title-bar .so-title-editable").length&&this.initEditableLabel(),this},initTabs:function(){var e=this.$(".so-sidebar-tabs li a");if(0===e.length)return this;var t=this;return e.click(function(e){e.preventDefault();var i=l(this);t.$(".so-sidebar-tabs li").removeClass("tab-active"),t.$(".so-content .so-content-tabs > *").hide(),i.parent().addClass("tab-active");var s=i.attr("href");if(!_.isUndefined(s)&&"#"===s.charAt(0)){var o=s.split("#")[1];t.$(".so-content .so-content-tabs .tab-"+o).show()}t.trigger("tab_click",i)}),this.$(".so-sidebar-tabs li a").first().click(),this},initToolbar:function(){this.$(".so-toolbar .so-buttons .so-toolbar-button").click(function(e){e.preventDefault(),this.trigger("button_click",l(e.currentTarget))}.bind(this)),this.$(".so-toolbar .so-buttons .so-dropdown-button").click(function(e){e.preventDefault();var t=l(e.currentTarget),i=t.siblings(".so-dropdown-links-wrapper");i.is(".hidden")?i.removeClass("hidden"):i.addClass("hidden")}.bind(this)),l("html").click(function(e){this.$(".so-dropdown-links-wrapper").not(".hidden").each(function(t,i){var s=l(i),o=l(e.target);0!==o.length&&(o.is(".so-needs-confirm")&&!o.is(".so-confirmed")||o.is(".so-dropdown-button"))||s.addClass("hidden")})}.bind(this))},initEditableLabel:function(){var e=this.$(".so-title-bar .so-title-editable");e.keypress(function(t){var i="keypress"===t.type&&13===t.keyCode;if(i){var s=l(":tabbable"),o=s.index(e);s.eq(o+1).focus(),window.getSelection().removeAllRanges()}return!i}).blur(function(){var t=e.text().replace(/^\s+|\s+$/gm,"");t!==e.data("original-value").replace(/^\s+|\s+$/gm,"")&&(e.text(t),this.trigger("edit_label",t))}.bind(this)),e.focus(function(){e.data("original-value",e.text()),s.helpers.utils.selectElementContents(this)})},setupDialog:function(){this.openDialog(),this.closeDialog()},refreshDialogNav:function(){this.$(".so-title-bar .so-nav").show().removeClass("so-disabled");var e=this.getNextDialog(),t=this.$(".so-title-bar .so-next"),i=this.getPrevDialog(),s=this.$(".so-title-bar .so-previous");null===e?t.hide():!1===e&&t.addClass("so-disabled"),null===i?s.hide():!1===i&&s.addClass("so-disabled")},openDialog:function(e){e=_.extend({silent:!1},e),e.silent||this.trigger("open_dialog"),this.dialogOpen=!0,this.refreshDialogNav(),s.helpers.pageScroll.lock(),l(window).on("keyup",this.keyboardListen),this.$el.show(),e.silent||(this.trigger("open_dialog_complete"),this.builder.trigger("open_dialog",this),l(document).trigger("open_dialog",this))},closeDialog:function(e){e=_.extend({silent:!1},e),e.silent||this.trigger("close_dialog"),this.dialogOpen=!1,this.$el.hide(),s.helpers.pageScroll.unlock(),l(window).off("keyup",this.keyboardListen),e.silent||(this.trigger("close_dialog_complete"),this.builder.trigger("close_dialog",this))},keyboardListen:function(e){27===e.which&&l(".so-panels-dialog-wrapper .so-close").trigger("click")},navToPrevious:function(){this.closeDialog();var e=this.getPrevDialog();null!==e&&!1!==e&&e.openDialog()},navToNext:function(){this.closeDialog();var e=this.getNextDialog();null!==e&&!1!==e&&e.openDialog()},getFormValues:function(e){_.isUndefined(e)&&(e=".so-content");var t,i=this.$(e),s={};return i.find("[name]").each(function(){var e=l(this);try{var i=/([A-Za-z_]+)\[(.*)\]/.exec(e.attr("name"));if(_.isEmpty(i))return!0;_.isUndefined(i[2])?t=e.attr("name"):(t=i[2].split("]["),t.unshift(i[1])),t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var o=s,n=null,a=!!_.isString(e.attr("type"))&&e.attr("type").toLowerCase();if("checkbox"===a)n=e.is(":checked")?""===e.val()||e.val():null;else if("radio"===a){if(!e.is(":checked"))return;n=e.val()}else if("SELECT"===e.prop("tagName")){var r=e.find("option:selected");1===r.length?n=e.find("option:selected").val():r.length>1&&(n=_.map(e.find("option:selected"),function(e,t){return l(e).val()}))}else n=e.val();if(!_.isUndefined(e.data("panels-filter")))switch(e.data("panels-filter")){case"json_parse":try{n=JSON.parse(n)}catch(e){n=""}}if(null!==n)for(var d=0;d<t.length;d++)d===t.length-1?""===t[d]?o.push(n):o[t[d]]=n:(_.isUndefined(o[t[d]])&&(""===t[d+1]?o[t[d]]=[]:o[t[d]]={}),o=o[t[d]])}catch(t){console.log("Field ["+e.attr("name")+"] could not be processed and was skipped - "+t.message)}}),s},setStatusMessage:function(e,t,i){var s=i?'<span class="dashicons dashicons-warning"></span>'+e:e;this.$(".so-toolbar .so-status").html(s),!_.isUndefined(t)&&t?this.$(".so-toolbar .so-status").addClass("so-panels-loading"):this.$(".so-toolbar .so-status").removeClass("so-panels-loading")},setParent:function(e,t){this.parentDialog={text:e,dialog:t}}})},{}],26:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-live-editor").html())),previewScrollTop:0,loadTimes:[],previewFrameId:1,previewUrl:null,previewIframe:null,events:{"click .live-editor-close":"close","click .live-editor-collapse":"collapse","click .live-editor-mode":"mobileToggle"},initialize:function(e){e=_.extend({builder:!1,previewUrl:!1},e),_.isEmpty(e.previewUrl)&&(e.previewUrl=panelsOptions.ajaxurl+"&action=so_panels_live_editor_preview"),this.builder=e.builder,this.previewUrl=e.previewUrl,this.listenTo(this.builder.model,"refresh_panels_data",this.handleRefreshData),this.listenTo(this.builder.model,"load_panels_data",this.handleLoadData)},render:function(){this.setElement(this.template()),this.$el.hide();var e=!1;l(document).mousedown(function(){e=!0}).mouseup(function(){e=!1});var t=this;return this.$el.on("mouseenter",".so-widget-wrapper",function(){var i=l(this),s=i.data("live-editor-preview-widget");e||void 0===s||!s.length||t.$(".so-preview-overlay").is(":visible")||(t.highlightElement(s),t.scrollToElement(s))}),this.$el.on("mouseleave",".so-widget-wrapper",function(){this.resetHighlights()}.bind(this)),this.listenTo(this.builder,"open_dialog",function(){this.resetHighlights()}),this},attach:function(){this.$el.appendTo("body")},open:function(){if(""===this.$el.html()&&this.render(),0===this.$el.closest("body").length&&this.attach(),s.helpers.pageScroll.lock(),this.$el.is(":visible"))return this;if(this.$el.show(),this.refreshPreview(this.builder.model.getPanelsData()),this.originalContainer=this.builder.$el.parent(),this.builder.$el.appendTo(this.$(".so-live-editor-builder")),this.builder.$(".so-tool-button.so-live-editor").hide(),this.builder.trigger("builder_resize"),"auto-draft"===l("#original_post_status").val()&&!this.autoSaved){var e=this;wp.autosave&&(""===l('#title[name="post_title"]').val()&&l('#title[name="post_title"]').val(panelsOptions.loc.draft).trigger("keydown"),l(document).one("heartbeat-tick.autosave",function(){e.autoSaved=!0,e.refreshPreview(e.builder.model.getPanelsData())}),wp.autosave.server.triggerSave())}},close:function(){if(!this.$el.is(":visible"))return this;this.$el.hide(),s.helpers.pageScroll.unlock(),this.builder.$el.appendTo(this.originalContainer),this.builder.$(".so-tool-button.so-live-editor").show(),this.builder.trigger("builder_resize")},collapse:function(){this.$el.toggleClass("so-collapsed");var e=this.$(".live-editor-collapse span");e.html(e.data(this.$el.hasClass("so-collapsed")?"expand":"collapse"))},highlightElement:function(e){_.isUndefined(this.resetHighlightTimeout)||clearTimeout(this.resetHighlightTimeout),this.previewIframe.contents().find("body").find(".panel-grid .panel-grid-cell .so-panel").filter(function(){return 0===l(this).parents(".so-panel").length}).not(e).addClass("so-panels-faded"),e.removeClass("so-panels-faded").addClass("so-panels-highlighted")},resetHighlights:function(){var e=this.previewIframe.contents().find("body");this.resetHighlightTimeout=setTimeout(function(){e.find(".panel-grid .panel-grid-cell .so-panel").removeClass("so-panels-faded so-panels-highlighted")},100)},scrollToElement:function(e){this.$(".so-preview iframe")[0].contentWindow.liveEditorScrollTo(e)},handleRefreshData:function(e,t){if(!this.$el.is(":visible"))return this;this.refreshPreview(e)},handleLoadData:function(){if(!this.$el.is(":visible"))return this;this.refreshPreview(this.builder.model.getPanelsData())},refreshPreview:function(e){var t=this.loadTimes.length?_.reduce(this.loadTimes,function(e,t){return e+t},0)/this.loadTimes.length:1e3;_.isNull(this.previewIframe)||this.$(".so-preview-overlay").is(":visible")||(this.previewScrollTop=this.previewIframe.contents().scrollTop()),this.$(".so-preview-overlay").show(),this.$(".so-preview-overlay .so-loading-bar").clearQueue().css("width","0%").animate({width:"100%"},parseInt(t)+100),this.postToIframe({live_editor_panels_data:JSON.stringify(e),live_editor_post_ID:this.builder.config.postId},this.previewUrl,this.$(".so-preview")),this.previewIframe.data("load-start",(new Date).getTime())},postToIframe:function(e,t,i){_.isNull(this.previewIframe)||this.previewIframe.remove();var s="siteorigin-panels-live-preview-"+this.previewFrameId;this.previewIframe=l('<iframe src="javascript:false;" />').attr({id:s,name:s}).appendTo(i),this.setupPreviewFrame(this.previewIframe);var o=l('<form id="soPostToPreviewFrame" method="post" />').attr({id:s,target:this.previewIframe.attr("id"),action:t}).appendTo("body");return l.each(e,function(e,t){l('<input type="hidden" />').attr({name:e,value:t}).appendTo(o)}),o.submit().remove(),this.previewFrameId++,this.previewIframe},setupPreviewFrame:function(e){var t=this;e.data("iframeready",!1).on("iframeready",function(){var e=l(this),i=e.contents();if(!e.data("iframeready")){e.data("iframeready",!0),void 0!==e.data("load-start")&&(t.loadTimes.unshift((new Date).getTime()-e.data("load-start")),_.isEmpty(t.loadTimes)||(t.loadTimes=t.loadTimes.slice(0,4))),setTimeout(function(){i.scrollTop(t.previewScrollTop),t.$(".so-preview-overlay").hide()},100);var s=i.find("#pl-"+t.builder.config.postId);s.find(".panel-grid .panel-grid-cell .so-panel").filter(function(){return l(this).closest(".panel-layout").is(s)}).each(function(e,i){var s=l(i),o=t.$(".so-live-editor-builder .so-widget-wrapper").eq(s.data("index"));o.data("live-editor-preview-widget",s),s.css({cursor:"pointer"}).mouseenter(function(){o.parent().addClass("so-hovered"),t.highlightElement(s)}).mouseleave(function(){o.parent().removeClass("so-hovered"),t.resetHighlights()}).click(function(e){e.preventDefault(),o.find(".title h4").click()})}),i.find("a").css({"pointer-events":"none"}).click(function(e){e.preventDefault()})}}).on("load",function(){var e=l(this);e.data("iframeready")||e.trigger("iframeready")})},hasPreviewUrl:function(){return""!==this.$("form.live-editor-form").attr("action")},mobileToggle:function(e){var t=l(e.currentTarget);this.$(".live-editor-mode").not(t).removeClass("so-active"),t.addClass("so-active"),this.$el.removeClass("live-editor-desktop-mode live-editor-tablet-mode live-editor-mobile-mode").addClass("live-editor-"+t.data("mode")+"-mode")}})},{}],27:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-row").html())),events:{"click .so-row-settings":"editSettingsHandler","click .so-row-duplicate":"duplicateHandler","click .so-row-delete":"confirmedDeleteHandler","click .so-row-color":"rowColorChangeHandler"},builder:null,dialog:null,initialize:function(){var e=this.model.get("cells");this.listenTo(e,"add",this.handleCellAdd),this.listenTo(e,"remove",this.handleCellRemove),this.listenTo(this.model,"reweight_cells",this.resize),this.listenTo(this.model,"destroy",this.onModelDestroy);var t=this;e.each(function(e){t.listenTo(e.get("widgets"),"add",t.resize)}),e.on("add",function(e){t.listenTo(e.get("widgets"),"add",t.resize)},this),this.listenTo(this.model,"change:label",this.onLabelChange)},render:function(){var e=this.model.has("color_label")?this.model.get("color_label"):1,t=this.model.has("label")?this.model.get("label"):"";this.setElement(this.template({rowColorLabel:e,rowLabel:t})),this.$el.data("view",this);var i=this;return this.model.get("cells").each(function(e){var t=new s.view.cell({model:e});t.row=i,t.render(),t.$el.appendTo(i.$(".so-cells"))}),this.builder.supports("rowAction")?(this.builder.supports("editRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-settings").parent().remove(),this.$el.addClass("so-row-no-edit")),this.builder.supports("addRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-duplicate").parent().remove(),this.$el.addClass("so-row-no-duplicate")),this.builder.supports("deleteRow")||(this.$(".so-row-toolbar .so-dropdown-links-wrapper .so-row-delete").parent().remove(),this.$el.addClass("so-row-no-delete"))):(this.$(".so-row-toolbar .so-dropdown-wrapper").remove(),this.$el.addClass("so-row-no-actions")),this.builder.supports("moveRow")||(this.$(".so-row-toolbar .so-row-move").remove(),this.$el.addClass("so-row-no-move")),l.trim(this.$(".so-row-toolbar").html()).length||this.$(".so-row-toolbar").remove(),this.listenTo(this.builder,"widget_sortable_move",this.resize),this.listenTo(this.builder,"builder_resize",this.resize),this.resize(),this},visualCreate:function(){this.$el.hide().fadeIn("fast")},resize:function(e){if(this.$el.is(":visible")){this.$(".so-cells .cell-wrapper").css("min-height",0),this.$(".so-cells .resize-handle").css("height",0);var t=0;this.$(".so-cells .cell").each(function(){t=Math.max(t,l(this).height()),l(this).css("width",100*l(this).data("view").model.get("weight")+"%")}),this.$(".so-cells .cell-wrapper").css("min-height",Math.max(t,63)),this.$(".so-cells .resize-handle").css("height",this.$(".so-cells .cell-wrapper").outerHeight())}},onModelDestroy:function(){this.remove()},visualDestroyModel:function(){this.builder.addHistoryEntry("row_deleted");var e=this;this.$el.fadeOut("normal",function(){e.model.destroy(),e.builder.model.refreshPanelsData()})},onLabelChange:function(e,t){0==this.$(".so-row-label").length?this.$(".so-row-toolbar").prepend('<h3 class="so-row-label">'+t+"</h3>"):this.$(".so-row-label").text(t)},duplicateHandler:function(){this.builder.addHistoryEntry("row_duplicated");var e=this.model.clone(this.builder.model);this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData()},copyHandler:function(){s.helpers.clipboard.setModel(this.model)},pasteHandler:function(){var e=s.helpers.clipboard.getModel("row-model");!_.isEmpty(e)&&e instanceof s.model.row&&(this.builder.addHistoryEntry("row_pasted"),e.builder=this.builder.model,this.builder.model.get("rows").add(e,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData())},confirmedDeleteHandler:function(e){var t=l(e.target);if(t.hasClass("dashicons")&&(t=l.parent()),t.hasClass("so-confirmed"))this.visualDestroyModel();else{var i=t.html();t.addClass("so-confirmed").html('<span class="dashicons dashicons-yes"></span>'+panelsOptions.loc.dropdown_confirm),setTimeout(function(){t.removeClass("so-confirmed").html(i)},2500)}},editSettingsHandler:function(){if(this.builder.supports("editRow"))return null===this.dialog&&(this.dialog=new s.dialog.row,this.dialog.setBuilder(this.builder).setRowModel(this.model),this.dialog.rowView=this),this.dialog.openDialog(),this},deleteHandler:function(){return this.model.destroy(),this},rowColorChangeHandler:function(e){this.$(".so-row-color").removeClass("so-row-color-selected");var t=l(e.target),i=t.data("color-label"),s=this.model.has("color_label")?this.model.get("color_label"):1;t.addClass("so-row-color-selected"),this.$el.removeClass("so-row-color-"+s),this.$el.addClass("so-row-color-"+i),this.model.set("color_label",i)},handleCellAdd:function(e){var t=new s.view.cell({model:e});t.row=this,t.render(),t.$el.appendTo(this.$(".so-cells"))},handleCellRemove:function(e){this.$(".so-cells > .cell").each(function(){var t=l(this).data("view");_.isUndefined(t)||t.model.cid===e.cid&&t.remove()})},buildContextualMenu:function(e,t){for(var i=[],l=1;l<5;l++)i.push({title:l+" "+panelsOptions.loc.contextual.column});this.builder.supports("addRow")&&t.addSection("add-row",{sectionTitle:panelsOptions.loc.contextual.add_row,search:!1},i,function(e){this.builder.addHistoryEntry("row_added");for(var t=Number(e)+1,i=[],l=0;l<t;l++)i.push({weight:100/t});var o=new s.model.row({collection:this.collection}),n=new s.collection.cells(i);n.each(function(e){e.row=o}),o.setCells(n),o.builder=this.builder.model,this.builder.model.get("rows").add(o,{at:this.builder.model.get("rows").indexOf(this.model)+1}),this.builder.model.refreshPanelsData()}.bind(this));var o={};this.builder.supports("editRow")&&(o.edit={title:panelsOptions.loc.contextual.row_edit}),s.helpers.clipboard.canCopyPaste()&&(o.copy={title:panelsOptions.loc.contextual.row_copy},this.builder.supports("addRow")&&s.helpers.clipboard.isModel("row-model")&&(o.paste={title:panelsOptions.loc.contextual.row_paste})),this.builder.supports("addRow")&&(o.duplicate={title:panelsOptions.loc.contextual.row_duplicate}),this.builder.supports("deleteRow")&&(o.delete={title:panelsOptions.loc.contextual.row_delete,confirm:!0}),_.isEmpty(o)||t.addSection("row-actions",{sectionTitle:panelsOptions.loc.contextual.row_actions,search:!1},o,function(e){switch(e){case"edit":this.editSettingsHandler();break;case"copy":this.copyHandler();break;case"paste":this.pasteHandler();break;case"duplicate":this.duplicateHandler();break;case"delete":this.visualDestroyModel()}}.bind(this))}})},{}],28:[function(e,t,i){var s=(window.panels,jQuery);t.exports=Backbone.View.extend({stylesLoaded:!1,initialize:function(){},render:function(e,t,i){if(!_.isUndefined(e)){i=_.extend({builderType:"",dialog:null},i),this.$el.addClass("so-visual-styles so-"+e+"-styles so-panels-loading");var l={builderType:i.builderType};return"cell"===e&&(l.index=i.index),s.post(panelsOptions.ajaxurl,{action:"so_panels_style_form",type:e,style:this.model.get("style"),args:JSON.stringify(l),postId:t},null,"html").done(function(e){this.$el.html(e),this.setupFields(),this.stylesLoaded=!0,this.trigger("styles_loaded",!_.isEmpty(e)),_.isNull(i.dialog)||i.dialog.trigger("styles_loaded",!_.isEmpty(e))}.bind(this)).fail(function(e){var t;t=e&&e.responseText?e.responseText:panelsOptions.forms.loadingFailed,this.$el.html(t)}.bind(this)).always(function(){this.$el.removeClass("so-panels-loading")}.bind(this)),this}},attach:function(e){e.append(this.$el)},detach:function(){this.$el.detach()},setupFields:function(){this.$(".style-section-wrapper").each(function(){var e=s(this);e.find(".style-section-head").click(function(t){t.preventDefault(),e.find(".style-section-fields").slideToggle("fast")})}),_.isUndefined(s.fn.wpColorPicker)||(_.isObject(panelsOptions.wpColorPickerOptions.palettes)&&!s.isArray(panelsOptions.wpColorPickerOptions.palettes)&&(panelsOptions.wpColorPickerOptions.palettes=s.map(panelsOptions.wpColorPickerOptions.palettes,function(e){return e})),this.$(".so-wp-color-field").wpColorPicker(panelsOptions.wpColorPickerOptions)),this.$(".style-field-image").each(function(){var e=null,t=s(this);t.find(".so-image-selector").click(function(i){i.preventDefault(),null===e&&(e=wp.media({title:"choose",library:{type:"image"},button:{text:"Done",close:!0}}),e.on("select",function(){var i=e.state().get("selection").first().attributes,s=i.url;if(!_.isUndefined(i.sizes))try{s=i.sizes.thumbnail.url}catch(e){s=i.sizes.full.url}t.find(".current-image").css("background-image","url("+s+")"),t.find(".so-image-selector > input").val(i.id),t.find(".remove-image").removeClass("hidden")})),e.open()}),t.find(".remove-image").click(function(e){e.preventDefault(),t.find(".current-image").css("background-image","none"),t.find(".so-image-selector > input").val(""),t.find(".remove-image").addClass("hidden")})}),this.$(".style-field-measurement").each(function(){
4
+ var e=s(this),t=e.find('input[type="text"]'),i=e.find("select"),l=e.find('input[type="hidden"]');t.focus(function(){s(this).select()});!function(e){if(""!==e){var o=/(?:([0-9\.,\-]+)(.*))+/,n=l.val().split(" "),a=[];for(var r in n){var d=o.exec(n[r]);_.isNull(d)||_.isUndefined(d[1])||_.isUndefined(d[2])||(a.push(d[1]),i.val(d[2]))}1===t.length?t.val(a.join(" ")):(1===a.length?a=[a[0],a[0],a[0],a[0]]:2===a.length?a=[a[0],a[1],a[0],a[1]]:3===a.length&&(a=[a[0],a[1],a[2],a[1]]),t.each(function(e,t){s(t).val(a[e])}))}}(l.val());var o=function(e){if(1===t.length){var o=t.val().split(" ").filter(function(e){return""!==e}).map(function(e){return e+i.val()}).join(" ");l.val(o)}else{var n=s(e.target),a=[],r=[],d=[];t.each(function(e,t){var i=""!==s(t).val()?parseFloat(s(t).val()):null;a.push(i),null===i?r.push(e):d.push(e)}),3===r.length&&d[0]===t.index(n)&&(t.val(n.val()),a=[n.val(),n.val(),n.val(),n.val()]),JSON.stringify(a)===JSON.stringify([null,null,null,null])?l.val(""):l.val(a.map(function(e){return(null===e?0:e)+i.val()}).join(" "))}};t.change(o),i.change(o)})}})},{}],29:[function(e,t,i){var s=window.panels,l=jQuery;t.exports=Backbone.View.extend({template:_.template(s.helpers.utils.processTemplate(l("#siteorigin-panels-builder-widget").html())),cell:null,dialog:null,events:{"click .widget-edit":"editHandler","click .title h4":"editHandler","click .actions .widget-duplicate":"duplicateHandler","click .actions .widget-delete":"deleteHandler"},initialize:function(){this.listenTo(this.model,"destroy",this.onModelDestroy),this.listenTo(this.model,"change:values",this.onModelChange),this.listenTo(this.model,"change:label",this.onLabelChange)},render:function(e){if(e=_.extend({loadForm:!1},e),this.setElement(this.template({title:this.model.getWidgetField("title"),description:this.model.getTitle()})),this.$el.data("view",this),this.cell.row.builder.supports("editWidget")&&!this.model.get("read_only")||(this.$(".actions .widget-edit").remove(),this.$el.addClass("so-widget-no-edit")),this.cell.row.builder.supports("addWidget")||(this.$(".actions .widget-duplicate").remove(),this.$el.addClass("so-widget-no-duplicate")),this.cell.row.builder.supports("deleteWidget")||(this.$(".actions .widget-delete").remove(),this.$el.addClass("so-widget-no-delete")),this.cell.row.builder.supports("moveWidget")||this.$el.addClass("so-widget-no-move"),l.trim(this.$(".actions").html()).length||this.$(".actions").remove(),this.model.get("read_only")&&this.$el.addClass("so-widget-read-only"),0===_.size(this.model.get("values"))||e.loadForm){var t=this.getEditDialog();t.once("form_loaded",t.saveWidget,t),t.setupDialog()}return this.listenTo(this.cell.row.builder,"after_user_adds_widget",this.afterUserAddsWidgetHandler),this},visualCreate:function(){this.$el.hide().fadeIn("fast")},getEditDialog:function(){return null===this.dialog&&(this.dialog=new s.dialog.widget({model:this.model}),this.dialog.setBuilder(this.cell.row.builder),this.dialog.widgetView=this),this.dialog},editHandler:function(){return!this.cell.row.builder.supports("editWidget")||this.model.get("read_only")?this:(this.getEditDialog().openDialog(),this)},duplicateHandler:function(){this.cell.row.builder.addHistoryEntry("widget_duplicated");var e=this.model.clone(this.model.cell);return this.cell.model.get("widgets").add(e,{at:this.model.collection.indexOf(this.model)+1}),this.cell.row.builder.model.refreshPanelsData(),this},copyHandler:function(){s.helpers.clipboard.setModel(this.model)},deleteHandler:function(){return this.visualDestroyModel(),this},onModelChange:function(){this.$(".description").html(this.model.getTitle())},onLabelChange:function(e){this.$(".title > h4").text(e.getWidgetField("title"))},onModelDestroy:function(){this.remove()},visualDestroyModel:function(){return this.cell.row.builder.addHistoryEntry("widget_deleted"),this.$el.fadeOut("fast",function(){this.cell.row.resize(),this.model.destroy(),this.cell.row.builder.model.refreshPanelsData(),this.remove()}.bind(this)),this},buildContextualMenu:function(e,t){this.cell.row.builder.supports("addWidget")&&t.addSection("add-widget-below",{sectionTitle:panelsOptions.loc.contextual.add_widget_below,searchPlaceholder:panelsOptions.loc.contextual.search_widgets,defaultDisplay:panelsOptions.contextual.default_widgets},panelsOptions.widgets,function(e){this.cell.row.builder.trigger("before_user_adds_widget"),this.cell.row.builder.addHistoryEntry("widget_added");var t=new s.model.widget({class:e});t.cell=this.cell.model,this.cell.model.get("widgets").add(t,{at:this.model.collection.indexOf(this.model)+1}),this.cell.row.builder.model.refreshPanelsData(),this.cell.row.builder.trigger("after_user_adds_widget",t)}.bind(this));var i={};this.cell.row.builder.supports("editWidget")&&!this.model.get("read_only")&&(i.edit={title:panelsOptions.loc.contextual.widget_edit}),s.helpers.clipboard.canCopyPaste()&&(i.copy={title:panelsOptions.loc.contextual.widget_copy}),this.cell.row.builder.supports("addWidget")&&(i.duplicate={title:panelsOptions.loc.contextual.widget_duplicate}),this.cell.row.builder.supports("deleteWidget")&&(i.delete={title:panelsOptions.loc.contextual.widget_delete,confirm:!0}),_.isEmpty(i)||t.addSection("widget-actions",{sectionTitle:panelsOptions.loc.contextual.widget_actions,search:!1},i,function(e){switch(e){case"edit":this.editHandler();break;case"copy":this.copyHandler();break;case"duplicate":this.duplicateHandler();break;case"delete":this.visualDestroyModel()}}.bind(this)),this.cell.buildContextualMenu(e,t)},afterUserAddsWidgetHandler:function(e){this.model===e&&panelsOptions.instant_open&&setTimeout(this.editHandler,350)}})},{}],30:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.customHtmlWidgets,o=s("<div></div>"),n=t.find(".widget-content:first");n.before(o);var a=new l.CustomHtmlWidgetControl({el:o,syncContainer:n});return a.initializeEditor(),a.editor.codemirror.refresh(),a}};t.exports=l},{}],31:[function(e,t,i){var s=e("./custom-html-widget"),l=e("./media-widget"),o=e("./text-widget"),n={CUSTOM_HTML:"custom_html",MEDIA_AUDIO:"media_audio",MEDIA_GALLERY:"media_gallery",MEDIA_IMAGE:"media_image",MEDIA_VIDEO:"media_video",TEXT:"text",addWidget:function(e,t){var i,n=e.find("> .id_base").val();switch(n){case this.CUSTOM_HTML:i=s;break;case this.MEDIA_AUDIO:case this.MEDIA_GALLERY:case this.MEDIA_IMAGE:case this.MEDIA_VIDEO:i=l;break;case this.TEXT:i=o}i.addWidget(n,e,t)}};t.exports=n},{"./custom-html-widget":30,"./media-widget":32,"./text-widget":33}],32:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.mediaWidgets,o=l.controlConstructors[e];if(o){var n=l.modelConstructors[e]||l.MediaWidgetModel,a=t.find("> .widget-content"),r=s('<div class="media-widget-control"></div>');a.before(r);var d={};a.find(".media-widget-instance-property").each(function(){var e=s(this);d[e.data("property")]=e.val()}),d.widget_id=i;var c=new n(d),h=new o({el:r,syncContainer:a,model:c});return h.render(),h}}};t.exports=l},{}],33:[function(e,t,i){var s=jQuery,l={addWidget:function(e,t,i){var l=wp.textWidgets,o={},n=t.find(".visual");if(n.length>0){if(!n.val())return null;var a=s("<div></div>"),r=t.find(".widget-content:first");r.before(a),o={el:a,syncContainer:r}}else o={el:t};var d=new l.TextWidgetControl(o);return d.initializeEditor(),d}};t.exports=l},{}]},{},[16]);
js/styling-269.min.js DELETED
@@ -1 +0,0 @@
1
- jQuery(function(t){var e=t(panelsStyles.fullContainer);0===e.length&&(e=t("body"));var r=function(){t(".siteorigin-panels-stretch.panel-row-style").each(function(){var r=t(this);r.css({"margin-left":0,"margin-right":0,"padding-left":0,"padding-right":0});var i=r.offset().left-e.offset().left,n=e.outerWidth()-i-r.parent().outerWidth();r.css({"margin-left":-i,"margin-right":-n,"padding-left":"full"===r.data("stretch-type")?i:0,"padding-right":"full"===r.data("stretch-type")?n:0});var a=r.find("> .panel-grid-cell");"full-stretched"===r.data("stretch-type")&&1===a.length&&a.css({"padding-left":0,"padding-right":0}),r.css({"border-left":0,"border-right":0})}),t(".siteorigin-panels-stretch.panel-row-style").length&&t(window).trigger("panelsStretchRows")};t(window).on("resize load",r),r(),t("body").removeClass("siteorigin-panels-before-js")});
 
js/{styling-269.js → styling-270.js} RENAMED
@@ -1,59 +1,62 @@
1
- /* global _, jQuery */
2
-
3
- jQuery( function ( $ ) {
4
-
5
- var fullContainer = $( panelsStyles.fullContainer );
6
- if ( fullContainer.length === 0 ) {
7
- fullContainer = $( 'body' );
8
- }
9
-
10
- // Stretch all the full width rows
11
- var stretchFullWidthRows = function () {
12
-
13
- $( '.siteorigin-panels-stretch.panel-row-style' ).each( function () {
14
- var $$ = $( this );
15
-
16
- // Reset all the styles associated with row stretching
17
- $$.css( {
18
- 'margin-left': 0,
19
- 'margin-right': 0,
20
- 'padding-left': 0,
21
- 'padding-right': 0
22
- } );
23
-
24
- var leftSpace = $$.offset().left - fullContainer.offset().left,
25
- rightSpace = fullContainer.outerWidth() - leftSpace - $$.parent().outerWidth();
26
-
27
- $$.css( {
28
- 'margin-left': - leftSpace,
29
- 'margin-right': - rightSpace,
30
- 'padding-left': $$.data( 'stretch-type' ) === 'full' ? leftSpace : 0,
31
- 'padding-right': $$.data( 'stretch-type' ) === 'full' ? rightSpace : 0
32
- } );
33
-
34
- var cells = $$.find( '> .panel-grid-cell' );
35
-
36
- if ( $$.data( 'stretch-type' ) === 'full-stretched' && cells.length === 1 ) {
37
- cells.css( {
38
- 'padding-left': 0,
39
- 'padding-right': 0
40
- } );
41
- }
42
-
43
- $$.css( {
44
- 'border-left': 0,
45
- 'border-right': 0
46
- } );
47
- } );
48
-
49
- if ( $( '.siteorigin-panels-stretch.panel-row-style' ).length ) {
50
- $( window ).trigger( 'panelsStretchRows' );
51
- }
52
- }
53
- $( window ).on( 'resize load', stretchFullWidthRows );
54
- stretchFullWidthRows();
55
-
56
- // This should have been done in the footer, but run it here just incase.
57
- $( 'body' ).removeClass( 'siteorigin-panels-before-js' );
58
-
59
- } );
 
 
 
1
+ /* global _, jQuery */
2
+
3
+ jQuery( function ( $ ) {
4
+
5
+ var fullContainer = $( panelsStyles.fullContainer );
6
+ if ( fullContainer.length === 0 ) {
7
+ fullContainer = $( 'body' );
8
+ }
9
+
10
+ // Stretch all the full width rows
11
+ var stretchFullWidthRows = function () {
12
+ var $panelsRow = $( '.siteorigin-panels-stretch.panel-row-style' );
13
+ $panelsRow.each( function () {
14
+ var $$ = $( this );
15
+
16
+ var stretchType = $$.data( 'stretch-type' );
17
+ var defaultSidePadding = stretchType === 'full-stretched-padded' ? '' : 0;
18
+
19
+ // Reset all the styles associated with row stretching
20
+ $$.css( {
21
+ 'margin-left': 0,
22
+ 'margin-right': 0,
23
+ 'padding-left': defaultSidePadding,
24
+ 'padding-right': defaultSidePadding
25
+ } );
26
+
27
+ var leftSpace = $$.offset().left - fullContainer.offset().left,
28
+ rightSpace = fullContainer.outerWidth() - leftSpace - $$.parent().outerWidth();
29
+
30
+ $$.css( {
31
+ 'margin-left': - leftSpace,
32
+ 'margin-right': - rightSpace,
33
+ 'padding-left': stretchType === 'full' ? leftSpace : defaultSidePadding,
34
+ 'padding-right': stretchType === 'full' ? rightSpace : defaultSidePadding
35
+ } );
36
+
37
+ var cells = $$.find( '> .panel-grid-cell' );
38
+
39
+ if ( stretchType === 'full-stretched' && cells.length === 1 ) {
40
+ cells.css( {
41
+ 'padding-left': 0,
42
+ 'padding-right': 0
43
+ } );
44
+ }
45
+
46
+ $$.css( {
47
+ 'border-left': 0,
48
+ 'border-right': 0
49
+ } );
50
+ } );
51
+
52
+ if ( $panelsRow.length ) {
53
+ $( window ).trigger( 'panelsStretchRows' );
54
+ }
55
+ }
56
+ $( window ).on( 'resize load', stretchFullWidthRows );
57
+ stretchFullWidthRows();
58
+
59
+ // This should have been done in the footer, but run it here just incase.
60
+ $( 'body' ).removeClass( 'siteorigin-panels-before-js' );
61
+
62
+ } );
js/styling-270.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(e){var t=e(panelsStyles.fullContainer);0===t.length&&(t=e("body"));var r=function(){var r=e(".siteorigin-panels-stretch.panel-row-style");r.each(function(){var r=e(this),i=r.data("stretch-type"),n="full-stretched-padded"===i?"":0;r.css({"margin-left":0,"margin-right":0,"padding-left":n,"padding-right":n});var l=r.offset().left-t.offset().left,a=t.outerWidth()-l-r.parent().outerWidth();r.css({"margin-left":-l,"margin-right":-a,"padding-left":"full"===i?l:n,"padding-right":"full"===i?a:n});var d=r.find("> .panel-grid-cell");"full-stretched"===i&&1===d.length&&d.css({"padding-left":0,"padding-right":0}),r.css({"border-left":0,"border-right":0})}),r.length&&e(window).trigger("panelsStretchRows")};e(window).on("resize load",r),r(),e("body").removeClass("siteorigin-panels-before-js")});
js/yoast-compat.js ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery, YoastSEO */
2
+
3
+ jQuery(function($){
4
+
5
+ var decodeEntities = (function() {
6
+ // this prevents any overhead from creating the object each time
7
+ var element = document.createElement('div');
8
+
9
+ function decodeHTMLEntities (str) {
10
+ if(str && typeof str === 'string') {
11
+ // strip script/html tags
12
+ str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
13
+ str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
14
+ element.innerHTML = str;
15
+ str = element.textContent;
16
+ element.textContent = '';
17
+ }
18
+
19
+ return str;
20
+ }
21
+
22
+ return decodeHTMLEntities;
23
+ })();
24
+
25
+ var SiteOriginYoastCompat = function() {
26
+ YoastSEO.app.registerPlugin( 'siteOriginYoastCompat', { status: 'ready' } );
27
+ YoastSEO.app.registerModification( 'content', this.contentModification, 'siteOriginYoastCompat', 5 );
28
+ };
29
+
30
+ SiteOriginYoastCompat.prototype.contentModification = function(data) {
31
+ var re = new RegExp( panelsOptions.siteoriginWidgetRegex , "i" );
32
+ var $data = $(data);
33
+
34
+
35
+ $data.find('.so-panel.widget').each(function(i, el){
36
+ var $widget = $(el),
37
+ match = re.exec( $widget.html() );
38
+
39
+ try{
40
+ if( ! _.isNull( match ) && $widget.html().replace( re, '' ).trim() === '' ) {
41
+ var classMatch = /class="(.*?)"/.exec( match[3] ),
42
+ dataInput = jQuery( match[5] ),
43
+ data = JSON.parse( decodeEntities( dataInput.val( ) ) ),
44
+ widgetInstance = data.instance,
45
+ newHTML = '';
46
+
47
+ if( ! _.isNull(widgetInstance.title) ) {
48
+ newHTML += '<h3>' + widgetInstance.title + '</h3>';
49
+ }
50
+
51
+ if( ! _.isNull( classMatch ) ) {
52
+ var widgetClass = classMatch[1];
53
+ switch( widgetClass ) {
54
+ case 'SiteOrigin_Widget_Image_Widget':
55
+ // We want a direct assignment for the SO Image Widget to get rid of the title
56
+ newHTML = $('img').attr({
57
+ 'src': '#' + widgetInstance.image,
58
+ 'srcset': '',
59
+ 'alt': widgetInstance.alt,
60
+ 'title': widgetInstance.title,
61
+ }).prop('outerHTML');
62
+ break;
63
+
64
+ case 'WP_Widget_Media_Image':
65
+ newHTML = $('img').attr({
66
+ 'src': '#' + widgetInstance.attachment_id,
67
+ 'srcset': '',
68
+ 'alt': widgetInstance.alt,
69
+ 'title': widgetInstance.image_title,
70
+ }).prop('outerHTML');
71
+ break;
72
+ }
73
+ }
74
+
75
+ $widget.html(newHTML);
76
+ }
77
+ }
78
+ catch(e) {
79
+ // If there was an error, just clear the widget content.
80
+ $widget.html('');
81
+ }
82
+
83
+ });
84
+ return $data.html();
85
+ };
86
+
87
+ new SiteOriginYoastCompat();
88
+ });
js/yoast-compat.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(t){var e=function(){function t(t){return t&&"string"==typeof t&&(t=t.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim,""),t=t.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,""),e.innerHTML=t,t=e.textContent,e.textContent=""),t}var e=document.createElement("div");return t}(),i=function(){YoastSEO.app.registerPlugin("siteOriginYoastCompat",{status:"ready"}),YoastSEO.app.registerModification("content",this.contentModification,"siteOriginYoastCompat",5)};i.prototype.contentModification=function(i){var n=new RegExp(panelsOptions.siteoriginWidgetRegex,"i"),a=t(i);return a.find(".so-panel.widget").each(function(i,a){var r=t(a),s=n.exec(r.html());try{if(!_.isNull(s)&&""===r.html().replace(n,"").trim()){var c=/class="(.*?)"/.exec(s[3]),o=jQuery(s[5]),l=JSON.parse(e(o.val())),g=l.instance,p="";if(_.isNull(g.title)||(p+="<h3>"+g.title+"</h3>"),!_.isNull(c)){switch(c[1]){case"SiteOrigin_Widget_Image_Widget":p=t("img").attr({src:"#"+g.image,srcset:"",alt:g.alt,title:g.title}).prop("outerHTML");break;case"WP_Widget_Media_Image":p=t("img").attr({src:"#"+g.attachment_id,srcset:"",alt:g.alt,title:g.image_title}).prop("outerHTML")}}r.html(p)}}catch(t){r.html("")}}),a.html()},new i});
lang/siteorigin-panels.pot CHANGED
@@ -3,1652 +3,1692 @@
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: siteorigin-panels\n"
6
- "Report-Msgid-Bugs-To: http://www.siteorigin.com\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
- "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
11
- "Last-Translator: SiteOrigin <support@siteorigin.com>\n"
12
  "Language-Team: SiteOrigin <support@siteorigin.com>\n"
 
 
13
  "X-Poedit-Basepath: ..\n"
14
- "X-Poedit-SourceCharset: UTF-8\n"
15
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
  "X-Poedit-SearchPathExcluded-0: *.js\n"
 
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
 
20
- #: tmp/inc/admin-dashboard.php:45
21
  msgid "SiteOrigin Page Builder News"
22
  msgstr ""
23
 
24
- #: tmp/inc/admin-dashboard.php:151
25
  msgid "Blog"
26
  msgstr ""
27
 
28
- #: tmp/inc/admin-dashboard.php:155, tmp/inc/admin-dashboard.php:193, tmp/inc/admin-dashboard.php:217
 
 
 
29
  msgid "(opens in a new window)"
30
  msgstr ""
31
 
32
- #: tmp/inc/admin-dashboard.php:171
33
  msgid "Email Support"
34
  msgstr ""
35
 
36
- #: tmp/inc/admin-dashboard.php:175
 
37
  msgid "(email SiteOrigin support)"
38
  msgstr ""
39
 
40
- #: tmp/inc/admin-dashboard.php:189, tmp/inc/admin.php:243
41
  msgid "Support Forum"
42
  msgstr ""
43
 
44
- #: tmp/inc/admin-dashboard.php:213
 
45
  msgid "Get Premium"
46
  msgstr ""
47
 
48
- #: tmp/inc/admin-layouts.php:79, tmp/inc/admin-layouts.php:437
49
  msgid "Layouts Directory"
50
  msgstr ""
51
 
52
- #: tmp/inc/admin-layouts.php:365
53
  msgid "Invalid request."
54
  msgstr ""
55
 
56
- #: tmp/inc/admin-layouts.php:395
57
  msgid "Theme Defined Layouts"
58
  msgstr ""
59
 
60
- #: tmp/inc/admin-layouts.php:537
61
  msgid "Clone %s"
62
  msgstr ""
63
 
64
- #: tmp/inc/admin-layouts.php:613
65
  msgid " - Results For:"
66
  msgstr ""
67
 
68
- #: tmp/inc/admin-layouts.php:679
69
  msgid "Missing layout ID or no such layout exists"
70
  msgstr ""
71
 
72
- #: tmp/inc/admin-layouts.php:771
73
  msgid "There was a problem fetching the layout. Please try again later."
74
  msgstr ""
75
 
76
- #: tmp/inc/admin-widget-dialog.php:197, tmp/widgets/widgets.php:327
77
  msgid "Widgets Bundle"
78
  msgstr ""
79
 
80
- #: tmp/inc/admin-widget-dialog.php:227
81
  msgid "Enable more widgets in the 1{Widgets Bundle settings}."
82
  msgstr ""
83
 
84
- #: tmp/inc/admin-widget-dialog.php:239, tmp/inc/data/widgets-bundle.php:11, tmp/inc/data/widgets-bundle.php:23, tmp/inc/data/widgets-bundle.php:35, tmp/inc/data/widgets-bundle.php:47, tmp/inc/data/widgets-bundle.php:59, tmp/inc/data/widgets-bundle.php:71
85
  msgid "SiteOrigin Widgets Bundle"
86
  msgstr ""
87
 
88
- #: tmp/inc/admin-widget-dialog.php:241
89
  msgid "Install the 1{Widgets Bundle} to get extra widgets."
90
  msgstr ""
91
 
92
- #: tmp/inc/admin-widget-dialog.php:257
93
  msgid "Page Builder Widgets"
94
  msgstr ""
95
 
96
- #: tmp/inc/admin-widget-dialog.php:273
97
  msgid "You can enable the legacy (PB) widgets in the 1{Page Builder settings}."
98
  msgstr ""
99
 
100
- #: tmp/inc/admin-widget-dialog.php:289
101
  msgid "WordPress Widgets"
102
  msgstr ""
103
 
104
- #: tmp/inc/admin-widget-dialog.php:369, tmp/inc/settings.php:631
105
  msgid "Recommended Widgets"
106
  msgstr ""
107
 
108
- #: tmp/inc/admin-widgets-bundle.php:19, tmp/inc/admin-widgets-bundle.php:20
109
  msgid "Install Page Builder Plugin"
110
  msgstr ""
111
 
112
- #: tmp/inc/admin-widgets-bundle.php:77
113
  msgid "Installing %s"
114
  msgstr ""
115
 
116
- #: tmp/inc/admin.php:249, tmp/tpl/js-templates.php:87
117
  msgid "Addons"
118
  msgstr ""
119
 
120
- #: tmp/inc/admin.php:275, tmp/inc/admin.php:1007, tmp/inc/admin.php:2093, tmp/inc/admin.php:2103, tmp/inc/settings.php:389, tmp/tpl/js-templates.php:385
121
  msgid "Page Builder"
122
  msgstr ""
123
 
124
- #: tmp/inc/admin.php:545
125
  msgid "All Widgets"
126
  msgstr ""
127
 
128
- #: tmp/inc/admin.php:597
129
  msgid "Missing Widget"
130
  msgstr ""
131
 
132
- #: tmp/inc/admin.php:599
133
  msgid "Page Builder doesn't know about this widget."
134
  msgstr ""
135
 
136
- #: tmp/inc/admin.php:607
 
137
  msgid "%d seconds"
138
  msgstr ""
139
 
140
- #: tmp/inc/admin.php:611
 
141
  msgid "%d minutes"
142
  msgstr ""
143
 
144
- #: tmp/inc/admin.php:615
 
145
  msgid "%d hours"
146
  msgstr ""
147
 
148
- #: tmp/inc/admin.php:621
 
149
  msgid "%d second"
150
  msgstr ""
151
 
152
- #: tmp/inc/admin.php:625
 
153
  msgid "%d minute"
154
  msgstr ""
155
 
156
- #: tmp/inc/admin.php:629
 
157
  msgid "%d hour"
158
  msgstr ""
159
 
160
- #: tmp/inc/admin.php:635
 
161
  msgid "%s before"
162
  msgstr ""
163
 
164
- #: tmp/inc/admin.php:637
165
  msgid "Now"
166
  msgstr ""
167
 
168
- #: tmp/inc/admin.php:645
169
  msgid "Current"
170
  msgstr ""
171
 
172
- #: tmp/inc/admin.php:647
173
  msgid "Original"
174
  msgstr ""
175
 
176
- #: tmp/inc/admin.php:649
177
  msgid "Version restored"
178
  msgstr ""
179
 
180
- #: tmp/inc/admin.php:651
181
  msgid "Converted to editor"
182
  msgstr ""
183
 
184
- #: tmp/inc/admin.php:659
 
185
  msgid "Widget deleted"
186
  msgstr ""
187
 
188
- #: tmp/inc/admin.php:663
 
189
  msgid "Widget added"
190
  msgstr ""
191
 
192
- #: tmp/inc/admin.php:667
 
193
  msgid "Widget edited"
194
  msgstr ""
195
 
196
- #: tmp/inc/admin.php:671
 
197
  msgid "Widget duplicated"
198
  msgstr ""
199
 
200
- #: tmp/inc/admin.php:675
 
201
  msgid "Widget moved"
202
  msgstr ""
203
 
204
- #: tmp/inc/admin.php:683
 
205
  msgid "Row deleted"
206
  msgstr ""
207
 
208
- #: tmp/inc/admin.php:687
 
209
  msgid "Row added"
210
  msgstr ""
211
 
212
- #: tmp/inc/admin.php:691
 
213
  msgid "Row edited"
214
  msgstr ""
215
 
216
- #: tmp/inc/admin.php:695
 
217
  msgid "Row moved"
218
  msgstr ""
219
 
220
- #: tmp/inc/admin.php:699
 
221
  msgid "Row duplicated"
222
  msgstr ""
223
 
224
- #: tmp/inc/admin.php:703
 
225
  msgid "Row pasted"
226
  msgstr ""
227
 
228
- #: tmp/inc/admin.php:709
229
  msgid "Cell resized"
230
  msgstr ""
231
 
232
- #: tmp/inc/admin.php:715
233
  msgid "Prebuilt layout loaded"
234
  msgstr ""
235
 
236
- #: tmp/inc/admin.php:723
237
  msgid "Loading prebuilt layout"
238
  msgstr ""
239
 
240
- #: tmp/inc/admin.php:725
241
  msgid "Would you like to copy this editor's existing content to Page Builder?"
242
  msgstr ""
243
 
244
- #: tmp/inc/admin.php:727
245
  msgid "Would you like to clear your Page Builder content and revert to using the standard visual editor?"
246
  msgstr ""
247
 
248
- #: tmp/inc/admin.php:731
 
249
  msgid "Layout Builder Widget"
250
  msgstr ""
251
 
252
- #: tmp/inc/admin.php:735, tmp/tpl/js-templates.php:193, tmp/tpl/js-templates.php:835
 
253
  msgid "Are you sure?"
254
  msgstr ""
255
 
256
- #: tmp/inc/admin.php:739
 
257
  msgid "%s is ready to insert."
258
  msgstr ""
259
 
260
- #: tmp/inc/admin.php:747
261
  msgid "Add Widget Below"
262
  msgstr ""
263
 
264
- #: tmp/inc/admin.php:749
265
  msgid "Add Widget to Cell"
266
  msgstr ""
267
 
268
- #: tmp/inc/admin.php:751, tmp/tpl/js-templates.php:439
269
  msgid "Search Widgets"
270
  msgstr ""
271
 
272
- #: tmp/inc/admin.php:755, tmp/tpl/js-templates.php:33, tmp/tpl/js-templates.php:37
273
  msgid "Add Row"
274
  msgstr ""
275
 
276
- #: tmp/inc/admin.php:757
277
  msgid "Column"
278
  msgstr ""
279
 
280
- #: tmp/inc/admin.php:761
281
  msgid "Cell Actions"
282
  msgstr ""
283
 
284
- #: tmp/inc/admin.php:763
285
  msgid "Paste Widget"
286
  msgstr ""
287
 
288
- #: tmp/inc/admin.php:767
289
  msgid "Widget Actions"
290
  msgstr ""
291
 
292
- #: tmp/inc/admin.php:769
293
  msgid "Edit Widget"
294
  msgstr ""
295
 
296
- #: tmp/inc/admin.php:771
297
  msgid "Duplicate Widget"
298
  msgstr ""
299
 
300
- #: tmp/inc/admin.php:773
301
  msgid "Delete Widget"
302
  msgstr ""
303
 
304
- #: tmp/inc/admin.php:775
305
  msgid "Copy Widget"
306
  msgstr ""
307
 
308
- #: tmp/inc/admin.php:777
309
  msgid "Paste Widget Below"
310
  msgstr ""
311
 
312
- #: tmp/inc/admin.php:781
313
  msgid "Row Actions"
314
  msgstr ""
315
 
316
- #: tmp/inc/admin.php:783, tmp/tpl/js-templates.php:189
317
  msgid "Edit Row"
318
  msgstr ""
319
 
320
- #: tmp/inc/admin.php:785, tmp/tpl/js-templates.php:191
321
  msgid "Duplicate Row"
322
  msgstr ""
323
 
324
- #: tmp/inc/admin.php:787, tmp/tpl/js-templates.php:193
325
  msgid "Delete Row"
326
  msgstr ""
327
 
328
- #: tmp/inc/admin.php:789
329
  msgid "Copy Row"
330
  msgstr ""
331
 
332
- #: tmp/inc/admin.php:791
333
  msgid "Paste Row"
334
  msgstr ""
335
 
336
- #: tmp/inc/admin.php:795
337
  msgid "Draft"
338
  msgstr ""
339
 
340
- #: tmp/inc/admin.php:797
341
  msgid "Untitled"
342
  msgstr ""
343
 
344
- #: tmp/inc/admin.php:801
345
  msgid "New Row"
346
  msgstr ""
347
 
348
- #: tmp/inc/admin.php:803, tmp/inc/admin.php:819, tmp/inc/styles.php:367, tmp/tpl/js-templates.php:123
349
  msgid "Row"
350
  msgstr ""
351
 
352
- #: tmp/inc/admin.php:809
353
  msgid "Hmmm... Adding layout elements is not enabled. Please check if Page Builder has been configured to allow adding elements."
354
  msgstr ""
355
 
356
- #: tmp/inc/admin.php:811
357
  msgid "Add a {{%= items[0] %}} to get started."
358
  msgstr ""
359
 
360
- #: tmp/inc/admin.php:813
361
  msgid "Add a {{%= items[0] %}} or {{%= items[1] %}} to get started."
362
  msgstr ""
363
 
364
- #: tmp/inc/admin.php:815
365
  msgid "Add a {{%= items[0] %}}, {{%= items[1] %}} or {{%= items[2] %}} to get started."
366
  msgstr ""
367
 
368
- #: tmp/inc/admin.php:817, tmp/inc/styles.php:633, tmp/tpl/js-templates.php:121
369
  msgid "Widget"
370
  msgstr ""
371
 
372
- #: tmp/inc/admin.php:821, tmp/tpl/js-templates.php:125
373
  msgid "Prebuilt Layout"
374
  msgstr ""
375
 
376
- #: tmp/inc/admin.php:825
377
  msgid "Read our %s if you need help."
378
  msgstr ""
379
 
380
- #: tmp/inc/admin.php:827, tmp/tpl/js-templates.php:127
381
  msgid "documentation"
382
  msgstr ""
383
 
384
- #: tmp/inc/admin.php:845
385
  msgid "Page Builder layouts"
386
  msgstr ""
387
 
388
- #: tmp/inc/admin.php:847
389
  msgid "Error uploading or importing file."
390
  msgstr ""
391
 
392
- #: tmp/inc/admin.php:861
393
  msgid "Unknown error. Failed to load the form. Please check your internet connection, contact your web site administrator, or try again later."
394
  msgstr ""
395
 
396
- #: tmp/inc/admin.php:1169, tmp/inc/home.php:26
 
397
  msgid "Home Page"
398
  msgstr ""
399
 
400
- #: tmp/inc/admin.php:1357
401
  msgid "Untitled Widget"
402
  msgstr ""
403
 
404
- #: tmp/inc/admin.php:1715
405
  msgid "You need to install 1{%1$s} to use the widget 2{%2$s}."
406
  msgstr ""
407
 
408
- #: tmp/inc/admin.php:1727
409
  msgid "Save and reload this page to start using the widget after you've installed it."
410
  msgstr ""
411
 
412
- #: tmp/inc/admin.php:1759
413
  msgid "The widget 1{%1$s} is not available. Please try locate and install the missing plugin. Post on the 2{support forums} if you need help."
414
  msgstr ""
415
 
416
- #: tmp/inc/admin.php:1989, tmp/inc/styles-admin.php:45
417
  msgid "The supplied nonce is invalid."
418
  msgstr ""
419
 
420
- #: tmp/inc/admin.php:1991, tmp/inc/styles-admin.php:47
421
  msgid "Invalid nonce."
422
  msgstr ""
423
 
424
- #: tmp/inc/admin.php:2003
425
  msgid "Please specify the type of widget form to be rendered."
426
  msgstr ""
427
 
428
- #: tmp/inc/admin.php:2005
429
  msgid "Missing widget type."
430
  msgstr ""
431
 
432
- #: tmp/inc/admin.php:2127
433
  msgid "%s Widgets"
434
  msgstr ""
435
 
436
- #: tmp/inc/admin.php:2213
437
  msgid "Get a lightbox addon for SiteOrigin widgets"
438
  msgstr ""
439
 
440
- #: tmp/inc/admin.php:2221
441
  msgid "Get the row, cell and widget animations addon"
442
  msgstr ""
443
 
444
- #: tmp/inc/admin.php:2229
445
  msgid "Get premium email support for SiteOrigin Page Builder"
446
  msgstr ""
447
 
448
- #: tmp/inc/data/widgets-bundle.php:7
449
  msgid "SiteOrigin Editor"
450
  msgstr ""
451
 
452
- #: tmp/inc/data/widgets-bundle.php:8
453
  msgid "A rich text editor"
454
  msgstr ""
455
 
456
- #: tmp/inc/data/widgets-bundle.php:19
457
  msgid "SiteOrigin Button"
458
  msgstr ""
459
 
460
- #: tmp/inc/data/widgets-bundle.php:20, tmp/widgets/widgets/button/button.php:8
461
  msgid "A simple button"
462
  msgstr ""
463
 
464
- #: tmp/inc/data/widgets-bundle.php:31
465
  msgid "SiteOrigin Image"
466
  msgstr ""
467
 
468
- #: tmp/inc/data/widgets-bundle.php:32
469
  msgid "Choose images from your media library."
470
  msgstr ""
471
 
472
- #: tmp/inc/data/widgets-bundle.php:43
473
  msgid "SiteOrigin Slider"
474
  msgstr ""
475
 
476
- #: tmp/inc/data/widgets-bundle.php:44
477
  msgid "A basic slider widget."
478
  msgstr ""
479
 
480
- #: tmp/inc/data/widgets-bundle.php:55
481
  msgid "SiteOrigin Features"
482
  msgstr ""
483
 
484
- #: tmp/inc/data/widgets-bundle.php:56
485
  msgid "Display site features as a collection of icons."
486
  msgstr ""
487
 
488
- #: tmp/inc/data/widgets-bundle.php:67
489
  msgid "SiteOrigin Post Carousel"
490
  msgstr ""
491
 
492
- #: tmp/inc/data/widgets-bundle.php:68
493
  msgid "Display your posts as a carousel."
494
  msgstr ""
495
 
496
- #: tmp/inc/home.php:25
497
  msgid "Custom Home Page Builder"
498
  msgstr ""
499
 
500
- #: tmp/inc/revisions.php:79
501
  msgid "Page Builder Content"
502
  msgstr ""
503
 
504
- #: tmp/inc/settings.php:389, tmp/settings/tpl/settings.php:9
505
  msgid "SiteOrigin Page Builder"
506
  msgstr ""
507
 
508
- #: tmp/inc/settings.php:443
509
  msgid "Page Builder Settings"
510
  msgstr ""
511
 
512
- #: tmp/inc/settings.php:475
513
  msgid "General"
514
  msgstr ""
515
 
516
- #: tmp/inc/settings.php:487
517
  msgid "Post Types"
518
  msgstr ""
519
 
520
- #: tmp/inc/settings.php:491
521
  msgid "The post types to use Page Builder on."
522
  msgstr ""
523
 
524
- #: tmp/inc/settings.php:501
525
  msgid "Live Editor Quick Link"
526
  msgstr ""
527
 
528
- #: tmp/inc/settings.php:503
529
  msgid "Display a Live Editor button in the admin bar."
530
  msgstr ""
531
 
532
- #: tmp/inc/settings.php:513
533
  msgid "Display Widget Count"
534
  msgstr ""
535
 
536
- #: tmp/inc/settings.php:515
537
  msgid "Display a widget count in the admin lists of posts/pages where you're using Page Builder."
538
  msgstr ""
539
 
540
- #: tmp/inc/settings.php:525
541
  msgid "Limit Parallax Motion"
542
  msgstr ""
543
 
544
- #: tmp/inc/settings.php:527
545
  msgid "How many pixels of scrolling result in a single pixel of parallax motion. 0 means automatic. Lower values give more noticeable effect."
546
  msgstr ""
547
 
548
- #: tmp/inc/settings.php:537
549
  msgid "Sidebars Emulator"
550
  msgstr ""
551
 
552
- #: tmp/inc/settings.php:539
553
  msgid "Page Builder will create an emulated sidebar, that contains all widgets in the page."
554
  msgstr ""
555
 
556
- #: tmp/inc/settings.php:549
557
  msgid "Upgrade Teaser"
558
  msgstr ""
559
 
560
- #: tmp/inc/settings.php:553
561
  msgid "Display the %sSiteOrigin Premium%s upgrade teaser in the Page Builder toolbar."
562
  msgstr ""
563
 
564
- #: tmp/inc/settings.php:569
565
  msgid "Default To Page Builder Interface"
566
  msgstr ""
567
 
568
- #: tmp/inc/settings.php:571
569
  msgid "New posts/pages that you create will start with the Page Builder loaded."
570
  msgstr ""
571
 
572
- #: tmp/inc/settings.php:583
573
  msgid "Widgets"
574
  msgstr ""
575
 
576
- #: tmp/inc/settings.php:595
577
  msgid "Widget Title HTML"
578
  msgstr ""
579
 
580
- #: tmp/inc/settings.php:597
581
  msgid "The HTML used for widget titles. {{title}} is replaced with the widget title."
582
  msgstr ""
583
 
584
- #: tmp/inc/settings.php:607
585
  msgid "Add Widget Class"
586
  msgstr ""
587
 
588
- #: tmp/inc/settings.php:609
589
  msgid "Add the widget class to Page Builder widgets. Disable this if you're experiencing conflicts."
590
  msgstr ""
591
 
592
- #: tmp/inc/settings.php:619
593
  msgid "Legacy Bundled Widgets"
594
  msgstr ""
595
 
596
- #: tmp/inc/settings.php:621
597
  msgid "Load legacy widgets from Page Builder 1."
598
  msgstr ""
599
 
600
- #: tmp/inc/settings.php:633
601
  msgid "Display recommend widgets in Page Builder add widget dialog."
602
  msgstr ""
603
 
604
- #: tmp/inc/settings.php:645, tmp/inc/styles-admin.php:175
 
 
 
 
 
 
 
 
605
  msgid "Layout"
606
  msgstr ""
607
 
608
- #: tmp/inc/settings.php:661
609
  msgid "Responsive Layout"
610
  msgstr ""
611
 
612
- #: tmp/inc/settings.php:663
613
  msgid "Collapse widgets, rows and columns on mobile devices."
614
  msgstr ""
615
 
616
- #: tmp/inc/settings.php:673
617
  msgid "Use Tablet Layout"
618
  msgstr ""
619
 
620
- #: tmp/inc/settings.php:675
621
  msgid "Collapses columns differently on tablet devices."
622
  msgstr ""
623
 
624
- #: tmp/inc/settings.php:687
625
  msgid "Detect older browsers"
626
  msgstr ""
627
 
628
- #: tmp/inc/settings.php:689
629
  msgid "Never"
630
  msgstr ""
631
 
632
- #: tmp/inc/settings.php:691
633
  msgid "Always"
634
  msgstr ""
635
 
636
- #: tmp/inc/settings.php:695
637
  msgid "Use Legacy Layout Engine"
638
  msgstr ""
639
 
640
- #: tmp/inc/settings.php:697
641
  msgid "The CSS and HTML uses floats instead of flexbox for compatibility with very old browsers."
642
  msgstr ""
643
 
644
- #: tmp/inc/settings.php:709
645
  msgid "Tablet Width"
646
  msgstr ""
647
 
648
- #: tmp/inc/settings.php:711
649
  msgid "Device width, in pixels, to collapse into a tablet view ."
650
  msgstr ""
651
 
652
- #: tmp/inc/settings.php:723
653
  msgid "Mobile Width"
654
  msgstr ""
655
 
656
- #: tmp/inc/settings.php:725
657
  msgid "Device width, in pixels, to collapse into a mobile view ."
658
  msgstr ""
659
 
660
- #: tmp/inc/settings.php:737
661
  msgid "Row/Widget Bottom Margin"
662
  msgstr ""
663
 
664
- #: tmp/inc/settings.php:739
665
  msgid "Default margin below rows and widgets."
666
  msgstr ""
667
 
668
- #: tmp/inc/settings.php:749
669
  msgid "Last Row With Margin"
670
  msgstr ""
671
 
672
- #: tmp/inc/settings.php:751
673
  msgid "Allow margin in last row."
674
  msgstr ""
675
 
676
- #: tmp/inc/settings.php:763
677
  msgid "Row Gutter"
678
  msgstr ""
679
 
680
- #: tmp/inc/settings.php:765
681
  msgid "Default spacing between columns in each row."
682
  msgstr ""
683
 
684
- #: tmp/inc/settings.php:777
685
  msgid "Full Width Container"
686
  msgstr ""
687
 
688
- #: tmp/inc/settings.php:779
689
  msgid "The container used for the full width layout."
690
  msgstr ""
691
 
692
- #: tmp/inc/settings.php:793
693
  msgid "Content"
694
  msgstr ""
695
 
696
- #: tmp/inc/settings.php:805
697
  msgid "Copy Content"
698
  msgstr ""
699
 
700
- #: tmp/inc/settings.php:807
701
  msgid "Copy content from Page Builder to post content."
702
  msgstr ""
703
 
704
- #: tmp/inc/settings.php:817
705
  msgid "Copy Styles"
706
  msgstr ""
707
 
708
- #: tmp/inc/settings.php:819
709
  msgid "Include styles into your Post Content. This keeps page layouts, even when Page Builder is deactivated."
710
  msgstr ""
711
 
712
- #: tmp/inc/settings.php:913, tmp/inc/styles-admin.php:533
713
  msgid "Enabled"
714
  msgstr ""
715
 
716
- #: tmp/inc/styles-admin.php:65
717
  msgid "Please specify the type of style form to be rendered."
718
  msgstr ""
719
 
720
- #: tmp/inc/styles-admin.php:67
721
  msgid "Missing style form type."
722
  msgstr ""
723
 
724
- #: tmp/inc/styles-admin.php:91
725
  msgid "Row Styles"
726
  msgstr ""
727
 
728
- #: tmp/inc/styles-admin.php:101
729
  msgid "Cell%s Styles"
730
  msgstr ""
731
 
732
- #: tmp/inc/styles-admin.php:109
733
  msgid "Widget Styles"
734
  msgstr ""
735
 
736
- #: tmp/inc/styles-admin.php:167
737
  msgid "Attributes"
738
  msgstr ""
739
 
740
- #: tmp/inc/styles-admin.php:183
741
  msgid "Design"
742
  msgstr ""
743
 
744
- #: tmp/inc/styles-admin.php:203
745
  msgid "Theme"
746
  msgstr ""
747
 
748
- #: tmp/inc/styles-admin.php:369, tmp/inc/styles.php:505, tmp/inc/styles.php:563
749
  msgid "Top"
750
  msgstr ""
751
 
752
- #: tmp/inc/styles-admin.php:377, tmp/widgets/widgets/button/button.php:30
753
  msgid "Right"
754
  msgstr ""
755
 
756
- #: tmp/inc/styles-admin.php:385, tmp/inc/styles.php:509, tmp/inc/styles.php:567
757
  msgid "Bottom"
758
  msgstr ""
759
 
760
- #: tmp/inc/styles-admin.php:393, tmp/widgets/widgets/button/button.php:29
761
  msgid "Left"
762
  msgstr ""
763
 
764
- #: tmp/inc/styles-admin.php:483
765
  msgid "Select Image"
766
  msgstr ""
767
 
768
- #: tmp/inc/styles-admin.php:493
769
  msgid "Remove"
770
  msgstr ""
771
 
772
- #: tmp/inc/styles-admin.php:499
773
  msgid "External URL"
774
  msgstr ""
775
 
776
- #: tmp/inc/styles.php:157
777
  msgid "%s ID"
778
  msgstr ""
779
 
780
- #: tmp/inc/styles.php:163
781
  msgid "A custom ID used for this %s."
782
  msgstr ""
783
 
784
- #: tmp/inc/styles.php:173
785
  msgid "%s Class"
786
  msgstr ""
787
 
788
- #: tmp/inc/styles.php:179
789
  msgid "A CSS class"
790
  msgstr ""
791
 
792
- #: tmp/inc/styles.php:189
793
  msgid "CSS Styles"
794
  msgstr ""
795
 
796
- #: tmp/inc/styles.php:195
797
  msgid "One style attribute per line."
798
  msgstr ""
799
 
800
- #: tmp/inc/styles.php:205
801
  msgid "Mobile CSS Styles"
802
  msgstr ""
803
 
804
- #: tmp/inc/styles.php:211
805
  msgid "CSS applied when in mobile view."
806
  msgstr ""
807
 
808
- #: tmp/inc/styles.php:225
809
  msgid "Padding"
810
  msgstr ""
811
 
812
- #: tmp/inc/styles.php:231
813
  msgid "Padding around the entire %s."
814
  msgstr ""
815
 
816
- #: tmp/inc/styles.php:243
817
  msgid "Mobile Padding"
818
  msgstr ""
819
 
820
- #: tmp/inc/styles.php:249
821
  msgid "Padding when on mobile devices."
822
  msgstr ""
823
 
824
- #: tmp/inc/styles.php:265
825
  msgid "Background Color"
826
  msgstr ""
827
 
828
- #: tmp/inc/styles.php:271
829
  msgid "Background color of the %s."
830
  msgstr ""
831
 
832
- #: tmp/inc/styles.php:281
833
  msgid "Background Image"
834
  msgstr ""
835
 
836
- #: tmp/inc/styles.php:287
837
  msgid "Background image of the %s."
838
  msgstr ""
839
 
840
- #: tmp/inc/styles.php:297
841
  msgid "Background Image Display"
842
  msgstr ""
843
 
844
- #: tmp/inc/styles.php:305
845
  msgid "Tiled Image"
846
  msgstr ""
847
 
848
- #: tmp/inc/styles.php:307
849
  msgid "Cover"
850
  msgstr ""
851
 
852
- #: tmp/inc/styles.php:309
853
  msgid "Centered, with original size"
854
  msgstr ""
855
 
856
- #: tmp/inc/styles.php:311
857
  msgid "Fixed"
858
  msgstr ""
859
 
860
- #: tmp/inc/styles.php:313
861
  msgid "Parallax"
862
  msgstr ""
863
 
864
- #: tmp/inc/styles.php:315
865
  msgid "Parallax (Original Size)"
866
  msgstr ""
867
 
868
- #: tmp/inc/styles.php:319
869
  msgid "How the background image is displayed."
870
  msgstr ""
871
 
872
- #: tmp/inc/styles.php:329
873
  msgid "Border Color"
874
  msgstr ""
875
 
876
- #: tmp/inc/styles.php:335
877
  msgid "Border color of the %s."
878
  msgstr ""
879
 
880
- #: tmp/inc/styles.php:373
881
  msgid "Cell Class"
882
  msgstr ""
883
 
884
- #: tmp/inc/styles.php:379
885
  msgid "Class added to all cells in this row."
886
  msgstr ""
887
 
888
- #: tmp/inc/styles.php:393
889
  msgid "Bottom Margin"
890
  msgstr ""
891
 
892
- #: tmp/inc/styles.php:399
893
  msgid "Space below the row. Default is %spx."
894
  msgstr ""
895
 
896
- #: tmp/inc/styles.php:409
897
  msgid "Gutter"
898
  msgstr ""
899
 
900
- #: tmp/inc/styles.php:415
901
  msgid "Amount of space between cells. Default is %spx."
902
  msgstr ""
903
 
904
- #: tmp/inc/styles.php:425
905
  msgid "Row Layout"
906
  msgstr ""
907
 
908
- #: tmp/inc/styles.php:433, tmp/inc/styles.php:457
909
  msgid "Standard"
910
  msgstr ""
911
 
912
- #: tmp/inc/styles.php:435
913
  msgid "Full Width"
914
  msgstr ""
915
 
916
- #: tmp/inc/styles.php:437
917
  msgid "Full Width Stretched"
918
  msgstr ""
919
 
920
- #: tmp/inc/styles.php:449
 
 
 
 
921
  msgid "Collapse Behaviour"
922
  msgstr ""
923
 
924
- #: tmp/inc/styles.php:459
925
  msgid "No Collapse"
926
  msgstr ""
927
 
928
- #: tmp/inc/styles.php:471
929
  msgid "Collapse Order"
930
  msgstr ""
931
 
932
- #: tmp/inc/styles.php:479, tmp/inc/widgets/post-loop.php:295, tmp/widgets/widgets.php:1269, tmp/widgets/widgets.php:1513
933
  msgid "Default"
934
  msgstr ""
935
 
936
- #: tmp/inc/styles.php:481
937
  msgid "Left on Top"
938
  msgstr ""
939
 
940
- #: tmp/inc/styles.php:483
941
  msgid "Right on Top"
942
  msgstr ""
943
 
944
- #: tmp/inc/styles.php:497
945
  msgid "Cell Vertical Alignment"
946
  msgstr ""
947
 
948
- #: tmp/inc/styles.php:507, tmp/inc/styles.php:565, tmp/widgets/widgets/button/button.php:31
949
  msgid "Center"
950
  msgstr ""
951
 
952
- #: tmp/inc/styles.php:511, tmp/inc/styles.php:569
953
  msgid "Stretch"
954
  msgstr ""
955
 
956
- #: tmp/inc/styles.php:547
957
  msgid "Cell"
958
  msgstr ""
959
 
960
- #: tmp/inc/styles.php:553
961
  msgid "Vertical Alignment"
962
  msgstr ""
963
 
964
- #: tmp/inc/styles.php:561
965
  msgid "Use row setting"
966
  msgstr ""
967
 
968
- #: tmp/inc/styles.php:581, tmp/inc/styles.php:661
969
  msgid "Font Color"
970
  msgstr ""
971
 
972
- #: tmp/inc/styles.php:587
973
  msgid "Color of text inside this cell."
974
  msgstr ""
975
 
976
- #: tmp/inc/styles.php:597, tmp/inc/styles.php:677
977
  msgid "Links Color"
978
  msgstr ""
979
 
980
- #: tmp/inc/styles.php:603
981
  msgid "Color of links inside this cell."
982
  msgstr ""
983
 
984
- #: tmp/inc/styles.php:639
985
  msgid "Margin"
986
  msgstr ""
987
 
988
- #: tmp/inc/styles.php:645
989
  msgid "Margins around the widget."
990
  msgstr ""
991
 
992
- #: tmp/inc/styles.php:667
993
  msgid "Color of text inside this widget."
994
  msgstr ""
995
 
996
- #: tmp/inc/styles.php:683
997
  msgid "Color of links inside this widget."
998
  msgstr ""
999
 
1000
- #: tmp/inc/widgets/layout.php:13
 
1001
  msgid "Layout Builder"
1002
  msgstr ""
1003
 
1004
- #: tmp/inc/widgets/layout.php:15
1005
  msgid "A complete SiteOrigin Page Builder layout as a widget."
1006
  msgstr ""
1007
 
1008
- #: tmp/inc/widgets/layout.php:94
1009
  msgid "Open Builder"
1010
  msgstr ""
1011
 
1012
- #: tmp/inc/widgets/post-content.php:12
1013
  msgid "Post Content"
1014
  msgstr ""
1015
 
1016
- #: tmp/inc/widgets/post-content.php:14
1017
  msgid "Displays content from the current post."
1018
  msgstr ""
1019
 
1020
- #: tmp/inc/widgets/post-content.php:60, tmp/inc/widgets/post-loop.php:269, tmp/widgets/widgets.php:1215, tmp/widgets/widgets.php:1565
1021
  msgid "None"
1022
  msgstr ""
1023
 
1024
- #: tmp/inc/widgets/post-content.php:61, tmp/inc/widgets/post-loop-helper.php:38, tmp/inc/widgets/post-loop.php:216, tmp/widgets/widgets/call-to-action/call-to-action.php:15, tmp/widgets/widgets/list/list.php:15, tmp/widgets/widgets/price-box/price-box.php:15
1025
  msgid "Title"
1026
  msgstr ""
1027
 
1028
- #: tmp/inc/widgets/post-content.php:62
1029
  msgid "Featured Image"
1030
  msgstr ""
1031
 
1032
- #: tmp/inc/widgets/post-content.php:67
1033
  msgid "Display Content"
1034
  msgstr ""
1035
 
1036
- #: tmp/inc/widgets/post-loop-helper.php:29, tmp/inc/widgets/post-loop.php:20
1037
  msgid "Post Loop"
1038
  msgstr ""
1039
 
1040
- #: tmp/inc/widgets/post-loop-helper.php:31, tmp/inc/widgets/post-loop.php:22
1041
  msgid "Displays a post loop."
1042
  msgstr ""
1043
 
1044
- #: tmp/inc/widgets/post-loop-helper.php:42, tmp/inc/widgets/post-loop.php:220
1045
  msgid "Template"
1046
  msgstr ""
1047
 
1048
- #: tmp/inc/widgets/post-loop-helper.php:49, tmp/inc/widgets/post-loop.php:238
1049
  msgid "If the template supports it, cut posts and display the more link."
1050
  msgstr ""
1051
 
1052
- #: tmp/inc/widgets/post-loop.php:186
1053
  msgid "Your theme doesn't have any post loops."
1054
  msgstr ""
1055
 
1056
- #: tmp/inc/widgets/post-loop.php:236
1057
  msgid "More Link"
1058
  msgstr ""
1059
 
1060
- #: tmp/inc/widgets/post-loop.php:253, tmp/widgets/widgets.php:1187
1061
  msgid "Post Type"
1062
  msgstr ""
1063
 
1064
- #: tmp/inc/widgets/post-loop.php:262, tmp/widgets/widgets.php:1201
1065
  msgid "Posts Per Page"
1066
  msgstr ""
1067
 
1068
- #: tmp/inc/widgets/post-loop.php:267, tmp/widgets/widgets.php:1211
1069
  msgid "Order By"
1070
  msgstr ""
1071
 
1072
- #: tmp/inc/widgets/post-loop.php:270, tmp/widgets/widgets.php:1217
1073
  msgid "Post ID"
1074
  msgstr ""
1075
 
1076
- #: tmp/inc/widgets/post-loop.php:271, tmp/widgets/widgets.php:1219
1077
  msgid "Author"
1078
  msgstr ""
1079
 
1080
- #: tmp/inc/widgets/post-loop.php:272, tmp/inc/widgets/post-loop.php:273, tmp/widgets/widgets.php:1221, tmp/widgets/widgets.php:1223, tmp/widgets/widgets/testimonial/testimonial.php:15
1081
  msgid "Name"
1082
  msgstr ""
1083
 
1084
- #: tmp/inc/widgets/post-loop.php:274, tmp/widgets/widgets.php:1225
1085
  msgid "Date"
1086
  msgstr ""
1087
 
1088
- #: tmp/inc/widgets/post-loop.php:275, tmp/widgets/widgets.php:1227
1089
  msgid "Modified"
1090
  msgstr ""
1091
 
1092
- #: tmp/inc/widgets/post-loop.php:276, tmp/widgets/widgets.php:1229
1093
  msgid "Parent"
1094
  msgstr ""
1095
 
1096
- #: tmp/inc/widgets/post-loop.php:277, tmp/widgets/widgets.php:1231
1097
  msgid "Random"
1098
  msgstr ""
1099
 
1100
- #: tmp/inc/widgets/post-loop.php:278, tmp/widgets/widgets.php:1233
1101
  msgid "Comment Count"
1102
  msgstr ""
1103
 
1104
- #: tmp/inc/widgets/post-loop.php:279, tmp/widgets/widgets.php:1235
1105
  msgid "Menu Order"
1106
  msgstr ""
1107
 
1108
- #: tmp/inc/widgets/post-loop.php:280
1109
  msgid "Post In Order"
1110
  msgstr ""
1111
 
1112
- #: tmp/inc/widgets/post-loop.php:285, tmp/widgets/widgets.php:1247
1113
  msgid "Order"
1114
  msgstr ""
1115
 
1116
- #: tmp/inc/widgets/post-loop.php:287, tmp/widgets/widgets.php:1253
1117
  msgid "Descending"
1118
  msgstr ""
1119
 
1120
- #: tmp/inc/widgets/post-loop.php:288, tmp/widgets/widgets.php:1251
1121
  msgid "Ascending"
1122
  msgstr ""
1123
 
1124
- #: tmp/inc/widgets/post-loop.php:293, tmp/widgets/widgets.php:1265
1125
  msgid "Sticky Posts"
1126
  msgstr ""
1127
 
1128
- #: tmp/inc/widgets/post-loop.php:296, tmp/widgets/widgets.php:1271
1129
  msgid "Ignore Sticky"
1130
  msgstr ""
1131
 
1132
- #: tmp/inc/widgets/post-loop.php:297, tmp/widgets/widgets.php:1273
1133
  msgid "Exclude Sticky"
1134
  msgstr ""
1135
 
1136
- #: tmp/inc/widgets/post-loop.php:298, tmp/widgets/widgets.php:1275
1137
  msgid "Only Sticky"
1138
  msgstr ""
1139
 
1140
- #: tmp/inc/widgets/post-loop.php:303
1141
  msgid "Additional "
1142
  msgstr ""
1143
 
1144
- #: tmp/inc/widgets/post-loop.php:310, tmp/widgets/widgets.php:1295
1145
  msgid "Additional query arguments. See 1{query_posts}."
1146
  msgstr ""
1147
 
1148
- #: tmp/settings/tpl/help.php:6
1149
  msgid "Please read the 1{settings guide} of the Page Builder documentation for help."
1150
  msgstr ""
1151
 
1152
- #: tmp/settings/tpl/settings.php:12
1153
  msgid "Search Settings"
1154
  msgstr ""
1155
 
1156
- #: tmp/settings/tpl/settings.php:29
1157
  msgid "Settings Saved"
1158
  msgstr ""
1159
 
1160
- #: tmp/settings/tpl/settings.php:78
1161
  msgid "Save Settings"
1162
  msgstr ""
1163
 
1164
- #: tmp/siteorigin-panels.php:649
1165
  msgid "Read More"
1166
  msgstr ""
1167
 
1168
- #: tmp/siteorigin-panels.php:781
1169
  msgid "Edit Home Page"
1170
  msgstr ""
1171
 
1172
- #: tmp/siteorigin-panels.php:821, tmp/tpl/js-templates.php:67, tmp/tpl/js-templates.php:71
1173
  msgid "Live Editor"
1174
  msgstr ""
1175
 
1176
- #: tmp/tpl/admin-home-page.php:21
1177
  msgid "On"
1178
  msgstr ""
1179
 
1180
- #: tmp/tpl/admin-home-page.php:21
1181
  msgid "Off"
1182
  msgstr ""
1183
 
1184
- #: tmp/tpl/admin-home-page.php:25
1185
  msgid "Custom Home Page"
1186
  msgstr ""
1187
 
1188
- #: tmp/tpl/admin-home-page.php:41
1189
  msgid "Home page updated. 1{View page}."
1190
  msgstr ""
1191
 
1192
- #: tmp/tpl/admin-home-page.php:60
1193
  msgid "Save Home Page"
1194
  msgstr ""
1195
 
1196
- #: tmp/tpl/admin-home-page.php:64
1197
  msgid "This interface requires Javascript"
1198
  msgstr ""
1199
 
1200
- #: tmp/tpl/help.php:2
1201
  msgid "You can use SiteOrigin Page Builder to create home and sub pages, filled your own widgets."
1202
  msgstr ""
1203
 
1204
- #: tmp/tpl/help.php:3
1205
  msgid "The page layouts are responsive and fully customizable."
1206
  msgstr ""
1207
 
1208
- #: tmp/tpl/help.php:18
1209
  msgid "Read the 1{full documentation} on SiteOrigin. Ask a question on our 2{support forum} if you need help and sign up to 3{our newsletter} to stay up to date with future developments."
1210
  msgstr ""
1211
 
1212
- #: tmp/tpl/js-templates.php:23, tmp/tpl/js-templates.php:27
1213
  msgid "Add Widget"
1214
  msgstr ""
1215
 
1216
- #: tmp/tpl/js-templates.php:43, tmp/tpl/js-templates.php:765
1217
  msgid "Prebuilt Layouts"
1218
  msgstr ""
1219
 
1220
- #: tmp/tpl/js-templates.php:47
1221
  msgid "Layouts"
1222
  msgstr ""
1223
 
1224
- #: tmp/tpl/js-templates.php:57
1225
  msgid "Edit History"
1226
  msgstr ""
1227
 
1228
- #: tmp/tpl/js-templates.php:61
1229
  msgid "History"
1230
  msgstr ""
1231
 
1232
- #: tmp/tpl/js-templates.php:83
1233
  msgid "Page Builder Addons"
1234
  msgstr ""
1235
 
1236
- #: tmp/tpl/js-templates.php:95
1237
  msgid "Revert to Editor"
1238
  msgstr ""
1239
 
1240
- #: tmp/tpl/js-templates.php:119
1241
  msgid "Add a %s, %s or %s to get started. Read our %s if you need help."
1242
  msgstr ""
1243
 
1244
- #: tmp/tpl/js-templates.php:141
1245
  msgid "Pro Tip"
1246
  msgstr ""
1247
 
1248
- #: tmp/tpl/js-templates.php:281
1249
  msgid "Edit"
1250
  msgstr ""
1251
 
1252
- #: tmp/tpl/js-templates.php:283, tmp/tpl/js-templates.php:527, tmp/tpl/js-templates.php:697
1253
  msgid "Duplicate"
1254
  msgstr ""
1255
 
1256
- #: tmp/tpl/js-templates.php:285, tmp/tpl/js-templates.php:525, tmp/tpl/js-templates.php:695
1257
  msgid "Delete"
1258
  msgstr ""
1259
 
1260
- #: tmp/tpl/js-templates.php:403, tmp/tpl/js-templates.php:533, tmp/tpl/js-templates.php:711, tmp/tpl/js-templates.php:1099
1261
  msgid "Done"
1262
  msgstr ""
1263
 
1264
- #: tmp/tpl/js-templates.php:431
1265
  msgid "Add New Widget %s"
1266
  msgstr ""
1267
 
1268
- #: tmp/tpl/js-templates.php:463
1269
  msgid "Close"
1270
  msgstr ""
1271
 
1272
- #: tmp/tpl/js-templates.php:633
1273
  msgid "Left to Right"
1274
  msgstr ""
1275
 
1276
- #: tmp/tpl/js-templates.php:635
1277
  msgid "Right to Left"
1278
  msgstr ""
1279
 
1280
- #: tmp/tpl/js-templates.php:657
1281
  msgid "1{Set row layout}: %1$s columns with a ratio of %2$s going from %3$s"
1282
  msgstr ""
1283
 
1284
- #: tmp/tpl/js-templates.php:669
1285
  msgid "Set"
1286
  msgstr ""
1287
 
1288
- #: tmp/tpl/js-templates.php:707, tmp/tpl/js-templates.php:823
1289
  msgid "Insert"
1290
  msgstr ""
1291
 
1292
- #: tmp/tpl/js-templates.php:747
1293
  msgid "Page Builder Layouts"
1294
  msgstr ""
1295
 
1296
- #: tmp/tpl/js-templates.php:755
1297
  msgid "Search"
1298
  msgstr ""
1299
 
1300
- #: tmp/tpl/js-templates.php:785
1301
  msgid "Import/Export"
1302
  msgstr ""
1303
 
1304
- #: tmp/tpl/js-templates.php:799
1305
  msgid "Clone: %s"
1306
  msgstr ""
1307
 
1308
- #: tmp/tpl/js-templates.php:831
1309
  msgid "Insert after"
1310
  msgstr ""
1311
 
1312
- #: tmp/tpl/js-templates.php:833
1313
  msgid "Insert before"
1314
  msgstr ""
1315
 
1316
- #: tmp/tpl/js-templates.php:835
1317
  msgid "Replace current"
1318
  msgstr ""
1319
 
1320
- #: tmp/tpl/js-templates.php:857
1321
  msgid "Do you want to browse the Prebuilt Layouts directory?"
1322
  msgstr ""
1323
 
1324
- #: tmp/tpl/js-templates.php:859
1325
  msgid "Enable"
1326
  msgstr ""
1327
 
1328
- #: tmp/tpl/js-templates.php:885
1329
  msgid "Your search didn't return any results"
1330
  msgstr ""
1331
 
1332
- #: tmp/tpl/js-templates.php:941
1333
  msgid "Previous"
1334
  msgstr ""
1335
 
1336
- #: tmp/tpl/js-templates.php:943
1337
  msgid "Next"
1338
  msgstr ""
1339
 
1340
- #: tmp/tpl/js-templates.php:963
1341
  msgid "Drop import file here"
1342
  msgstr ""
1343
 
1344
- #: tmp/tpl/js-templates.php:965
1345
  msgid "Or"
1346
  msgstr ""
1347
 
1348
- #: tmp/tpl/js-templates.php:971
1349
  msgid "Select Import File"
1350
  msgstr ""
1351
 
1352
- #: tmp/tpl/js-templates.php:999
1353
  msgid "Download Layout"
1354
  msgstr ""
1355
 
1356
- #: tmp/tpl/js-templates.php:1021
1357
  msgid "Page Builder Change History"
1358
  msgstr ""
1359
 
1360
- #: tmp/tpl/js-templates.php:1051
1361
  msgid "Restore Version"
1362
  msgstr ""
1363
 
1364
- #: tmp/tpl/js-templates.php:1087, tmp/tpl/js-templates.php:1089
1365
  msgid "Collapse"
1366
  msgstr ""
1367
 
1368
- #: tmp/tpl/js-templates.php:1087
1369
  msgid "Expand"
1370
  msgstr ""
1371
 
1372
- #: tmp/tpl/js-templates.php:1103
1373
  msgid "Toggle desktop mode"
1374
  msgstr ""
1375
 
1376
- #: tmp/tpl/js-templates.php:1109
1377
  msgid "Toggle tablet mode"
1378
  msgstr ""
1379
 
1380
- #: tmp/tpl/js-templates.php:1115
1381
  msgid "Toggle mobile mode"
1382
  msgstr ""
1383
 
1384
- #: tmp/tpl/js-templates.php:1193
1385
  msgid "No Results"
1386
  msgstr ""
1387
 
1388
- #: tmp/widgets/widgets.php:321
1389
  msgid "This is a legacy widget. "
1390
  msgstr ""
1391
 
1392
- #: tmp/widgets/widgets.php:323
1393
  msgid "Ideally you should move to using widgets from the SiteOrigin Widgets Bundle instead. "
1394
  msgstr ""
1395
 
1396
- #: tmp/widgets/widgets.php:325
1397
  msgid "It'll be moved to a separate plugin after Page Builder 2.6 is released. "
1398
  msgstr ""
1399
 
1400
- #: tmp/widgets/widgets.php:439
1401
  msgid "Style"
1402
  msgstr ""
1403
 
1404
- #: tmp/widgets/widgets.php:487
1405
  msgid "%s Style"
1406
  msgstr ""
1407
 
1408
- #: tmp/widgets/widgets.php:1287
1409
  msgid "Additional Arguments"
1410
  msgstr ""
1411
 
1412
- #: tmp/widgets/widgets.php:1409
1413
  msgid "Gallery (PB)"
1414
  msgstr ""
1415
 
1416
- #: tmp/widgets/widgets.php:1413
1417
  msgid "Displays a gallery."
1418
  msgstr ""
1419
 
1420
- #: tmp/widgets/widgets.php:1491
1421
  msgid "Gallery Images"
1422
  msgstr ""
1423
 
1424
- #: tmp/widgets/widgets.php:1493
1425
  msgid "edit gallery"
1426
  msgstr ""
1427
 
1428
- #: tmp/widgets/widgets.php:1501
1429
  msgid "Comma separated attachment IDs. Defaults to all current page's attachments."
1430
  msgstr ""
1431
 
1432
- #: tmp/widgets/widgets.php:1509
1433
  msgid "Image Size"
1434
  msgstr ""
1435
 
1436
- #: tmp/widgets/widgets.php:1515
1437
  msgid "Large"
1438
  msgstr ""
1439
 
1440
- #: tmp/widgets/widgets.php:1517
1441
  msgid "Medium"
1442
  msgstr ""
1443
 
1444
- #: tmp/widgets/widgets.php:1519
1445
  msgid "Thumbnail"
1446
  msgstr ""
1447
 
1448
- #: tmp/widgets/widgets.php:1521
1449
  msgid "Full"
1450
  msgstr ""
1451
 
1452
- #: tmp/widgets/widgets.php:1537
1453
  msgid "Gallery Type"
1454
  msgstr ""
1455
 
1456
- #: tmp/widgets/widgets.php:1547
1457
  msgid "Columns"
1458
  msgstr ""
1459
 
1460
- #: tmp/widgets/widgets.php:1557
1461
  msgid "Link To"
1462
  msgstr ""
1463
 
1464
- #: tmp/widgets/widgets.php:1561
1465
  msgid "Attachment Page"
1466
  msgstr ""
1467
 
1468
- #: tmp/widgets/widgets.php:1563
1469
  msgid "File"
1470
  msgstr ""
1471
 
1472
- #: tmp/widgets/widgets.php:1599
1473
  msgid "Image (PB)"
1474
  msgstr ""
1475
 
1476
- #: tmp/widgets/widgets.php:1603
1477
  msgid "Displays a simple image."
1478
  msgstr ""
1479
 
1480
- #: tmp/widgets/widgets.php:1669, tmp/widgets/widgets/animated-image/animated-image.php:15
1481
  msgid "Image URL"
1482
  msgstr ""
1483
 
1484
- #: tmp/widgets/widgets.php:1677, tmp/widgets/widgets/button/button.php:19
1485
  msgid "Destination URL"
1486
  msgstr ""
1487
 
1488
- #: tmp/widgets/widgets.php:1705
1489
  msgid "Embedded Video (PB)"
1490
  msgstr ""
1491
 
1492
- #: tmp/widgets/widgets.php:1709
1493
  msgid "Embeds a video."
1494
  msgstr ""
1495
 
1496
- #: tmp/widgets/widgets.php:1785
1497
  msgid "Video"
1498
  msgstr ""
1499
 
1500
- #: tmp/widgets/widgets.php:1817
1501
  msgid "Self Hosted Video (PB)"
1502
  msgstr ""
1503
 
1504
- #: tmp/widgets/widgets.php:1821
1505
  msgid "A self hosted video player."
1506
  msgstr ""
1507
 
1508
- #: tmp/widgets/widgets.php:1905
1509
  msgid "Video URL"
1510
  msgstr ""
1511
 
1512
- #: tmp/widgets/widgets.php:1913
1513
  msgid "Poster URL"
1514
  msgstr ""
1515
 
1516
- #: tmp/widgets/widgets.php:1917
1517
  msgid "An image that displays before the video starts playing."
1518
  msgstr ""
1519
 
1520
- #: tmp/widgets/widgets.php:1927
1521
  msgid "Auto Play Video"
1522
  msgstr ""
1523
 
1524
- #: tmp/widgets/widgets/animated-image/animated-image.php:6
1525
  msgid "Animated Image (PB)"
1526
  msgstr ""
1527
 
1528
- #: tmp/widgets/widgets/animated-image/animated-image.php:8
1529
  msgid "An image that animates in when it enters the screen."
1530
  msgstr ""
1531
 
1532
- #: tmp/widgets/widgets/animated-image/animated-image.php:19
1533
  msgid "Animation"
1534
  msgstr ""
1535
 
1536
- #: tmp/widgets/widgets/animated-image/animated-image.php:21
1537
  msgid "Fade In"
1538
  msgstr ""
1539
 
1540
- #: tmp/widgets/widgets/animated-image/animated-image.php:22
1541
  msgid "Slide Up"
1542
  msgstr ""
1543
 
1544
- #: tmp/widgets/widgets/animated-image/animated-image.php:23
1545
  msgid "Slide Down"
1546
  msgstr ""
1547
 
1548
- #: tmp/widgets/widgets/animated-image/animated-image.php:24
1549
  msgid "Slide Left"
1550
  msgstr ""
1551
 
1552
- #: tmp/widgets/widgets/animated-image/animated-image.php:25
1553
  msgid "Slide Right"
1554
  msgstr ""
1555
 
1556
- #: tmp/widgets/widgets/button/button.php:6
1557
  msgid "Button (PB)"
1558
  msgstr ""
1559
 
1560
- #: tmp/widgets/widgets/button/button.php:15, tmp/widgets/widgets/list/list.php:19, tmp/widgets/widgets/testimonial/testimonial.php:27
1561
  msgid "Text"
1562
  msgstr ""
1563
 
1564
- #: tmp/widgets/widgets/button/button.php:23, tmp/widgets/widgets/call-to-action/call-to-action.php:31, tmp/widgets/widgets/price-box/price-box.php:44, tmp/widgets/widgets/testimonial/testimonial.php:36
1565
  msgid "Open In New Window"
1566
  msgstr ""
1567
 
1568
- #: tmp/widgets/widgets/button/button.php:27
1569
  msgid "Button Alignment"
1570
  msgstr ""
1571
 
1572
- #: tmp/widgets/widgets/button/button.php:32
1573
  msgid "Justify"
1574
  msgstr ""
1575
 
1576
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:6
1577
  msgid "Call To Action (PB)"
1578
  msgstr ""
1579
 
1580
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:8
1581
  msgid "A Call to Action block"
1582
  msgstr ""
1583
 
1584
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:19
1585
  msgid "Sub Title"
1586
  msgstr ""
1587
 
1588
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:23, tmp/widgets/widgets/price-box/price-box.php:36
1589
  msgid "Button Text"
1590
  msgstr ""
1591
 
1592
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:27, tmp/widgets/widgets/price-box/price-box.php:40
1593
  msgid "Button URL"
1594
  msgstr ""
1595
 
1596
- #: tmp/widgets/widgets/call-to-action/call-to-action.php:37, tmp/widgets/widgets/price-box/price-box.php:49
1597
  msgid "Button"
1598
  msgstr ""
1599
 
1600
- #: tmp/widgets/widgets/list/list.php:6
1601
  msgid "List (PB)"
1602
  msgstr ""
1603
 
1604
- #: tmp/widgets/widgets/list/list.php:8, tmp/widgets/widgets/price-box/price-box.php:8
1605
  msgid "Displays a bullet list of elements"
1606
  msgstr ""
1607
 
1608
- #: tmp/widgets/widgets/list/list.php:20, tmp/widgets/widgets/price-box/price-box.php:32
1609
  msgid "Start each new point with an asterisk (*)"
1610
  msgstr ""
1611
 
1612
- #: tmp/widgets/widgets/price-box/price-box.php:6
1613
  msgid "Price Box (PB)"
1614
  msgstr ""
1615
 
1616
- #: tmp/widgets/widgets/price-box/price-box.php:19
1617
  msgid "Price"
1618
  msgstr ""
1619
 
1620
- #: tmp/widgets/widgets/price-box/price-box.php:23
1621
  msgid "Per"
1622
  msgstr ""
1623
 
1624
- #: tmp/widgets/widgets/price-box/price-box.php:27
1625
  msgid "Information Text"
1626
  msgstr ""
1627
 
1628
- #: tmp/widgets/widgets/price-box/price-box.php:31
1629
  msgid "Features Text"
1630
  msgstr ""
1631
 
1632
- #: tmp/widgets/widgets/price-box/price-box.php:50
1633
  msgid "Feature List"
1634
  msgstr ""
1635
 
1636
- #: tmp/widgets/widgets/testimonial/testimonial.php:6
1637
  msgid "Testimonial (PB)"
1638
  msgstr ""
1639
 
1640
- #: tmp/widgets/widgets/testimonial/testimonial.php:8
1641
  msgid "Displays a bullet list of points"
1642
  msgstr ""
1643
 
1644
- #: tmp/widgets/widgets/testimonial/testimonial.php:19
1645
  msgid "Location"
1646
  msgstr ""
1647
 
1648
- #: tmp/widgets/widgets/testimonial/testimonial.php:23
1649
  msgid "Image"
1650
  msgstr ""
1651
 
1652
- #: tmp/widgets/widgets/testimonial/testimonial.php:32
 
1653
  msgid "URL"
1654
  msgstr ""
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: siteorigin-panels\n"
 
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
 
 
9
  "Language-Team: SiteOrigin <support@siteorigin.com>\n"
10
+ "Last-Translator: SiteOrigin <support@siteorigin.com>\n"
11
+ "Report-Msgid-Bugs-To: http://www.siteorigin.com\n"
12
  "X-Poedit-Basepath: ..\n"
13
+ "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
 
14
  "X-Poedit-SearchPath-0: .\n"
15
  "X-Poedit-SearchPathExcluded-0: *.js\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
+ #: inc/admin-dashboard.php:23
20
  msgid "SiteOrigin Page Builder News"
21
  msgstr ""
22
 
23
+ #: inc/admin-dashboard.php:76
24
  msgid "Blog"
25
  msgstr ""
26
 
27
+ #. translators: accessibility text
28
+ #. translators: accessibility text
29
+ #. translators: accessibility text
30
+ #: inc/admin-dashboard.php:78, inc/admin-dashboard.php:97, inc/admin-dashboard.php:109
31
  msgid "(opens in a new window)"
32
  msgstr ""
33
 
34
+ #: inc/admin-dashboard.php:86
35
  msgid "Email Support"
36
  msgstr ""
37
 
38
+ #. translators: accessibility text
39
+ #: inc/admin-dashboard.php:88
40
  msgid "(email SiteOrigin support)"
41
  msgstr ""
42
 
43
+ #: inc/admin-dashboard.php:95, inc/admin.php:122
44
  msgid "Support Forum"
45
  msgstr ""
46
 
47
+ #. translators: If a Rosetta site exists (e.g. https://es.wordpress.org/news/), then use that. Otherwise, leave untranslated.
48
+ #: inc/admin-dashboard.php:107
49
  msgid "Get Premium"
50
  msgstr ""
51
 
52
+ #: inc/admin-layouts.php:40, inc/admin-layouts.php:220
53
  msgid "Layouts Directory"
54
  msgstr ""
55
 
56
+ #: inc/admin-layouts.php:184
57
  msgid "Invalid request."
58
  msgstr ""
59
 
60
+ #: inc/admin-layouts.php:199
61
  msgid "Theme Defined Layouts"
62
  msgstr ""
63
 
64
+ #: inc/admin-layouts.php:270
65
  msgid "Clone %s"
66
  msgstr ""
67
 
68
+ #: inc/admin-layouts.php:308
69
  msgid " - Results For:"
70
  msgstr ""
71
 
72
+ #: inc/admin-layouts.php:341
73
  msgid "Missing layout ID or no such layout exists"
74
  msgstr ""
75
 
76
+ #: inc/admin-layouts.php:387
77
  msgid "There was a problem fetching the layout. Please try again later."
78
  msgstr ""
79
 
80
+ #: inc/admin-widget-dialog.php:99, widgets/widgets.php:164
81
  msgid "Widgets Bundle"
82
  msgstr ""
83
 
84
+ #: inc/admin-widget-dialog.php:114
85
  msgid "Enable more widgets in the 1{Widgets Bundle settings}."
86
  msgstr ""
87
 
88
+ #: inc/admin-widget-dialog.php:120, inc/data/widgets-bundle.php:11, inc/data/widgets-bundle.php:23, inc/data/widgets-bundle.php:35, inc/data/widgets-bundle.php:47, inc/data/widgets-bundle.php:59, inc/data/widgets-bundle.php:71
89
  msgid "SiteOrigin Widgets Bundle"
90
  msgstr ""
91
 
92
+ #: inc/admin-widget-dialog.php:121
93
  msgid "Install the 1{Widgets Bundle} to get extra widgets."
94
  msgstr ""
95
 
96
+ #: inc/admin-widget-dialog.php:129
97
  msgid "Page Builder Widgets"
98
  msgstr ""
99
 
100
+ #: inc/admin-widget-dialog.php:137
101
  msgid "You can enable the legacy (PB) widgets in the 1{Page Builder settings}."
102
  msgstr ""
103
 
104
+ #: inc/admin-widget-dialog.php:145
105
  msgid "WordPress Widgets"
106
  msgstr ""
107
 
108
+ #: inc/admin-widget-dialog.php:185, inc/settings.php:317
109
  msgid "Recommended Widgets"
110
  msgstr ""
111
 
112
+ #: inc/admin-widgets-bundle.php:19, inc/admin-widgets-bundle.php:20
113
  msgid "Install Page Builder Plugin"
114
  msgstr ""
115
 
116
+ #: inc/admin-widgets-bundle.php:77
117
  msgid "Installing %s"
118
  msgstr ""
119
 
120
+ #: inc/admin.php:125, tpl/js-templates.php:44
121
  msgid "Addons"
122
  msgstr ""
123
 
124
+ #: inc/admin.php:138, inc/admin.php:515, inc/admin.php:1058, inc/admin.php:1063, inc/settings.php:196, tpl/js-templates.php:193
125
  msgid "Page Builder"
126
  msgstr ""
127
 
128
+ #: inc/admin.php:273
129
  msgid "All Widgets"
130
  msgstr ""
131
 
132
+ #: inc/admin.php:300
133
  msgid "Missing Widget"
134
  msgstr ""
135
 
136
+ #: inc/admin.php:301
137
  msgid "Page Builder doesn't know about this widget."
138
  msgstr ""
139
 
140
+ #. translators: Number of seconds since
141
+ #: inc/admin.php:305
142
  msgid "%d seconds"
143
  msgstr ""
144
 
145
+ #. translators: Number of minutes since
146
+ #: inc/admin.php:307
147
  msgid "%d minutes"
148
  msgstr ""
149
 
150
+ #. translators: Number of hours since
151
+ #: inc/admin.php:309
152
  msgid "%d hours"
153
  msgstr ""
154
 
155
+ #. translators: A single second since
156
+ #: inc/admin.php:312
157
  msgid "%d second"
158
  msgstr ""
159
 
160
+ #. translators: A single minute since
161
+ #: inc/admin.php:314
162
  msgid "%d minute"
163
  msgstr ""
164
 
165
+ #. translators: A single hour since
166
+ #: inc/admin.php:316
167
  msgid "%d hour"
168
  msgstr ""
169
 
170
+ #. translators: Time ago - eg. "1 minute before".
171
+ #: inc/admin.php:319
172
  msgid "%s before"
173
  msgstr ""
174
 
175
+ #: inc/admin.php:320
176
  msgid "Now"
177
  msgstr ""
178
 
179
+ #: inc/admin.php:324
180
  msgid "Current"
181
  msgstr ""
182
 
183
+ #: inc/admin.php:325
184
  msgid "Original"
185
  msgstr ""
186
 
187
+ #: inc/admin.php:326
188
  msgid "Version restored"
189
  msgstr ""
190
 
191
+ #: inc/admin.php:327
192
  msgid "Converted to editor"
193
  msgstr ""
194
 
195
+ #. translators: Message displayed in the history when a widget is deleted
196
+ #: inc/admin.php:331
197
  msgid "Widget deleted"
198
  msgstr ""
199
 
200
+ #. translators: Message displayed in the history when a widget is added
201
+ #: inc/admin.php:333
202
  msgid "Widget added"
203
  msgstr ""
204
 
205
+ #. translators: Message displayed in the history when a widget is edited
206
+ #: inc/admin.php:335
207
  msgid "Widget edited"
208
  msgstr ""
209
 
210
+ #. translators: Message displayed in the history when a widget is duplicated
211
+ #: inc/admin.php:337
212
  msgid "Widget duplicated"
213
  msgstr ""
214
 
215
+ #. translators: Message displayed in the history when a widget position is changed
216
+ #: inc/admin.php:339
217
  msgid "Widget moved"
218
  msgstr ""
219
 
220
+ #. translators: Message displayed in the history when a row is deleted
221
+ #: inc/admin.php:343
222
  msgid "Row deleted"
223
  msgstr ""
224
 
225
+ #. translators: Message displayed in the history when a row is added
226
+ #: inc/admin.php:345
227
  msgid "Row added"
228
  msgstr ""
229
 
230
+ #. translators: Message displayed in the history when a row is edited
231
+ #: inc/admin.php:347
232
  msgid "Row edited"
233
  msgstr ""
234
 
235
+ #. translators: Message displayed in the history when a row position is changed
236
+ #: inc/admin.php:349
237
  msgid "Row moved"
238
  msgstr ""
239
 
240
+ #. translators: Message displayed in the history when a row is duplicated
241
+ #: inc/admin.php:351
242
  msgid "Row duplicated"
243
  msgstr ""
244
 
245
+ #. translators: Message displayed in the history when a row is pasted
246
+ #: inc/admin.php:353
247
  msgid "Row pasted"
248
  msgstr ""
249
 
250
+ #: inc/admin.php:356
251
  msgid "Cell resized"
252
  msgstr ""
253
 
254
+ #: inc/admin.php:359
255
  msgid "Prebuilt layout loaded"
256
  msgstr ""
257
 
258
+ #: inc/admin.php:363
259
  msgid "Loading prebuilt layout"
260
  msgstr ""
261
 
262
+ #: inc/admin.php:364
263
  msgid "Would you like to copy this editor's existing content to Page Builder?"
264
  msgstr ""
265
 
266
+ #: inc/admin.php:365
267
  msgid "Would you like to clear your Page Builder content and revert to using the standard visual editor?"
268
  msgstr ""
269
 
270
+ #. translators: This is the title for a widget called "Layout Builder"
271
+ #: inc/admin.php:367
272
  msgid "Layout Builder Widget"
273
  msgstr ""
274
 
275
+ #. translators: A standard confirmation message
276
+ #: inc/admin.php:369, tpl/js-templates.php:97, tpl/js-templates.php:418
277
  msgid "Are you sure?"
278
  msgstr ""
279
 
280
+ #. translators: When a layout file is ready to be inserted. %s is the filename.
281
+ #: inc/admin.php:371
282
  msgid "%s is ready to insert."
283
  msgstr ""
284
 
285
+ #: inc/admin.php:375
286
  msgid "Add Widget Below"
287
  msgstr ""
288
 
289
+ #: inc/admin.php:376
290
  msgid "Add Widget to Cell"
291
  msgstr ""
292
 
293
+ #: inc/admin.php:377, tpl/js-templates.php:220
294
  msgid "Search Widgets"
295
  msgstr ""
296
 
297
+ #: inc/admin.php:379, tpl/js-templates.php:17, tpl/js-templates.php:19
298
  msgid "Add Row"
299
  msgstr ""
300
 
301
+ #: inc/admin.php:380
302
  msgid "Column"
303
  msgstr ""
304
 
305
+ #: inc/admin.php:382
306
  msgid "Cell Actions"
307
  msgstr ""
308
 
309
+ #: inc/admin.php:383
310
  msgid "Paste Widget"
311
  msgstr ""
312
 
313
+ #: inc/admin.php:385
314
  msgid "Widget Actions"
315
  msgstr ""
316
 
317
+ #: inc/admin.php:386
318
  msgid "Edit Widget"
319
  msgstr ""
320
 
321
+ #: inc/admin.php:387
322
  msgid "Duplicate Widget"
323
  msgstr ""
324
 
325
+ #: inc/admin.php:388
326
  msgid "Delete Widget"
327
  msgstr ""
328
 
329
+ #: inc/admin.php:389
330
  msgid "Copy Widget"
331
  msgstr ""
332
 
333
+ #: inc/admin.php:390
334
  msgid "Paste Widget Below"
335
  msgstr ""
336
 
337
+ #: inc/admin.php:392
338
  msgid "Row Actions"
339
  msgstr ""
340
 
341
+ #: inc/admin.php:393, tpl/js-templates.php:95
342
  msgid "Edit Row"
343
  msgstr ""
344
 
345
+ #: inc/admin.php:394, tpl/js-templates.php:96
346
  msgid "Duplicate Row"
347
  msgstr ""
348
 
349
+ #: inc/admin.php:395, tpl/js-templates.php:97
350
  msgid "Delete Row"
351
  msgstr ""
352
 
353
+ #: inc/admin.php:396
354
  msgid "Copy Row"
355
  msgstr ""
356
 
357
+ #: inc/admin.php:397
358
  msgid "Paste Row"
359
  msgstr ""
360
 
361
+ #: inc/admin.php:399
362
  msgid "Draft"
363
  msgstr ""
364
 
365
+ #: inc/admin.php:400
366
  msgid "Untitled"
367
  msgstr ""
368
 
369
+ #: inc/admin.php:402
370
  msgid "New Row"
371
  msgstr ""
372
 
373
+ #: inc/admin.php:403, inc/admin.php:411, inc/styles.php:184, tpl/js-templates.php:62
374
  msgid "Row"
375
  msgstr ""
376
 
377
+ #: inc/admin.php:406
378
  msgid "Hmmm... Adding layout elements is not enabled. Please check if Page Builder has been configured to allow adding elements."
379
  msgstr ""
380
 
381
+ #: inc/admin.php:407
382
  msgid "Add a {{%= items[0] %}} to get started."
383
  msgstr ""
384
 
385
+ #: inc/admin.php:408
386
  msgid "Add a {{%= items[0] %}} or {{%= items[1] %}} to get started."
387
  msgstr ""
388
 
389
+ #: inc/admin.php:409
390
  msgid "Add a {{%= items[0] %}}, {{%= items[1] %}} or {{%= items[2] %}} to get started."
391
  msgstr ""
392
 
393
+ #: inc/admin.php:410, inc/styles.php:318, tpl/js-templates.php:61
394
  msgid "Widget"
395
  msgstr ""
396
 
397
+ #: inc/admin.php:412, tpl/js-templates.php:63
398
  msgid "Prebuilt Layout"
399
  msgstr ""
400
 
401
+ #: inc/admin.php:414
402
  msgid "Read our %s if you need help."
403
  msgstr ""
404
 
405
+ #: inc/admin.php:415, tpl/js-templates.php:64
406
  msgid "documentation"
407
  msgstr ""
408
 
409
+ #: inc/admin.php:424
410
  msgid "Page Builder layouts"
411
  msgstr ""
412
 
413
+ #: inc/admin.php:425
414
  msgid "Error uploading or importing file."
415
  msgstr ""
416
 
417
+ #: inc/admin.php:432
418
  msgid "Unknown error. Failed to load the form. Please check your internet connection, contact your web site administrator, or try again later."
419
  msgstr ""
420
 
421
+ #. translators: This is the default name given to a user's home page
422
+ #: inc/admin.php:596, inc/home.php:26
423
  msgid "Home Page"
424
  msgstr ""
425
 
426
+ #: inc/admin.php:690
427
  msgid "Untitled Widget"
428
  msgstr ""
429
 
430
+ #: inc/admin.php:869
431
  msgid "You need to install 1{%1$s} to use the widget 2{%2$s}."
432
  msgstr ""
433
 
434
+ #: inc/admin.php:875
435
  msgid "Save and reload this page to start using the widget after you've installed it."
436
  msgstr ""
437
 
438
+ #: inc/admin.php:891
439
  msgid "The widget 1{%1$s} is not available. Please try locate and install the missing plugin. Post on the 2{support forums} if you need help."
440
  msgstr ""
441
 
442
+ #: inc/admin.php:1006, inc/styles-admin.php:23
443
  msgid "The supplied nonce is invalid."
444
  msgstr ""
445
 
446
+ #: inc/admin.php:1007, inc/styles-admin.php:24
447
  msgid "Invalid nonce."
448
  msgstr ""
449
 
450
+ #: inc/admin.php:1013
451
  msgid "Please specify the type of widget form to be rendered."
452
  msgstr ""
453
 
454
+ #: inc/admin.php:1014
455
  msgid "Missing widget type."
456
  msgstr ""
457
 
458
+ #: inc/admin.php:1075
459
  msgid "%s Widgets"
460
  msgstr ""
461
 
462
+ #: inc/admin.php:1118
463
  msgid "Get a lightbox addon for SiteOrigin widgets"
464
  msgstr ""
465
 
466
+ #: inc/admin.php:1122
467
  msgid "Get the row, cell and widget animations addon"
468
  msgstr ""
469
 
470
+ #: inc/admin.php:1126
471
  msgid "Get premium email support for SiteOrigin Page Builder"
472
  msgstr ""
473
 
474
+ #: inc/data/widgets-bundle.php:7
475
  msgid "SiteOrigin Editor"
476
  msgstr ""
477
 
478
+ #: inc/data/widgets-bundle.php:8
479
  msgid "A rich text editor"
480
  msgstr ""
481
 
482
+ #: inc/data/widgets-bundle.php:19
483
  msgid "SiteOrigin Button"
484
  msgstr ""
485
 
486
+ #: inc/data/widgets-bundle.php:20, widgets/widgets/button/button.php:8
487
  msgid "A simple button"
488
  msgstr ""
489
 
490
+ #: inc/data/widgets-bundle.php:31
491
  msgid "SiteOrigin Image"
492
  msgstr ""
493
 
494
+ #: inc/data/widgets-bundle.php:32
495
  msgid "Choose images from your media library."
496
  msgstr ""
497
 
498
+ #: inc/data/widgets-bundle.php:43
499
  msgid "SiteOrigin Slider"
500
  msgstr ""
501
 
502
+ #: inc/data/widgets-bundle.php:44
503
  msgid "A basic slider widget."
504
  msgstr ""
505
 
506
+ #: inc/data/widgets-bundle.php:55
507
  msgid "SiteOrigin Features"
508
  msgstr ""
509
 
510
+ #: inc/data/widgets-bundle.php:56
511
  msgid "Display site features as a collection of icons."
512
  msgstr ""
513
 
514
+ #: inc/data/widgets-bundle.php:67
515
  msgid "SiteOrigin Post Carousel"
516
  msgstr ""
517
 
518
+ #: inc/data/widgets-bundle.php:68
519
  msgid "Display your posts as a carousel."
520
  msgstr ""
521
 
522
+ #: inc/home.php:25
523
  msgid "Custom Home Page Builder"
524
  msgstr ""
525
 
526
+ #: inc/revisions.php:79
527
  msgid "Page Builder Content"
528
  msgstr ""
529
 
530
+ #: inc/settings.php:196, settings/tpl/settings.php:9
531
  msgid "SiteOrigin Page Builder"
532
  msgstr ""
533
 
534
+ #: inc/settings.php:223
535
  msgid "Page Builder Settings"
536
  msgstr ""
537
 
538
+ #: inc/settings.php:239
539
  msgid "General"
540
  msgstr ""
541
 
542
+ #: inc/settings.php:245
543
  msgid "Post Types"
544
  msgstr ""
545
 
546
+ #: inc/settings.php:247
547
  msgid "The post types to use Page Builder on."
548
  msgstr ""
549
 
550
+ #: inc/settings.php:252
551
  msgid "Live Editor Quick Link"
552
  msgstr ""
553
 
554
+ #: inc/settings.php:253
555
  msgid "Display a Live Editor button in the admin bar."
556
  msgstr ""
557
 
558
+ #: inc/settings.php:258
559
  msgid "Display Widget Count"
560
  msgstr ""
561
 
562
+ #: inc/settings.php:259
563
  msgid "Display a widget count in the admin lists of posts/pages where you're using Page Builder."
564
  msgstr ""
565
 
566
+ #: inc/settings.php:264
567
  msgid "Limit Parallax Motion"
568
  msgstr ""
569
 
570
+ #: inc/settings.php:265
571
  msgid "How many pixels of scrolling result in a single pixel of parallax motion. 0 means automatic. Lower values give more noticeable effect."
572
  msgstr ""
573
 
574
+ #: inc/settings.php:270
575
  msgid "Sidebars Emulator"
576
  msgstr ""
577
 
578
+ #: inc/settings.php:271
579
  msgid "Page Builder will create an emulated sidebar, that contains all widgets in the page."
580
  msgstr ""
581
 
582
+ #: inc/settings.php:276
583
  msgid "Upgrade Teaser"
584
  msgstr ""
585
 
586
+ #: inc/settings.php:278
587
  msgid "Display the %sSiteOrigin Premium%s upgrade teaser in the Page Builder toolbar."
588
  msgstr ""
589
 
590
+ #: inc/settings.php:286
591
  msgid "Default To Page Builder Interface"
592
  msgstr ""
593
 
594
+ #: inc/settings.php:287
595
  msgid "New posts/pages that you create will start with the Page Builder loaded."
596
  msgstr ""
597
 
598
+ #: inc/settings.php:293
599
  msgid "Widgets"
600
  msgstr ""
601
 
602
+ #: inc/settings.php:299
603
  msgid "Widget Title HTML"
604
  msgstr ""
605
 
606
+ #: inc/settings.php:300
607
  msgid "The HTML used for widget titles. {{title}} is replaced with the widget title."
608
  msgstr ""
609
 
610
+ #: inc/settings.php:305
611
  msgid "Add Widget Class"
612
  msgstr ""
613
 
614
+ #: inc/settings.php:306
615
  msgid "Add the widget class to Page Builder widgets. Disable this if you're experiencing conflicts."
616
  msgstr ""
617
 
618
+ #: inc/settings.php:311
619
  msgid "Legacy Bundled Widgets"
620
  msgstr ""
621
 
622
+ #: inc/settings.php:312
623
  msgid "Load legacy widgets from Page Builder 1."
624
  msgstr ""
625
 
626
+ #: inc/settings.php:318
627
  msgid "Display recommend widgets in Page Builder add widget dialog."
628
  msgstr ""
629
 
630
+ #: inc/settings.php:323
631
+ msgid "Instant Open Widgets"
632
+ msgstr ""
633
+
634
+ #: inc/settings.php:324
635
+ msgid "Open a widget form as soon as its added to a page."
636
+ msgstr ""
637
+
638
+ #: inc/settings.php:330, inc/styles-admin.php:88
639
  msgid "Layout"
640
  msgstr ""
641
 
642
+ #: inc/settings.php:338
643
  msgid "Responsive Layout"
644
  msgstr ""
645
 
646
+ #: inc/settings.php:339
647
  msgid "Collapse widgets, rows and columns on mobile devices."
648
  msgstr ""
649
 
650
+ #: inc/settings.php:344
651
  msgid "Use Tablet Layout"
652
  msgstr ""
653
 
654
+ #: inc/settings.php:345
655
  msgid "Collapses columns differently on tablet devices."
656
  msgstr ""
657
 
658
+ #: inc/settings.php:351
659
  msgid "Detect older browsers"
660
  msgstr ""
661
 
662
+ #: inc/settings.php:352
663
  msgid "Never"
664
  msgstr ""
665
 
666
+ #: inc/settings.php:353
667
  msgid "Always"
668
  msgstr ""
669
 
670
+ #: inc/settings.php:355
671
  msgid "Use Legacy Layout Engine"
672
  msgstr ""
673
 
674
+ #: inc/settings.php:356
675
  msgid "The CSS and HTML uses floats instead of flexbox for compatibility with very old browsers."
676
  msgstr ""
677
 
678
+ #: inc/settings.php:362
679
  msgid "Tablet Width"
680
  msgstr ""
681
 
682
+ #: inc/settings.php:363
683
  msgid "Device width, in pixels, to collapse into a tablet view ."
684
  msgstr ""
685
 
686
+ #: inc/settings.php:369
687
  msgid "Mobile Width"
688
  msgstr ""
689
 
690
+ #: inc/settings.php:370
691
  msgid "Device width, in pixels, to collapse into a mobile view ."
692
  msgstr ""
693
 
694
+ #: inc/settings.php:376
695
  msgid "Row/Widget Bottom Margin"
696
  msgstr ""
697
 
698
+ #: inc/settings.php:377
699
  msgid "Default margin below rows and widgets."
700
  msgstr ""
701
 
702
+ #: inc/settings.php:382
703
  msgid "Last Row With Margin"
704
  msgstr ""
705
 
706
+ #: inc/settings.php:383
707
  msgid "Allow margin in last row."
708
  msgstr ""
709
 
710
+ #: inc/settings.php:389
711
  msgid "Row Gutter"
712
  msgstr ""
713
 
714
+ #: inc/settings.php:390
715
  msgid "Default spacing between columns in each row."
716
  msgstr ""
717
 
718
+ #: inc/settings.php:396
719
  msgid "Full Width Container"
720
  msgstr ""
721
 
722
+ #: inc/settings.php:397
723
  msgid "The container used for the full width layout."
724
  msgstr ""
725
 
726
+ #: inc/settings.php:404
727
  msgid "Content"
728
  msgstr ""
729
 
730
+ #: inc/settings.php:410
731
  msgid "Copy Content"
732
  msgstr ""
733
 
734
+ #: inc/settings.php:411
735
  msgid "Copy content from Page Builder to post content."
736
  msgstr ""
737
 
738
+ #: inc/settings.php:416
739
  msgid "Copy Styles"
740
  msgstr ""
741
 
742
+ #: inc/settings.php:417
743
  msgid "Include styles into your Post Content. This keeps page layouts, even when Page Builder is deactivated."
744
  msgstr ""
745
 
746
+ #: inc/settings.php:464, inc/styles-admin.php:267
747
  msgid "Enabled"
748
  msgstr ""
749
 
750
+ #: inc/styles-admin.php:33
751
  msgid "Please specify the type of style form to be rendered."
752
  msgstr ""
753
 
754
+ #: inc/styles-admin.php:34
755
  msgid "Missing style form type."
756
  msgstr ""
757
 
758
+ #: inc/styles-admin.php:46
759
  msgid "Row Styles"
760
  msgstr ""
761
 
762
+ #: inc/styles-admin.php:51
763
  msgid "Cell%s Styles"
764
  msgstr ""
765
 
766
+ #: inc/styles-admin.php:55
767
  msgid "Widget Styles"
768
  msgstr ""
769
 
770
+ #: inc/styles-admin.php:84
771
  msgid "Attributes"
772
  msgstr ""
773
 
774
+ #: inc/styles-admin.php:92
775
  msgid "Design"
776
  msgstr ""
777
 
778
+ #: inc/styles-admin.php:102
779
  msgid "Theme"
780
  msgstr ""
781
 
782
+ #: inc/styles-admin.php:185, inc/styles.php:254, inc/styles.php:283
783
  msgid "Top"
784
  msgstr ""
785
 
786
+ #: inc/styles-admin.php:189, widgets/widgets/button/button.php:30
787
  msgid "Right"
788
  msgstr ""
789
 
790
+ #: inc/styles-admin.php:193, inc/styles.php:256, inc/styles.php:285
791
  msgid "Bottom"
792
  msgstr ""
793
 
794
+ #: inc/styles-admin.php:197, widgets/widgets/button/button.php:29
795
  msgid "Left"
796
  msgstr ""
797
 
798
+ #: inc/styles-admin.php:242
799
  msgid "Select Image"
800
  msgstr ""
801
 
802
+ #: inc/styles-admin.php:247
803
  msgid "Remove"
804
  msgstr ""
805
 
806
+ #: inc/styles-admin.php:250
807
  msgid "External URL"
808
  msgstr ""
809
 
810
+ #: inc/styles.php:79
811
  msgid "%s ID"
812
  msgstr ""
813
 
814
+ #: inc/styles.php:82
815
  msgid "A custom ID used for this %s."
816
  msgstr ""
817
 
818
+ #: inc/styles.php:87
819
  msgid "%s Class"
820
  msgstr ""
821
 
822
+ #: inc/styles.php:90
823
  msgid "A CSS class"
824
  msgstr ""
825
 
826
+ #: inc/styles.php:95
827
  msgid "CSS Styles"
828
  msgstr ""
829
 
830
+ #: inc/styles.php:98
831
  msgid "One style attribute per line."
832
  msgstr ""
833
 
834
+ #: inc/styles.php:103
835
  msgid "Mobile CSS Styles"
836
  msgstr ""
837
 
838
+ #: inc/styles.php:106
839
  msgid "CSS applied when in mobile view."
840
  msgstr ""
841
 
842
+ #: inc/styles.php:113
843
  msgid "Padding"
844
  msgstr ""
845
 
846
+ #: inc/styles.php:116
847
  msgid "Padding around the entire %s."
848
  msgstr ""
849
 
850
+ #: inc/styles.php:122
851
  msgid "Mobile Padding"
852
  msgstr ""
853
 
854
+ #: inc/styles.php:125
855
  msgid "Padding when on mobile devices."
856
  msgstr ""
857
 
858
+ #: inc/styles.php:133
859
  msgid "Background Color"
860
  msgstr ""
861
 
862
+ #: inc/styles.php:136
863
  msgid "Background color of the %s."
864
  msgstr ""
865
 
866
+ #: inc/styles.php:141
867
  msgid "Background Image"
868
  msgstr ""
869
 
870
+ #: inc/styles.php:144
871
  msgid "Background image of the %s."
872
  msgstr ""
873
 
874
+ #: inc/styles.php:149
875
  msgid "Background Image Display"
876
  msgstr ""
877
 
878
+ #: inc/styles.php:153
879
  msgid "Tiled Image"
880
  msgstr ""
881
 
882
+ #: inc/styles.php:154
883
  msgid "Cover"
884
  msgstr ""
885
 
886
+ #: inc/styles.php:155
887
  msgid "Centered, with original size"
888
  msgstr ""
889
 
890
+ #: inc/styles.php:156
891
  msgid "Fixed"
892
  msgstr ""
893
 
894
+ #: inc/styles.php:157
895
  msgid "Parallax"
896
  msgstr ""
897
 
898
+ #: inc/styles.php:158
899
  msgid "Parallax (Original Size)"
900
  msgstr ""
901
 
902
+ #: inc/styles.php:160
903
  msgid "How the background image is displayed."
904
  msgstr ""
905
 
906
+ #: inc/styles.php:165
907
  msgid "Border Color"
908
  msgstr ""
909
 
910
+ #: inc/styles.php:168
911
  msgid "Border color of the %s."
912
  msgstr ""
913
 
914
+ #: inc/styles.php:187
915
  msgid "Cell Class"
916
  msgstr ""
917
 
918
+ #: inc/styles.php:190
919
  msgid "Class added to all cells in this row."
920
  msgstr ""
921
 
922
+ #: inc/styles.php:197
923
  msgid "Bottom Margin"
924
  msgstr ""
925
 
926
+ #: inc/styles.php:200
927
  msgid "Space below the row. Default is %spx."
928
  msgstr ""
929
 
930
+ #: inc/styles.php:205
931
  msgid "Gutter"
932
  msgstr ""
933
 
934
+ #: inc/styles.php:208
935
  msgid "Amount of space between cells. Default is %spx."
936
  msgstr ""
937
 
938
+ #: inc/styles.php:213
939
  msgid "Row Layout"
940
  msgstr ""
941
 
942
+ #: inc/styles.php:217, inc/styles.php:230
943
  msgid "Standard"
944
  msgstr ""
945
 
946
+ #: inc/styles.php:218
947
  msgid "Full Width"
948
  msgstr ""
949
 
950
+ #: inc/styles.php:219
951
  msgid "Full Width Stretched"
952
  msgstr ""
953
 
954
+ #: inc/styles.php:220
955
+ msgid "Full Width Stretched Padded"
956
+ msgstr ""
957
+
958
+ #: inc/styles.php:226
959
  msgid "Collapse Behaviour"
960
  msgstr ""
961
 
962
+ #: inc/styles.php:231
963
  msgid "No Collapse"
964
  msgstr ""
965
 
966
+ #: inc/styles.php:237
967
  msgid "Collapse Order"
968
  msgstr ""
969
 
970
+ #: inc/styles.php:241, inc/widgets/post-loop.php:325, widgets/widgets.php:635, widgets/widgets.php:757
971
  msgid "Default"
972
  msgstr ""
973
 
974
+ #: inc/styles.php:242
975
  msgid "Left on Top"
976
  msgstr ""
977
 
978
+ #: inc/styles.php:243
979
  msgid "Right on Top"
980
  msgstr ""
981
 
982
+ #: inc/styles.php:250
983
  msgid "Cell Vertical Alignment"
984
  msgstr ""
985
 
986
+ #: inc/styles.php:255, inc/styles.php:284, widgets/widgets/button/button.php:31
987
  msgid "Center"
988
  msgstr ""
989
 
990
+ #: inc/styles.php:257, inc/styles.php:286
991
  msgid "Stretch"
992
  msgstr ""
993
 
994
+ #: inc/styles.php:275
995
  msgid "Cell"
996
  msgstr ""
997
 
998
+ #: inc/styles.php:278
999
  msgid "Vertical Alignment"
1000
  msgstr ""
1001
 
1002
+ #: inc/styles.php:282
1003
  msgid "Use row setting"
1004
  msgstr ""
1005
 
1006
+ #: inc/styles.php:292, inc/styles.php:332
1007
  msgid "Font Color"
1008
  msgstr ""
1009
 
1010
+ #: inc/styles.php:295
1011
  msgid "Color of text inside this cell."
1012
  msgstr ""
1013
 
1014
+ #: inc/styles.php:300, inc/styles.php:340
1015
  msgid "Links Color"
1016
  msgstr ""
1017
 
1018
+ #: inc/styles.php:303
1019
  msgid "Color of links inside this cell."
1020
  msgstr ""
1021
 
1022
+ #: inc/styles.php:321
1023
  msgid "Margin"
1024
  msgstr ""
1025
 
1026
+ #: inc/styles.php:324
1027
  msgid "Margins around the widget."
1028
  msgstr ""
1029
 
1030
+ #: inc/styles.php:335
1031
  msgid "Color of text inside this widget."
1032
  msgstr ""
1033
 
1034
+ #: inc/styles.php:343
1035
  msgid "Color of links inside this widget."
1036
  msgstr ""
1037
 
1038
+ #. translators: This is the name of a widget
1039
+ #: inc/widgets/layout.php:13
1040
  msgid "Layout Builder"
1041
  msgstr ""
1042
 
1043
+ #: inc/widgets/layout.php:15
1044
  msgid "A complete SiteOrigin Page Builder layout as a widget."
1045
  msgstr ""
1046
 
1047
+ #: inc/widgets/layout.php:94
1048
  msgid "Open Builder"
1049
  msgstr ""
1050
 
1051
+ #: inc/widgets/post-content.php:12
1052
  msgid "Post Content"
1053
  msgstr ""
1054
 
1055
+ #: inc/widgets/post-content.php:14
1056
  msgid "Displays content from the current post."
1057
  msgstr ""
1058
 
1059
+ #: inc/widgets/post-content.php:60, inc/widgets/post-loop.php:299, widgets/widgets.php:608, widgets/widgets.php:783
1060
  msgid "None"
1061
  msgstr ""
1062
 
1063
+ #: inc/widgets/post-content.php:61, inc/widgets/post-loop-helper.php:38, inc/widgets/post-loop.php:246, widgets/widgets/call-to-action/call-to-action.php:15, widgets/widgets/list/list.php:15, widgets/widgets/price-box/price-box.php:15
1064
  msgid "Title"
1065
  msgstr ""
1066
 
1067
+ #: inc/widgets/post-content.php:62
1068
  msgid "Featured Image"
1069
  msgstr ""
1070
 
1071
+ #: inc/widgets/post-content.php:67
1072
  msgid "Display Content"
1073
  msgstr ""
1074
 
1075
+ #: inc/widgets/post-loop-helper.php:29, inc/widgets/post-loop.php:23
1076
  msgid "Post Loop"
1077
  msgstr ""
1078
 
1079
+ #: inc/widgets/post-loop-helper.php:31, inc/widgets/post-loop.php:25
1080
  msgid "Displays a post loop."
1081
  msgstr ""
1082
 
1083
+ #: inc/widgets/post-loop-helper.php:42, inc/widgets/post-loop.php:250
1084
  msgid "Template"
1085
  msgstr ""
1086
 
1087
+ #: inc/widgets/post-loop-helper.php:49, inc/widgets/post-loop.php:268
1088
  msgid "If the template supports it, cut posts and display the more link."
1089
  msgstr ""
1090
 
1091
+ #: inc/widgets/post-loop.php:216
1092
  msgid "Your theme doesn't have any post loops."
1093
  msgstr ""
1094
 
1095
+ #: inc/widgets/post-loop.php:266
1096
  msgid "More Link"
1097
  msgstr ""
1098
 
1099
+ #: inc/widgets/post-loop.php:283, widgets/widgets.php:594
1100
  msgid "Post Type"
1101
  msgstr ""
1102
 
1103
+ #: inc/widgets/post-loop.php:292, widgets/widgets.php:601
1104
  msgid "Posts Per Page"
1105
  msgstr ""
1106
 
1107
+ #: inc/widgets/post-loop.php:297, widgets/widgets.php:606
1108
  msgid "Order By"
1109
  msgstr ""
1110
 
1111
+ #: inc/widgets/post-loop.php:300, widgets/widgets.php:609
1112
  msgid "Post ID"
1113
  msgstr ""
1114
 
1115
+ #: inc/widgets/post-loop.php:301, widgets/widgets.php:610
1116
  msgid "Author"
1117
  msgstr ""
1118
 
1119
+ #: inc/widgets/post-loop.php:302, inc/widgets/post-loop.php:303, widgets/widgets.php:611, widgets/widgets.php:612, widgets/widgets/testimonial/testimonial.php:15
1120
  msgid "Name"
1121
  msgstr ""
1122
 
1123
+ #: inc/widgets/post-loop.php:304, widgets/widgets.php:613
1124
  msgid "Date"
1125
  msgstr ""
1126
 
1127
+ #: inc/widgets/post-loop.php:305, widgets/widgets.php:614
1128
  msgid "Modified"
1129
  msgstr ""
1130
 
1131
+ #: inc/widgets/post-loop.php:306, widgets/widgets.php:615
1132
  msgid "Parent"
1133
  msgstr ""
1134
 
1135
+ #: inc/widgets/post-loop.php:307, widgets/widgets.php:616
1136
  msgid "Random"
1137
  msgstr ""
1138
 
1139
+ #: inc/widgets/post-loop.php:308, widgets/widgets.php:617
1140
  msgid "Comment Count"
1141
  msgstr ""
1142
 
1143
+ #: inc/widgets/post-loop.php:309, widgets/widgets.php:618
1144
  msgid "Menu Order"
1145
  msgstr ""
1146
 
1147
+ #: inc/widgets/post-loop.php:310
1148
  msgid "Post In Order"
1149
  msgstr ""
1150
 
1151
+ #: inc/widgets/post-loop.php:315, widgets/widgets.php:624
1152
  msgid "Order"
1153
  msgstr ""
1154
 
1155
+ #: inc/widgets/post-loop.php:317, widgets/widgets.php:627
1156
  msgid "Descending"
1157
  msgstr ""
1158
 
1159
+ #: inc/widgets/post-loop.php:318, widgets/widgets.php:626
1160
  msgid "Ascending"
1161
  msgstr ""
1162
 
1163
+ #: inc/widgets/post-loop.php:323, widgets/widgets.php:633
1164
  msgid "Sticky Posts"
1165
  msgstr ""
1166
 
1167
+ #: inc/widgets/post-loop.php:326, widgets/widgets.php:636
1168
  msgid "Ignore Sticky"
1169
  msgstr ""
1170
 
1171
+ #: inc/widgets/post-loop.php:327, widgets/widgets.php:637
1172
  msgid "Exclude Sticky"
1173
  msgstr ""
1174
 
1175
+ #: inc/widgets/post-loop.php:328, widgets/widgets.php:638
1176
  msgid "Only Sticky"
1177
  msgstr ""
1178
 
1179
+ #: inc/widgets/post-loop.php:333
1180
  msgid "Additional "
1181
  msgstr ""
1182
 
1183
+ #: inc/widgets/post-loop.php:340, widgets/widgets.php:648
1184
  msgid "Additional query arguments. See 1{query_posts}."
1185
  msgstr ""
1186
 
1187
+ #: settings/tpl/help.php:6
1188
  msgid "Please read the 1{settings guide} of the Page Builder documentation for help."
1189
  msgstr ""
1190
 
1191
+ #: settings/tpl/settings.php:12
1192
  msgid "Search Settings"
1193
  msgstr ""
1194
 
1195
+ #: settings/tpl/settings.php:29
1196
  msgid "Settings Saved"
1197
  msgstr ""
1198
 
1199
+ #: settings/tpl/settings.php:78
1200
  msgid "Save Settings"
1201
  msgstr ""
1202
 
1203
+ #: siteorigin-panels.php:325
1204
  msgid "Read More"
1205
  msgstr ""
1206
 
1207
+ #: siteorigin-panels.php:391
1208
  msgid "Edit Home Page"
1209
  msgstr ""
1210
 
1211
+ #: siteorigin-panels.php:411, tpl/js-templates.php:34, tpl/js-templates.php:36
1212
  msgid "Live Editor"
1213
  msgstr ""
1214
 
1215
+ #: tpl/admin-home-page.php:21
1216
  msgid "On"
1217
  msgstr ""
1218
 
1219
+ #: tpl/admin-home-page.php:21
1220
  msgid "Off"
1221
  msgstr ""
1222
 
1223
+ #: tpl/admin-home-page.php:25
1224
  msgid "Custom Home Page"
1225
  msgstr ""
1226
 
1227
+ #: tpl/admin-home-page.php:41
1228
  msgid "Home page updated. 1{View page}."
1229
  msgstr ""
1230
 
1231
+ #: tpl/admin-home-page.php:60
1232
  msgid "Save Home Page"
1233
  msgstr ""
1234
 
1235
+ #: tpl/admin-home-page.php:64
1236
  msgid "This interface requires Javascript"
1237
  msgstr ""
1238
 
1239
+ #: tpl/help.php:2
1240
  msgid "You can use SiteOrigin Page Builder to create home and sub pages, filled your own widgets."
1241
  msgstr ""
1242
 
1243
+ #: tpl/help.php:3
1244
  msgid "The page layouts are responsive and fully customizable."
1245
  msgstr ""
1246
 
1247
+ #: tpl/help.php:18
1248
  msgid "Read the 1{full documentation} on SiteOrigin. Ask a question on our 2{support forum} if you need help and sign up to 3{our newsletter} to stay up to date with future developments."
1249
  msgstr ""
1250
 
1251
+ #: tpl/js-templates.php:12, tpl/js-templates.php:14
1252
  msgid "Add Widget"
1253
  msgstr ""
1254
 
1255
+ #: tpl/js-templates.php:22, tpl/js-templates.php:383
1256
  msgid "Prebuilt Layouts"
1257
  msgstr ""
1258
 
1259
+ #: tpl/js-templates.php:24
1260
  msgid "Layouts"
1261
  msgstr ""
1262
 
1263
+ #: tpl/js-templates.php:29
1264
  msgid "Edit History"
1265
  msgstr ""
1266
 
1267
+ #: tpl/js-templates.php:31
1268
  msgid "History"
1269
  msgstr ""
1270
 
1271
+ #: tpl/js-templates.php:42
1272
  msgid "Page Builder Addons"
1273
  msgstr ""
1274
 
1275
+ #: tpl/js-templates.php:48
1276
  msgid "Revert to Editor"
1277
  msgstr ""
1278
 
1279
+ #: tpl/js-templates.php:60
1280
  msgid "Add a %s, %s or %s to get started. Read our %s if you need help."
1281
  msgstr ""
1282
 
1283
+ #: tpl/js-templates.php:71
1284
  msgid "Pro Tip"
1285
  msgstr ""
1286
 
1287
+ #: tpl/js-templates.php:141
1288
  msgid "Edit"
1289
  msgstr ""
1290
 
1291
+ #: tpl/js-templates.php:142, tpl/js-templates.php:264, tpl/js-templates.php:349
1292
  msgid "Duplicate"
1293
  msgstr ""
1294
 
1295
+ #: tpl/js-templates.php:143, tpl/js-templates.php:263, tpl/js-templates.php:348
1296
  msgid "Delete"
1297
  msgstr ""
1298
 
1299
+ #: tpl/js-templates.php:202, tpl/js-templates.php:267, tpl/js-templates.php:356, tpl/js-templates.php:550
1300
  msgid "Done"
1301
  msgstr ""
1302
 
1303
+ #: tpl/js-templates.php:216
1304
  msgid "Add New Widget %s"
1305
  msgstr ""
1306
 
1307
+ #: tpl/js-templates.php:232
1308
  msgid "Close"
1309
  msgstr ""
1310
 
1311
+ #: tpl/js-templates.php:317
1312
  msgid "Left to Right"
1313
  msgstr ""
1314
 
1315
+ #: tpl/js-templates.php:318
1316
  msgid "Right to Left"
1317
  msgstr ""
1318
 
1319
+ #: tpl/js-templates.php:329
1320
  msgid "1{Set row layout}: %1$s columns with a ratio of %2$s going from %3$s"
1321
  msgstr ""
1322
 
1323
+ #: tpl/js-templates.php:335
1324
  msgid "Set"
1325
  msgstr ""
1326
 
1327
+ #: tpl/js-templates.php:354, tpl/js-templates.php:412
1328
  msgid "Insert"
1329
  msgstr ""
1330
 
1331
+ #: tpl/js-templates.php:374
1332
  msgid "Page Builder Layouts"
1333
  msgstr ""
1334
 
1335
+ #: tpl/js-templates.php:378
1336
  msgid "Search"
1337
  msgstr ""
1338
 
1339
+ #: tpl/js-templates.php:393
1340
  msgid "Import/Export"
1341
  msgstr ""
1342
 
1343
+ #: tpl/js-templates.php:400
1344
  msgid "Clone: %s"
1345
  msgstr ""
1346
 
1347
+ #: tpl/js-templates.php:416
1348
  msgid "Insert after"
1349
  msgstr ""
1350
 
1351
+ #: tpl/js-templates.php:417
1352
  msgid "Insert before"
1353
  msgstr ""
1354
 
1355
+ #: tpl/js-templates.php:418
1356
  msgid "Replace current"
1357
  msgstr ""
1358
 
1359
+ #: tpl/js-templates.php:429
1360
  msgid "Do you want to browse the Prebuilt Layouts directory?"
1361
  msgstr ""
1362
 
1363
+ #: tpl/js-templates.php:430
1364
  msgid "Enable"
1365
  msgstr ""
1366
 
1367
+ #: tpl/js-templates.php:443
1368
  msgid "Your search didn't return any results"
1369
  msgstr ""
1370
 
1371
+ #: tpl/js-templates.php:471
1372
  msgid "Previous"
1373
  msgstr ""
1374
 
1375
+ #: tpl/js-templates.php:472
1376
  msgid "Next"
1377
  msgstr ""
1378
 
1379
+ #: tpl/js-templates.php:482
1380
  msgid "Drop import file here"
1381
  msgstr ""
1382
 
1383
+ #: tpl/js-templates.php:483
1384
  msgid "Or"
1385
  msgstr ""
1386
 
1387
+ #: tpl/js-templates.php:486
1388
  msgid "Select Import File"
1389
  msgstr ""
1390
 
1391
+ #: tpl/js-templates.php:500
1392
  msgid "Download Layout"
1393
  msgstr ""
1394
 
1395
+ #: tpl/js-templates.php:511
1396
  msgid "Page Builder Change History"
1397
  msgstr ""
1398
 
1399
+ #: tpl/js-templates.php:526
1400
  msgid "Restore Version"
1401
  msgstr ""
1402
 
1403
+ #: tpl/js-templates.php:544, tpl/js-templates.php:545
1404
  msgid "Collapse"
1405
  msgstr ""
1406
 
1407
+ #: tpl/js-templates.php:544
1408
  msgid "Expand"
1409
  msgstr ""
1410
 
1411
+ #: tpl/js-templates.php:552
1412
  msgid "Toggle desktop mode"
1413
  msgstr ""
1414
 
1415
+ #: tpl/js-templates.php:555
1416
  msgid "Toggle tablet mode"
1417
  msgstr ""
1418
 
1419
+ #: tpl/js-templates.php:558
1420
  msgid "Toggle mobile mode"
1421
  msgstr ""
1422
 
1423
+ #: tpl/js-templates.php:597
1424
  msgid "No Results"
1425
  msgstr ""
1426
 
1427
+ #: widgets/widgets.php:161
1428
  msgid "This is a legacy widget. "
1429
  msgstr ""
1430
 
1431
+ #: widgets/widgets.php:162
1432
  msgid "Ideally you should move to using widgets from the SiteOrigin Widgets Bundle instead. "
1433
  msgstr ""
1434
 
1435
+ #: widgets/widgets.php:163
1436
  msgid "It'll be moved to a separate plugin after Page Builder 2.6 is released. "
1437
  msgstr ""
1438
 
1439
+ #: widgets/widgets.php:220
1440
  msgid "Style"
1441
  msgstr ""
1442
 
1443
+ #: widgets/widgets.php:244
1444
  msgid "%s Style"
1445
  msgstr ""
1446
 
1447
+ #: widgets/widgets.php:644
1448
  msgid "Additional Arguments"
1449
  msgstr ""
1450
 
1451
+ #: widgets/widgets.php:705
1452
  msgid "Gallery (PB)"
1453
  msgstr ""
1454
 
1455
+ #: widgets/widgets.php:707
1456
  msgid "Displays a gallery."
1457
  msgstr ""
1458
 
1459
+ #: widgets/widgets.php:746
1460
  msgid "Gallery Images"
1461
  msgstr ""
1462
 
1463
+ #: widgets/widgets.php:747
1464
  msgid "edit gallery"
1465
  msgstr ""
1466
 
1467
+ #: widgets/widgets.php:751
1468
  msgid "Comma separated attachment IDs. Defaults to all current page's attachments."
1469
  msgstr ""
1470
 
1471
+ #: widgets/widgets.php:755
1472
  msgid "Image Size"
1473
  msgstr ""
1474
 
1475
+ #: widgets/widgets.php:758
1476
  msgid "Large"
1477
  msgstr ""
1478
 
1479
+ #: widgets/widgets.php:759
1480
  msgid "Medium"
1481
  msgstr ""
1482
 
1483
+ #: widgets/widgets.php:760
1484
  msgid "Thumbnail"
1485
  msgstr ""
1486
 
1487
+ #: widgets/widgets.php:761
1488
  msgid "Full"
1489
  msgstr ""
1490
 
1491
+ #: widgets/widgets.php:769
1492
  msgid "Gallery Type"
1493
  msgstr ""
1494
 
1495
+ #: widgets/widgets.php:774
1496
  msgid "Columns"
1497
  msgstr ""
1498
 
1499
+ #: widgets/widgets.php:779
1500
  msgid "Link To"
1501
  msgstr ""
1502
 
1503
+ #: widgets/widgets.php:781
1504
  msgid "Attachment Page"
1505
  msgstr ""
1506
 
1507
+ #: widgets/widgets.php:782
1508
  msgid "File"
1509
  msgstr ""
1510
 
1511
+ #: widgets/widgets.php:800
1512
  msgid "Image (PB)"
1513
  msgstr ""
1514
 
1515
+ #: widgets/widgets.php:802
1516
  msgid "Displays a simple image."
1517
  msgstr ""
1518
 
1519
+ #: widgets/widgets.php:835, widgets/widgets/animated-image/animated-image.php:15
1520
  msgid "Image URL"
1521
  msgstr ""
1522
 
1523
+ #: widgets/widgets.php:839, widgets/widgets/button/button.php:19
1524
  msgid "Destination URL"
1525
  msgstr ""
1526
 
1527
+ #: widgets/widgets.php:853
1528
  msgid "Embedded Video (PB)"
1529
  msgstr ""
1530
 
1531
+ #: widgets/widgets.php:855
1532
  msgid "Embeds a video."
1533
  msgstr ""
1534
 
1535
+ #: widgets/widgets.php:893
1536
  msgid "Video"
1537
  msgstr ""
1538
 
1539
+ #: widgets/widgets.php:909
1540
  msgid "Self Hosted Video (PB)"
1541
  msgstr ""
1542
 
1543
+ #: widgets/widgets.php:911
1544
  msgid "A self hosted video player."
1545
  msgstr ""
1546
 
1547
+ #: widgets/widgets.php:953
1548
  msgid "Video URL"
1549
  msgstr ""
1550
 
1551
+ #: widgets/widgets.php:957
1552
  msgid "Poster URL"
1553
  msgstr ""
1554
 
1555
+ #: widgets/widgets.php:959
1556
  msgid "An image that displays before the video starts playing."
1557
  msgstr ""
1558
 
1559
+ #: widgets/widgets.php:964
1560
  msgid "Auto Play Video"
1561
  msgstr ""
1562
 
1563
+ #: widgets/widgets/animated-image/animated-image.php:6
1564
  msgid "Animated Image (PB)"
1565
  msgstr ""
1566
 
1567
+ #: widgets/widgets/animated-image/animated-image.php:8
1568
  msgid "An image that animates in when it enters the screen."
1569
  msgstr ""
1570
 
1571
+ #: widgets/widgets/animated-image/animated-image.php:19
1572
  msgid "Animation"
1573
  msgstr ""
1574
 
1575
+ #: widgets/widgets/animated-image/animated-image.php:21
1576
  msgid "Fade In"
1577
  msgstr ""
1578
 
1579
+ #: widgets/widgets/animated-image/animated-image.php:22
1580
  msgid "Slide Up"
1581
  msgstr ""
1582
 
1583
+ #: widgets/widgets/animated-image/animated-image.php:23
1584
  msgid "Slide Down"
1585
  msgstr ""
1586
 
1587
+ #: widgets/widgets/animated-image/animated-image.php:24
1588
  msgid "Slide Left"
1589
  msgstr ""
1590
 
1591
+ #: widgets/widgets/animated-image/animated-image.php:25
1592
  msgid "Slide Right"
1593
  msgstr ""
1594
 
1595
+ #: widgets/widgets/button/button.php:6
1596
  msgid "Button (PB)"
1597
  msgstr ""
1598
 
1599
+ #: widgets/widgets/button/button.php:15, widgets/widgets/list/list.php:19, widgets/widgets/testimonial/testimonial.php:27
1600
  msgid "Text"
1601
  msgstr ""
1602
 
1603
+ #: widgets/widgets/button/button.php:23, widgets/widgets/call-to-action/call-to-action.php:31, widgets/widgets/price-box/price-box.php:44, widgets/widgets/testimonial/testimonial.php:36
1604
  msgid "Open In New Window"
1605
  msgstr ""
1606
 
1607
+ #: widgets/widgets/button/button.php:27
1608
  msgid "Button Alignment"
1609
  msgstr ""
1610
 
1611
+ #: widgets/widgets/button/button.php:32
1612
  msgid "Justify"
1613
  msgstr ""
1614
 
1615
+ #: widgets/widgets/call-to-action/call-to-action.php:6
1616
  msgid "Call To Action (PB)"
1617
  msgstr ""
1618
 
1619
+ #: widgets/widgets/call-to-action/call-to-action.php:8
1620
  msgid "A Call to Action block"
1621
  msgstr ""
1622
 
1623
+ #: widgets/widgets/call-to-action/call-to-action.php:19
1624
  msgid "Sub Title"
1625
  msgstr ""
1626
 
1627
+ #: widgets/widgets/call-to-action/call-to-action.php:23, widgets/widgets/price-box/price-box.php:36
1628
  msgid "Button Text"
1629
  msgstr ""
1630
 
1631
+ #: widgets/widgets/call-to-action/call-to-action.php:27, widgets/widgets/price-box/price-box.php:40
1632
  msgid "Button URL"
1633
  msgstr ""
1634
 
1635
+ #: widgets/widgets/call-to-action/call-to-action.php:37, widgets/widgets/price-box/price-box.php:49
1636
  msgid "Button"
1637
  msgstr ""
1638
 
1639
+ #: widgets/widgets/list/list.php:6
1640
  msgid "List (PB)"
1641
  msgstr ""
1642
 
1643
+ #: widgets/widgets/list/list.php:8, widgets/widgets/price-box/price-box.php:8
1644
  msgid "Displays a bullet list of elements"
1645
  msgstr ""
1646
 
1647
+ #: widgets/widgets/list/list.php:20, widgets/widgets/price-box/price-box.php:32
1648
  msgid "Start each new point with an asterisk (*)"
1649
  msgstr ""
1650
 
1651
+ #: widgets/widgets/price-box/price-box.php:6
1652
  msgid "Price Box (PB)"
1653
  msgstr ""
1654
 
1655
+ #: widgets/widgets/price-box/price-box.php:19
1656
  msgid "Price"
1657
  msgstr ""
1658
 
1659
+ #: widgets/widgets/price-box/price-box.php:23
1660
  msgid "Per"
1661
  msgstr ""
1662
 
1663
+ #: widgets/widgets/price-box/price-box.php:27
1664
  msgid "Information Text"
1665
  msgstr ""
1666
 
1667
+ #: widgets/widgets/price-box/price-box.php:31
1668
  msgid "Features Text"
1669
  msgstr ""
1670
 
1671
+ #: widgets/widgets/price-box/price-box.php:50
1672
  msgid "Feature List"
1673
  msgstr ""
1674
 
1675
+ #: widgets/widgets/testimonial/testimonial.php:6
1676
  msgid "Testimonial (PB)"
1677
  msgstr ""
1678
 
1679
+ #: widgets/widgets/testimonial/testimonial.php:8
1680
  msgid "Displays a bullet list of points"
1681
  msgstr ""
1682
 
1683
+ #: widgets/widgets/testimonial/testimonial.php:19
1684
  msgid "Location"
1685
  msgstr ""
1686
 
1687
+ #: widgets/widgets/testimonial/testimonial.php:23
1688
  msgid "Image"
1689
  msgstr ""
1690
 
1691
+ #. translators: Uniform Resource Locator
1692
+ #: widgets/widgets/testimonial/testimonial.php:32
1693
  msgid "URL"
1694
  msgstr ""
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Tags: page builder, responsive, widget, widgets, builder, page, admin, gallery, content, cms, pages, post, css, layout, grid
3
  Requires at least: 4.4
4
  Tested up to: 4.9
5
- Stable tag: 2.6.9
6
- Build time: 2018-06-07T22:18:52+02:00
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl.html
9
  Donate link: https://siteorigin.com/downloads/contribution/
@@ -96,6 +96,20 @@ We've tried to ensure that Page Builder is compatible with most plugin widgets.
96
 
97
  == Changelog ==
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  = 2.6.9 - 7 June 2018 =
100
  * Changed dashboard feed URL to use cloudfront for caching.
101
 
2
  Tags: page builder, responsive, widget, widgets, builder, page, admin, gallery, content, cms, pages, post, css, layout, grid
3
  Requires at least: 4.4
4
  Tested up to: 4.9
5
+ Stable tag: 2.7.0
6
+ Build time: 2018-06-27T14:38:16+02:00
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl.html
9
  Donate link: https://siteorigin.com/downloads/contribution/
96
 
97
  == Changelog ==
98
 
99
+ = 2.7.0 - 27 June 2018 =
100
+ * New setting to automatically open widget forms when they're added.
101
+ * New row layout option to make provision for row style padding in full width stretched rows.
102
+ * Make sure prebuilt layouts path is a real path.
103
+ * Better compatibility with Yoast SEO.
104
+ * Row Cell options: Prevent Yoast from resizing fields.
105
+ * Added `panels_data` filter to `generate_css`.
106
+ * Don’t hide the upload UI before initializing it.
107
+ * Fix collapse order in legacy layout.
108
+ * Clear SO widgets' id and timestamp metadata when cloning a PB Page.
109
+ * Fix layout imports in Edge.
110
+ * Apply bottom margin custom styles to main wrapper where PB adds it's bottom margin, to allow users to override.
111
+ * Use https for layouts directory.
112
+
113
  = 2.6.9 - 7 June 2018 =
114
  * Changed dashboard feed URL to use cloudfront for caching.
115
 
siteorigin-panels.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Page Builder by SiteOrigin
4
  Plugin URI: https://siteorigin.com/page-builder/
5
  Description: A drag and drop, responsive page builder that simplifies building your website.
6
- Version: 2.6.9
7
  Author: SiteOrigin
8
  Author URI: https://siteorigin.com
9
  License: GPL3
@@ -11,12 +11,12 @@ License URI: http://www.gnu.org/licenses/gpl.html
11
  Donate link: http://siteorigin.com/page-builder/#donate
12
  */
13
 
14
- define( 'SITEORIGIN_PANELS_VERSION', '2.6.9' );
15
  if ( ! defined( 'SITEORIGIN_PANELS_JS_SUFFIX' ) ) {
16
  define( 'SITEORIGIN_PANELS_JS_SUFFIX', '.min' );
17
  }
18
  define( 'SITEORIGIN_PANELS_CSS_SUFFIX', '.min' );
19
- define( 'SITEORIGIN_PANELS_VERSION_SUFFIX', '-269' );
20
 
21
  require_once plugin_dir_path( __FILE__ ) . 'inc/functions.php';
22
 
3
  Plugin Name: Page Builder by SiteOrigin
4
  Plugin URI: https://siteorigin.com/page-builder/
5
  Description: A drag and drop, responsive page builder that simplifies building your website.
6
+ Version: 2.7.0
7
  Author: SiteOrigin
8
  Author URI: https://siteorigin.com
9
  License: GPL3
11
  Donate link: http://siteorigin.com/page-builder/#donate
12
  */
13
 
14
+ define( 'SITEORIGIN_PANELS_VERSION', '2.7.0' );
15
  if ( ! defined( 'SITEORIGIN_PANELS_JS_SUFFIX' ) ) {
16
  define( 'SITEORIGIN_PANELS_JS_SUFFIX', '.min' );
17
  }
18
  define( 'SITEORIGIN_PANELS_CSS_SUFFIX', '.min' );
19
+ define( 'SITEORIGIN_PANELS_VERSION_SUFFIX', '-270' );
20
 
21
  require_once plugin_dir_path( __FILE__ ) . 'inc/functions.php';
22