Version Description
- New color picker
- Extended the IP field on stats table
- Removed filter for temporary email services (can be added in the security page)
- Added support to show the last regular newsletter (not private) adding to the home url ?na=view&id=last
- Hero and image blocks now use high res images
Download this release
Release Info
Developer | satollo |
Plugin | Newsletter |
Version | 6.9.8 |
Comparing to | |
See all releases |
Code changes from version 6.9.7 to 6.9.8
- admin.css +14 -2
- admin.js +13 -1
- admin.min.css +1 -1
- admin.min.js +1 -1
- css/fields.css +22 -5
- css/fields.min.css +1 -0
- emails/blocks/hero/block-full.php +11 -13
- emails/blocks/hero/block-left.php +13 -17
- emails/blocks/hero/block-right.php +14 -18
- emails/blocks/hero/block.php +3 -5
- emails/blocks/image/block.php +9 -11
- emails/emails.php +16 -3
- emails/tnp-composer/_scripts/newsletter-builder-v2.js +14 -7
- emails/tnp-composer/_scripts/newsletter-builder-v2.min.js +3 -3
- emails/tnp-composer/_scripts/newsletter-builder.js +3 -3
- emails/tnp-composer/css/newsletter.css +5 -0
- emails/tnp-composer/css/newsletter.min.css +1 -0
- emails/tnp-composer/index-v2.php +1 -1
- includes/composer.php +43 -14
- includes/controls.php +31 -30
- includes/fields.php +141 -78
- includes/helper.php +16 -5
- includes/module.php +6 -17
- main/extensions.php +3 -0
- plugin.php +20 -17
- readme.txt +12 -1
- statistics/statistics.php +2 -2
- users/edit.php +2 -0
- vendor/spectrum/spectrum.min.css +1 -0
- vendor/spectrum/spectrum.min.js +1 -0
admin.css
CHANGED
@@ -1199,7 +1199,7 @@ span.wp-media-buttons-icon:before {
|
|
1199 |
background-color: #E74C41;
|
1200 |
padding: 2px 10px;
|
1201 |
border-radius: 10px;
|
1202 |
-
|
1203 |
width: 75px;
|
1204 |
text-align: center;
|
1205 |
}
|
@@ -1211,7 +1211,7 @@ span.wp-media-buttons-icon:before {
|
|
1211 |
background-color: #F1C40F;
|
1212 |
padding: 2px 10px;
|
1213 |
border-radius: 10px;
|
1214 |
-
|
1215 |
width: 75px;
|
1216 |
text-align: center;
|
1217 |
}
|
@@ -2464,4 +2464,16 @@ span.tnp-email-status-sent {
|
|
2464 |
.tnp-control-all-languages-notice {
|
2465 |
padding: 15px;
|
2466 |
border: 1px dashed #999;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2467 |
}
|
1199 |
background-color: #E74C41;
|
1200 |
padding: 2px 10px;
|
1201 |
border-radius: 10px;
|
1202 |
+
display: inline-block;
|
1203 |
width: 75px;
|
1204 |
text-align: center;
|
1205 |
}
|
1211 |
background-color: #F1C40F;
|
1212 |
padding: 2px 10px;
|
1213 |
border-radius: 10px;
|
1214 |
+
display: inline-block;
|
1215 |
width: 75px;
|
1216 |
text-align: center;
|
1217 |
}
|
2464 |
.tnp-control-all-languages-notice {
|
2465 |
padding: 15px;
|
2466 |
border: 1px dashed #999;
|
2467 |
+
}
|
2468 |
+
|
2469 |
+
/* Spectru, color picker */
|
2470 |
+
|
2471 |
+
/* Down arrow */
|
2472 |
+
.sp-dd {
|
2473 |
+
display: none;
|
2474 |
+
}
|
2475 |
+
|
2476 |
+
.sp-replacer {
|
2477 |
+
width: 30px!important;
|
2478 |
+
height: 30px!important;
|
2479 |
}
|
admin.js
CHANGED
@@ -139,4 +139,16 @@ window.onload = function () {
|
|
139 |
|
140 |
};
|
141 |
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
};
|
141 |
|
142 |
+
/**
|
143 |
+
* Initialize the color pickers (is invoked on document load and on AJAX forms load in the composer.
|
144 |
+
* https://seballot.github.io/spectrum/
|
145 |
+
*/
|
146 |
+
function tnp_controls_init() {
|
147 |
+
jQuery(".tnpf-color").spectrum({
|
148 |
+
type: 'color',
|
149 |
+
allowEmpty: true,
|
150 |
+
showAlpha: false,
|
151 |
+
showInput: true,
|
152 |
+
preferredFormat: 'hex'
|
153 |
+
});
|
154 |
+
}
|
admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#tnp-wrap *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#tnp-wrap .iris-picker,#tnp-wrap .iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#tnp-wrap *:before,#tnp-wrap *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}@media all and (max-width:1100px){.col-md-12{width:100%}.col-md-11{width:100%}.col-md-10{width:100%}.col-md-9{width:100%}.col-md-8{width:100%}.col-md-7{width:100%}.col-md-6{width:100%}.col-md-5{width:100%}.col-md-4{width:100%}.col-md-3{width:100%}.col-md-2{width:100%}.col-md-1{width:100%}}.tnp-row-padded{width:90%;margin:0 auto;display:flex;justify-content:space-between}.tnp-col-3-boxed{width:30%;border:1px solid #3c414c;padding:0 0 30px 0;border-radius:10px}.tnp-margin-top{margin-top:80px}#tnp-wrap,#tnp-header,#tnp-body p,#tnp-body td,#tnp-body td p,#tnp-body input,#tnp-body select,#tnp-body textarea{font-family:soleil,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#tnp-body h1,#tnp-body h2,#tnp-body h3,#tnp-body h4{font-family:soleil,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#tnp-promotion-bar{background-color:#ff5f65;color:ddd;padding:10px 0;text-align:center;font-size:16px}#tnp-promotion-bar a{color:#fff;font-weight:normal;text-decoration:none}#tnp-header{text-align:left;font-size:12px;color:#fff;font-family:soleil,sans-serif}#tnp-header input{font-size:12px}#tnp-header a{text-decoration:none;color:white;letter-spacing:.1em}#tnp-header a:hover{color:#fff}.error a,.error a:hover{color:#000!important}.updated a,.updated a:hover{color:#000!important}.tnp-error{border-left:5px solid #d00;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}.tnp-warning{border-left:5px solid #ffb900;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}.tnp-message{border-left:5px solid #46b450;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}#tnp-body h1,#tnp-body h2,#tnp-body h3,#tnp-body h4,#tnp-body p{color:#fff}#tnp-body a,#tnp-body a:active{color:#2980b9}#tnp-body a:hover{color:#3498db}#tnp-body .tnp-submit{margin-bottom:10px}#tnp-body .button,#tnp-body .button:visited,#tnp-body .button:hover,#tnp-body .button:active,#tnp-body .button:focus,#tnp-body .button-primary,#tnp-body .button-primary:visited,#tnp-body .button-primary:hover,#tnp-body .button-secondary,#tnp-body .button-secondary:visited,#tnp-body .button-secondary:hover{color:#fff;background-color:#3498db;text-shadow:none;width:auto}#tnp-body span.wp-media-buttons-icon:before{color:#fff}#tnp-body .tnp-button{color:#fff;background-color:#3498db;text-shadow:none}#tnp-body .button-primary.tnp-button-white,#tnp-body .tnp-button.tnp-button-white{color:#444!important;background-color:#fff!important;box-shadow:none!important;-webkit-box-shadow:none!important;width:auto}#tnp-body .form-table h1,#tnp-body .form-table h2,#tnp-body .form-table h4,#tnp-body .form-table h3{color:#444}#tnp-body tbody th,#tnp-body td,#tnp-body td p,#tnp-body td .button,#tnp-body td .button:visited,#tnp-body td .button:hover,#tnp-body td .button:active,#tnp-body td .button:focus{color:#444}#tnp-body td a,#tnp-body td a:visited{color:#27ae60}#tnp-body .form-table{background-color:#fff;border:1px solid #ecf0f1;margin-top:2em;border-spacing:4px;border-collapse:separate}#tnp-body .form-table th{text-align:right;font-weight:bold;max-width:200px;color:#000;background-color:#ecf0f1;vertical-align:middle}#tnp-body .form-table th small{font-weight:normal}#tnp-body .form-table textarea{width:100%}#tnp-body .form-table table{border-collapse:collapse}#tnp-body .form-table table td,.form-table table th{padding:5px;font-size:.9em;font-weight:normal;border:1px solid #eee}#tnp-body .form-table table thead th{text-align:left;font-weight:bold}#tnp-body .widefat{width:90%}#tnp-body .widefat th{text-align:left}#tnp-body .widefat thead{background-color:#3498db;font-family:soleil,sans-serif;color:#fff!important}#tnp-body .widefat thead tr th{color:#fff!important}#tnp-body .widefat td,.widefat th{vertical-align:middle}.tnp-newsletters-list tbody tr{height:70px}.widefat tr:nth-child(even){background-color:#f4faff}#tnp-body #tabs h1,#tnp-body #tabs h2,#tnp-body #tabs h3,#tnp-body #tabs h4,#tnp-body #tabs p,#tnp-body #tabs td,#tnp-body #tabs th,#tnp-body #tabs input,#tnp-body #tabs select,#tnp-body #tabs textarea,#tnp-body #tabs a{color:#444}#tnp-body #tabs .button,#tnp-body #tabs .button:visited,#tnp-body #tabs .button:hover,#tnp-body #tabs .button-primary,#tnp-body #tabs .button-primary:visited,#tnp-body #tabs .button-primary:hover,#tnp-body #tabs .button-secondary,#tnp-body #tabs .button-secondary:visited,#tnp-body #tabs .button-secondary:hover{color:#fff;width:auto}table.clicks td{border:1px solid #666;padding:2px;font-size:10px}table.clicks{border-collapse:collapse}.grid{border-collapse:collapse}.grid td,.grid th{padding:10px;border:1px solid #ddd;margin:0}.grid th{background-color:#aaa}.tnp-checkboxes label{display:block;float:left;width:220px;border:1px solid #ccc;background-color:#f4f4f4;margin-bottom:5px;padding:5px;white-space:nowrap;margin-right:5px}.tnp-buttons{padding:10px}.newsletter-checkbox-group,.nl-checkbox-group{float:left;margin-right:5px;border:1px solid #ccc;background-color:#f4f4f4;margin-bottom:5px;padding:5px;white-space:nowrap;overflow:hidden}.newsletter-checkboxes-item{float:left;margin-right:5px;border:1px solid #ddd;border-radius:3px;background-color:#f4f4f4;width:150px;margin-bottom:5px;padding:3px;white-space:nowrap;overflow:hidden}.newsletter-checkboxes-item input{vertical-align:text-bottom}.newsletter-checkboxes-item label{display:inline}.newsletter-preferences-item{float:left;margin-right:5px;border:1px solid #ccc;background-color:#f4f4f4;width:250px;margin-bottom:5px;padding:5px;white-space:nowrap;overflow:hidden}.newsletter-preferences-item label{display:inline}.form-table td .nl-checkbox-group label{display:inline}.tnp-notice{padding:15px;margin:10px 0;padding-right:70px;position:relative;border:1px solid #eee;background-color:#fff;color:#444;font-size:13px;border-left:5px solid #27ae60}.tnp-notice a{color:#0073aa;text-decoration:none;font-weight:bold}.tnp-notice a.tnp-dismiss{display:block;position:absolute;right:10px;top:13px;font-size:25px;text-decoration:none;color:#666}.tnp-notice input[type=email]{margin:10px 5px 5px;width:250px;border:0;box-shadow:none;background-color:#ecf0f1;padding:8px}.tnp-notice input[type=submit]{border:0;box-shadow:none;background-color:#27ae60;padding:8px;font-family:soleil,sans-serif;font-size:13px;color:#fff;cursor:pointer}.newsletter-message{background-color:#efe;border-color:#393;border-radius:5px;border-style:solid;border-width:3px;padding:.6em;margin-bottom:.6em}.newsletter-error-span{color:#f00;font-weight:bold}.newsletter-error{background-color:#fee;border-color:#933;border-radius:5px;border-style:solid;border-width:2px;padding:.6em;margin-bottom:.6em}.newsletter-error strong,.newsletter-message strong{font-weight:bold}#newsletter-warnings{background-color:#ffebe8;border-color:#C00;border-radius:3px;border-style:solid;border-width:1px;padding:.6em;margin-bottom:.6em}.newsletter-buttons{margin-top:1em;margin-bottom:1em}.tnp-paginator{margin-top:10px;margin-bottom:5px}.newsletter-option-grid th{text-align:right;width:auto;border:0;padding:3px;font-weight:normal;vertical-align:top;padding-right:15px}.newsletter-option-grid td{border:0;padding:3px;vertical-align:top}.newsletter-box{border:1px solid #ddd;padding:10px;background-color:#fafafa;margin-bottom:15px}.newsletter-box h3{margin-top:0}.newsletter-textarea-preview{border:1px solid #ddd}.tnp-tab-notice{background-color:#fff;border:1px solid #eee;border-left:3px solid gray;padding:10px;margin:10px 0;color:#444}.tnp-tab-warning{background-color:#fff;border:1px solid #eee;border-left:3px solid orange;padding:10px;margin:10px 0;color:#444}.tnp-tab-success{background-color:#fff;border:1px solid #eee;border-left:3px solid green;padding:10px;margin:10px 0;color:#444}.tnp-tab-error{background-color:#fff;border:1px solid #eee;border-left:3px solid red;padding:10px;margin:10px 0;color:#444}.tnp-tip{margin-top:5px}.tip-button{padding:0 5px;color:#fd5f65;text-transform:uppercase;letter-spacing:.2em;font-size:10px;border:1px red solid}.tip-content{font-weight:500;font-size:11px;color:#999}p.description{font-size:12px!important}.tnp-theme-preview{display:inline-block;text-align:center}.tnp-theme-preview p{font-family:soleil;font-size:13px;letter-spacing:.2em;color:#fff}.tnp-theme-preview img:hover{box-shadow:3px 3px 8px 2px #293848}.tnp-theme-preview img{border-radius:10px;height:190px;width:auto}.tnp-theme-preview .tnp-theme-composer{height:250px;width:auto}.tnp-theme-preview .tnp-theme-html{height:250px;width:auto}.tnp-header-logo{margin-left:10px}.wp-core-ui .button-primary{background-color:#2b2f3a;color:#fff;width:auto}#tnp-body{padding:10px;background-color:#28313c}.tnp-darkbg{background-color:#34495e!important}#tnp-body h3{margin-top:25px;clear:both;margin-bottom:10px}.tnp-body-lite{background-color:#f1f1f1!important}#tnp-heading{padding:10px;margin-bottom:10px;border-radius:5px}#tnp-heading a{color:#fff;border-bottom:1px solid #fff;text-decoration:none}#tnp-heading a:hover{color:#27ae60;border-bottom:1px solid #27ae60}#tnp-heading div p{color:#565656}#tnp-heading h2{color:#fff;font-family:soleil,sans-serif;letter-spacing:.1rem;font-size:1.1rem;line-height:1.8rem;text-transform:uppercase;vertical-align:middle;font-weight:700;padding:0;margin:0;margin-bottom:15px}#tnp-heading h3{color:#27ae60;font-family:soleil,sans-serif;letter-spacing:.1rem;font-size:.8rem;line-height:1.8rem;text-transform:uppercase;vertical-align:middle;font-weight:700;padding:0;margin:0}#tnp-heading p{margin:0;color:#ccc}#tnp-heading .notice p{margin:.5em 0;padding:2px}#tnp-heading .tnp-btn-h1{color:#fff;background-color:#3498db;border-radius:3px;padding:6px 11px;text-decoration:none;text-transform:capitalize;font-family:soleil,sans-serif;margin-left:10px;font-size:.75rem;font-weight:300;border:0}#tnp-heading .tnp-btn-h1:hover{color:#fff;background-color:#5dade2;-webkit-transition:background-color .25s linear;transition:background-color .25s linear;-webkit-font-smoothing:subpixel-antialiased;border:0;color:#fff}.metabox-holder{width:100%}.postbox{border:0}.postbox h3 a{float:right}#dashboard-widgets .postbox-container{width:33.333%}#tnp-body .postbox p{color:#000}#dashboard-widgets .postbox-container .postbox h3{font-family:soleil,sans-serif;letter-spacing:.05rem;background-color:#415b76;color:#fff;margin:0;padding:9px}#dashboard-widgets .postbox-container h3 a{color:white;text-decoration:none;margin-left:5px;padding:2px 8px;background-color:#26c281;border-radius:2px;font-weight:300;text-transform:capitalize;font-size:.8rem}#dashboard-widgets .postbox-container h3 a:hover{color:white;text-decoration:none;margin-left:5px;background-color:#2ecc71}.postbox-container i{margin-right:3px}#tnp-dash-newsletters tr td:last-of-type{width:80px;text-align:right}#tnp-dash-subscribers tr td:last-of-type{width:80px;text-align:right}#tnp-dash-subscribers tr td:first-of-type{width:250px;overflow:hidden}#tnp-dash-subscribers table{table-layout:fixed}#tnp-dash-documentation .inside div{margin-top:10px}#tnp-dash-documentation .inside a{text-decoration:none;color:#fff;display:block;font-family:soleil,sans-serif;padding:5px 10px}#tnp-footer{margin-top:10px;padding:20px 10px 10px 40px;background-color:#28313c;font-family:soleil,sans-serif}#tnp-footer div{width:33%;display:inline-block}#tnp-footer a{color:#fff;text-decoration:none}#tnp-footer a:hover{color:#bdc3c7}#tnp-footer input[type="submit"]{background-color:#2ecc71;border:0;padding:5px;color:#fff}#tnp-footer form{white-space:nowrap}#tnp-footer li{display:inline;margin-left:15px;padding:2px 5px;border-left:3px solid #2ecc71}#wpwrap{background-color:#222b36!important}#dashboard-widgets .button{border:0;background:0;box-shadow:none;color:#322c39}#dashboard-widgets .button:hover{background-color:#ecf0f1}.wp-core-ui .button-secondary,.wp-core-ui .button-primary{background-color:#3498db;border:0;box-shadow:none;color:#fff;font-family:soleil,sans-serif;margin:0 2px;width:auto}.wp-core-ui .button-secondary,.wp-core-ui .button,.wp-core-ui .button-primary{background-color:#3498db;box-shadow:none;color:#fff;font-family:soleil,sans-serif;margin:0 2px}.wp-core-ui .button-secondary:hover,.wp-core-ui .button:hover,.wp-core-ui .button-primary:hover{background-color:#5dade2;color:#fff;width:auto}span.wp-media-buttons-icon:before{color:#fff}.tnp-paginator [value="Go"]{background-color:#27ae60}.tnp-paginator [value="Go"]:hover{background-color:#2ecc71}.notice-dismiss{padding:3px}.tnp-paginator{color:#fff;font-family:soleil,sans-serif;margin:10px 0}.tnp-paginator .button-secondary{padding:5px;line-height:normal;height:auto;font-size:12px;height:25px;border:0;border-radius:3px;vertical-align:baseline}.tnp-paginator [value="Go"]{background-color:#27ae60!important}.tnp-paginator [value="Go"]:hover{background-color:#2ecc71!important}.tnp-paginator input{background-color:#2c3e50;border:0;border-radius:3px;color:#fff;padding:5px;line-height:normal;font-size:12px;height:25px}.tnp-subscribers-search{color:#fff;font-family:soleil,sans-serif;background-color:#2c3e50;padding:20px;border-radius:5px;margin-bottom:20px;display:inline-block}.tnp-subscribers-search select{margin-left:5px;padding:0;line-height:inherit}.tnp-video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.tnp-video-container iframe,.tnp-video-container object,.tnp-video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.bg-white{background-color:#FFF}.orange{background-color:#f39c12}.blue{background-color:#2980b9}.purple{background-color:#8e44ad}.notice a{color:#27ae60!important;text-decoration:underline!important}.tnp-chart{border:1px solid #eee;width:100%}.tnp-db-table{width:auto;background-color:#fff}.tnp-db-table thead{border-bottom:1px solid #eee}.tnp-db-table th{font-weight:bold}.tnp-db-table td,.tnp-db-table th{padding:3px;font-family:monospace;border:0}.tnp-main-status h3,.tnp-main-status h4{color:#fff}#tnp-status-table .tnp-ok{font-weight:bold;color:white;font-size:14px;background-color:#27ae60;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}#tnp-status-table .tnp-ko{font-weight:bold;color:white;font-size:14px;background-color:#e74c41;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}#tnp-status-table .tnp-maybe{font-weight:bold;color:white;font-size:14px;background-color:#f1c40f;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}.tnp-main-status .tnp-log-files li{padding-left:15px}.tnp-main-status .tnp-log-files li,.tnp-main-status .tnp-log-files li a{color:#fff}.tnp-main-status .tnp-log-files .tnp-log-size{font-style:italic}table.widefat{border:0;box-shadow:none}#tnp-status-table tbody tr:nth-child(2n+1){background-color:#ecf0f1;border-radius:2px;margin:5px}#tnp-parameters-table tbody tr:nth-child(2n+1){background-color:#ecf0f1;border-radius:2px;margin:5px}#tnp-body .ui-widget{font-family:soleil,sans-serif}#tnp-body #tabs{background-color:transparent;border:0!important;padding:0;margin:0}#tnp-body #tabs .ui-widget-header{background:#28313c;border:0}#tnp-body #tabs .ui-tabs-panel{padding:15px!important;background-color:#fff}#tnp-body #tabs a.ui-tabs-anchor,#tnp-body #tabs a.ui-tabs-anchor:visited{color:#444}#tnp-body .ui-tabs .ui-tabs-nav{padding:0}#tnp-body .ui-tabs .ui-tabs-nav li a{font-size:14px}#tnp-body #tabs .ui-tabs{border-color:#28313c;background-color:#28313c;border:0}#tnp-body #tabs .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0 0;background-color:#f2f2f2}#tnp-body #tabs .ui-tabs .ui-tabs-panel{padding:1em 0;background-color:#f2f2f2;margin:0;border:0}#tnp-body .ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{background:#fff!important;font-weight:normal;font-family:soleil,sans-serif}#tnp-body .ui-widget-content{background:#fff}#tnp-body .ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:0;background:#ecf0f1;font-family:soleil,sans-serif}.tnp-extension-premium-box,.tnp-extension-free-box,.tnp-integration-box{width:300px;height:220px;background-color:#222b36;text-align:center;margin:20px;float:left;position:relative}.tnp-extension-premium-box:hover,.tnp-extension-free-box:hover,.tnp-integration-box:hover{background-color:#232c35;box-shadow:1px 1px 15px #222b36}.tnp-extension-premium-box p,.tnp-extension-free-box p,.tnp-integration-box p{padding:5px 10px;color:#72777c;font-size:14px;margin-top:0}.tnp-extension-premium-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-extension-free-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-integration-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-extension-premium-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-extension-free-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-integration-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-extension-premium-action span{color:#27ae60}.tnp-extension-free-action span{color:#27ae60}.tnp-integration-action span{color:#27ae60}.tnp-extension-activate{color:#1abc9c;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-install{color:#2980b9;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-buy{color:#f1c40f;padding:5px 8px;text-decoration:none;cursor:pointer}#tnp-body a.tnp-extension-details{color:#999;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-free{color:#d35400;padding:5px 8px;text-decoration:none;cursor:pointer;position:relative}img.tnp-extensions-free-badge{position:absolute;display:block;right:0;top:0;width:70px}.tnp-extensions-image img{margin:25px 0 -10px}#tnp-subscribe-overlay{height:100vh;width:100vw;z-index:10000;display:none;background-image:url(images/modal-background.png);background-repeat:repeat;position:fixed;top:0;left:-20px}#tnp-subscribe-modal{width:600px;background-color:rgba(255,255,255,1);margin-right:auto;margin-left:auto;margin-top:100px;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,0.5);-moz-box-shadow:0 0 20px 0 rgba(0,0,0,0.5);box-shadow:0 0 20px 0 rgba(0,0,0,0.5);padding:25px;background-color:#1d2b38;text-align:center}#tnp-subscribe-modal img{width:30%}#tnp-subscribe-title{font-size:20px;margin-top:30px;margin-bottom:30px;line-height:30px;color:white;font-weight:200}#tnp-subscribe-email-wrapper{margin:20px}#tnp-subscribe-email-wrapper input{border:0;background-color:#223242;color:white}#tnp-subscribe-email{font-size:24px;box-sizing:border-box;width:100%;padding:10px;text-align:center}#tnp-subscribe-submit-wrapper{margin-bottom:20px}#tnp-subscribe-submit{font-size:24px;background-color:#219050;color:#fff;padding:10px 35px;border:0;font-size:17px;letter-spacing:2px}#tnp-subscribe-no-thanks{color:#666;margin-top:20px;margin-bottom:20px}#tnp-body div.tnp-emails-theme-options{background-color:#fff;padding:10px;margin-top:14px}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:0;background:#ecf0f1;font-family:soleil,sans-serif}.cd-slider-wrapper{position:relative;width:100%;height:90vh;overflow:hidden;margin:0 auto}.cd-slider-wrapper .cd-slider,.cd-slider-wrapper .cd-slider>li{height:100%;width:100%}.tnp-logo-big{width:300px}.tnp-row{display:table-row}.tnp-third{width:33%;float:left}.tnp-welcome-confirm-button{color:#fff;padding:10px 30px;background-color:#2ecc71;font-weight:700;font-size:15px;box-shadow:0 20px 38px rgba(0,0,0,0.16);text-decoration:none;display:inline-block;text-align:center;margin:20px auto 0}.tnp-welcome-confirm-button:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-confirm-button:visited{color:#fff;text-decoration:none}.tnp-welcome-link-button{color:#fff;padding:10px 30px;background-color:#3498db;font-weight:700;font-size:15px;box-shadow:0 20px 38px rgba(0,0,0,0.16);text-decoration:none}.tnp-welcome-link-button:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-link-button:visited{color:#fff;text-decoration:none}#tnp-welcome input[type="text"],#tnp-welcome input[type="email"]{max-width:90%}.tnp-welcome-next{background-color:#2ecc71;padding:10px 20px;color:white;text-decoration:none;font-weight:600;font-size:16px;margin:0 10px;box-shadow:0 10px 30px rgba(0,0,0,0.16);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;display:flex;align-items:center}.tnp-welcome-next:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-next:visited{color:#fff;text-decoration:none}.tnp-welcome-prev{background-color:#3498db;padding:10px 20px;color:white;text-decoration:none;font-weight:600;font-size:16px;margin:0 0 0 10px;box-shadow:0 10px 30px rgba(0,0,0,0.16);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;display:flex;align-items:center}.tnp-welcome-prev:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-prev:visited{color:#fff;text-decoration:none}.tnp-welcome-next svg{margin-left:10px}.tnp-welcome-prev svg{margin-right:10px}.cd-slider input{width:250px;height:40px;border:1px solid #6c7280;background:#454a56;color:white;color:white;padding:0 10px}.cd-slider>li{position:absolute;top:0;left:0;opacity:0;display:table;background-position:center center;background-repeat:no-repeat;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cd-slider>li.visible{position:relative;z-index:2;opacity:1}.cd-slider>li:first-of-type{background-color:#2b313a}.cd-slider>li:nth-of-type(2){background-color:#2b313a}.cd-slider>li:nth-of-type(3){background-color:#2b313a}.cd-slider>li:nth-of-type(4){background-color:#2b313a}.cd-slider>li:first-of-type,.cd-slider>li:nth-of-type(2),.cd-slider>li:nth-of-type(3),.cd-slider>li:nth-of-type(4){background-size:cover}.cd-slider>li>div{display:table-cell;vertical-align:middle;text-align:center}.cd-slider>li h2,.cd-slider>li p{text-shadow:0 1px 3px rgba(0,0,0,0.1);line-height:1.2;margin:0 auto 14px;color:#fff;width:90%;max-width:320px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:left;color:#b8c3c9;margin:40px auto}.cd-slider>li .cd-btn{display:inline-block;padding:1.2em 1.4em;margin-top:.8em;background-color:rgba(0,0,0,0.6);border-radius:.25em;font-size:1.3rem;font-weight:700;letter-spacing:1px;color:#fff;text-transform:uppercase;-webkit-transition:background-color .2s;-moz-transition:background-color .2s;transition:background-color .2s}.no-touch .cd-slider>li .cd-btn:hover{background-color:rgba(0,0,0,0.8)}@media only screen and (min-width:768px){.cd-slider>li h2,.cd-slider>li p{max-width:520px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:left;color:#b8c3c9;margin:40px auto}}@media only screen and (min-width:1170px){.cd-slider>li h2,.cd-slider>li p{margin-bottom:20px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:center;color:#b8c3c9;margin:30px auto}}.cd-slider-navigation{position:relative;bottom:110px;z-index:3;display:flex;justify-content:center}.cd-svg-cover{position:absolute;z-index:1;left:0;top:0;height:100%;width:100%;opacity:0}.cd-svg-cover path{fill:#ed6a6a}.cd-svg-cover.is-animating{z-index:4;opacity:1;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;transition:opacity .6s}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{display:none}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:white;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}#tnp-body div.tnp-emails-theme-options table.form-table{margin:0}#tnp-body div.tnp-emails-theme-options h3{color:#000}.tnp-emails-edit #options-subject{font-size:16px;display:inline-block;margin:20px 0;width:auto;border-radius:4px;padding:5px 10px}.tnp-suggest-button{font-family:soleil,sans-serif;margin-left:8px;border-radius:3px;background-color:#2980b9;padding:10px 15px 8px;font-size:14px;color:#fff!important;text-decoration:none}.tnp-suggest-button:hover{background-color:#3f8dbf}.tnp-popup-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);z-index:10000}.tnp-popup{width:40vw;height:66vh;overflow:auto;margin:100px auto 0 auto;background-color:#181818;padding:20px;position:relative}.tnp-popup-close{display:block;position:absolute;top:5px;right:5px;background-color:#181818;color:#fff;font-size:40px;padding:10px;text-align:right;cursor:pointer}.tnp-subjects-header{font-size:16px;color:#fff;padding:0 70px 20px 20px;font-family:soleil,sans-serif;border-bottom:1px solid #282828}#tnp-edit-subjects-list{padding:0 70px 20px 20px}#tnp-edit-subjects-list a{padding:5px}#tnp-edit-subjects-list svg{margin:0 10px 0 0;vertical-align:middle}.tnp-subject-category{color:#565656;margin:25px 0 10px 0;font-size:12px;text-transform:uppercase;letter-spacing:.1em}#tnp-edit-emoji-list{font-size:28px}#tnp-edit-emoji-list a{display:inline-block;margin-right:5px;margin-bottom:5px}.tnp-list-conditions p{margin:0 10px}.tnp-lists .tnp-notes{margin:0;font-size:.9em}iframe.tnp-editor-preview-mobile{box-sizing:border-box;background-color:#fff;border:1px solid #bbb;box-shadow:1px 1px 10px #777;border-radius:10px;padding:5px;width:320px;height:500px;float:left}iframe.tnp-editor-preview-desktop{box-sizing:border-box;background-color:#fff;border:1px solid #bbb;border-radius:10px;box-shadow:1px 1px 10px #777;padding:15px;width:650px;margin-right:20px;height:500px;float:left}#tnp-license-control{border-left:5px solid #27ae60;display:inline-block;padding:15px 20px;margin-left:-10px;margin-top:15px;border-radius:2px;background-color:#fff}#tnp-license-control form{margin-bottom:10px;margin-top:10px}#tnp-license-control form input{padding-left:10px}#tnp-license-control a{border-bottom:0;color:#27ae60}#tnp-nl-status{width:100%;background:#fffafa;padding:15px 25px 15px 25px;border-left:10px solid #27ae60;border-radius:0 5px 5px 0}#tnp-nl-status p{font-size:17px}.tnp-nl-status-row{margin:10px 0}.tnp-nl-status-title{font-size:26px;line-height:32px;margin:5px 0 0 0;color:#3498db;font-weight:900;vertical-align:middle}.tnp-nl-status-title-value{font-size:13px;line-height:32px;margin:0 0 0 5px;color:#fff;background-color:#95a5a6;border-radius:4px;text-transform:uppercase;letter-spacing:1px;vertical-align:sub}.tnp-nl-status-schedule-targeting{font-size:15px;color:#34495e}.tnp-nl-status-schedule-value{font-size:15px;color:#34495e}.tnp-status-header #options-subject{width:calc(100% - 150px)}.tnp-one-third{width:40%;display:inline-block;vertical-align:top}.tnp-two-thirds{width:59%;display:inline-block;vertical-align:top}.tnp-progress{display:flex;height:1.5rem;overflow:hidden;font-size:.75rem;background-color:#c9cccf;border-radius:.25rem;margin:0;min-width:100px}.tnp-progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}.tnp-progress.sent .tnp-progress-bar{background-color:green}.tnp-progress-numbers{text-align:center;color:#666}.tnp-progress-date{color:#666;font-style:italic}span.tnp-email-status-new{background-color:#8e44ad;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-paused{background-color:#95a5a6;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-sending{background-color:#27ae60;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-scheduled{background-color:#e67e22;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-sent{background-color:#95a5a6;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}.tnp-themes-new{border-bottom:2px solid #243342;margin-bottom:30px;padding-bottom:30px}#tnp-schedule-button{background-color:#e67e22!important}#tnp-schedule-button:hover{background-color:#ec913f!important}.tnp-button-cancel{background-color:#e74c3c!important}.tnpc-preview{margin-top:10px}.tnpc-preview .fake-browser-ui iframe{width:700px}.tnpc-preview .fake-mobile-browser-ui iframe{width:320px}.fake-browser-ui{padding:30px 0 0;border-radius:3px;border-bottom:10px solid #ccc;background:#ddd;display:inline-block;position:relative;line-height:0;vertical-align:top;margin-left:20px}.fake-mobile-browser-ui{padding:30px 10px 37px;border-radius:10px;border-bottom:10px solid #ccc;background:#ddd;display:inline-block;position:relative;line-height:0;margin-left:30px}.fake-browser-ui .frame{display:block;height:25px;position:absolute;top:12px;left:8px}.fake-mobile-browser-ui .frame{display:block;height:25px;margin-top:10px}.fake-browser-ui span{height:12px;width:12px;border-radius:8px;background-color:#eee;border:1px solid #dadada;float:left;margin:0 0 0 4px}.fake-mobile-browser-ui span{height:50px;width:50px;border-radius:60px;background-color:#eee;border:2px solid #ccc;display:block;margin:auto}.fake-browser-ui .bt-1{background-color:#ed594a}.fake-browser-ui .bt-2{background-color:#fdd800}.fake-browser-ui .bt-3{background-color:#5ac05a}#tnp-promo{text-align:left;background-color:#222b36;margin:20px;border-radius:5px;padding:20px 40px}#tnp-promo .tnp-promo-how-to{width:50%;padding:5px 20px;margin-top:30px;margin-bottom:30px;border-left:2px solid #f1c40f}#tnp-promo .tnp-promo-how-to h3{color:#ecf0f1;margin:0;line-height:36px}#tnp-promo .tnp-promo-how-to p{color:#ecf0f1;margin:0;font-size:16px;line-height:26px}#tnp-promo .tnp-promo-buttons{margin:50px 0}#tnp-promo .tnp-promo-button{background:#27ae60;text-decoration:none;color:white;padding:15px 20px;font-size:15px;border-radius:2px}#tnp-promo .tnp-promo-button:hover{background:#2ecc71;color:white}#tnp-promo .tnp-promo-button i{margin-right:3px}#tnp-body td a.tnp-table-link,#tnp-body td a.tnp-table-link:visited{color:#444}#tnp-body td a.tnp-table-link:hover{color:#3498db}.text-left{text-align:left}.tab-min-height{min-height:500px}.tnp-control-all-languages-notice{padding:15px;border:1px dashed #999}
|
1 |
+
#tnp-wrap *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#tnp-wrap .iris-picker,#tnp-wrap .iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#tnp-wrap *:before,#tnp-wrap *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}@media all and (max-width:1100px){.col-md-12{width:100%}.col-md-11{width:100%}.col-md-10{width:100%}.col-md-9{width:100%}.col-md-8{width:100%}.col-md-7{width:100%}.col-md-6{width:100%}.col-md-5{width:100%}.col-md-4{width:100%}.col-md-3{width:100%}.col-md-2{width:100%}.col-md-1{width:100%}}.tnp-row-padded{width:90%;margin:0 auto;display:flex;justify-content:space-between}.tnp-col-3-boxed{width:30%;border:1px solid #3c414c;padding:0 0 30px 0;border-radius:10px}.tnp-margin-top{margin-top:80px}#tnp-wrap,#tnp-header,#tnp-body p,#tnp-body td,#tnp-body td p,#tnp-body input,#tnp-body select,#tnp-body textarea{font-family:soleil,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#tnp-body h1,#tnp-body h2,#tnp-body h3,#tnp-body h4{font-family:soleil,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#tnp-promotion-bar{background-color:#ff5f65;color:ddd;padding:10px 0;text-align:center;font-size:16px}#tnp-promotion-bar a{color:#fff;font-weight:normal;text-decoration:none}#tnp-header{text-align:left;font-size:12px;color:#fff;font-family:soleil,sans-serif}#tnp-header input{font-size:12px}#tnp-header a{text-decoration:none;color:white;letter-spacing:.1em}#tnp-header a:hover{color:#fff}.error a,.error a:hover{color:#000!important}.updated a,.updated a:hover{color:#000!important}.tnp-error{border-left:5px solid #d00;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}.tnp-warning{border-left:5px solid #ffb900;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}.tnp-message{border-left:5px solid #46b450;background-color:#fff;padding:15px;margin:15px 0;font-size:1.2em;line-height:1.5em}#tnp-body h1,#tnp-body h2,#tnp-body h3,#tnp-body h4,#tnp-body p{color:#fff}#tnp-body a,#tnp-body a:active{color:#2980b9}#tnp-body a:hover{color:#3498db}#tnp-body .tnp-submit{margin-bottom:10px}#tnp-body .button,#tnp-body .button:visited,#tnp-body .button:hover,#tnp-body .button:active,#tnp-body .button:focus,#tnp-body .button-primary,#tnp-body .button-primary:visited,#tnp-body .button-primary:hover,#tnp-body .button-secondary,#tnp-body .button-secondary:visited,#tnp-body .button-secondary:hover{color:#fff;background-color:#3498db;text-shadow:none;width:auto}#tnp-body span.wp-media-buttons-icon:before{color:#fff}#tnp-body .tnp-button{color:#fff;background-color:#3498db;text-shadow:none}#tnp-body .button-primary.tnp-button-white,#tnp-body .tnp-button.tnp-button-white{color:#444!important;background-color:#fff!important;box-shadow:none!important;-webkit-box-shadow:none!important;width:auto}#tnp-body .form-table h1,#tnp-body .form-table h2,#tnp-body .form-table h4,#tnp-body .form-table h3{color:#444}#tnp-body tbody th,#tnp-body td,#tnp-body td p,#tnp-body td .button,#tnp-body td .button:visited,#tnp-body td .button:hover,#tnp-body td .button:active,#tnp-body td .button:focus{color:#444}#tnp-body td a,#tnp-body td a:visited{color:#27ae60}#tnp-body .form-table{background-color:#fff;border:1px solid #ecf0f1;margin-top:2em;border-spacing:4px;border-collapse:separate}#tnp-body .form-table th{text-align:right;font-weight:bold;max-width:200px;color:#000;background-color:#ecf0f1;vertical-align:middle}#tnp-body .form-table th small{font-weight:normal}#tnp-body .form-table textarea{width:100%}#tnp-body .form-table table{border-collapse:collapse}#tnp-body .form-table table td,.form-table table th{padding:5px;font-size:.9em;font-weight:normal;border:1px solid #eee}#tnp-body .form-table table thead th{text-align:left;font-weight:bold}#tnp-body .widefat{width:90%}#tnp-body .widefat th{text-align:left}#tnp-body .widefat thead{background-color:#3498db;font-family:soleil,sans-serif;color:#fff!important}#tnp-body .widefat thead tr th{color:#fff!important}#tnp-body .widefat td,.widefat th{vertical-align:middle}.tnp-newsletters-list tbody tr{height:70px}.widefat tr:nth-child(even){background-color:#f4faff}#tnp-body #tabs h1,#tnp-body #tabs h2,#tnp-body #tabs h3,#tnp-body #tabs h4,#tnp-body #tabs p,#tnp-body #tabs td,#tnp-body #tabs th,#tnp-body #tabs input,#tnp-body #tabs select,#tnp-body #tabs textarea,#tnp-body #tabs a{color:#444}#tnp-body #tabs .button,#tnp-body #tabs .button:visited,#tnp-body #tabs .button:hover,#tnp-body #tabs .button-primary,#tnp-body #tabs .button-primary:visited,#tnp-body #tabs .button-primary:hover,#tnp-body #tabs .button-secondary,#tnp-body #tabs .button-secondary:visited,#tnp-body #tabs .button-secondary:hover{color:#fff;width:auto}table.clicks td{border:1px solid #666;padding:2px;font-size:10px}table.clicks{border-collapse:collapse}.grid{border-collapse:collapse}.grid td,.grid th{padding:10px;border:1px solid #ddd;margin:0}.grid th{background-color:#aaa}.tnp-checkboxes label{display:block;float:left;width:220px;border:1px solid #ccc;background-color:#f4f4f4;margin-bottom:5px;padding:5px;white-space:nowrap;margin-right:5px}.tnp-buttons{padding:10px}.newsletter-checkbox-group,.nl-checkbox-group{float:left;margin-right:5px;border:1px solid #ccc;background-color:#f4f4f4;margin-bottom:5px;padding:5px;white-space:nowrap;overflow:hidden}.newsletter-checkboxes-item{float:left;margin-right:5px;border:1px solid #ddd;border-radius:3px;background-color:#f4f4f4;width:150px;margin-bottom:5px;padding:3px;white-space:nowrap;overflow:hidden}.newsletter-checkboxes-item input{vertical-align:text-bottom}.newsletter-checkboxes-item label{display:inline}.newsletter-preferences-item{float:left;margin-right:5px;border:1px solid #ccc;background-color:#f4f4f4;width:250px;margin-bottom:5px;padding:5px;white-space:nowrap;overflow:hidden}.newsletter-preferences-item label{display:inline}.form-table td .nl-checkbox-group label{display:inline}.tnp-notice{padding:15px;margin:10px 0;padding-right:70px;position:relative;border:1px solid #eee;background-color:#fff;color:#444;font-size:13px;border-left:5px solid #27ae60}.tnp-notice a{color:#0073aa;text-decoration:none;font-weight:bold}.tnp-notice a.tnp-dismiss{display:block;position:absolute;right:10px;top:13px;font-size:25px;text-decoration:none;color:#666}.tnp-notice input[type=email]{margin:10px 5px 5px;width:250px;border:0;box-shadow:none;background-color:#ecf0f1;padding:8px}.tnp-notice input[type=submit]{border:0;box-shadow:none;background-color:#27ae60;padding:8px;font-family:soleil,sans-serif;font-size:13px;color:#fff;cursor:pointer}.newsletter-message{background-color:#efe;border-color:#393;border-radius:5px;border-style:solid;border-width:3px;padding:.6em;margin-bottom:.6em}.newsletter-error-span{color:#f00;font-weight:bold}.newsletter-error{background-color:#fee;border-color:#933;border-radius:5px;border-style:solid;border-width:2px;padding:.6em;margin-bottom:.6em}.newsletter-error strong,.newsletter-message strong{font-weight:bold}#newsletter-warnings{background-color:#ffebe8;border-color:#C00;border-radius:3px;border-style:solid;border-width:1px;padding:.6em;margin-bottom:.6em}.newsletter-buttons{margin-top:1em;margin-bottom:1em}.tnp-paginator{margin-top:10px;margin-bottom:5px}.newsletter-option-grid th{text-align:right;width:auto;border:0;padding:3px;font-weight:normal;vertical-align:top;padding-right:15px}.newsletter-option-grid td{border:0;padding:3px;vertical-align:top}.newsletter-box{border:1px solid #ddd;padding:10px;background-color:#fafafa;margin-bottom:15px}.newsletter-box h3{margin-top:0}.newsletter-textarea-preview{border:1px solid #ddd}.tnp-tab-notice{background-color:#fff;border:1px solid #eee;border-left:3px solid gray;padding:10px;margin:10px 0;color:#444}.tnp-tab-warning{background-color:#fff;border:1px solid #eee;border-left:3px solid orange;padding:10px;margin:10px 0;color:#444}.tnp-tab-success{background-color:#fff;border:1px solid #eee;border-left:3px solid green;padding:10px;margin:10px 0;color:#444}.tnp-tab-error{background-color:#fff;border:1px solid #eee;border-left:3px solid red;padding:10px;margin:10px 0;color:#444}.tnp-tip{margin-top:5px}.tip-button{padding:0 5px;color:#fd5f65;text-transform:uppercase;letter-spacing:.2em;font-size:10px;border:1px red solid}.tip-content{font-weight:500;font-size:11px;color:#999}p.description{font-size:12px!important}.tnp-theme-preview{display:inline-block;text-align:center}.tnp-theme-preview p{font-family:soleil;font-size:13px;letter-spacing:.2em;color:#fff}.tnp-theme-preview img:hover{box-shadow:3px 3px 8px 2px #293848}.tnp-theme-preview img{border-radius:10px;height:190px;width:auto}.tnp-theme-preview .tnp-theme-composer{height:250px;width:auto}.tnp-theme-preview .tnp-theme-html{height:250px;width:auto}.tnp-header-logo{margin-left:10px}.wp-core-ui .button-primary{background-color:#2b2f3a;color:#fff;width:auto}#tnp-body{padding:10px;background-color:#28313c}.tnp-darkbg{background-color:#34495e!important}#tnp-body h3{margin-top:25px;clear:both;margin-bottom:10px}.tnp-body-lite{background-color:#f1f1f1!important}#tnp-heading{padding:10px;margin-bottom:10px;border-radius:5px}#tnp-heading a{color:#fff;border-bottom:1px solid #fff;text-decoration:none}#tnp-heading a:hover{color:#27ae60;border-bottom:1px solid #27ae60}#tnp-heading div p{color:#565656}#tnp-heading h2{color:#fff;font-family:soleil,sans-serif;letter-spacing:.1rem;font-size:1.1rem;line-height:1.8rem;text-transform:uppercase;vertical-align:middle;font-weight:700;padding:0;margin:0;margin-bottom:15px}#tnp-heading h3{color:#27ae60;font-family:soleil,sans-serif;letter-spacing:.1rem;font-size:.8rem;line-height:1.8rem;text-transform:uppercase;vertical-align:middle;font-weight:700;padding:0;margin:0}#tnp-heading p{margin:0;color:#ccc}#tnp-heading .notice p{margin:.5em 0;padding:2px}#tnp-heading .tnp-btn-h1{color:#fff;background-color:#3498db;border-radius:3px;padding:6px 11px;text-decoration:none;text-transform:capitalize;font-family:soleil,sans-serif;margin-left:10px;font-size:.75rem;font-weight:300;border:0}#tnp-heading .tnp-btn-h1:hover{color:#fff;background-color:#5dade2;-webkit-transition:background-color .25s linear;transition:background-color .25s linear;-webkit-font-smoothing:subpixel-antialiased;border:0;color:#fff}.metabox-holder{width:100%}.postbox{border:0}.postbox h3 a{float:right}#dashboard-widgets .postbox-container{width:33.333%}#tnp-body .postbox p{color:#000}#dashboard-widgets .postbox-container .postbox h3{font-family:soleil,sans-serif;letter-spacing:.05rem;background-color:#415b76;color:#fff;margin:0;padding:9px}#dashboard-widgets .postbox-container h3 a{color:white;text-decoration:none;margin-left:5px;padding:2px 8px;background-color:#26c281;border-radius:2px;font-weight:300;text-transform:capitalize;font-size:.8rem}#dashboard-widgets .postbox-container h3 a:hover{color:white;text-decoration:none;margin-left:5px;background-color:#2ecc71}.postbox-container i{margin-right:3px}#tnp-dash-newsletters tr td:last-of-type{width:80px;text-align:right}#tnp-dash-subscribers tr td:last-of-type{width:80px;text-align:right}#tnp-dash-subscribers tr td:first-of-type{width:250px;overflow:hidden}#tnp-dash-subscribers table{table-layout:fixed}#tnp-dash-documentation .inside div{margin-top:10px}#tnp-dash-documentation .inside a{text-decoration:none;color:#fff;display:block;font-family:soleil,sans-serif;padding:5px 10px}#tnp-footer{margin-top:10px;padding:20px 10px 10px 40px;background-color:#28313c;font-family:soleil,sans-serif}#tnp-footer div{width:33%;display:inline-block}#tnp-footer a{color:#fff;text-decoration:none}#tnp-footer a:hover{color:#bdc3c7}#tnp-footer input[type="submit"]{background-color:#2ecc71;border:0;padding:5px;color:#fff}#tnp-footer form{white-space:nowrap}#tnp-footer li{display:inline;margin-left:15px;padding:2px 5px;border-left:3px solid #2ecc71}#wpwrap{background-color:#222b36!important}#dashboard-widgets .button{border:0;background:0;box-shadow:none;color:#322c39}#dashboard-widgets .button:hover{background-color:#ecf0f1}.wp-core-ui .button-secondary,.wp-core-ui .button-primary{background-color:#3498db;border:0;box-shadow:none;color:#fff;font-family:soleil,sans-serif;margin:0 2px;width:auto}.wp-core-ui .button-secondary,.wp-core-ui .button,.wp-core-ui .button-primary{background-color:#3498db;box-shadow:none;color:#fff;font-family:soleil,sans-serif;margin:0 2px}.wp-core-ui .button-secondary:hover,.wp-core-ui .button:hover,.wp-core-ui .button-primary:hover{background-color:#5dade2;color:#fff;width:auto}span.wp-media-buttons-icon:before{color:#fff}.tnp-paginator [value="Go"]{background-color:#27ae60}.tnp-paginator [value="Go"]:hover{background-color:#2ecc71}.notice-dismiss{padding:3px}.tnp-paginator{color:#fff;font-family:soleil,sans-serif;margin:10px 0}.tnp-paginator .button-secondary{padding:5px;line-height:normal;height:auto;font-size:12px;height:25px;border:0;border-radius:3px;vertical-align:baseline}.tnp-paginator [value="Go"]{background-color:#27ae60!important}.tnp-paginator [value="Go"]:hover{background-color:#2ecc71!important}.tnp-paginator input{background-color:#2c3e50;border:0;border-radius:3px;color:#fff;padding:5px;line-height:normal;font-size:12px;height:25px}.tnp-subscribers-search{color:#fff;font-family:soleil,sans-serif;background-color:#2c3e50;padding:20px;border-radius:5px;margin-bottom:20px;display:inline-block}.tnp-subscribers-search select{margin-left:5px;padding:0;line-height:inherit}.tnp-video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.tnp-video-container iframe,.tnp-video-container object,.tnp-video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.bg-white{background-color:#FFF}.orange{background-color:#f39c12}.blue{background-color:#2980b9}.purple{background-color:#8e44ad}.notice a{color:#27ae60!important;text-decoration:underline!important}.tnp-chart{border:1px solid #eee;width:100%}.tnp-db-table{width:auto;background-color:#fff}.tnp-db-table thead{border-bottom:1px solid #eee}.tnp-db-table th{font-weight:bold}.tnp-db-table td,.tnp-db-table th{padding:3px;font-family:monospace;border:0}.tnp-main-status h3,.tnp-main-status h4{color:#fff}#tnp-status-table .tnp-ok{font-weight:bold;color:white;font-size:14px;background-color:#27ae60;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}#tnp-status-table .tnp-ko{font-weight:bold;color:white;font-size:14px;background-color:#e74c41;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}#tnp-status-table .tnp-maybe{font-weight:bold;color:white;font-size:14px;background-color:#f1c40f;padding:2px 10px;border-radius:10px;display:inline-block;width:75px;text-align:center}.tnp-main-status .tnp-log-files li{padding-left:15px}.tnp-main-status .tnp-log-files li,.tnp-main-status .tnp-log-files li a{color:#fff}.tnp-main-status .tnp-log-files .tnp-log-size{font-style:italic}table.widefat{border:0;box-shadow:none}#tnp-status-table tbody tr:nth-child(2n+1){background-color:#ecf0f1;border-radius:2px;margin:5px}#tnp-parameters-table tbody tr:nth-child(2n+1){background-color:#ecf0f1;border-radius:2px;margin:5px}#tnp-body .ui-widget{font-family:soleil,sans-serif}#tnp-body #tabs{background-color:transparent;border:0!important;padding:0;margin:0}#tnp-body #tabs .ui-widget-header{background:#28313c;border:0}#tnp-body #tabs .ui-tabs-panel{padding:15px!important;background-color:#fff}#tnp-body #tabs a.ui-tabs-anchor,#tnp-body #tabs a.ui-tabs-anchor:visited{color:#444}#tnp-body .ui-tabs .ui-tabs-nav{padding:0}#tnp-body .ui-tabs .ui-tabs-nav li a{font-size:14px}#tnp-body #tabs .ui-tabs{border-color:#28313c;background-color:#28313c;border:0}#tnp-body #tabs .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0 0;background-color:#f2f2f2}#tnp-body #tabs .ui-tabs .ui-tabs-panel{padding:1em 0;background-color:#f2f2f2;margin:0;border:0}#tnp-body .ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{background:#fff!important;font-weight:normal;font-family:soleil,sans-serif}#tnp-body .ui-widget-content{background:#fff}#tnp-body .ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:0;background:#ecf0f1;font-family:soleil,sans-serif}.tnp-extension-premium-box,.tnp-extension-free-box,.tnp-integration-box{width:300px;height:220px;background-color:#222b36;text-align:center;margin:20px;float:left;position:relative}.tnp-extension-premium-box:hover,.tnp-extension-free-box:hover,.tnp-integration-box:hover{background-color:#232c35;box-shadow:1px 1px 15px #222b36}.tnp-extension-premium-box p,.tnp-extension-free-box p,.tnp-integration-box p{padding:5px 10px;color:#72777c;font-size:14px;margin-top:0}.tnp-extension-premium-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-extension-free-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-integration-box h3{font-family:soleil,sans-serif;padding:5px 8px!important;border-radius:3px;display:inline-block;font-size:16px;color:#fff;margin-bottom:0!important;margin-top:25px!important;font-weight:300;width:auto!important;border-bottom:none!important}.tnp-extension-premium-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-extension-free-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-integration-action{bottom:0;position:absolute;width:100%;padding:12px;font-family:soleil,sans-serif}.tnp-extension-premium-action span{color:#27ae60}.tnp-extension-free-action span{color:#27ae60}.tnp-integration-action span{color:#27ae60}.tnp-extension-activate{color:#1abc9c;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-install{color:#2980b9;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-buy{color:#f1c40f;padding:5px 8px;text-decoration:none;cursor:pointer}#tnp-body a.tnp-extension-details{color:#999;padding:5px 8px;text-decoration:none;cursor:pointer}.tnp-extension-free{color:#d35400;padding:5px 8px;text-decoration:none;cursor:pointer;position:relative}img.tnp-extensions-free-badge{position:absolute;display:block;right:0;top:0;width:70px}.tnp-extensions-image img{margin:25px 0 -10px}#tnp-subscribe-overlay{height:100vh;width:100vw;z-index:10000;display:none;background-image:url(images/modal-background.png);background-repeat:repeat;position:fixed;top:0;left:-20px}#tnp-subscribe-modal{width:600px;background-color:rgba(255,255,255,1);margin-right:auto;margin-left:auto;margin-top:100px;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,0.5);-moz-box-shadow:0 0 20px 0 rgba(0,0,0,0.5);box-shadow:0 0 20px 0 rgba(0,0,0,0.5);padding:25px;background-color:#1d2b38;text-align:center}#tnp-subscribe-modal img{width:30%}#tnp-subscribe-title{font-size:20px;margin-top:30px;margin-bottom:30px;line-height:30px;color:white;font-weight:200}#tnp-subscribe-email-wrapper{margin:20px}#tnp-subscribe-email-wrapper input{border:0;background-color:#223242;color:white}#tnp-subscribe-email{font-size:24px;box-sizing:border-box;width:100%;padding:10px;text-align:center}#tnp-subscribe-submit-wrapper{margin-bottom:20px}#tnp-subscribe-submit{font-size:24px;background-color:#219050;color:#fff;padding:10px 35px;border:0;font-size:17px;letter-spacing:2px}#tnp-subscribe-no-thanks{color:#666;margin-top:20px;margin-bottom:20px}#tnp-body div.tnp-emails-theme-options{background-color:#fff;padding:10px;margin-top:14px}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:0;background:#ecf0f1;font-family:soleil,sans-serif}.cd-slider-wrapper{position:relative;width:100%;height:90vh;overflow:hidden;margin:0 auto}.cd-slider-wrapper .cd-slider,.cd-slider-wrapper .cd-slider>li{height:100%;width:100%}.tnp-logo-big{width:300px}.tnp-row{display:table-row}.tnp-third{width:33%;float:left}.tnp-welcome-confirm-button{color:#fff;padding:10px 30px;background-color:#2ecc71;font-weight:700;font-size:15px;box-shadow:0 20px 38px rgba(0,0,0,0.16);text-decoration:none;display:inline-block;text-align:center;margin:20px auto 0}.tnp-welcome-confirm-button:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-confirm-button:visited{color:#fff;text-decoration:none}.tnp-welcome-link-button{color:#fff;padding:10px 30px;background-color:#3498db;font-weight:700;font-size:15px;box-shadow:0 20px 38px rgba(0,0,0,0.16);text-decoration:none}.tnp-welcome-link-button:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-link-button:visited{color:#fff;text-decoration:none}#tnp-welcome input[type="text"],#tnp-welcome input[type="email"]{max-width:90%}.tnp-welcome-next{background-color:#2ecc71;padding:10px 20px;color:white;text-decoration:none;font-weight:600;font-size:16px;margin:0 10px;box-shadow:0 10px 30px rgba(0,0,0,0.16);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;display:flex;align-items:center}.tnp-welcome-next:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-next:visited{color:#fff;text-decoration:none}.tnp-welcome-prev{background-color:#3498db;padding:10px 20px;color:white;text-decoration:none;font-weight:600;font-size:16px;margin:0 0 0 10px;box-shadow:0 10px 30px rgba(0,0,0,0.16);width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;display:flex;align-items:center}.tnp-welcome-prev:hover{box-shadow:0 0 38px rgba(0,0,0,0.16);color:#fff}.tnp-welcome-prev:visited{color:#fff;text-decoration:none}.tnp-welcome-next svg{margin-left:10px}.tnp-welcome-prev svg{margin-right:10px}.cd-slider input{width:250px;height:40px;border:1px solid #6c7280;background:#454a56;color:white;color:white;padding:0 10px}.cd-slider>li{position:absolute;top:0;left:0;opacity:0;display:table;background-position:center center;background-repeat:no-repeat;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cd-slider>li.visible{position:relative;z-index:2;opacity:1}.cd-slider>li:first-of-type{background-color:#2b313a}.cd-slider>li:nth-of-type(2){background-color:#2b313a}.cd-slider>li:nth-of-type(3){background-color:#2b313a}.cd-slider>li:nth-of-type(4){background-color:#2b313a}.cd-slider>li:first-of-type,.cd-slider>li:nth-of-type(2),.cd-slider>li:nth-of-type(3),.cd-slider>li:nth-of-type(4){background-size:cover}.cd-slider>li>div{display:table-cell;vertical-align:middle;text-align:center}.cd-slider>li h2,.cd-slider>li p{text-shadow:0 1px 3px rgba(0,0,0,0.1);line-height:1.2;margin:0 auto 14px;color:#fff;width:90%;max-width:320px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:left;color:#b8c3c9;margin:40px auto}.cd-slider>li .cd-btn{display:inline-block;padding:1.2em 1.4em;margin-top:.8em;background-color:rgba(0,0,0,0.6);border-radius:.25em;font-size:1.3rem;font-weight:700;letter-spacing:1px;color:#fff;text-transform:uppercase;-webkit-transition:background-color .2s;-moz-transition:background-color .2s;transition:background-color .2s}.no-touch .cd-slider>li .cd-btn:hover{background-color:rgba(0,0,0,0.8)}@media only screen and (min-width:768px){.cd-slider>li h2,.cd-slider>li p{max-width:520px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:left;color:#b8c3c9;margin:40px auto}}@media only screen and (min-width:1170px){.cd-slider>li h2,.cd-slider>li p{margin-bottom:20px}.cd-slider>li h2{font-size:40px}.cd-slider>li p{font-size:18px;line-height:26px;text-align:center;color:#b8c3c9;margin:30px auto}}.cd-slider-navigation{position:relative;bottom:110px;z-index:3;display:flex;justify-content:center}.cd-svg-cover{position:absolute;z-index:1;left:0;top:0;height:100%;width:100%;opacity:0}.cd-svg-cover path{fill:#ed6a6a}.cd-svg-cover.is-animating{z-index:4;opacity:1;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;transition:opacity .6s}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{display:none}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:white;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}#tnp-body div.tnp-emails-theme-options table.form-table{margin:0}#tnp-body div.tnp-emails-theme-options h3{color:#000}.tnp-emails-edit #options-subject{font-size:16px;display:inline-block;margin:20px 0;width:auto;border-radius:4px;padding:5px 10px}.tnp-suggest-button{font-family:soleil,sans-serif;margin-left:8px;border-radius:3px;background-color:#2980b9;padding:10px 15px 8px;font-size:14px;color:#fff!important;text-decoration:none}.tnp-suggest-button:hover{background-color:#3f8dbf}.tnp-popup-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);z-index:10000}.tnp-popup{width:40vw;height:66vh;overflow:auto;margin:100px auto 0 auto;background-color:#181818;padding:20px;position:relative}.tnp-popup-close{display:block;position:absolute;top:5px;right:5px;background-color:#181818;color:#fff;font-size:40px;padding:10px;text-align:right;cursor:pointer}.tnp-subjects-header{font-size:16px;color:#fff;padding:0 70px 20px 20px;font-family:soleil,sans-serif;border-bottom:1px solid #282828}#tnp-edit-subjects-list{padding:0 70px 20px 20px}#tnp-edit-subjects-list a{padding:5px}#tnp-edit-subjects-list svg{margin:0 10px 0 0;vertical-align:middle}.tnp-subject-category{color:#565656;margin:25px 0 10px 0;font-size:12px;text-transform:uppercase;letter-spacing:.1em}#tnp-edit-emoji-list{font-size:28px}#tnp-edit-emoji-list a{display:inline-block;margin-right:5px;margin-bottom:5px}.tnp-list-conditions p{margin:0 10px}.tnp-lists .tnp-notes{margin:0;font-size:.9em}iframe.tnp-editor-preview-mobile{box-sizing:border-box;background-color:#fff;border:1px solid #bbb;box-shadow:1px 1px 10px #777;border-radius:10px;padding:5px;width:320px;height:500px;float:left}iframe.tnp-editor-preview-desktop{box-sizing:border-box;background-color:#fff;border:1px solid #bbb;border-radius:10px;box-shadow:1px 1px 10px #777;padding:15px;width:650px;margin-right:20px;height:500px;float:left}#tnp-license-control{border-left:5px solid #27ae60;display:inline-block;padding:15px 20px;margin-left:-10px;margin-top:15px;border-radius:2px;background-color:#fff}#tnp-license-control form{margin-bottom:10px;margin-top:10px}#tnp-license-control form input{padding-left:10px}#tnp-license-control a{border-bottom:0;color:#27ae60}#tnp-nl-status{width:100%;background:#fffafa;padding:15px 25px 15px 25px;border-left:10px solid #27ae60;border-radius:0 5px 5px 0}#tnp-nl-status p{font-size:17px}.tnp-nl-status-row{margin:10px 0}.tnp-nl-status-title{font-size:26px;line-height:32px;margin:5px 0 0 0;color:#3498db;font-weight:900;vertical-align:middle}.tnp-nl-status-title-value{font-size:13px;line-height:32px;margin:0 0 0 5px;color:#fff;background-color:#95a5a6;border-radius:4px;text-transform:uppercase;letter-spacing:1px;vertical-align:sub}.tnp-nl-status-schedule-targeting{font-size:15px;color:#34495e}.tnp-nl-status-schedule-value{font-size:15px;color:#34495e}.tnp-status-header #options-subject{width:calc(100% - 150px)}.tnp-one-third{width:40%;display:inline-block;vertical-align:top}.tnp-two-thirds{width:59%;display:inline-block;vertical-align:top}.tnp-progress{display:flex;height:1.5rem;overflow:hidden;font-size:.75rem;background-color:#c9cccf;border-radius:.25rem;margin:0;min-width:100px}.tnp-progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}.tnp-progress.sent .tnp-progress-bar{background-color:green}.tnp-progress-numbers{text-align:center;color:#666}.tnp-progress-date{color:#666;font-style:italic}span.tnp-email-status-new{background-color:#8e44ad;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-paused{background-color:#95a5a6;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-sending{background-color:#27ae60;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-scheduled{background-color:#e67e22;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}span.tnp-email-status-sent{background-color:#95a5a6;padding:2px 10px;border-radius:4px;color:#fff;white-space:nowrap}.tnp-themes-new{border-bottom:2px solid #243342;margin-bottom:30px;padding-bottom:30px}#tnp-schedule-button{background-color:#e67e22!important}#tnp-schedule-button:hover{background-color:#ec913f!important}.tnp-button-cancel{background-color:#e74c3c!important}.tnpc-preview{margin-top:10px}.tnpc-preview .fake-browser-ui iframe{width:700px}.tnpc-preview .fake-mobile-browser-ui iframe{width:320px}.fake-browser-ui{padding:30px 0 0;border-radius:3px;border-bottom:10px solid #ccc;background:#ddd;display:inline-block;position:relative;line-height:0;vertical-align:top;margin-left:20px}.fake-mobile-browser-ui{padding:30px 10px 37px;border-radius:10px;border-bottom:10px solid #ccc;background:#ddd;display:inline-block;position:relative;line-height:0;margin-left:30px}.fake-browser-ui .frame{display:block;height:25px;position:absolute;top:12px;left:8px}.fake-mobile-browser-ui .frame{display:block;height:25px;margin-top:10px}.fake-browser-ui span{height:12px;width:12px;border-radius:8px;background-color:#eee;border:1px solid #dadada;float:left;margin:0 0 0 4px}.fake-mobile-browser-ui span{height:50px;width:50px;border-radius:60px;background-color:#eee;border:2px solid #ccc;display:block;margin:auto}.fake-browser-ui .bt-1{background-color:#ed594a}.fake-browser-ui .bt-2{background-color:#fdd800}.fake-browser-ui .bt-3{background-color:#5ac05a}#tnp-promo{text-align:left;background-color:#222b36;margin:20px;border-radius:5px;padding:20px 40px}#tnp-promo .tnp-promo-how-to{width:50%;padding:5px 20px;margin-top:30px;margin-bottom:30px;border-left:2px solid #f1c40f}#tnp-promo .tnp-promo-how-to h3{color:#ecf0f1;margin:0;line-height:36px}#tnp-promo .tnp-promo-how-to p{color:#ecf0f1;margin:0;font-size:16px;line-height:26px}#tnp-promo .tnp-promo-buttons{margin:50px 0}#tnp-promo .tnp-promo-button{background:#27ae60;text-decoration:none;color:white;padding:15px 20px;font-size:15px;border-radius:2px}#tnp-promo .tnp-promo-button:hover{background:#2ecc71;color:white}#tnp-promo .tnp-promo-button i{margin-right:3px}#tnp-body td a.tnp-table-link,#tnp-body td a.tnp-table-link:visited{color:#444}#tnp-body td a.tnp-table-link:hover{color:#3498db}.text-left{text-align:left}.tab-min-height{min-height:500px}.tnp-control-all-languages-notice{padding:15px;border:1px dashed #999}.sp-dd{display:none}.sp-replacer{width:30px!important;height:30px!important}
|
admin.min.js
CHANGED
@@ -2,4 +2,4 @@ jQuery.cookie=function(c,b,a){if("undefined"!=typeof b){a=a||{};null===b&&(b="",
|
|
2 |
document.cookie.split(";"),d=0;d<a.length;d++)if(e=jQuery.trim(a[d]),e.substring(0,c.length+1)==c+"="){b=decodeURIComponent(e.substring(c.length+1));break}return b}};function tnp_toggle_schedule(){jQuery("#tnp-schedule-button").toggle();jQuery("#tnp-schedule").toggle()}function tnp_select_toggle(c,b){1==c.value?jQuery("#options-"+b).show():jQuery("#options-"+b).hide()}
|
3 |
function tnp_date_onchange(c){var b=c.id.substring(0,c.id.lastIndexOf("_"));c=document.getElementById("options-"+b);let a=document.getElementById(b+"_year"),d=document.getElementById(b+"_month");b=document.getElementById(b+"_day");c.value=""===a.value||""===d.value||""===b.value?0:(new Date(a.value,d.value,b.value,12,0,0)).getTime()/1E3}
|
4 |
window.onload=function(){jQuery(".tnp-counter-animation").each(function(){var c=jQuery(this),b=null;(function(a){return!isNaN(Number(a))&&-1!==Number(a).toString().indexOf(".")})(c.text())?b={parsed:parseFloat(c.text()),rounded:function(a){return a.toFixed(1)}}:(b={parsed:parseInt(c.text()),rounded:function(a){return Math.ceil(a)}},c.hasClass("percentage")&&c.css("min-width","60px"));jQuery({counter:0}).animate({counter:b.parsed},{duration:1E3,easing:"swing",step:function(){c.text(b.rounded(this.counter))}})});
|
5 |
-
(function(){if(jQuery("#tnp-nl-status").length&&jQuery("#newsletter-form").length){var c=jQuery("#tnp-nl-status .tnp-nl-status-schedule-value");jQuery("#newsletter-form").change(function(b){1===jQuery(b.target).parents("#tabs-options").length&&c.text(tnp_translations.save_to_update_counter)})}})()};
|
2 |
document.cookie.split(";"),d=0;d<a.length;d++)if(e=jQuery.trim(a[d]),e.substring(0,c.length+1)==c+"="){b=decodeURIComponent(e.substring(c.length+1));break}return b}};function tnp_toggle_schedule(){jQuery("#tnp-schedule-button").toggle();jQuery("#tnp-schedule").toggle()}function tnp_select_toggle(c,b){1==c.value?jQuery("#options-"+b).show():jQuery("#options-"+b).hide()}
|
3 |
function tnp_date_onchange(c){var b=c.id.substring(0,c.id.lastIndexOf("_"));c=document.getElementById("options-"+b);let a=document.getElementById(b+"_year"),d=document.getElementById(b+"_month");b=document.getElementById(b+"_day");c.value=""===a.value||""===d.value||""===b.value?0:(new Date(a.value,d.value,b.value,12,0,0)).getTime()/1E3}
|
4 |
window.onload=function(){jQuery(".tnp-counter-animation").each(function(){var c=jQuery(this),b=null;(function(a){return!isNaN(Number(a))&&-1!==Number(a).toString().indexOf(".")})(c.text())?b={parsed:parseFloat(c.text()),rounded:function(a){return a.toFixed(1)}}:(b={parsed:parseInt(c.text()),rounded:function(a){return Math.ceil(a)}},c.hasClass("percentage")&&c.css("min-width","60px"));jQuery({counter:0}).animate({counter:b.parsed},{duration:1E3,easing:"swing",step:function(){c.text(b.rounded(this.counter))}})});
|
5 |
+
(function(){if(jQuery("#tnp-nl-status").length&&jQuery("#newsletter-form").length){var c=jQuery("#tnp-nl-status .tnp-nl-status-schedule-value");jQuery("#newsletter-form").change(function(b){1===jQuery(b.target).parents("#tabs-options").length&&c.text(tnp_translations.save_to_update_counter)})}})()};function tnp_controls_init(){jQuery(".tnpf-color").spectrum({type:"color",allowEmpty:!0,showAlpha:!1,showInput:!0,preferredFormat:"hex"})};
|
css/fields.css
CHANGED
@@ -53,7 +53,7 @@
|
|
53 |
}
|
54 |
|
55 |
.tnp-section {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
.tnp-field.tnp-separator {
|
@@ -91,10 +91,10 @@
|
|
91 |
|
92 |
/* Set of inlined field for font, size, color... */
|
93 |
tnp-field.tnp-font {
|
94 |
-
|
95 |
}
|
96 |
|
97 |
-
.tnp-field input {
|
98 |
width: 100%;
|
99 |
}
|
100 |
|
@@ -140,13 +140,25 @@ tnp-field.tnp-font {
|
|
140 |
width: auto;
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
.tnp-field.tnp-categories {
|
144 |
-
|
145 |
}
|
146 |
|
147 |
/* The label for each category checkbox (should override the generic label appearance) */
|
148 |
.tnp-field.tnp-categories label {
|
149 |
-
|
150 |
}
|
151 |
|
152 |
.tnp-description {
|
@@ -155,3 +167,8 @@ tnp-field.tnp-font {
|
|
155 |
font-weight: normal;
|
156 |
color: #999999;
|
157 |
}
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
.tnp-section {
|
56 |
+
|
57 |
}
|
58 |
|
59 |
.tnp-field.tnp-separator {
|
91 |
|
92 |
/* Set of inlined field for font, size, color... */
|
93 |
tnp-field.tnp-font {
|
94 |
+
|
95 |
}
|
96 |
|
97 |
+
.tnp-field:not(.tnp-colorpicker) input {
|
98 |
width: 100%;
|
99 |
}
|
100 |
|
140 |
width: auto;
|
141 |
}
|
142 |
|
143 |
+
.tnp-field.tnp-button .tnpf-font-family {
|
144 |
+
font-size: 13px;
|
145 |
+
}
|
146 |
+
|
147 |
+
.tnp-field.tnp-button .tnpf-font-size {
|
148 |
+
font-size: 13px;
|
149 |
+
}
|
150 |
+
|
151 |
+
.tnp-field.tnp-button .tnpf-font-weight {
|
152 |
+
font-size: 13px;
|
153 |
+
}
|
154 |
+
|
155 |
.tnp-field.tnp-categories {
|
156 |
+
|
157 |
}
|
158 |
|
159 |
/* The label for each category checkbox (should override the generic label appearance) */
|
160 |
.tnp-field.tnp-categories label {
|
161 |
+
|
162 |
}
|
163 |
|
164 |
.tnp-description {
|
167 |
font-weight: normal;
|
168 |
color: #999999;
|
169 |
}
|
170 |
+
|
171 |
+
.tnpf-color {
|
172 |
+
width: 40px;
|
173 |
+
font-size: 12px;
|
174 |
+
}
|
css/fields.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.tnp-field-row{clear:both;margin-left:-10px;margin-right:-10px}.tnp-field-col-2{width:50%;box-sizing:border-box;padding:10px;float:left}.tnp-field-col-3{width:33%;box-sizing:border-box;padding:10px;float:left}.tnp-field-col-20{width:20%;box-sizing:border-box;padding:10px;float:left}.tnp-field-col-33{width:33%;box-sizing:border-box;padding:10px;float:left}.tnp-field-col-66{width:66%;box-sizing:border-box;padding:10px;float:left}.tnp-field-col-80{width:80%;box-sizing:border-box;padding:10px;float:left}.tnp-field.tnp-separator{border-top:1px solid #ddd;line-height:0}.tnp-field{display:block;width:100%;margin-bottom:10px}.tnp-field label.tnp-label,.tnp-field-row label.tnp-row-label{display:block;font-size:12px;font-weight:300;border-bottom:1px solid #fff;margin:25px 0 10px 0;font-family:soleil,sans-serif;font-weight:300;padding-bottom:5px;color:#868686}.tnp-field-row label.tnp-row-label{margin-left:10px}.tnp-field.tnp-checkbox label{display:inline}.tnp-field:not(.tnp-colorpicker) input{width:100%}.tnp-field input[type=number]{width:100px}.tnp-field.tnp-size input{width:60px;display:inline}.tnp-field .tnp-padding-fields{display:inline}.tnp-field .tnp-padding-fields input{width:40px;display:inline}.tnp-field select{width:auto!important;color:#34495e}.tnp-field input[type=url]{font-family:monospace}.tnp-field input[type=color]{width:40px;min-height:30px;vertical-align:middle}.tnp-field input[type=submit]{width:auto}.tnp-field input[type=checkbox]{width:auto}.tnp-field.tnp-button .tnpf-font-family{font-size:13px}.tnp-field.tnp-button .tnpf-font-size{font-size:13px}.tnp-field.tnp-button .tnpf-font-weight{font-size:13px}.tnp-description{margin-top:7px;font-style:italic;font-weight:normal;color:#999}.tnpf-color{width:40px;font-size:12px}
|
emails/blocks/hero/block-full.php
CHANGED
@@ -1,27 +1,27 @@
|
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
-
font-size: <?php echo $title_font_size ?>px;
|
5 |
-
color: <?php echo $title_font_color ?>;
|
6 |
font-family: <?php echo $title_font_family ?>;
|
7 |
-
font-weight: <?php echo $title_font_weight ?>;
|
8 |
line-height: normal;
|
9 |
margin: 0;
|
10 |
}
|
11 |
.text {
|
12 |
-
padding: 20px 0 0 0;
|
13 |
-
font-size: <?php echo $font_size ?>px;
|
14 |
-
line-height: 150%;
|
15 |
-
color: <?php echo $font_color ?>;
|
16 |
-
font-family: <?php echo $font_family ?>;
|
17 |
margin: 0;
|
18 |
}
|
19 |
.image {
|
20 |
-
max-width: 100%!important;
|
21 |
display: inline-block;
|
22 |
border: 0px;
|
23 |
margin: 0;
|
24 |
-
}
|
25 |
.image-a {
|
26 |
display: block;
|
27 |
}
|
@@ -33,9 +33,7 @@
|
|
33 |
<?php if ($media) { ?>
|
34 |
<tr>
|
35 |
<td class="padding-copy tnpc-row-edit" align="center" style="text-align: center; line-height: 0; padding-bottom: 20px;">
|
36 |
-
|
37 |
-
<img src="<?php echo $media->url ?>" border="0" alt="<?php echo esc_attr($media->alt) ?>" width="<?php echo $media->width ?>" height="<?php echo $media->height ?>" inline-class="image">
|
38 |
-
</a>
|
39 |
</td>
|
40 |
</tr>
|
41 |
<?php } ?>
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
+
font-size: <?php echo $title_font_size ?>px;
|
5 |
+
color: <?php echo $title_font_color ?>;
|
6 |
font-family: <?php echo $title_font_family ?>;
|
7 |
+
font-weight: <?php echo $title_font_weight ?>;
|
8 |
line-height: normal;
|
9 |
margin: 0;
|
10 |
}
|
11 |
.text {
|
12 |
+
padding: 20px 0 0 0;
|
13 |
+
font-size: <?php echo $font_size ?>px;
|
14 |
+
line-height: 150%;
|
15 |
+
color: <?php echo $font_color ?>;
|
16 |
+
font-family: <?php echo $font_family ?>;
|
17 |
margin: 0;
|
18 |
}
|
19 |
.image {
|
20 |
+
max-width: 100%!important;
|
21 |
display: inline-block;
|
22 |
border: 0px;
|
23 |
margin: 0;
|
24 |
+
}
|
25 |
.image-a {
|
26 |
display: block;
|
27 |
}
|
33 |
<?php if ($media) { ?>
|
34 |
<tr>
|
35 |
<td class="padding-copy tnpc-row-edit" align="center" style="text-align: center; line-height: 0; padding-bottom: 20px;">
|
36 |
+
<?php echo TNP_Composer::image( $media, [ 'class' => 'image', 'link-class' => 'image-a' ] ); ?>
|
|
|
|
|
37 |
</td>
|
38 |
</tr>
|
39 |
<?php } ?>
|
emails/blocks/hero/block-left.php
CHANGED
@@ -1,29 +1,29 @@
|
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
-
font-size: <?php echo $title_font_size ?>px;
|
5 |
-
color: <?php echo $title_font_color ?>;
|
6 |
-
padding-top: 0;
|
7 |
font-family: <?php echo $title_font_family ?>;
|
8 |
-
font-weight: <?php echo $title_font_weight ?>;
|
9 |
margin: 0;
|
10 |
text-align: center;
|
11 |
line-height: normal;
|
12 |
}
|
13 |
.text {
|
14 |
-
padding: 20px 0 0 0;
|
15 |
-
font-size: <?php echo $font_size ?>px;
|
16 |
-
line-height: 150%;
|
17 |
-
color: <?php echo $font_color ?>;
|
18 |
-
font-family: <?php echo $font_family ?>;
|
19 |
-
font-weight: <?php echo $font_weight ?>;
|
20 |
margin: 0;
|
21 |
text-align: center;
|
22 |
}
|
23 |
.image {
|
24 |
max-width: 100%!important;
|
25 |
display: block;
|
26 |
-
}
|
27 |
.image-a {
|
28 |
display: block;
|
29 |
}
|
@@ -37,11 +37,7 @@
|
|
37 |
<table width="50%" align="left" class="hero-table" border="0" cellspacing="0" cellpadding="0">
|
38 |
<tr>
|
39 |
<td align="center" valign="top">
|
40 |
-
|
41 |
-
<?php if ($media) { ?>
|
42 |
-
<img src="<?php echo $media->url ?>" border="0" alt="<?php echo esc_attr($media->alt) ?>" width="<?php echo $media->width ?>" height="<?php echo $media->height ?>" inline-class="image">
|
43 |
-
<?php } ?>
|
44 |
-
</a>
|
45 |
</td>
|
46 |
</tr>
|
47 |
</table>
|
@@ -64,4 +60,4 @@
|
|
64 |
</td>
|
65 |
</tr>
|
66 |
|
67 |
-
</table>
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
+
font-size: <?php echo $title_font_size ?>px;
|
5 |
+
color: <?php echo $title_font_color ?>;
|
6 |
+
padding-top: 0;
|
7 |
font-family: <?php echo $title_font_family ?>;
|
8 |
+
font-weight: <?php echo $title_font_weight ?>;
|
9 |
margin: 0;
|
10 |
text-align: center;
|
11 |
line-height: normal;
|
12 |
}
|
13 |
.text {
|
14 |
+
padding: 20px 0 0 0;
|
15 |
+
font-size: <?php echo $font_size ?>px;
|
16 |
+
line-height: 150%;
|
17 |
+
color: <?php echo $font_color ?>;
|
18 |
+
font-family: <?php echo $font_family ?>;
|
19 |
+
font-weight: <?php echo $font_weight ?>;
|
20 |
margin: 0;
|
21 |
text-align: center;
|
22 |
}
|
23 |
.image {
|
24 |
max-width: 100%!important;
|
25 |
display: block;
|
26 |
+
}
|
27 |
.image-a {
|
28 |
display: block;
|
29 |
}
|
37 |
<table width="50%" align="left" class="hero-table" border="0" cellspacing="0" cellpadding="0">
|
38 |
<tr>
|
39 |
<td align="center" valign="top">
|
40 |
+
<?php echo TNP_Composer::image( $media, [ 'class' => 'image', 'link-class' => 'image-a' ] ); ?>
|
|
|
|
|
|
|
|
|
41 |
</td>
|
42 |
</tr>
|
43 |
</table>
|
60 |
</td>
|
61 |
</tr>
|
62 |
|
63 |
+
</table>
|
emails/blocks/hero/block-right.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
-
font-size: <?php echo $title_font_size ?>px;
|
5 |
-
color: <?php echo $title_font_color ?>;
|
6 |
-
padding-top: 0;
|
7 |
font-family: <?php echo $title_font_family ?>;
|
8 |
-
font-weight: <?php echo $title_font_weight ?>;
|
9 |
line-height: normal;
|
10 |
margin: 0;
|
11 |
text-align: center;
|
12 |
}
|
13 |
.text {
|
14 |
-
padding: 20px 0 0 0;
|
15 |
-
font-size: <?php echo $font_size ?>px;
|
16 |
-
line-height: 150%;
|
17 |
-
color: <?php echo $font_color ?>;
|
18 |
-
font-family: <?php echo $font_family ?>;
|
19 |
-
font-weight: <?php echo $font_weight ?>;
|
20 |
text-align: center;
|
21 |
margin: 0;
|
22 |
}
|
@@ -29,7 +29,7 @@
|
|
29 |
}
|
30 |
.button {
|
31 |
padding-top: 15px;
|
32 |
-
}
|
33 |
</style>
|
34 |
|
35 |
<!-- layout: right -->
|
@@ -39,14 +39,10 @@
|
|
39 |
<table width="50%" align="right" class="hero-table" border="0" cellspacing="0" cellpadding="0">
|
40 |
<tr>
|
41 |
<td align="center" valign="top" dir="ltr">
|
42 |
-
|
43 |
-
<?php if ($media) { ?>
|
44 |
-
<img src="<?php echo $media->url ?>" border="0" alt="<?php echo esc_attr($media->alt) ?>" width="<?php echo $media->width ?>" height="<?php echo $media->height ?>" inline-class="image">
|
45 |
-
<?php } ?>
|
46 |
-
</a>
|
47 |
</td>
|
48 |
</tr>
|
49 |
-
</table>
|
50 |
|
51 |
<table width="49%" align="left" class="hero-table hero-table-right" border="0" cellspacing="0" cellpadding="0">
|
52 |
<tr>
|
@@ -66,4 +62,4 @@
|
|
66 |
</tr>
|
67 |
</table>
|
68 |
|
69 |
-
</div>
|
1 |
<style>
|
2 |
/* Styles which will be removed and injected in the replacing the matching "inline-class" attribute */
|
3 |
.title {
|
4 |
+
font-size: <?php echo $title_font_size ?>px;
|
5 |
+
color: <?php echo $title_font_color ?>;
|
6 |
+
padding-top: 0;
|
7 |
font-family: <?php echo $title_font_family ?>;
|
8 |
+
font-weight: <?php echo $title_font_weight ?>;
|
9 |
line-height: normal;
|
10 |
margin: 0;
|
11 |
text-align: center;
|
12 |
}
|
13 |
.text {
|
14 |
+
padding: 20px 0 0 0;
|
15 |
+
font-size: <?php echo $font_size ?>px;
|
16 |
+
line-height: 150%;
|
17 |
+
color: <?php echo $font_color ?>;
|
18 |
+
font-family: <?php echo $font_family ?>;
|
19 |
+
font-weight: <?php echo $font_weight ?>;
|
20 |
text-align: center;
|
21 |
margin: 0;
|
22 |
}
|
29 |
}
|
30 |
.button {
|
31 |
padding-top: 15px;
|
32 |
+
}
|
33 |
</style>
|
34 |
|
35 |
<!-- layout: right -->
|
39 |
<table width="50%" align="right" class="hero-table" border="0" cellspacing="0" cellpadding="0">
|
40 |
<tr>
|
41 |
<td align="center" valign="top" dir="ltr">
|
42 |
+
<?php echo TNP_Composer::image( $media, [ 'class' => 'image', 'link-class' => 'image-a' ] ); ?>
|
|
|
|
|
|
|
|
|
43 |
</td>
|
44 |
</tr>
|
45 |
+
</table>
|
46 |
|
47 |
<table width="49%" align="left" class="hero-table hero-table-right" border="0" cellspacing="0" cellpadding="0">
|
48 |
<tr>
|
62 |
</tr>
|
63 |
</table>
|
64 |
|
65 |
+
</div>
|
emails/blocks/hero/block.php
CHANGED
@@ -29,7 +29,6 @@ $defaults = array(
|
|
29 |
'button_font_weight' => 'bold',
|
30 |
'button_font_size' => 20,
|
31 |
'button_background' => '#256F9C',
|
32 |
-
'layout' => 'full',
|
33 |
'block_padding_top' => 30,
|
34 |
'block_padding_bottom' => 30,
|
35 |
'block_padding_left' => 15,
|
@@ -63,7 +62,6 @@ if ($layout == 'full') {
|
|
63 |
} else {
|
64 |
$options = array_merge(array('block_padding_left' => 15, 'block_padding_right' => 15), $options);
|
65 |
}
|
66 |
-
$url = $options['button_url'];
|
67 |
|
68 |
$font_family = $options['font_family'];
|
69 |
$font_size = $options['font_size'];
|
@@ -79,13 +77,13 @@ $layout = $options['layout'];
|
|
79 |
|
80 |
if (!empty($options['image']['id'])) {
|
81 |
if ($layout == 'full') {
|
82 |
-
$media =
|
83 |
if ($media) {
|
84 |
$media->set_width(600 - $options['block_padding_left'] - $options['block_padding_right']);
|
85 |
}
|
86 |
} else {
|
87 |
-
|
88 |
-
$media =
|
89 |
if ($media) {
|
90 |
$media->set_width(300 - $options['block_padding_left']);
|
91 |
}
|
29 |
'button_font_weight' => 'bold',
|
30 |
'button_font_size' => 20,
|
31 |
'button_background' => '#256F9C',
|
|
|
32 |
'block_padding_top' => 30,
|
33 |
'block_padding_bottom' => 30,
|
34 |
'block_padding_left' => 15,
|
62 |
} else {
|
63 |
$options = array_merge(array('block_padding_left' => 15, 'block_padding_right' => 15), $options);
|
64 |
}
|
|
|
65 |
|
66 |
$font_family = $options['font_family'];
|
67 |
$font_size = $options['font_size'];
|
77 |
|
78 |
if (!empty($options['image']['id'])) {
|
79 |
if ($layout == 'full') {
|
80 |
+
$media = tnp_resize_2x($options['image']['id'], array(600, 0));
|
81 |
if ($media) {
|
82 |
$media->set_width(600 - $options['block_padding_left'] - $options['block_padding_right']);
|
83 |
}
|
84 |
} else {
|
85 |
+
|
86 |
+
$media = tnp_resize_2x($options['image']['id'], array(300, 0));
|
87 |
if ($media) {
|
88 |
$media->set_width(300 - $options['block_padding_left']);
|
89 |
}
|
emails/blocks/image/block.php
CHANGED
@@ -30,12 +30,12 @@ if (empty($options['image']['id'])) {
|
|
30 |
$media->width = 600;
|
31 |
$media->height = 250;
|
32 |
} else {
|
33 |
-
$media->url = 'https://source.unsplash.com/
|
34 |
$media->width = 600;
|
35 |
$media->height = 250;
|
36 |
}
|
37 |
} else {
|
38 |
-
$media =
|
39 |
// Should never happen but... it happens
|
40 |
if (!$media) {
|
41 |
echo 'The selected media file cannot be processed';
|
@@ -47,20 +47,18 @@ if (empty($options['image']['id'])) {
|
|
47 |
if (!empty($options['width'])) {
|
48 |
$media->set_width($options['width']);
|
49 |
}
|
50 |
-
$
|
|
|
51 |
?>
|
52 |
<style>
|
53 |
-
|
54 |
-
max-width: 100
|
55 |
-
height: auto!important;
|
56 |
display: block;
|
57 |
width: <?php echo $media->width ?>px;
|
58 |
line-height: 0;
|
59 |
margin: 0 auto;
|
60 |
}
|
61 |
</style>
|
62 |
-
|
63 |
-
|
64 |
-
<?php } else { ?>
|
65 |
-
<img src="<?php echo $media->url ?>" border="0" alt="<?php echo esc_attr($media->alt) ?>" width="<?php echo $media->width ?>" height="<?php echo $media->height ?>" inline-class="image">
|
66 |
-
<?php } ?>
|
30 |
$media->width = 600;
|
31 |
$media->height = 250;
|
32 |
} else {
|
33 |
+
$media->url = 'https://source.unsplash.com/1200x500/daily';
|
34 |
$media->width = 600;
|
35 |
$media->height = 250;
|
36 |
}
|
37 |
} else {
|
38 |
+
$media = tnp_resize_2x($options['image']['id'], array(600, 0));
|
39 |
// Should never happen but... it happens
|
40 |
if (!$media) {
|
41 |
echo 'The selected media file cannot be processed';
|
47 |
if (!empty($options['width'])) {
|
48 |
$media->set_width($options['width']);
|
49 |
}
|
50 |
+
$media->link = $options['url'];
|
51 |
+
$image_class_name = 'image';
|
52 |
?>
|
53 |
<style>
|
54 |
+
.<?php echo $image_class_name ?> {
|
55 |
+
max-width: 100% !important;
|
56 |
+
height: auto !important;
|
57 |
display: block;
|
58 |
width: <?php echo $media->width ?>px;
|
59 |
line-height: 0;
|
60 |
margin: 0 auto;
|
61 |
}
|
62 |
</style>
|
63 |
+
|
64 |
+
<?php echo TNP_Composer::image( $media, [ 'class' => $image_class_name ] ); ?>
|
|
|
|
|
|
emails/emails.php
CHANGED
@@ -346,7 +346,8 @@ class NewsletterEmails extends NewsletterModule {
|
|
346 |
'block_padding_bottom' => 0,
|
347 |
'block_padding_right' => 0,
|
348 |
'block_padding_left' => 0,
|
349 |
-
'block_background' => '#ffffff'
|
|
|
350 |
);
|
351 |
|
352 |
$options = array_merge($common_defaults, $options);
|
@@ -502,14 +503,26 @@ class NewsletterEmails extends NewsletterModule {
|
|
502 |
return $editor_type;
|
503 |
}
|
504 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
function hook_newsletter_action($action, $user, $email) {
|
506 |
global $wpdb;
|
507 |
|
508 |
switch ($action) {
|
509 |
case 'v':
|
510 |
case 'view':
|
511 |
-
$
|
512 |
-
|
|
|
|
|
|
|
|
|
513 |
if (empty($email)) {
|
514 |
header("HTTP/1.0 404 Not Found");
|
515 |
die('Email not found');
|
346 |
'block_padding_bottom' => 0,
|
347 |
'block_padding_right' => 0,
|
348 |
'block_padding_left' => 0,
|
349 |
+
'block_background' => '#ffffff',
|
350 |
+
'block_background_2' => ''
|
351 |
);
|
352 |
|
353 |
$options = array_merge($common_defaults, $options);
|
503 |
return $editor_type;
|
504 |
}
|
505 |
|
506 |
+
/**
|
507 |
+
*
|
508 |
+
* @global wpdb $wpdb
|
509 |
+
* @param type $action
|
510 |
+
* @param type $user
|
511 |
+
* @param type $email
|
512 |
+
* @return type
|
513 |
+
*/
|
514 |
function hook_newsletter_action($action, $user, $email) {
|
515 |
global $wpdb;
|
516 |
|
517 |
switch ($action) {
|
518 |
case 'v':
|
519 |
case 'view':
|
520 |
+
$id = $_GET['id'];
|
521 |
+
if ($id == 'last') {
|
522 |
+
$email = $wpdb->get_row("select * from " . NEWSLETTER_EMAILS_TABLE . " where private=0 and type='message' and status='sent' order by send_on desc limit 1");
|
523 |
+
} else {
|
524 |
+
$email = $this->get_email($_GET['id']);
|
525 |
+
}
|
526 |
if (empty($email)) {
|
527 |
header("HTTP/1.0 404 Not Found");
|
528 |
die('Email not found');
|
emails/tnp-composer/_scripts/newsletter-builder-v2.js
CHANGED
@@ -45,8 +45,6 @@ jQuery.fn.perform_block_edit = function () {
|
|
45 |
jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));
|
46 |
jQuery("#tnpc-edit-block .font").val(target.css("font-family"));
|
47 |
|
48 |
-
jQuery('.bgcolor').wpColorPicker().iris('color', target.css("background-color"));
|
49 |
-
|
50 |
// The row container which is a global variable and used later after the options save
|
51 |
container = jQuery(this).closest("table");
|
52 |
|
@@ -66,6 +64,7 @@ jQuery.fn.perform_block_edit = function () {
|
|
66 |
options: options
|
67 |
}, function () {
|
68 |
start_options = jQuery("#tnpc-block-options-form").serialize();
|
|
|
69 |
});
|
70 |
|
71 |
} else {
|
@@ -134,12 +133,21 @@ jQuery(function () {
|
|
134 |
// subject management
|
135 |
jQuery('#options-title').val(jQuery('#tnpc-form input[name="options[subject]"]').val());
|
136 |
|
137 |
-
//
|
|
|
|
|
|
|
|
|
138 |
jQuery('#options-options_composer_background').on('change', function (e) {
|
139 |
-
|
140 |
});
|
141 |
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
143 |
|
144 |
});
|
145 |
|
@@ -168,7 +176,7 @@ function start_composer() {
|
|
168 |
'_wpnonce': tnp_nonce
|
169 |
};
|
170 |
jQuery.post(ajaxurl, data, function (response) {
|
171 |
-
|
172 |
new_row = jQuery(response);
|
173 |
// ui.item.before(new_row);
|
174 |
// ui.item.remove();
|
@@ -261,7 +269,6 @@ function start_composer() {
|
|
261 |
});
|
262 |
|
263 |
|
264 |
-
|
265 |
});
|
266 |
|
267 |
jQuery(".tnpc-row").add_delete();
|
45 |
jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));
|
46 |
jQuery("#tnpc-edit-block .font").val(target.css("font-family"));
|
47 |
|
|
|
|
|
48 |
// The row container which is a global variable and used later after the options save
|
49 |
container = jQuery(this).closest("table");
|
50 |
|
64 |
options: options
|
65 |
}, function () {
|
66 |
start_options = jQuery("#tnpc-block-options-form").serialize();
|
67 |
+
tnp_controls_init();
|
68 |
});
|
69 |
|
70 |
} else {
|
133 |
// subject management
|
134 |
jQuery('#options-title').val(jQuery('#tnpc-form input[name="options[subject]"]').val());
|
135 |
|
136 |
+
// ======================== //
|
137 |
+
// == BACKGROUND COLOR == //
|
138 |
+
// ======================== //
|
139 |
+
_setBuilderAreaBackgroundColor(document.getElementById('options-options_composer_background').value);
|
140 |
+
|
141 |
jQuery('#options-options_composer_background').on('change', function (e) {
|
142 |
+
_setBuilderAreaBackgroundColor(e.target.value);
|
143 |
});
|
144 |
|
145 |
+
function _setBuilderAreaBackgroundColor(color) {
|
146 |
+
jQuery('#newsletter-builder-area-center-frame-content').css('background-color', color);
|
147 |
+
}
|
148 |
+
// ======================== //
|
149 |
+
// == BACKGROUND COLOR == //
|
150 |
+
// ======================== //
|
151 |
|
152 |
});
|
153 |
|
176 |
'_wpnonce': tnp_nonce
|
177 |
};
|
178 |
jQuery.post(ajaxurl, data, function (response) {
|
179 |
+
|
180 |
new_row = jQuery(response);
|
181 |
// ui.item.before(new_row);
|
182 |
// ui.item.remove();
|
269 |
});
|
270 |
|
271 |
|
|
|
272 |
});
|
273 |
|
274 |
jQuery(".tnpc-row").add_delete();
|
emails/tnp-composer/_scripts/newsletter-builder-v2.min.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
jQuery.fn.add_delete=function(){this.append('<div class="tnpc-row-delete" title="Delete"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/delete.png" width="32"></div>');this.find(".tnpc-row-delete").perform_delete()};jQuery.fn.perform_delete=function(){this.click(function(){jQuery("#tnpc-block-options").hide();jQuery(this).parent().remove();tnpc_mobile_preview()})};
|
2 |
jQuery.fn.add_block_edit=function(){this.append('<div class="tnpc-row-edit-block" title="Edit"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/edit.png" width="32"></div>');this.find(".tnpc-row-edit-block").perform_block_edit()};jQuery.fn.add_block_clone=function(){this.append('<div class="tnpc-row-clone" title="Clone"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/copy.png" width="32"></div>');this.find(".tnpc-row-clone").perform_clone()};let start_options=null,container=null;
|
3 |
jQuery.fn.perform_block_edit=function(){jQuery(".tnpc-row-edit-block").click(function(a){a.preventDefault()});this.click(function(a){a.preventDefault();target=jQuery(this).parent().find(".edit-block");jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));jQuery("#tnpc-edit-block .font").val(target.css("font-family"));jQuery(".bgcolor").wpColorPicker().iris("color",target.css("background-color"));container=jQuery(this).closest("table");container.hasClass("tnpc-row-block")?(jQuery("#tnpc-block-options").fadeIn(500),
|
4 |
-
(a=container.find(".tnpc-block-content").attr("data-json"))||(a=target.attr("data-options")),jQuery("#tnpc-block-options-form").load(ajaxurl,{action:"tnpc_options",id:container.data("id"),context_type:tnp_context_type,options:a},function(){start_options=jQuery("#tnpc-block-options-form").serialize()})):alert("This is deprecated block version and cannot be edited. Please replace it with a new one.")})};
|
5 |
jQuery.fn.perform_clone=function(){jQuery(".tnpc-row-clone").click(function(a){a.preventDefault()});this.click(function(a){a.preventDefault();jQuery("#tnpc-block-options").hide();a=jQuery(this).closest(".tnpc-row");let b=a.clone();b.find(".tnpc-row-delete").remove();b.find(".tnpc-row-edit-block").remove();b.find(".tnpc-row-clone").remove();b.add_delete();b.add_block_edit();b.add_block_clone();b.insertAfter(a);tnpc_mobile_preview()})};
|
6 |
-
jQuery(function(){jQuery("body").addClass("folded");document.getElementById("defaultOpen").click();var
|
7 |
-
|
8 |
function start_composer(){jQuery("#newsletter-builder-area-center-frame-content").sortable({revert:!1,placeholder:"placeholder",forcePlaceholderSize:!0,opacity:.6,tolerance:"pointer",helper:function(a){return jQuery(document.getElementById("sortable-helper")).clone()},update:function(a,b){"draggable-helper"==b.item.attr("id")?(loading_row=jQuery('<div style="text-align: center; padding: 20px; background-color: #d4d5d6; color: #52BE7F;"><i class="fa fa-cog fa-2x fa-spin" /></div>'),b.item.before(loading_row),
|
9 |
b.item.remove(),a={action:"tnpc_render",b:b.item.data("id"),full:1,_wpnonce:tnp_nonce},jQuery.post(ajaxurl,a,function(a){new_row=jQuery(a);loading_row.before(new_row);loading_row.remove();new_row.add_delete();new_row.add_block_edit();new_row.add_block_clone();new_row.hasClass("tnpc-row-block")&&new_row.find(".tnpc-row-edit-block").click();tnpc_mobile_preview()}).fail(function(){alert("Block rendering failed.");loading_row.remove()})):tnpc_mobile_preview()}});jQuery(".newsletter-sidebar-buttons-content-tab").draggable({connectToSortable:"#newsletter-builder-area-center-frame-content",
|
10 |
helper:function(a){var b=jQuery(document.getElementById("draggable-helper")).clone();b.attr("data-id",a.currentTarget.dataset.id);b.html(a.currentTarget.dataset.name);return b},revert:!1,start:function(){jQuery(".tnpc-row").length||jQuery("#newsletter-builder-area-center-frame-content").append('<div class="tnpc-drop-here">Drag&Drop blocks here!</div>')},stop:function(a,b){jQuery(".tnpc-drop-here").remove()}});jQuery("#tnpc-block-options-cancel").click(function(){jQuery(this).parent().parent().fadeOut(500);
|
1 |
jQuery.fn.add_delete=function(){this.append('<div class="tnpc-row-delete" title="Delete"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/delete.png" width="32"></div>');this.find(".tnpc-row-delete").perform_delete()};jQuery.fn.perform_delete=function(){this.click(function(){jQuery("#tnpc-block-options").hide();jQuery(this).parent().remove();tnpc_mobile_preview()})};
|
2 |
jQuery.fn.add_block_edit=function(){this.append('<div class="tnpc-row-edit-block" title="Edit"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/edit.png" width="32"></div>');this.find(".tnpc-row-edit-block").perform_block_edit()};jQuery.fn.add_block_clone=function(){this.append('<div class="tnpc-row-clone" title="Clone"><img src="'+TNP_PLUGIN_URL+'/emails/tnp-composer/_assets/copy.png" width="32"></div>');this.find(".tnpc-row-clone").perform_clone()};let start_options=null,container=null;
|
3 |
jQuery.fn.perform_block_edit=function(){jQuery(".tnpc-row-edit-block").click(function(a){a.preventDefault()});this.click(function(a){a.preventDefault();target=jQuery(this).parent().find(".edit-block");jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));jQuery("#tnpc-edit-block .font").val(target.css("font-family"));jQuery(".bgcolor").wpColorPicker().iris("color",target.css("background-color"));container=jQuery(this).closest("table");container.hasClass("tnpc-row-block")?(jQuery("#tnpc-block-options").fadeIn(500),
|
4 |
+
(a=container.find(".tnpc-block-content").attr("data-json"))||(a=target.attr("data-options")),jQuery("#tnpc-block-options-form").load(ajaxurl,{action:"tnpc_options",id:container.data("id"),context_type:tnp_context_type,options:a},function(){start_options=jQuery("#tnpc-block-options-form").serialize();tnp_controls_init()})):alert("This is deprecated block version and cannot be edited. Please replace it with a new one.")})};
|
5 |
jQuery.fn.perform_clone=function(){jQuery(".tnpc-row-clone").click(function(a){a.preventDefault()});this.click(function(a){a.preventDefault();jQuery("#tnpc-block-options").hide();a=jQuery(this).closest(".tnpc-row");let b=a.clone();b.find(".tnpc-row-delete").remove();b.find(".tnpc-row-edit-block").remove();b.find(".tnpc-row-clone").remove();b.add_delete();b.add_block_edit();b.add_block_clone();b.insertAfter(a);tnpc_mobile_preview()})};
|
6 |
+
jQuery(function(){function a(a){jQuery("#newsletter-builder-area-center-frame-content").css("background-color",a)}jQuery("body").addClass("folded");document.getElementById("defaultOpen").click();var b=jQuery('input[name="message"]').val();b||(b=jQuery('input[name="options[message]"]').val());b?(jQuery("#newsletter-builder-area-center-frame-content").html(b),start_composer()):tnpc_show_presets();jQuery("#options-title").val(jQuery('#tnpc-form input[name="options[subject]"]').val());a(document.getElementById("options-options_composer_background").value);
|
7 |
+
jQuery("#options-options_composer_background").on("change",function(b){a(b.target.value)})});
|
8 |
function start_composer(){jQuery("#newsletter-builder-area-center-frame-content").sortable({revert:!1,placeholder:"placeholder",forcePlaceholderSize:!0,opacity:.6,tolerance:"pointer",helper:function(a){return jQuery(document.getElementById("sortable-helper")).clone()},update:function(a,b){"draggable-helper"==b.item.attr("id")?(loading_row=jQuery('<div style="text-align: center; padding: 20px; background-color: #d4d5d6; color: #52BE7F;"><i class="fa fa-cog fa-2x fa-spin" /></div>'),b.item.before(loading_row),
|
9 |
b.item.remove(),a={action:"tnpc_render",b:b.item.data("id"),full:1,_wpnonce:tnp_nonce},jQuery.post(ajaxurl,a,function(a){new_row=jQuery(a);loading_row.before(new_row);loading_row.remove();new_row.add_delete();new_row.add_block_edit();new_row.add_block_clone();new_row.hasClass("tnpc-row-block")&&new_row.find(".tnpc-row-edit-block").click();tnpc_mobile_preview()}).fail(function(){alert("Block rendering failed.");loading_row.remove()})):tnpc_mobile_preview()}});jQuery(".newsletter-sidebar-buttons-content-tab").draggable({connectToSortable:"#newsletter-builder-area-center-frame-content",
|
10 |
helper:function(a){var b=jQuery(document.getElementById("draggable-helper")).clone();b.attr("data-id",a.currentTarget.dataset.id);b.html(a.currentTarget.dataset.name);return b},revert:!1,start:function(){jQuery(".tnpc-row").length||jQuery("#newsletter-builder-area-center-frame-content").append('<div class="tnpc-drop-here">Drag&Drop blocks here!</div>')},stop:function(a,b){jQuery(".tnpc-drop-here").remove()}});jQuery("#tnpc-block-options-cancel").click(function(){jQuery(this).parent().parent().fadeOut(500);
|
emails/tnp-composer/_scripts/newsletter-builder.js
CHANGED
@@ -45,7 +45,7 @@ jQuery.fn.perform_block_edit = function () {
|
|
45 |
jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));
|
46 |
jQuery("#tnpc-edit-block .font").val(target.css("font-family"));
|
47 |
|
48 |
-
jQuery('.bgcolor').wpColorPicker().iris('color', target.css("background-color"));
|
49 |
|
50 |
// The row container which is a global variable and used later after the options save
|
51 |
container = jQuery(this).closest("table");
|
@@ -250,8 +250,8 @@ function start_composer() {
|
|
250 |
}).fail(function () {
|
251 |
alert("Block rendering failed");
|
252 |
});
|
253 |
-
|
254 |
-
|
255 |
|
256 |
});
|
257 |
|
45 |
jQuery("#tnpc-edit-block .bgcolor").val(target.css("background-color"));
|
46 |
jQuery("#tnpc-edit-block .font").val(target.css("font-family"));
|
47 |
|
48 |
+
//jQuery('.bgcolor').wpColorPicker().iris('color', target.css("background-color"));
|
49 |
|
50 |
// The row container which is a global variable and used later after the options save
|
51 |
container = jQuery(this).closest("table");
|
250 |
}).fail(function () {
|
251 |
alert("Block rendering failed");
|
252 |
});
|
253 |
+
|
254 |
+
|
255 |
|
256 |
});
|
257 |
|
emails/tnp-composer/css/newsletter.css
CHANGED
@@ -91,6 +91,11 @@ img.aligncenter{display:block;margin:0 auto;}
|
|
91 |
td[class="mobile-wrapper"]{
|
92 |
padding: 10px 5% 15px 5% !important;
|
93 |
}
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
table[class="mobile-button-container"]{
|
96 |
margin:0 auto;
|
91 |
td[class="mobile-wrapper"]{
|
92 |
padding: 10px 5% 15px 5% !important;
|
93 |
}
|
94 |
+
|
95 |
+
td[class="responsive"]{
|
96 |
+
display: block;
|
97 |
+
width: 100% !important;
|
98 |
+
}
|
99 |
|
100 |
table[class="mobile-button-container"]{
|
101 |
margin:0 auto;
|
emails/tnp-composer/css/newsletter.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#outlook a{padding:0}.ReadMsgBody{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}body,table,td,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}table,td{mso-table-lspace:0;mso-table-rspace:0}img{-ms-interpolation-mode:bicubic}body{margin:0;padding:0;height:100%!important;margin:0;padding:0;width:100%!important}img{border:0;height:auto;line-height:100%;outline:0;text-decoration:none;max-width:100%!important}table{border-collapse:collapse!important}img.aligncenter{display:block;margin:0 auto}@media all and (max-width:525px){table[class="wrapper"]{width:100%!important}table[class="mobile-full-width"]{width:100%!important}img[class="mobile-full-width"]{width:100%!important;display:block}td[class="logo"]{text-align:left;padding:20px 0 20px 0!important}td[class="logo"] img{margin:0 auto!important}td[class="mobile-hide"]{display:none}img[class="mobile-hide"]{display:none!important}img[class="img-max"]{max-width:100%!important;height:auto!important}table[class="responsive-table"]{width:100%!important;max-width:100%!important}td[class="padding"]{padding:10px 5% 15px 5%!important}td[class="padding-copy"]{padding:10px 5% 10px 5%!important;text-align:center}td[class="padding-meta"]{padding:30px 5% 0 5%!important;text-align:center}td[class="no-pad"]{padding:0 0 20px 0!important}td[class="no-padding"]{padding:0!important}td[class="section-padding"]{padding:50px 15px 50px 15px!important}td[class="section-padding-bottom-image"]{padding:50px 15px 0 15px!important}td[class="mobile-wrapper"]{padding:10px 5% 15px 5%!important}td[class="responsive"]{display:block;width:100%!important}table[class="mobile-button-container"]{margin:0 auto;width:100%!important}a[class="mobile-button"]{width:80%!important;padding:15px!important;border:0!important;font-size:16px!important}}
|
emails/tnp-composer/index-v2.php
CHANGED
@@ -91,7 +91,7 @@ $fields = new NewsletterFields($controls);
|
|
91 |
|
92 |
<form id="tnpc-global-styles-form">
|
93 |
|
94 |
-
<?php $fields->color( 'options_composer_background', __( 'Background color', 'newsletter' ), [ 'default' => '#
|
95 |
<?php $fields->text( 'options_preheader', __( 'Snippet', 'newsletter' ), ['description'=>'Short content preview shown by Gmail']) ?>
|
96 |
|
97 |
</form>
|
91 |
|
92 |
<form id="tnpc-global-styles-form">
|
93 |
|
94 |
+
<?php $fields->color( 'options_composer_background', __( 'Background color', 'newsletter' ), [ 'default' => '#FFFFFF' ] ) ?>
|
95 |
<?php $fields->text( 'options_preheader', __( 'Snippet', 'newsletter' ), ['description'=>'Short content preview shown by Gmail']) ?>
|
96 |
|
97 |
</form>
|
includes/composer.php
CHANGED
@@ -120,8 +120,8 @@ class TNP_Composer {
|
|
120 |
* @return string
|
121 |
*/
|
122 |
static function get_main_wrapper_open($email) {
|
123 |
-
if (!isset($email->options['composer_background'])) {
|
124 |
-
$bgcolor = '
|
125 |
} else {
|
126 |
$bgcolor = $email->options['composer_background'];
|
127 |
}
|
@@ -272,7 +272,7 @@ class TNP_Composer {
|
|
272 |
|
273 |
/**
|
274 |
* Creates the HTML for a button extrating from the options, with the provided prefix, the button attributes:
|
275 |
-
*
|
276 |
* - [prefix]_url The button URL
|
277 |
* - [prefix]_font_family
|
278 |
* - [prefix]_font_size
|
@@ -280,9 +280,9 @@ class TNP_Composer {
|
|
280 |
* - [prefix]_label
|
281 |
* - [prefix]_font_color The label color
|
282 |
* - [prefix]_background The button color
|
283 |
-
*
|
284 |
* TODO: Add radius and possiblt the alignment
|
285 |
-
*
|
286 |
* @param array $options
|
287 |
* @param string $prefix
|
288 |
* @return string
|
@@ -316,18 +316,47 @@ class TNP_Composer {
|
|
316 |
* Generates an IMG tag, linked if the media has an URL.
|
317 |
*
|
318 |
* @param TNP_Media $media
|
|
|
319 |
* @return string
|
320 |
*/
|
321 |
-
static function image($media) {
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
|
327 |
-
$b
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
|
332 |
if ($media->link) {
|
333 |
$b .= '</a>';
|
120 |
* @return string
|
121 |
*/
|
122 |
static function get_main_wrapper_open($email) {
|
123 |
+
if (!isset($email->options['composer_background']) || $email->options['composer_background'] == 'inherit') {
|
124 |
+
$bgcolor = '';
|
125 |
} else {
|
126 |
$bgcolor = $email->options['composer_background'];
|
127 |
}
|
272 |
|
273 |
/**
|
274 |
* Creates the HTML for a button extrating from the options, with the provided prefix, the button attributes:
|
275 |
+
*
|
276 |
* - [prefix]_url The button URL
|
277 |
* - [prefix]_font_family
|
278 |
* - [prefix]_font_size
|
280 |
* - [prefix]_label
|
281 |
* - [prefix]_font_color The label color
|
282 |
* - [prefix]_background The button color
|
283 |
+
*
|
284 |
* TODO: Add radius and possiblt the alignment
|
285 |
+
*
|
286 |
* @param array $options
|
287 |
* @param string $prefix
|
288 |
* @return string
|
316 |
* Generates an IMG tag, linked if the media has an URL.
|
317 |
*
|
318 |
* @param TNP_Media $media
|
319 |
+
* @param string $style
|
320 |
* @return string
|
321 |
*/
|
322 |
+
static function image($media, $attr = []) {
|
323 |
+
|
324 |
+
$default_attrs = [
|
325 |
+
'style' => 'max-width: 100%; height: auto;',
|
326 |
+
'class' => null,
|
327 |
+
'link-style' => 'text-decoration: none;',
|
328 |
+
'link-class' => null,
|
329 |
+
];
|
330 |
+
|
331 |
+
$attr = array_merge($default_attrs, $attr);
|
332 |
+
|
333 |
+
//Class and style attribute are mutually exclusive.
|
334 |
+
//Class take priority to style because classes will transform to inline style inside block rendering operation
|
335 |
+
if ( ! empty( $attr['class'] ) ) {
|
336 |
+
$styling = ' inline-class="' . $attr['class'] . '" ';
|
337 |
+
} else {
|
338 |
+
$styling = ' style="' . $attr['style'] . '" ';
|
339 |
+
}
|
340 |
+
|
341 |
+
//Class and style attribute are mutually exclusive.
|
342 |
+
//Class take priority to style because classes will transform to inline style inside block rendering operation
|
343 |
+
if ( ! empty( $attr['link-class'] ) ) {
|
344 |
+
$link_styling = ' inline-class="' . $attr['link-class'] . '" ';
|
345 |
+
} else {
|
346 |
+
$link_styling = ' style="' . $attr['link-style'] . '" ';
|
347 |
+
}
|
348 |
|
349 |
+
$b = '';
|
350 |
+
if ( $media->link ) {
|
351 |
+
$b .= '<a href="' . $media->link . '" target="_blank" rel="noopener nofollow" ' . $link_styling . '>';
|
352 |
+
}
|
353 |
+
|
354 |
+
if ( $media ) {
|
355 |
+
$b .= '<img src="' . $media->url . '" width="' . $media->width . '"'
|
356 |
+
. ' height="' . $media->height . '"'
|
357 |
+
. ' alt="' . esc_attr( $media->alt ) . '"'
|
358 |
+
. ' border="0" ' . $styling . '>';
|
359 |
+
}
|
360 |
|
361 |
if ($media->link) {
|
362 |
$b .= '</a>';
|
includes/controls.php
CHANGED
@@ -447,7 +447,7 @@ class NewsletterControls {
|
|
447 |
function yesno($name) {
|
448 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
449 |
|
450 |
-
echo '<select style="width: 60px" name="options['
|
451 |
echo '<option value="0"';
|
452 |
if ($value == 0) {
|
453 |
echo ' selected';
|
@@ -463,8 +463,9 @@ class NewsletterControls {
|
|
463 |
|
464 |
function enabled($name = 'enabled', $attrs = []) {
|
465 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
|
|
466 |
|
467 |
-
echo '<select style="width: 100px" name="options[',
|
468 |
if (isset($attrs['bind_to'])) {
|
469 |
echo ' onchange="tnp_select_toggle(this, \'', $attrs['bind_to'], '\')"';
|
470 |
}
|
@@ -708,8 +709,8 @@ class NewsletterControls {
|
|
708 |
|
709 |
function select_grouped($name, $groups) {
|
710 |
$value = $this->get_value($name);
|
711 |
-
|
712 |
-
echo '<select name="options['
|
713 |
|
714 |
foreach ($groups as $group) {
|
715 |
echo '<optgroup label="' . esc_attr($group['']) . '">';
|
@@ -776,18 +777,20 @@ class NewsletterControls {
|
|
776 |
|
777 |
function password($name, $size = 20, $placeholder = '') {
|
778 |
$value = $this->get_value($name);
|
779 |
-
|
|
|
780 |
if (!empty($size)) {
|
781 |
-
echo 'size="'
|
782 |
}
|
783 |
echo 'value="', esc_attr($value), '">';
|
784 |
}
|
785 |
|
786 |
function text($name, $size = 20, $placeholder = '') {
|
787 |
$value = $this->get_value($name);
|
788 |
-
|
|
|
789 |
if (!empty($size)) {
|
790 |
-
echo 'size="'
|
791 |
}
|
792 |
echo 'value="', esc_attr($value), '">';
|
793 |
}
|
@@ -854,9 +857,7 @@ class NewsletterControls {
|
|
854 |
}
|
855 |
|
856 |
function button_back($url, $label = null) {
|
857 |
-
echo '<a href="';
|
858 |
-
echo esc_attr($url);
|
859 |
-
echo '" class="button-primary"><i class="fas fa-chevron-left"></i>';
|
860 |
if (is_null($label)) {
|
861 |
echo ' ';
|
862 |
_e('Back', 'newsletter');
|
@@ -978,25 +979,26 @@ class NewsletterControls {
|
|
978 |
|
979 |
function textarea_fixed($name, $width = '100%', $height = '200') {
|
980 |
$value = $this->get_value($name);
|
981 |
-
|
|
|
982 |
echo esc_html($value);
|
983 |
echo '</textarea>';
|
984 |
}
|
985 |
|
986 |
function textarea_preview($name, $width = '100%', $height = '200', $header = '', $footer = '', $switch_button = true) {
|
987 |
$value = $this->get_value($name);
|
988 |
-
|
989 |
if ($switch_button) {
|
990 |
-
echo '<input class="button-primary" type="button" onclick="newsletter_textarea_preview(\'options-'
|
991 |
echo '<br><br>';
|
992 |
}
|
993 |
echo '<div style="box-sizing: border-box; position: relative; margin: 0; padding: 0; width:' . esc_attr($width) . '; height:' . esc_attr($height) . '">';
|
994 |
-
echo '<textarea id="options-'
|
995 |
echo esc_html($value);
|
996 |
echo '</textarea>';
|
997 |
-
echo '<div id="options-'
|
998 |
-
echo '<iframe id="options-'
|
999 |
-
echo '<iframe id="options-'
|
1000 |
echo '</div>';
|
1001 |
echo '</div>';
|
1002 |
}
|
@@ -1092,14 +1094,9 @@ class NewsletterControls {
|
|
1092 |
}
|
1093 |
|
1094 |
function color($name, $default = '') {
|
1095 |
-
|
1096 |
-
$
|
1097 |
-
|
1098 |
-
|
1099 |
-
//echo '<input id="options-', esc_attr($name), '" class="tnp-controls-color" name="options[' . $name . ']" type="text" value="';
|
1100 |
-
echo '<input id="options-', esc_attr($name), '" name="options[' . $name . ']" type="color" value="';
|
1101 |
-
echo esc_attr($value);
|
1102 |
-
echo '">';
|
1103 |
}
|
1104 |
|
1105 |
/** Creates a set of checkbox named $name_[category id] (so they are posted with distinct names).
|
@@ -1407,6 +1404,8 @@ class NewsletterControls {
|
|
1407 |
}
|
1408 |
echo '<script type="text/javascript">
|
1409 |
jQuery(document).ready(function(){
|
|
|
|
|
1410 |
|
1411 |
jQuery("textarea.dynamic").focus(function() {
|
1412 |
jQuery("textarea.dynamic").css("height", "50px");
|
@@ -1482,6 +1481,8 @@ class NewsletterControls {
|
|
1482 |
var $state = jQuery("<span class=\"tnp-select2-option\"><img style=\"height: 20px!important; position: relative; top: 5px\" src=\"" + state.element.getAttribute("image") + "\"> " + state.text + "</span>");
|
1483 |
return $state;
|
1484 |
}
|
|
|
|
|
1485 |
</script>
|
1486 |
';
|
1487 |
echo '<input name="act" type="hidden" value=""/>';
|
@@ -1525,7 +1526,7 @@ class NewsletterControls {
|
|
1525 |
* @param array $attrs
|
1526 |
*/
|
1527 |
function css_font($name = 'font', $attrs = array()) {
|
1528 |
-
$default =
|
1529 |
$attrs = array_merge($default, $attrs);
|
1530 |
$this->css_font_family($name . '_family');
|
1531 |
$this->css_font_size($name . '_size');
|
@@ -1540,7 +1541,7 @@ class NewsletterControls {
|
|
1540 |
function css_font_size($name = 'font_size') {
|
1541 |
$value = $this->get_value($name);
|
1542 |
|
1543 |
-
echo '<select id="options-'
|
1544 |
for ($i = 8; $i < 50; $i++) {
|
1545 |
echo '<option value="' . $i . '"';
|
1546 |
if ($value == $i) {
|
@@ -1556,7 +1557,7 @@ class NewsletterControls {
|
|
1556 |
|
1557 |
$fonts = array('normal' => 'Normal', 'bold' => 'Bold');
|
1558 |
|
1559 |
-
echo '<select id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']">';
|
1560 |
foreach ($fonts as $key => $font) {
|
1561 |
echo '<option value="', esc_attr($key), '"';
|
1562 |
if ($value == $key) {
|
@@ -1580,7 +1581,7 @@ class NewsletterControls {
|
|
1580 |
'Times New Roman, Times, serif'=>'Times New Roman',
|
1581 |
'Verdana, Geneva, sans-serif'=>'Verdana, Geneva');
|
1582 |
|
1583 |
-
echo '<select id="options-'
|
1584 |
foreach ($fonts as $font=>$label) {
|
1585 |
echo '<option value="', esc_attr($font), '"';
|
1586 |
if ($value == $font) {
|
447 |
function yesno($name) {
|
448 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
449 |
|
450 |
+
echo '<select style="width: 60px" name="options[', esc_attr($name), ']">';
|
451 |
echo '<option value="0"';
|
452 |
if ($value == 0) {
|
453 |
echo ' selected';
|
463 |
|
464 |
function enabled($name = 'enabled', $attrs = []) {
|
465 |
$value = isset($this->data[$name]) ? (int) $this->data[$name] : 0;
|
466 |
+
$name = esc_attr($name);
|
467 |
|
468 |
+
echo '<select style="width: 100px" name="options[', $name, ']" id="options-', $name, '"';
|
469 |
if (isset($attrs['bind_to'])) {
|
470 |
echo ' onchange="tnp_select_toggle(this, \'', $attrs['bind_to'], '\')"';
|
471 |
}
|
709 |
|
710 |
function select_grouped($name, $groups) {
|
711 |
$value = $this->get_value($name);
|
712 |
+
$name = esc_attr($name);
|
713 |
+
echo '<select name="options[', $name, ']">';
|
714 |
|
715 |
foreach ($groups as $group) {
|
716 |
echo '<optgroup label="' . esc_attr($group['']) . '">';
|
777 |
|
778 |
function password($name, $size = 20, $placeholder = '') {
|
779 |
$value = $this->get_value($name);
|
780 |
+
$name = esc_attr($name);
|
781 |
+
echo '<input id="options-', $name, '" placeholder="' . esc_attr($placeholder) . '" name="options[', $name, ']" type="password" autocomplete="off" ';
|
782 |
if (!empty($size)) {
|
783 |
+
echo 'size="', $size, '" ';
|
784 |
}
|
785 |
echo 'value="', esc_attr($value), '">';
|
786 |
}
|
787 |
|
788 |
function text($name, $size = 20, $placeholder = '') {
|
789 |
$value = $this->get_value($name);
|
790 |
+
$name = esc_attr($name);
|
791 |
+
echo '<input id="options-', $name, '" placeholder="' . esc_attr($placeholder) . '" name="options[', $name, ']" type="text" ';
|
792 |
if (!empty($size)) {
|
793 |
+
echo 'size="', esc_attr($size), '" ';
|
794 |
}
|
795 |
echo 'value="', esc_attr($value), '">';
|
796 |
}
|
857 |
}
|
858 |
|
859 |
function button_back($url, $label = null) {
|
860 |
+
echo '<a href="', esc_attr($url), '" class="button-primary"><i class="fas fa-chevron-left"></i>';
|
|
|
|
|
861 |
if (is_null($label)) {
|
862 |
echo ' ';
|
863 |
_e('Back', 'newsletter');
|
979 |
|
980 |
function textarea_fixed($name, $width = '100%', $height = '200') {
|
981 |
$value = $this->get_value($name);
|
982 |
+
$name = esc_attr($name);
|
983 |
+
echo '<textarea id="options-', $name, '" name="options[', $name, ']" wrap="off" style="width:', esc_attr($width), ';height:', esc_attr($height), 'px">';
|
984 |
echo esc_html($value);
|
985 |
echo '</textarea>';
|
986 |
}
|
987 |
|
988 |
function textarea_preview($name, $width = '100%', $height = '200', $header = '', $footer = '', $switch_button = true) {
|
989 |
$value = $this->get_value($name);
|
990 |
+
$name = esc_attr($name);
|
991 |
if ($switch_button) {
|
992 |
+
echo '<input class="button-primary" type="button" onclick="newsletter_textarea_preview(\'options-', $name, '\', \'\', \'\')" value="Switch editor/preview">';
|
993 |
echo '<br><br>';
|
994 |
}
|
995 |
echo '<div style="box-sizing: border-box; position: relative; margin: 0; padding: 0; width:' . esc_attr($width) . '; height:' . esc_attr($height) . '">';
|
996 |
+
echo '<textarea id="options-', $name, '" name="options[', $name, ']" wrap="off" style="width:' . esc_attr($width) . ';height:' . esc_attr($height) . 'px">';
|
997 |
echo esc_html($value);
|
998 |
echo '</textarea>';
|
999 |
+
echo '<div id="options-', $name, '-preview" style="box-sizing: border-box; background-color: #eee; border: 1px solid #bbb; padding: 15px; width: auto; position: absolute; top: 20px; left: 20px; box-shadow: 0 0 20px #777; z-index: 10000; display: none">';
|
1000 |
+
echo '<iframe id="options-', $name, '-iframe" class="tnp-editor-preview-desktop"></iframe>';
|
1001 |
+
echo '<iframe id="options-', $name, '-iframe-phone" class="tnp-editor-preview-mobile"></iframe>';
|
1002 |
echo '</div>';
|
1003 |
echo '</div>';
|
1004 |
}
|
1094 |
}
|
1095 |
|
1096 |
function color($name, $default = '') {
|
1097 |
+
$value = esc_attr($this->get_value($name, $default));
|
1098 |
+
$name = esc_attr($name);
|
1099 |
+
echo '<input class="tnpf-color" id="options-', $name, '" name="options[', $name, ']" type="text" value="', $value, '">';
|
|
|
|
|
|
|
|
|
|
|
1100 |
}
|
1101 |
|
1102 |
/** Creates a set of checkbox named $name_[category id] (so they are posted with distinct names).
|
1404 |
}
|
1405 |
echo '<script type="text/javascript">
|
1406 |
jQuery(document).ready(function(){
|
1407 |
+
|
1408 |
+
tnp_controls_init();
|
1409 |
|
1410 |
jQuery("textarea.dynamic").focus(function() {
|
1411 |
jQuery("textarea.dynamic").css("height", "50px");
|
1481 |
var $state = jQuery("<span class=\"tnp-select2-option\"><img style=\"height: 20px!important; position: relative; top: 5px\" src=\"" + state.element.getAttribute("image") + "\"> " + state.text + "</span>");
|
1482 |
return $state;
|
1483 |
}
|
1484 |
+
|
1485 |
+
|
1486 |
</script>
|
1487 |
';
|
1488 |
echo '<input name="act" type="hidden" value=""/>';
|
1526 |
* @param array $attrs
|
1527 |
*/
|
1528 |
function css_font($name = 'font', $attrs = array()) {
|
1529 |
+
$default = ['color' => true, 'weight' => true];
|
1530 |
$attrs = array_merge($default, $attrs);
|
1531 |
$this->css_font_family($name . '_family');
|
1532 |
$this->css_font_size($name . '_size');
|
1541 |
function css_font_size($name = 'font_size') {
|
1542 |
$value = $this->get_value($name);
|
1543 |
|
1544 |
+
echo '<select class="tnpf-font-size" id="options-', esc_attr($name), '" name="options[', esc_attr($name), ']">';
|
1545 |
for ($i = 8; $i < 50; $i++) {
|
1546 |
echo '<option value="' . $i . '"';
|
1547 |
if ($value == $i) {
|
1557 |
|
1558 |
$fonts = array('normal' => 'Normal', 'bold' => 'Bold');
|
1559 |
|
1560 |
+
echo '<select class="tnpf-font-weight" id="options-' . esc_attr($name) . '" name="options[' . esc_attr($name) . ']">';
|
1561 |
foreach ($fonts as $key => $font) {
|
1562 |
echo '<option value="', esc_attr($key), '"';
|
1563 |
if ($value == $key) {
|
1581 |
'Times New Roman, Times, serif'=>'Times New Roman',
|
1582 |
'Verdana, Geneva, sans-serif'=>'Verdana, Geneva');
|
1583 |
|
1584 |
+
echo '<select class="tnpf-font-family" id="options-', esc_attr($name), '" name="options[', esc_attr($name), ']">';
|
1585 |
foreach ($fonts as $font=>$label) {
|
1586 |
echo '<option value="', esc_attr($font), '"';
|
1587 |
if ($value == $font) {
|
includes/fields.php
CHANGED
@@ -4,6 +4,7 @@ class NewsletterFields {
|
|
4 |
|
5 |
static $field_open = '<div>';
|
6 |
static $field_close = '</div>';
|
|
|
7 |
var $controls;
|
8 |
|
9 |
public function __construct(NewsletterControls $controls) {
|
@@ -19,14 +20,17 @@ class NewsletterFields {
|
|
19 |
}
|
20 |
|
21 |
public function _label($text, $for = '') {
|
22 |
-
if (empty($text))
|
23 |
return;
|
|
|
24 |
echo '<label class="tnp-label">', $text, '</label>';
|
25 |
}
|
26 |
|
27 |
public function _description($attrs) {
|
28 |
-
if (empty($attrs['description']))
|
29 |
return;
|
|
|
|
|
30 |
echo '<div class="tnp-description">', $attrs['description'], '</div>';
|
31 |
}
|
32 |
|
@@ -34,14 +38,35 @@ class NewsletterFields {
|
|
34 |
return 'options-' . esc_attr($name);
|
35 |
}
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
public function _merge_base_attrs($attrs) {
|
38 |
-
return array_merge(
|
39 |
}
|
40 |
|
41 |
-
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
|
|
|
|
|
|
|
|
|
|
|
45 |
public function section($title = '') {
|
46 |
echo '<h3 class="tnp-section">', $title, '</h3>';
|
47 |
}
|
@@ -50,24 +75,29 @@ class NewsletterFields {
|
|
50 |
echo '<div class="tnp-field tnp-separator"></div>';
|
51 |
}
|
52 |
|
53 |
-
public function checkbox($name, $label = '', $attrs =
|
54 |
$attrs = $this->_merge_base_attrs($attrs);
|
55 |
-
$attrs = array_merge(array('description' => '', 'label' => ''), $attrs);
|
56 |
$this->_open('tnp-checkbox');
|
57 |
$this->controls->checkbox($name, $label);
|
58 |
$this->_description($attrs);
|
59 |
$this->_close();
|
60 |
}
|
61 |
|
62 |
-
/** General Input field with default type = text
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
$this->_open();
|
67 |
$this->_label($label);
|
68 |
$value = $this->controls->get_value($name);
|
69 |
|
70 |
-
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="
|
71 |
|
72 |
if (!empty($attrs['size'])) {
|
73 |
echo ' style="width: ', $attrs['size'], 'px"';
|
@@ -83,26 +113,37 @@ class NewsletterFields {
|
|
83 |
|
84 |
echo ' value="', esc_attr($value), '">';
|
85 |
|
86 |
-
if (!empty($attrs['label_after']))
|
87 |
echo $attrs['label_after'];
|
88 |
-
|
|
|
89 |
$this->_description($attrs);
|
90 |
$this->_close();
|
91 |
}
|
92 |
|
93 |
-
public function text($name, $label = '', $attrs =
|
94 |
-
$attrs
|
95 |
$this->input($name, $label, $attrs);
|
96 |
}
|
97 |
|
98 |
-
public function number($name, $label = '', $attrs =
|
99 |
-
$attrs = array_merge(
|
100 |
$this->input($name, $label, $attrs);
|
101 |
}
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
$this->_open();
|
107 |
$this->_label($label);
|
108 |
|
@@ -114,14 +155,14 @@ class NewsletterFields {
|
|
114 |
}
|
115 |
echo ' value="', esc_attr($value), '">';
|
116 |
}
|
117 |
-
if (!empty($attrs['label_after']))
|
118 |
echo $attrs['label_after'];
|
119 |
-
|
120 |
$this->_description($attrs);
|
121 |
$this->_close();
|
122 |
}
|
123 |
|
124 |
-
public function textarea($name, $label = '', $attrs =
|
125 |
$attrs = $this->_merge_attrs($attrs);
|
126 |
$this->_open();
|
127 |
$this->_label($label);
|
@@ -130,20 +171,23 @@ class NewsletterFields {
|
|
130 |
$this->_close();
|
131 |
}
|
132 |
|
133 |
-
public function wp_editor($name, $label = '', $attrs =
|
134 |
global $wp_version;
|
135 |
|
136 |
$attrs = $this->_merge_attrs($attrs);
|
137 |
$this->_open();
|
138 |
$this->_label($label);
|
139 |
$value = $this->controls->get_value($name);
|
|
|
|
|
|
|
140 |
if (is_array($value)) {
|
141 |
$value = implode("\n", $value);
|
142 |
}
|
143 |
if (version_compare($wp_version, '4.8', '<')) {
|
144 |
echo '<p><strong>Rich editor available only with WP 4.8+</strong></p>';
|
145 |
}
|
146 |
-
echo '<textarea id="options-'
|
147 |
echo esc_html($value);
|
148 |
echo '</textarea>';
|
149 |
|
@@ -155,28 +199,30 @@ class NewsletterFields {
|
|
155 |
$this->_close();
|
156 |
}
|
157 |
|
158 |
-
public function select($name, $label = '', $options =
|
159 |
$attrs = $this->_merge_attrs($attrs, ['reload' => false, 'after-rendering' => '']);
|
160 |
$this->_open();
|
161 |
$this->_label($label);
|
162 |
$value = $this->controls->get_value($name);
|
163 |
|
164 |
-
echo '<select id="
|
165 |
if ($attrs['reload']) {
|
166 |
echo ' onchange="tnpc_reload_options(event)"';
|
167 |
}
|
168 |
if (!empty($attrs['after-rendering'])) {
|
169 |
-
echo ' data-after-rendering="'
|
170 |
}
|
171 |
echo '>';
|
172 |
if (!empty($first)) {
|
173 |
-
echo '<option value="">'
|
174 |
}
|
|
|
175 |
foreach ($options as $key => $label) {
|
176 |
-
echo '<option value="'
|
177 |
-
if ($value == $key)
|
178 |
echo ' selected';
|
179 |
-
|
|
|
180 |
}
|
181 |
echo '</select>';
|
182 |
|
@@ -185,7 +231,7 @@ class NewsletterFields {
|
|
185 |
$this->_close();
|
186 |
}
|
187 |
|
188 |
-
public function yesno($name, $label = '', $attrs =
|
189 |
$attrs = $this->_merge_attrs($attrs);
|
190 |
$this->_open();
|
191 |
$this->_label($label);
|
@@ -194,7 +240,7 @@ class NewsletterFields {
|
|
194 |
$this->_close();
|
195 |
}
|
196 |
|
197 |
-
public function select_number($name, $label = '', $min, $max, $attrs =
|
198 |
$attrs = $this->_merge_attrs($attrs);
|
199 |
$this->_open();
|
200 |
$this->_label($label);
|
@@ -204,51 +250,48 @@ class NewsletterFields {
|
|
204 |
}
|
205 |
|
206 |
/** General field to collect a dimension */
|
207 |
-
public function size($name, $label = '', $attrs =
|
208 |
-
$attrs = $this->
|
209 |
-
$attrs = array_merge(array('description' => '', 'placeholder' => '', 'size' => 0, 'label_after' => 'px'), $attrs);
|
210 |
$this->_open('tnp-size');
|
211 |
$this->_label($label);
|
212 |
$value = $this->controls->get_value($name);
|
213 |
-
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="
|
214 |
if (!empty($attrs['size'])) {
|
215 |
echo ' style="width: ', $attrs['size'], 'px"';
|
216 |
}
|
217 |
echo ' value="', esc_attr($value), '">', $attrs['label_after'];
|
218 |
-
//$this->controls->text($name, $attrs['size'], $attrs['placeholder']);
|
219 |
$this->_description($attrs);
|
220 |
$this->_close();
|
221 |
}
|
222 |
|
223 |
-
/** Collects a color in
|
224 |
-
public function color($name, $label, $attrs =
|
225 |
-
$attrs = array_merge(array('description' => '', 'placeholder' => '', 'default' => '#000000'), $attrs);
|
226 |
$this->_open('tnp-color');
|
227 |
$this->_label($label);
|
228 |
-
$this->controls->color($name
|
229 |
$this->_description($attrs);
|
230 |
$this->_close();
|
231 |
}
|
232 |
|
233 |
/** Configuration for a simple button with label and color */
|
234 |
-
public function button($name, $label = '', $attrs =
|
235 |
-
$attrs = $this->_merge_attrs($attrs,
|
236 |
-
$this->_open('tnp-
|
237 |
$this->_label($label);
|
238 |
$value = $this->controls->get_value($name . '_label');
|
|
|
239 |
echo '<div class="tnp-field-row">';
|
240 |
echo '<div class="tnp-field-col-2">';
|
241 |
-
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="
|
242 |
echo ' style="width: 100%"';
|
243 |
echo ' value="', esc_attr($value), '">';
|
244 |
echo '</div>';
|
245 |
|
246 |
if ($attrs['url']) {
|
247 |
-
echo '<div class="tnp-field-col-2">';
|
248 |
$value = $this->controls->get_value($name . '_url');
|
249 |
-
echo '<
|
250 |
-
echo '
|
251 |
-
|
252 |
echo '</div>';
|
253 |
}
|
254 |
echo '<div style="clear: both"></div>';
|
@@ -258,7 +301,7 @@ class NewsletterFields {
|
|
258 |
$this->_close();
|
259 |
}
|
260 |
|
261 |
-
public function url($name, $label = '', $attrs =
|
262 |
$attrs = array_merge(array('description' => '', 'placeholder' => 'https://...'), $attrs);
|
263 |
$this->_open();
|
264 |
$this->_label($label);
|
@@ -267,31 +310,40 @@ class NewsletterFields {
|
|
267 |
$this->_close();
|
268 |
}
|
269 |
|
270 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
|
272 |
-
$post_types = get_post_types(
|
273 |
|
274 |
-
$attrs = array_merge(
|
275 |
$this->_open();
|
276 |
$this->_label($label);
|
277 |
|
278 |
-
$options =
|
279 |
foreach ($post_types as $post_type) {
|
280 |
-
if ($post_type->name == 'post' || $post_type->name == 'page' || $post_type->name == 'attachment')
|
281 |
continue;
|
|
|
282 |
$options[$post_type->name] = $post_type->labels->name;
|
283 |
}
|
284 |
$value = $this->controls->get_value($name);
|
285 |
|
286 |
-
echo '<select id="
|
287 |
if (!empty($first)) {
|
288 |
echo '<option value="">' . esc_html($first) . '</option>';
|
289 |
}
|
|
|
290 |
foreach ($options as $key => $label) {
|
291 |
echo '<option value="' . esc_attr($key) . '"';
|
292 |
if ($value == $key)
|
293 |
echo ' selected';
|
294 |
-
echo '>'
|
295 |
}
|
296 |
echo '</select>';
|
297 |
|
@@ -299,7 +351,7 @@ class NewsletterFields {
|
|
299 |
$this->_close();
|
300 |
}
|
301 |
|
302 |
-
function posts($name, $label, $count = 20, $args =
|
303 |
$args = array_merge(array('filters' => array(
|
304 |
'posts_per_page' => 5,
|
305 |
'offset' => 0,
|
@@ -334,7 +386,7 @@ class NewsletterFields {
|
|
334 |
$this->select($name, $label, $options);
|
335 |
}
|
336 |
|
337 |
-
function lists($name, $label, $attrs =
|
338 |
$attrs = $this->_merge_attrs($attrs);
|
339 |
$this->_open();
|
340 |
$this->_label($label);
|
@@ -346,13 +398,13 @@ class NewsletterFields {
|
|
346 |
|
347 |
/**
|
348 |
* Media selector using the WP media library (for images and files.
|
349 |
-
* The field to use it the {$name}_id which contains the media id.
|
350 |
-
*
|
351 |
* @param type $name
|
352 |
* @param type $label
|
353 |
* @param type $attrs
|
354 |
*/
|
355 |
-
public function media($name, $label = '', $attrs =
|
356 |
$attrs = $this->_merge_attrs($attrs, array('alt' => false));
|
357 |
$this->_open();
|
358 |
$this->_label($label);
|
@@ -364,7 +416,7 @@ class NewsletterFields {
|
|
364 |
$this->_close();
|
365 |
}
|
366 |
|
367 |
-
public function categories($name = 'categories', $label = '', $attrs =
|
368 |
if (empty($label))
|
369 |
$label = __('Categories', 'newsletter');
|
370 |
$attrs = $this->_merge_attrs($attrs);
|
@@ -382,7 +434,7 @@ class NewsletterFields {
|
|
382 |
* @param type $label
|
383 |
* @param type $attrs
|
384 |
*/
|
385 |
-
public function terms($taxonomy, $label = '', $attrs =
|
386 |
if (isset($attrs['name'])) {
|
387 |
$name = $attrs['name'];
|
388 |
} else {
|
@@ -415,11 +467,20 @@ class NewsletterFields {
|
|
415 |
$this->_close();
|
416 |
}
|
417 |
|
418 |
-
|
419 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
return;
|
421 |
-
|
|
|
422 |
$label = __('Language', 'newsletter');
|
|
|
423 |
$attrs = $this->_merge_attrs($attrs);
|
424 |
$this->_open('tnp-language');
|
425 |
$this->_label($label);
|
@@ -432,11 +493,13 @@ class NewsletterFields {
|
|
432 |
* Collects font details for a text: family, color, size and weight to be used
|
433 |
* directly on CSS rules. Size is a pure number.
|
434 |
*
|
|
|
|
|
435 |
* @param type $name
|
436 |
* @param type $label
|
437 |
* @param type $attrs
|
438 |
*/
|
439 |
-
public function font($name = 'font', $label = 'Font', $attrs =
|
440 |
$attrs = $this->_merge_base_attrs($attrs);
|
441 |
$attrs = array_merge(array('hide_family' => false, 'hide_color' => false, 'hide_size' => false), $attrs);
|
442 |
|
@@ -450,14 +513,14 @@ class NewsletterFields {
|
|
450 |
/**
|
451 |
* Collects fout number values representing the padding of a box. The values can
|
452 |
* be found as {$name}_top, {$name}_bottom, {$name}_left, {$name}_right.
|
453 |
-
*
|
454 |
* @param type $name
|
455 |
* @param type $label
|
456 |
* @param type $attrs
|
457 |
*/
|
458 |
-
public function padding($name = 'block_padding', $label = 'Padding', $attrs =
|
459 |
$attrs = $this->_merge_base_attrs($attrs);
|
460 |
-
$attrs = array_merge(
|
461 |
$field_only = !empty($attrs['field_only']);
|
462 |
|
463 |
if (!$field_only) {
|
@@ -505,12 +568,12 @@ class NewsletterFields {
|
|
505 |
$this->_label('Padding and background');
|
506 |
$this->controls->color('block_background');
|
507 |
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
|
512 |
echo ' ';
|
513 |
-
$this->padding('block_padding', '',
|
514 |
echo '<div class="tnp-description">Gradients are displayed only by few clients</div>';
|
515 |
$this->_close();
|
516 |
}
|
4 |
|
5 |
static $field_open = '<div>';
|
6 |
static $field_close = '</div>';
|
7 |
+
/* @var NewsletterControls */
|
8 |
var $controls;
|
9 |
|
10 |
public function __construct(NewsletterControls $controls) {
|
20 |
}
|
21 |
|
22 |
public function _label($text, $for = '') {
|
23 |
+
if (empty($text)) {
|
24 |
return;
|
25 |
+
}
|
26 |
echo '<label class="tnp-label">', $text, '</label>';
|
27 |
}
|
28 |
|
29 |
public function _description($attrs) {
|
30 |
+
if (empty($attrs['description'])) {
|
31 |
return;
|
32 |
+
}
|
33 |
+
// Do not escape, HTML allowed
|
34 |
echo '<div class="tnp-description">', $attrs['description'], '</div>';
|
35 |
}
|
36 |
|
38 |
return 'options-' . esc_attr($name);
|
39 |
}
|
40 |
|
41 |
+
public function _name($name) {
|
42 |
+
return 'options[' . esc_attr($name) . ']';
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Adds some empty basic atributes to avoid the isset() checking.
|
47 |
+
*
|
48 |
+
* @param array $attrs
|
49 |
+
* @return array
|
50 |
+
*/
|
51 |
public function _merge_base_attrs($attrs) {
|
52 |
+
return array_merge(['description' => '', 'label' => '', 'help_url' => ''], $attrs);
|
53 |
}
|
54 |
|
55 |
+
/** Adds some basic attributes and the provided default ones.
|
56 |
+
*
|
57 |
+
* @param array $attrs
|
58 |
+
* @param array $defaults
|
59 |
+
* @return array
|
60 |
+
*/
|
61 |
+
public function _merge_attrs($attrs, $defaults = []) {
|
62 |
+
return array_merge(['description' => '', 'label' => '', 'help_url' => ''], $defaults, $attrs);
|
63 |
}
|
64 |
|
65 |
+
/**
|
66 |
+
* A form section title.
|
67 |
+
*
|
68 |
+
* @param string $title
|
69 |
+
*/
|
70 |
public function section($title = '') {
|
71 |
echo '<h3 class="tnp-section">', $title, '</h3>';
|
72 |
}
|
75 |
echo '<div class="tnp-field tnp-separator"></div>';
|
76 |
}
|
77 |
|
78 |
+
public function checkbox($name, $label = '', $attrs = []) {
|
79 |
$attrs = $this->_merge_base_attrs($attrs);
|
|
|
80 |
$this->_open('tnp-checkbox');
|
81 |
$this->controls->checkbox($name, $label);
|
82 |
$this->_description($attrs);
|
83 |
$this->_close();
|
84 |
}
|
85 |
|
86 |
+
/** General Input field with default type = text
|
87 |
+
*
|
88 |
+
* Attributes:
|
89 |
+
* - label_after (default: none): small text ti be displayed after the text field
|
90 |
+
* - min (default: none): minimum number of characters
|
91 |
+
* - max (default: none): maximum number of characters
|
92 |
+
* - size (default: none): size in pixels
|
93 |
+
*/
|
94 |
+
public function input($name, $label = '', $attrs = []) {
|
95 |
+
$attrs = $this->_merge_attrs($attrs, ['placeholder' => '', 'size' => 0, 'label_after' => '', 'type' => 'text']);
|
96 |
$this->_open();
|
97 |
$this->_label($label);
|
98 |
$value = $this->controls->get_value($name);
|
99 |
|
100 |
+
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="', $this->_name($name), '" type="', esc_attr($attrs['type']), '"';
|
101 |
|
102 |
if (!empty($attrs['size'])) {
|
103 |
echo ' style="width: ', $attrs['size'], 'px"';
|
113 |
|
114 |
echo ' value="', esc_attr($value), '">';
|
115 |
|
116 |
+
if (!empty($attrs['label_after'])) {
|
117 |
echo $attrs['label_after'];
|
118 |
+
}
|
119 |
+
|
120 |
$this->_description($attrs);
|
121 |
$this->_close();
|
122 |
}
|
123 |
|
124 |
+
public function text($name, $label = '', $attrs = []) {
|
125 |
+
$attrs['type'] = 'text';
|
126 |
$this->input($name, $label, $attrs);
|
127 |
}
|
128 |
|
129 |
+
public function number($name, $label = '', $attrs = []) {
|
130 |
+
$attrs = array_merge(['type' => 'number'], $attrs);
|
131 |
$this->input($name, $label, $attrs);
|
132 |
}
|
133 |
|
134 |
+
/**
|
135 |
+
* A set of text fields, named $name_1, $name_2, ...
|
136 |
+
*
|
137 |
+
* Attributes:
|
138 |
+
* - label_after: a label to show after the field column
|
139 |
+
*
|
140 |
+
* @param type $name
|
141 |
+
* @param type $label
|
142 |
+
* @param type $count
|
143 |
+
* @param type $attrs
|
144 |
+
*/
|
145 |
+
public function multitext($name, $label = '', $count = 10, $attrs = []) {
|
146 |
+
$attrs = $this->_merge_attrs($attrs, ['description' => '', 'placeholder' => '', 'size' => 0, 'label_after' => '']);
|
147 |
$this->_open();
|
148 |
$this->_label($label);
|
149 |
|
155 |
}
|
156 |
echo ' value="', esc_attr($value), '">';
|
157 |
}
|
158 |
+
if (!empty($attrs['label_after'])) {
|
159 |
echo $attrs['label_after'];
|
160 |
+
}
|
161 |
$this->_description($attrs);
|
162 |
$this->_close();
|
163 |
}
|
164 |
|
165 |
+
public function textarea($name, $label = '', $attrs = []) {
|
166 |
$attrs = $this->_merge_attrs($attrs);
|
167 |
$this->_open();
|
168 |
$this->_label($label);
|
171 |
$this->_close();
|
172 |
}
|
173 |
|
174 |
+
public function wp_editor($name, $label = '', $attrs = []) {
|
175 |
global $wp_version;
|
176 |
|
177 |
$attrs = $this->_merge_attrs($attrs);
|
178 |
$this->_open();
|
179 |
$this->_label($label);
|
180 |
$value = $this->controls->get_value($name);
|
181 |
+
$name = esc_attr($name);
|
182 |
+
|
183 |
+
// Uhm...
|
184 |
if (is_array($value)) {
|
185 |
$value = implode("\n", $value);
|
186 |
}
|
187 |
if (version_compare($wp_version, '4.8', '<')) {
|
188 |
echo '<p><strong>Rich editor available only with WP 4.8+</strong></p>';
|
189 |
}
|
190 |
+
echo '<textarea class="tnpf-wp-editor" id="options-', $name, '" name="options[', $name, ']" style="width: 100%;height:250px">';
|
191 |
echo esc_html($value);
|
192 |
echo '</textarea>';
|
193 |
|
199 |
$this->_close();
|
200 |
}
|
201 |
|
202 |
+
public function select($name, $label = '', $options = [], $attrs = []) {
|
203 |
$attrs = $this->_merge_attrs($attrs, ['reload' => false, 'after-rendering' => '']);
|
204 |
$this->_open();
|
205 |
$this->_label($label);
|
206 |
$value = $this->controls->get_value($name);
|
207 |
|
208 |
+
echo '<select id="', $this->_id($name), '" name="', $this->_name($name), '"';
|
209 |
if ($attrs['reload']) {
|
210 |
echo ' onchange="tnpc_reload_options(event)"';
|
211 |
}
|
212 |
if (!empty($attrs['after-rendering'])) {
|
213 |
+
echo ' data-after-rendering="', $attrs['after-rendering'], '"';
|
214 |
}
|
215 |
echo '>';
|
216 |
if (!empty($first)) {
|
217 |
+
echo '<option value="">', esc_html($first), '</option>';
|
218 |
}
|
219 |
+
$label = esc_html($label);
|
220 |
foreach ($options as $key => $label) {
|
221 |
+
echo '<option value="', esc_attr($key), '"';
|
222 |
+
if ($value == $key) {
|
223 |
echo ' selected';
|
224 |
+
}
|
225 |
+
echo '>', $label, '</option>';
|
226 |
}
|
227 |
echo '</select>';
|
228 |
|
231 |
$this->_close();
|
232 |
}
|
233 |
|
234 |
+
public function yesno($name, $label = '', $attrs = []) {
|
235 |
$attrs = $this->_merge_attrs($attrs);
|
236 |
$this->_open();
|
237 |
$this->_label($label);
|
240 |
$this->_close();
|
241 |
}
|
242 |
|
243 |
+
public function select_number($name, $label = '', $min, $max, $attrs = []) {
|
244 |
$attrs = $this->_merge_attrs($attrs);
|
245 |
$this->_open();
|
246 |
$this->_label($label);
|
250 |
}
|
251 |
|
252 |
/** General field to collect a dimension */
|
253 |
+
public function size($name, $label = '', $attrs = []) {
|
254 |
+
$attrs = $this->_merge_attrs($attrs, [array('description' => '', 'placeholder' => '', 'size' => 0, 'label_after' => 'px')]);
|
|
|
255 |
$this->_open('tnp-size');
|
256 |
$this->_label($label);
|
257 |
$value = $this->controls->get_value($name);
|
258 |
+
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="', $this->_name($name), '" type="text"';
|
259 |
if (!empty($attrs['size'])) {
|
260 |
echo ' style="width: ', $attrs['size'], 'px"';
|
261 |
}
|
262 |
echo ' value="', esc_attr($value), '">', $attrs['label_after'];
|
|
|
263 |
$this->_description($attrs);
|
264 |
$this->_close();
|
265 |
}
|
266 |
|
267 |
+
/** Collects a color in HEX format with a picker. */
|
268 |
+
public function color($name, $label, $attrs = []) {
|
|
|
269 |
$this->_open('tnp-color');
|
270 |
$this->_label($label);
|
271 |
+
$this->controls->color($name);
|
272 |
$this->_description($attrs);
|
273 |
$this->_close();
|
274 |
}
|
275 |
|
276 |
/** Configuration for a simple button with label and color */
|
277 |
+
public function button($name, $label = '', $attrs = []) {
|
278 |
+
$attrs = $this->_merge_attrs($attrs, ['placeholder' => 'Label...', 'url_placeholder' => 'https://...', 'url' => true, 'weight' => true]);
|
279 |
+
$this->_open('tnp-button');
|
280 |
$this->_label($label);
|
281 |
$value = $this->controls->get_value($name . '_label');
|
282 |
+
$name_esc = esc_attr($name);
|
283 |
echo '<div class="tnp-field-row">';
|
284 |
echo '<div class="tnp-field-col-2">';
|
285 |
+
echo '<input id="', $this->_id($name), '" placeholder="', esc_attr($attrs['placeholder']), '" name="', $name_esc, '_label]" type="text"';
|
286 |
echo ' style="width: 100%"';
|
287 |
echo ' value="', esc_attr($value), '">';
|
288 |
echo '</div>';
|
289 |
|
290 |
if ($attrs['url']) {
|
|
|
291 |
$value = $this->controls->get_value($name . '_url');
|
292 |
+
echo '<div class="tnp-field-col-2">';
|
293 |
+
echo '<input id="', $this->_id($name . '_url'), '" placeholder="', esc_attr($attrs['url_placeholder']), '" name="options[',
|
294 |
+
$name_esc, '_url]" type="url" style="width: 100%" value="', esc_attr($value), '">';
|
295 |
echo '</div>';
|
296 |
}
|
297 |
echo '<div style="clear: both"></div>';
|
301 |
$this->_close();
|
302 |
}
|
303 |
|
304 |
+
public function url($name, $label = '', $attrs = []) {
|
305 |
$attrs = array_merge(array('description' => '', 'placeholder' => 'https://...'), $attrs);
|
306 |
$this->_open();
|
307 |
$this->_label($label);
|
310 |
$this->_close();
|
311 |
}
|
312 |
|
313 |
+
/**
|
314 |
+
* Provides a list of custom post types.
|
315 |
+
*
|
316 |
+
* @param string $name
|
317 |
+
* @param string $label
|
318 |
+
* @param array $attrs
|
319 |
+
*/
|
320 |
+
public function post_type($name = 'post_type', $label = '', $attrs = []) {
|
321 |
|
322 |
+
$post_types = get_post_types(['public' => true], 'objects', 'and');
|
323 |
|
324 |
+
$attrs = array_merge(['description' => ''], $attrs);
|
325 |
$this->_open();
|
326 |
$this->_label($label);
|
327 |
|
328 |
+
$options = ['post' => 'Standard post'];
|
329 |
foreach ($post_types as $post_type) {
|
330 |
+
if ($post_type->name == 'post' || $post_type->name == 'page' || $post_type->name == 'attachment') {
|
331 |
continue;
|
332 |
+
}
|
333 |
$options[$post_type->name] = $post_type->labels->name;
|
334 |
}
|
335 |
$value = $this->controls->get_value($name);
|
336 |
|
337 |
+
echo '<select id="', $this->_id($name), '" name="options[' . esc_attr($name) . ']" onchange="tnpc_reload_options(event); return false;">';
|
338 |
if (!empty($first)) {
|
339 |
echo '<option value="">' . esc_html($first) . '</option>';
|
340 |
}
|
341 |
+
$label = esc_html($label);
|
342 |
foreach ($options as $key => $label) {
|
343 |
echo '<option value="' . esc_attr($key) . '"';
|
344 |
if ($value == $key)
|
345 |
echo ' selected';
|
346 |
+
echo '>', $label, '</option>';
|
347 |
}
|
348 |
echo '</select>';
|
349 |
|
351 |
$this->_close();
|
352 |
}
|
353 |
|
354 |
+
function posts($name, $label, $count = 20, $args = []) {
|
355 |
$args = array_merge(array('filters' => array(
|
356 |
'posts_per_page' => 5,
|
357 |
'offset' => 0,
|
386 |
$this->select($name, $label, $options);
|
387 |
}
|
388 |
|
389 |
+
function lists($name, $label, $attrs = []) {
|
390 |
$attrs = $this->_merge_attrs($attrs);
|
391 |
$this->_open();
|
392 |
$this->_label($label);
|
398 |
|
399 |
/**
|
400 |
* Media selector using the WP media library (for images and files.
|
401 |
+
* The field to use it the {$name}_id which contains the media id.
|
402 |
+
*
|
403 |
* @param type $name
|
404 |
* @param type $label
|
405 |
* @param type $attrs
|
406 |
*/
|
407 |
+
public function media($name, $label = '', $attrs = []) {
|
408 |
$attrs = $this->_merge_attrs($attrs, array('alt' => false));
|
409 |
$this->_open();
|
410 |
$this->_label($label);
|
416 |
$this->_close();
|
417 |
}
|
418 |
|
419 |
+
public function categories($name = 'categories', $label = '', $attrs = []) {
|
420 |
if (empty($label))
|
421 |
$label = __('Categories', 'newsletter');
|
422 |
$attrs = $this->_merge_attrs($attrs);
|
434 |
* @param type $label
|
435 |
* @param type $attrs
|
436 |
*/
|
437 |
+
public function terms($taxonomy, $label = '', $attrs = []) {
|
438 |
if (isset($attrs['name'])) {
|
439 |
$name = $attrs['name'];
|
440 |
} else {
|
467 |
$this->_close();
|
468 |
}
|
469 |
|
470 |
+
/**
|
471 |
+
* Shows a language selector only if the blog is multilanguage.
|
472 |
+
*
|
473 |
+
* @param string $name
|
474 |
+
* @param string $label
|
475 |
+
* @param array $attrs
|
476 |
+
*/
|
477 |
+
public function language($name = 'language', $label = '', $attrs = []) {
|
478 |
+
if (!Newsletter::instance()->is_multilanguage()) {
|
479 |
return;
|
480 |
+
}
|
481 |
+
if (empty($label)) {
|
482 |
$label = __('Language', 'newsletter');
|
483 |
+
}
|
484 |
$attrs = $this->_merge_attrs($attrs);
|
485 |
$this->_open('tnp-language');
|
486 |
$this->_label($label);
|
493 |
* Collects font details for a text: family, color, size and weight to be used
|
494 |
* directly on CSS rules. Size is a pure number.
|
495 |
*
|
496 |
+
* Attributes:
|
497 |
+
*
|
498 |
* @param type $name
|
499 |
* @param type $label
|
500 |
* @param type $attrs
|
501 |
*/
|
502 |
+
public function font($name = 'font', $label = 'Font', $attrs = []) {
|
503 |
$attrs = $this->_merge_base_attrs($attrs);
|
504 |
$attrs = array_merge(array('hide_family' => false, 'hide_color' => false, 'hide_size' => false), $attrs);
|
505 |
|
513 |
/**
|
514 |
* Collects fout number values representing the padding of a box. The values can
|
515 |
* be found as {$name}_top, {$name}_bottom, {$name}_left, {$name}_right.
|
516 |
+
*
|
517 |
* @param type $name
|
518 |
* @param type $label
|
519 |
* @param type $attrs
|
520 |
*/
|
521 |
+
public function padding($name = 'block_padding', $label = 'Padding', $attrs = []) {
|
522 |
$attrs = $this->_merge_base_attrs($attrs);
|
523 |
+
$attrs = array_merge(['padding_top' => 0, 'padding_left' => 0, 'padding_right' => 0, 'padding_bottom' => 0], $attrs);
|
524 |
$field_only = !empty($attrs['field_only']);
|
525 |
|
526 |
if (!$field_only) {
|
568 |
$this->_label('Padding and background');
|
569 |
$this->controls->color('block_background');
|
570 |
|
571 |
+
echo ' → ';
|
572 |
+
$this->controls->checkbox('block_background_gradient');
|
573 |
+
$this->controls->color('block_background_2');
|
574 |
|
575 |
echo ' ';
|
576 |
+
$this->padding('block_padding', '', ['field_only' => true]);
|
577 |
echo '<div class="tnp-description">Gradients are displayed only by few clients</div>';
|
578 |
$this->_close();
|
579 |
}
|
includes/helper.php
CHANGED
@@ -200,15 +200,15 @@ function tnp_resize($media_id, $size) {
|
|
200 |
if (empty($relative_file)) {
|
201 |
return null;
|
202 |
}
|
203 |
-
|
204 |
$uploads = wp_upload_dir();
|
205 |
-
|
206 |
// Based on _wp_relative_upload_path() function for blog which store the
|
207 |
// full patch of media files
|
208 |
if (0 === strpos($relative_file, $uploads['basedir'])) {
|
209 |
$relative_file = str_replace($uploads['basedir'], '', $relative_file);
|
210 |
$relative_file = ltrim($relative_file, '/');
|
211 |
-
}
|
212 |
|
213 |
$width = $size[0];
|
214 |
$height = $size[1];
|
@@ -218,7 +218,7 @@ function tnp_resize($media_id, $size) {
|
|
218 |
}
|
219 |
|
220 |
$absolute_file = $uploads['basedir'] . '/' . $relative_file;
|
221 |
-
|
222 |
if (substr($relative_file, -4) === '.gif') {
|
223 |
$editor = wp_get_image_editor($absolute_file);
|
224 |
$new_size = $editor->get_size();
|
@@ -231,7 +231,7 @@ function tnp_resize($media_id, $size) {
|
|
231 |
$media->url = $uploads['baseurl'] . '/' . $relative_file;
|
232 |
return $media;
|
233 |
}
|
234 |
-
|
235 |
// Relative and absolute name of the thumbnail.
|
236 |
$pathinfo = pathinfo($relative_file);
|
237 |
$relative_thumb = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . '-' . $width . 'x' . $height . ($crop ? '-c' : '') . '.' . $pathinfo['extension'];
|
@@ -290,6 +290,17 @@ function tnp_resize($media_id, $size) {
|
|
290 |
return $media;
|
291 |
}
|
292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
/**
|
294 |
* Get media for "posts" composer block
|
295 |
*
|
200 |
if (empty($relative_file)) {
|
201 |
return null;
|
202 |
}
|
203 |
+
|
204 |
$uploads = wp_upload_dir();
|
205 |
+
|
206 |
// Based on _wp_relative_upload_path() function for blog which store the
|
207 |
// full patch of media files
|
208 |
if (0 === strpos($relative_file, $uploads['basedir'])) {
|
209 |
$relative_file = str_replace($uploads['basedir'], '', $relative_file);
|
210 |
$relative_file = ltrim($relative_file, '/');
|
211 |
+
}
|
212 |
|
213 |
$width = $size[0];
|
214 |
$height = $size[1];
|
218 |
}
|
219 |
|
220 |
$absolute_file = $uploads['basedir'] . '/' . $relative_file;
|
221 |
+
|
222 |
if (substr($relative_file, -4) === '.gif') {
|
223 |
$editor = wp_get_image_editor($absolute_file);
|
224 |
$new_size = $editor->get_size();
|
231 |
$media->url = $uploads['baseurl'] . '/' . $relative_file;
|
232 |
return $media;
|
233 |
}
|
234 |
+
|
235 |
// Relative and absolute name of the thumbnail.
|
236 |
$pathinfo = pathinfo($relative_file);
|
237 |
$relative_thumb = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . '-' . $width . 'x' . $height . ($crop ? '-c' : '') . '.' . $pathinfo['extension'];
|
290 |
return $media;
|
291 |
}
|
292 |
|
293 |
+
function tnp_resize_2x($media_id, $size) {
|
294 |
+
$size[0] = $size[0] * 2;
|
295 |
+
$size[1] = $size[1] * 2;
|
296 |
+
$media = tnp_resize($media_id, $size);
|
297 |
+
$media->set_width( $size[0] / 2 );
|
298 |
+
return $media;
|
299 |
+
}
|
300 |
+
|
301 |
+
//TODO creare funzione che quando fa il resize fa anche il resize
|
302 |
+
// al doppio della risoluzione e salva url del file in TNP_Media->url2x o urls ??
|
303 |
+
|
304 |
/**
|
305 |
* Get media for "posts" composer block
|
306 |
*
|
includes/module.php
CHANGED
@@ -363,7 +363,7 @@ class NewsletterModule {
|
|
363 |
*/
|
364 |
var $themes;
|
365 |
var $components;
|
366 |
-
|
367 |
static $current_language = '';
|
368 |
|
369 |
function __construct($module, $version, $module_id = null, $components = array()) {
|
@@ -701,17 +701,6 @@ class NewsletterModule {
|
|
701 |
if (!is_email($email)) {
|
702 |
return false;
|
703 |
}
|
704 |
-
|
705 |
-
// TODO: To be moved on the subscription module and make configurable
|
706 |
-
if (strpos($email, 'mailinator.com') !== false) {
|
707 |
-
return false;
|
708 |
-
}
|
709 |
-
if (strpos($email, 'guerrillamailblock.com') !== false) {
|
710 |
-
return false;
|
711 |
-
}
|
712 |
-
if (strpos($email, 'emailtemporanea.net') !== false) {
|
713 |
-
return false;
|
714 |
-
}
|
715 |
return true;
|
716 |
}
|
717 |
|
@@ -1580,8 +1569,8 @@ class NewsletterModule {
|
|
1580 |
$class = trim($rules[1][$i]);
|
1581 |
$value = trim($rules[2][$i]);
|
1582 |
$value = preg_replace('|\s+|', ' ', $value);
|
1583 |
-
$content = str_replace('class="' . $class . '"', 'class="' . $class . '" style="' . $value . '"', $content);
|
1584 |
-
$content = str_replace('inline-class="' . $class . '"', 'style="' . $value . '"', $content);
|
1585 |
}
|
1586 |
}
|
1587 |
|
@@ -1921,7 +1910,7 @@ class NewsletterModule {
|
|
1921 |
$text = str_replace('{blog_description}', get_option('blogdescription'), $text);
|
1922 |
|
1923 |
$text = $this->replace_date($text);
|
1924 |
-
|
1925 |
if ($user) {
|
1926 |
//$this->logger->debug('Replace with user ' . $user->id);
|
1927 |
$nk = $this->get_user_key($user);
|
@@ -2251,7 +2240,7 @@ class NewsletterModule {
|
|
2251 |
$text = str_replace("\n", "\r\n", $text);
|
2252 |
return $text;
|
2253 |
}
|
2254 |
-
|
2255 |
function set_current_language($language) {
|
2256 |
self::$current_language = $language;
|
2257 |
}
|
@@ -2269,7 +2258,7 @@ class NewsletterModule {
|
|
2269 |
if ($user && $user->language) {
|
2270 |
return $user->language;
|
2271 |
}
|
2272 |
-
|
2273 |
if (!empty(self::$current_language)) {
|
2274 |
return self::$current_language;
|
2275 |
}
|
363 |
*/
|
364 |
var $themes;
|
365 |
var $components;
|
366 |
+
|
367 |
static $current_language = '';
|
368 |
|
369 |
function __construct($module, $version, $module_id = null, $components = array()) {
|
701 |
if (!is_email($email)) {
|
702 |
return false;
|
703 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
704 |
return true;
|
705 |
}
|
706 |
|
1569 |
$class = trim($rules[1][$i]);
|
1570 |
$value = trim($rules[2][$i]);
|
1571 |
$value = preg_replace('|\s+|', ' ', $value);
|
1572 |
+
$content = str_replace(' class="' . $class . '"', ' class="' . $class . '" style="' . $value . '"', $content);
|
1573 |
+
$content = str_replace(' inline-class="' . $class . '"', ' style="' . $value . '"', $content);
|
1574 |
}
|
1575 |
}
|
1576 |
|
1910 |
$text = str_replace('{blog_description}', get_option('blogdescription'), $text);
|
1911 |
|
1912 |
$text = $this->replace_date($text);
|
1913 |
+
|
1914 |
if ($user) {
|
1915 |
//$this->logger->debug('Replace with user ' . $user->id);
|
1916 |
$nk = $this->get_user_key($user);
|
2240 |
$text = str_replace("\n", "\r\n", $text);
|
2241 |
return $text;
|
2242 |
}
|
2243 |
+
|
2244 |
function set_current_language($language) {
|
2245 |
self::$current_language = $language;
|
2246 |
}
|
2258 |
if ($user && $user->language) {
|
2259 |
return $user->language;
|
2260 |
}
|
2261 |
+
|
2262 |
if (!empty(self::$current_language)) {
|
2263 |
return self::$current_language;
|
2264 |
}
|
main/extensions.php
CHANGED
@@ -74,6 +74,7 @@ if ($controls->is_action('activate')) {
|
|
74 |
<?php if (is_array($extensions)) { ?>
|
75 |
|
76 |
<!-- Extensions -->
|
|
|
77 |
<?php foreach ($extensions AS $e) { ?>
|
78 |
|
79 |
<?php if ($e->type == "extension" || $e->type == "premium") { ?>
|
@@ -90,6 +91,7 @@ if ($controls->is_action('activate')) {
|
|
90 |
<?php } ?>
|
91 |
|
92 |
<!-- Integrations -->
|
|
|
93 |
<?php foreach ($extensions AS $e) { ?>
|
94 |
|
95 |
<?php if ($e->type == "integration") { ?>
|
@@ -108,6 +110,7 @@ if ($controls->is_action('activate')) {
|
|
108 |
<?php } ?>
|
109 |
|
110 |
<!-- Delivery -->
|
|
|
111 |
<?php foreach ($extensions AS $e) { ?>
|
112 |
|
113 |
<?php if ($e->type == "delivery") { ?>
|
74 |
<?php if (is_array($extensions)) { ?>
|
75 |
|
76 |
<!-- Extensions -->
|
77 |
+
<h3 class="tnp-section-title">Additional professional features</h3>
|
78 |
<?php foreach ($extensions AS $e) { ?>
|
79 |
|
80 |
<?php if ($e->type == "extension" || $e->type == "premium") { ?>
|
91 |
<?php } ?>
|
92 |
|
93 |
<!-- Integrations -->
|
94 |
+
<h3 class="tnp-section-title">Integrations with 3rd party plugins</h3>
|
95 |
<?php foreach ($extensions AS $e) { ?>
|
96 |
|
97 |
<?php if ($e->type == "integration") { ?>
|
110 |
<?php } ?>
|
111 |
|
112 |
<!-- Delivery -->
|
113 |
+
<h3 class="tnp-section-title">Integrations with reliable mail delivery services</h3>
|
114 |
<?php foreach ($extensions AS $e) { ?>
|
115 |
|
116 |
<?php if ($e->type == "delivery") { ?>
|
plugin.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: https://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="https://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
-
Version: 6.9.
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: https://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
@@ -35,7 +35,7 @@ if (version_compare(phpversion(), '5.6', '<')) {
|
|
35 |
return;
|
36 |
}
|
37 |
|
38 |
-
define('NEWSLETTER_VERSION', '6.9.
|
39 |
|
40 |
global $newsletter, $wpdb;
|
41 |
|
@@ -512,6 +512,7 @@ class Newsletter extends NewsletterModule {
|
|
512 |
$newsletter_url = plugins_url('newsletter');
|
513 |
wp_enqueue_script('jquery-ui-tabs');
|
514 |
wp_enqueue_script('jquery-ui-tooltip');
|
|
|
515 |
wp_enqueue_media();
|
516 |
|
517 |
wp_enqueue_style('tnp-admin-font', 'https://use.typekit.net/jlj2wjy.css');
|
@@ -521,14 +522,14 @@ class Newsletter extends NewsletterModule {
|
|
521 |
wp_enqueue_style('tnp-admin-fields', $newsletter_url . '/css/fields.css', [], NEWSLETTER_VERSION);
|
522 |
wp_enqueue_style('tnp-admin-widgets', $newsletter_url . '/css/widgets.css', [], NEWSLETTER_VERSION);
|
523 |
wp_enqueue_style('tnp-admin', $newsletter_url . '/admin.css',
|
524 |
-
|
525 |
'tnp-admin-font',
|
526 |
'tnp-admin-fontawesome',
|
527 |
'tnp-admin-jquery-ui',
|
528 |
'tnp-admin-dropdown',
|
529 |
'tnp-admin-fields',
|
530 |
'tnp-admin-widgets'
|
531 |
-
|
532 |
|
533 |
wp_enqueue_script('tnp-admin', $newsletter_url . '/admin.js', ['jquery'], NEWSLETTER_VERSION);
|
534 |
|
@@ -537,16 +538,16 @@ class Newsletter extends NewsletterModule {
|
|
537 |
);
|
538 |
wp_localize_script('tnp-admin', 'tnp_translations', $translations_array);
|
539 |
|
540 |
-
wp_enqueue_style('
|
541 |
-
wp_enqueue_script('
|
|
|
|
|
|
|
542 |
|
543 |
-
|
544 |
-
wp_enqueue_script('tnp-select2', $newsletter_url . '/vendor/select2/select2.min.js');
|
545 |
-
wp_enqueue_script('tnp-jquery-vmap', $newsletter_url . '/vendor/jqvmap/jquery.vmap.min.js', array('jquery'));
|
546 |
-
wp_enqueue_script('tnp-jquery-vmap-world', $newsletter_url . '/vendor/jqvmap/jquery.vmap.world.js', array('tnp-jquery-vmap'));
|
547 |
-
wp_enqueue_style('tnp-jquery-vmap', $newsletter_url . '/vendor/jqvmap/jqvmap.min.css');
|
548 |
|
549 |
-
|
|
|
550 |
}
|
551 |
|
552 |
function shortcode_newsletter_replace($attrs, $content) {
|
@@ -958,14 +959,16 @@ class Newsletter extends NewsletterModule {
|
|
958 |
}
|
959 |
|
960 |
/**
|
961 |
-
*
|
962 |
* @param TNP_Mailer_Message $message
|
963 |
* @return type
|
964 |
*/
|
965 |
function deliver($message) {
|
966 |
$mailer = $this->get_mailer();
|
967 |
-
if (empty($message->from))
|
968 |
-
|
|
|
|
|
969 |
return $mailer->send($message);
|
970 |
}
|
971 |
|
@@ -999,7 +1002,7 @@ class Newsletter extends NewsletterModule {
|
|
999 |
$mailer_message->body = $this->clean_eol($message['html']);
|
1000 |
}
|
1001 |
}
|
1002 |
-
|
1003 |
$this->logger->debug($mailer_message);
|
1004 |
|
1005 |
$mailer = $this->get_mailer();
|
@@ -1254,7 +1257,7 @@ class Newsletter extends NewsletterModule {
|
|
1254 |
$newsletter_page_url = apply_filters('wpml_permalink', $newsletter_page_url, $language, true);
|
1255 |
}
|
1256 |
if (function_exists('pll_get_post')) {
|
1257 |
-
|
1258 |
if ($translated_page) {
|
1259 |
$newsletter_page_url = $translated_page;
|
1260 |
}
|
4 |
Plugin Name: Newsletter
|
5 |
Plugin URI: https://www.thenewsletterplugin.com/plugins/newsletter
|
6 |
Description: Newsletter is a cool plugin to create your own subscriber list, to send newsletters, to build your business. <strong>Before update give a look to <a href="https://www.thenewsletterplugin.com/category/release">this page</a> to know what's changed.</strong>
|
7 |
+
Version: 6.9.8
|
8 |
Author: Stefano Lissa & The Newsletter Team
|
9 |
Author URI: https://www.thenewsletterplugin.com
|
10 |
Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
|
35 |
return;
|
36 |
}
|
37 |
|
38 |
+
define('NEWSLETTER_VERSION', '6.9.8');
|
39 |
|
40 |
global $newsletter, $wpdb;
|
41 |
|
512 |
$newsletter_url = plugins_url('newsletter');
|
513 |
wp_enqueue_script('jquery-ui-tabs');
|
514 |
wp_enqueue_script('jquery-ui-tooltip');
|
515 |
+
wp_enqueue_script('jquery-ui-draggable');
|
516 |
wp_enqueue_media();
|
517 |
|
518 |
wp_enqueue_style('tnp-admin-font', 'https://use.typekit.net/jlj2wjy.css');
|
522 |
wp_enqueue_style('tnp-admin-fields', $newsletter_url . '/css/fields.css', [], NEWSLETTER_VERSION);
|
523 |
wp_enqueue_style('tnp-admin-widgets', $newsletter_url . '/css/widgets.css', [], NEWSLETTER_VERSION);
|
524 |
wp_enqueue_style('tnp-admin', $newsletter_url . '/admin.css',
|
525 |
+
[
|
526 |
'tnp-admin-font',
|
527 |
'tnp-admin-fontawesome',
|
528 |
'tnp-admin-jquery-ui',
|
529 |
'tnp-admin-dropdown',
|
530 |
'tnp-admin-fields',
|
531 |
'tnp-admin-widgets'
|
532 |
+
], NEWSLETTER_VERSION);
|
533 |
|
534 |
wp_enqueue_script('tnp-admin', $newsletter_url . '/admin.js', ['jquery'], NEWSLETTER_VERSION);
|
535 |
|
538 |
);
|
539 |
wp_localize_script('tnp-admin', 'tnp_translations', $translations_array);
|
540 |
|
541 |
+
wp_enqueue_style('tnp-select2', $newsletter_url . '/vendor/select2/select2.css', [], NEWSLETTER_VERSION);
|
542 |
+
wp_enqueue_script('tnp-select2', $newsletter_url . '/vendor/select2/select2.min.js', [], NEWSLETTER_VERSION);
|
543 |
+
wp_enqueue_script('tnp-jquery-vmap', $newsletter_url . '/vendor/jqvmap/jquery.vmap.min.js', ['jquery'], NEWSLETTER_VERSION);
|
544 |
+
wp_enqueue_script('tnp-jquery-vmap-world', $newsletter_url . '/vendor/jqvmap/jquery.vmap.world.js', ['tnp-jquery-vmap'], NEWSLETTER_VERSION);
|
545 |
+
wp_enqueue_style('tnp-jquery-vmap', $newsletter_url . '/vendor/jqvmap/jqvmap.min.css', [], NEWSLETTER_VERSION);
|
546 |
|
547 |
+
wp_register_script('tnp-chart', $newsletter_url . '/vendor/chartjs/Chart.min.js', ['jquery'], NEWSLETTER_VERSION);
|
|
|
|
|
|
|
|
|
548 |
|
549 |
+
wp_enqueue_script('tnp-color-picker', $newsletter_url . '/vendor/spectrum/spectrum.min.js', ['jquery']);
|
550 |
+
wp_enqueue_style('tnp-color-picker', $newsletter_url . '/vendor/spectrum/spectrum.min.css', [], NEWSLETTER_VERSION);
|
551 |
}
|
552 |
|
553 |
function shortcode_newsletter_replace($attrs, $content) {
|
959 |
}
|
960 |
|
961 |
/**
|
962 |
+
*
|
963 |
* @param TNP_Mailer_Message $message
|
964 |
* @return type
|
965 |
*/
|
966 |
function deliver($message) {
|
967 |
$mailer = $this->get_mailer();
|
968 |
+
if (empty($message->from))
|
969 |
+
$message->from = $this->options['sender_email'];
|
970 |
+
if (empty($message->from_name))
|
971 |
+
$mailer->from_name = $this->options['sender_name'];
|
972 |
return $mailer->send($message);
|
973 |
}
|
974 |
|
1002 |
$mailer_message->body = $this->clean_eol($message['html']);
|
1003 |
}
|
1004 |
}
|
1005 |
+
|
1006 |
$this->logger->debug($mailer_message);
|
1007 |
|
1008 |
$mailer = $this->get_mailer();
|
1257 |
$newsletter_page_url = apply_filters('wpml_permalink', $newsletter_page_url, $language, true);
|
1258 |
}
|
1259 |
if (function_exists('pll_get_post')) {
|
1260 |
+
$translated_page = get_permalink(pll_get_post($page->ID, $language));
|
1261 |
if ($translated_page) {
|
1262 |
$newsletter_page_url = $translated_page;
|
1263 |
}
|
readme.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
Tags: email, email marketing, newsletter, newsletter subscribers, welcome email, signup forms, contact, lead generation, popup, marketing automation
|
3 |
Requires at least: 3.4.0
|
4 |
Tested up to: 5.5.3
|
5 |
-
Stable tag: 6.9.
|
6 |
Requires PHP: 5.6
|
7 |
Contributors: satollo,webagile,michael-travan
|
8 |
License: GPLv2 or later
|
@@ -55,6 +55,9 @@ Improve The Newsletter Plugin with these free addons:
|
|
55 |
* [Newsletter REST API](https://www.thenewsletterplugin.com/documentation/developers/newsletter-api-2/) - adds a tier of REST api to integrate with the Newsletter core services
|
56 |
* [BuddyPress integration](https://wordpress.org/plugins/newsletter-buddypress/) - subscription opt-in inside BuddyPress signup form
|
57 |
* [Sendinblue integration](https://www.thenewsletterplugin.com/documentation/addons/delivery-addons/sendinblue-extension/) - deliver your newsletters with Sendinblue
|
|
|
|
|
|
|
58 |
|
59 |
|
60 |
(*easily add them from our [Addons panel](https://www.thenewsletterplugin.com/documentation/install-extensions)*)
|
@@ -117,6 +120,14 @@ Thank you, The Newsletter Team
|
|
117 |
|
118 |
== Changelog ==
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
= 6.9.7 =
|
121 |
|
122 |
* Fixed country filter
|
2 |
Tags: email, email marketing, newsletter, newsletter subscribers, welcome email, signup forms, contact, lead generation, popup, marketing automation
|
3 |
Requires at least: 3.4.0
|
4 |
Tested up to: 5.5.3
|
5 |
+
Stable tag: 6.9.8
|
6 |
Requires PHP: 5.6
|
7 |
Contributors: satollo,webagile,michael-travan
|
8 |
License: GPLv2 or later
|
55 |
* [Newsletter REST API](https://www.thenewsletterplugin.com/documentation/developers/newsletter-api-2/) - adds a tier of REST api to integrate with the Newsletter core services
|
56 |
* [BuddyPress integration](https://wordpress.org/plugins/newsletter-buddypress/) - subscription opt-in inside BuddyPress signup form
|
57 |
* [Sendinblue integration](https://www.thenewsletterplugin.com/documentation/addons/delivery-addons/sendinblue-extension/) - deliver your newsletters with Sendinblue
|
58 |
+
* [RSS Composer Block](https://wordpress.org/plugins/newsletter-rss-block/) - (3rd party) a composer block which builds its content form an RSS feed
|
59 |
+
* [Popup Maker Integration](https://wordpress.org/plugins/newsletter-popupmaker/) - (3rd party) integration of Newsletter forms with Popup Maker plugin
|
60 |
+
|
61 |
|
62 |
|
63 |
(*easily add them from our [Addons panel](https://www.thenewsletterplugin.com/documentation/install-extensions)*)
|
120 |
|
121 |
== Changelog ==
|
122 |
|
123 |
+
= 6.9.8 =
|
124 |
+
|
125 |
+
* New color picker
|
126 |
+
* Extended the IP field on stats table
|
127 |
+
* Removed filter for temporary email services (can be added in the security page)
|
128 |
+
* Added support to show the last regular newsletter (not private) adding to the home url ?na=view&id=last
|
129 |
+
* Hero and image blocks now use high res images
|
130 |
+
|
131 |
= 6.9.7 =
|
132 |
|
133 |
* Fixed country filter
|
statistics/statistics.php
CHANGED
@@ -21,7 +21,7 @@ class NewsletterStatistics extends NewsletterModule {
|
|
21 |
}
|
22 |
|
23 |
function __construct() {
|
24 |
-
parent::__construct('statistics', '1.2.
|
25 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
26 |
}
|
27 |
|
@@ -158,7 +158,7 @@ class NewsletterStatistics extends NewsletterModule {
|
|
158 |
`url` varchar(255) NOT NULL DEFAULT '',
|
159 |
`user_id` int(11) NOT NULL DEFAULT '0',
|
160 |
`email_id` varchar(10) NOT NULL DEFAULT '0',
|
161 |
-
`ip` varchar(
|
162 |
PRIMARY KEY (`id`),
|
163 |
KEY `email_id` (`email_id`),
|
164 |
KEY `user_id` (`user_id`)
|
21 |
}
|
22 |
|
23 |
function __construct() {
|
24 |
+
parent::__construct('statistics', '1.2.8');
|
25 |
add_action('wp_loaded', array($this, 'hook_wp_loaded'));
|
26 |
}
|
27 |
|
158 |
`url` varchar(255) NOT NULL DEFAULT '',
|
159 |
`user_id` int(11) NOT NULL DEFAULT '0',
|
160 |
`email_id` varchar(10) NOT NULL DEFAULT '0',
|
161 |
+
`ip` varchar(100) NOT NULL DEFAULT '',
|
162 |
PRIMARY KEY (`id`),
|
163 |
KEY `email_id` (`email_id`),
|
164 |
KEY `user_id` (`user_id`)
|
users/edit.php
CHANGED
@@ -284,6 +284,7 @@ function percentValue($value, $total) {
|
|
284 |
<table class="widefat" style="width: auto">
|
285 |
<thead>
|
286 |
<tr>
|
|
|
287 |
<th>Date</th>
|
288 |
<th>Source</th>
|
289 |
<th>IP</th>
|
@@ -298,6 +299,7 @@ function percentValue($value, $total) {
|
|
298 |
$data = $data['new'];
|
299 |
?>
|
300 |
<tr>
|
|
|
301 |
<td><?php echo $controls->print_date($log->created) ?></td>
|
302 |
<td><?php echo esc_html($log->source) ?></td>
|
303 |
<td><?php echo esc_html($log->ip) ?></td>
|
284 |
<table class="widefat" style="width: auto">
|
285 |
<thead>
|
286 |
<tr>
|
287 |
+
<th>ID</th>
|
288 |
<th>Date</th>
|
289 |
<th>Source</th>
|
290 |
<th>IP</th>
|
299 |
$data = $data['new'];
|
300 |
?>
|
301 |
<tr>
|
302 |
+
<td><?php echo $log->id ?></td>
|
303 |
<td><?php echo $controls->print_date($log->created) ?></td>
|
304 |
<td><?php echo esc_html($log->source) ?></td>
|
305 |
<td><?php echo esc_html($log->ip) ?></td>
|
vendor/spectrum/spectrum.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.sp-container{position:absolute;top:0;left:0;display:inline-block;z-index:9999994;overflow:hidden}.sp-original-input-container{position:relative}.sp-original-input-container input+.sp-add-on{position:absolute;left:0;top:0;bottom:0;border-top:none!important;border-bottom:none!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input.spectrum.with-add-on{padding-left:45px}.sp-original-input-container input+.sp-add-on .sp-colorize{height:100%;width:100%;border-radius:inherit}backgrou .sp-colorize-container{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20px!important}.sp-hue{position:absolute;top:0;right:0;bottom:0;width:12px;height:100%;left:initial!important}.sp-clear-enabled .sp-hue{top:15%;height:85%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:28px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-3px;cursor:pointer;height:16px;border-radius:50%;width:16px;margin-right:5px;left:-2px;right:0;background:#f9f9f9;box-shadow:0 0 2px 0 #3a3a3a}.sp-alpha{display:none;position:absolute;bottom:-18px;right:0;left:0;height:10px}.sp-alpha-inner{border-radius:4px}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:3px;right:0;bottom:0;cursor:pointer;left:initial;height:12px;width:12px}.sp-alpha,.sp-alpha-handle,.sp-clear,.sp-container,.sp-container button,.sp-container.sp-dragging .sp-input,.sp-dragger,.sp-preview,.sp-replacer,.sp-slider{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear,0 0,100% 0,from(#fff),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-moz-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-o-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-ms-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(to right,#fff,rgba(204,154,129,0))}.sp-val{border-radius:4px;background-image:-webkit-gradient(linear,0 100%,0 0,from(#000),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-o-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:linear-gradient(to top,#000,rgba(204,154,129,0))}.sp-hue{background:-moz-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-ms-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-o-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(.17,#ff0),color-stop(.33,#0f0),color-stop(.5,#0ff),color-stop(.67,#00f),color-stop(.83,#f0f),to(red));background:-webkit-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.sp-1{height:17%}.sp-2{height:16%}.sp-3{height:17%}.sp-4{height:17%}.sp-5{height:16%}.sp-6{height:17%}.sp-hidden{display:none!important}.sp-cf:after,.sp-cf:before{content:"";display:table}.sp-cf:after{clear:both}@media (max-device-width:480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:10px;width:10px;border:1px solid #fff;cursor:pointer;position:absolute;top:0;left:0;margin-left:3px;margin-top:3px;box-shadow:0 0 2px 1px rgba(0,0,0,.2)}.sp-slider{position:absolute;top:0;cursor:pointer;height:16px;border-radius:50%;width:16px;left:-2px;background:#f9f9f9;box-shadow:0 0 2px 0 #3a3a3a;margin-top:8px}.sp-container{border-radius:0;background-color:#fff;padding:0;border-radius:4px;color:#000;box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.08)}.sp-clear,.sp-color,.sp-container,.sp-container button,.sp-container input,.sp-hue{font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:10px}.sp-clear,.sp-color,.sp-hue,.sp-sat,.sp-val{border-radius:3px}.sp-input-container{margin-top:-5px;margin-bottom:10px}.sp-button-container.sp-cf,.sp-initial.sp-thumb.sp-cf,.sp-input-container.sp-cf{height:25px}.sp-palette-row-initial>span:first-child{cursor:pointer}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{padding:0 5px!important;margin:0;width:100%;box-shadow:none!important;height:100%!important;background:0 0;color:#3a3a3a;border-radius:2px!important;border:1px solid #e0e0e0!important;text-align:center;font-family:monospace;font-size:inherit!important}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-palette-container,.sp-picker-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:200px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el.sp-thumb-active,.sp-palette .sp-thumb-el:hover{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left}.sp-initial span{width:30px;height:25px;border:none;display:block;float:left;margin:0}.sp-initial .spe-thumb-el.sp-thumb-active{border-radius:0 5px 5px 0}.sp-initial .spe-thumb-el{border-radius:5px 0 0 5px}.sp-initial .sp-clear-display{background-position:center}.sp-button-container{float:right}.sp-palette-button-container{margin-top:10px}.sp-replacer{position:relative;overflow:hidden;cursor:pointer;display:inline-block;border-radius:3px;border:1px solid #ccc;color:#666;transition:color .3s,border-color .3s;vertical-align:middle;width:3rem;height:1.5rem}.sp-replacer.sp-active,.sp-replacer:hover{border:1px solid #666;color:#000}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{position:absolute;font-size:10px;right:0;top:0;bottom:0;padding:0 2px;line-height:1.6rem;background-color:#fff}.sp-preview{position:relative;width:100%;height:100%;float:left;z-index:0}.sp-preview-inner{transition:background-color .2s}.sp-preview-inner.sp-clear-display{width:1rem;margin-left:.3rem}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:3px;border:none;border-radius:3px}.sp-container{padding-bottom:0}.sp-container button{border-radius:3px;border:none;background:0 0;line-height:1;padding:0 8px;height:25px;text-transform:capitalize;text-align:center;vertical-align:middle;cursor:pointer;color:#606c72;font-weight:700}.sp-container button.sp-choose{background-color:#3cab3b;color:#fff;margin-left:5px}.sp-container button:hover{opacity:.8}.sp-container button.sp-palette-toggle{width:100%;background-color:#f3f3f3;margin:0}.sp-palette span.sp-thumb-active,.sp-palette span:hover{border-color:#000}.sp-alpha,.sp-preview,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-alpha-inner,.sp-preview-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{border-radius:3px;background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABe0lEQVQokYXSsUtcQRTF4d8Jj+VhHSxkEQuLsEUKK0nhTBFTmLSSUhBCMCAWsmgIwWrBLk0akfwLCaSQKBJmtrIIISwpRFKIhViETScphGMzysMtvOVwvpm5d0bGNCuGWAOPgYdl6S8wSDn9b+bUhDHEKWAdeAFMANg+l/TV9ofcz6cjMIbYBvaBMds7QCqZ58CmpBNgPuV0DvAAIMyFGugWtJr7eTv38xEwkPRPErY7QDeG2LqFkjrAgu0dSd/KDVqSNmxvAZ8lfbS9AHRuYemnLWkv5XRVBrQMbAI/gTXgEzAJtJuwBVS2L2OIle03QA/4Lmkl5XQBXEqqbFcAVYFDYChpFngiqWf7l6TXKaezMt2Zkhk24THwG+jZriX9AFZvUAyxLbRke2D75O5zPAO+ADXwEtizjaRHwDvbTyUtppwOmicCHAJvbXcl9YA1SQDjtseA97YPRz7ATcUQp2y/kjRdevsjaTfldNrMjcDGBjXA3T96L7yvrgFzP69+0Ao/HAAAAABJRU5ErkJggg==)}
|
vendor/spectrum/spectrum.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports&&"object"==typeof module?module.exports=e(require("jquery")):e(jQuery)}(function(De,qe){"use strict";var e,Ie={beforeShow:a,move:a,change:a,show:a,hide:a,color:!1,flat:!1,type:"",showInput:!1,allowEmpty:!0,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!0,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:8,locale:"en",cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:"name",className:"",containerClassName:"",replacerClassName:"",showAlpha:!0,theme:"sp-light",palette:[["#000000","#444444","#5b5b5b","#999999","#bcbcbc","#eeeeee","#f3f6f4","#ffffff"],["#f44336","#744700","#ce7e00","#8fce00","#2986cc","#16537e","#6a329f","#c90076"],["#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#cfe2f3","#d9d2e9","#ead1dc"],["#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#9fc5e8","#b4a7d6","#d5a6bd"],["#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6fa8dc","#8e7cc3","#c27ba0"],["#cc0000","#e69138","#f1c232","#6aa84f","#45818e","#3d85c6","#674ea7","#a64d79"],["#990000","#b45f06","#bf9000","#38761d","#134f5c","#0b5394","#351c75","#741b47"],["#660000","#783f04","#7f6000","#274e13","#0c343d","#073763","#20124d","#4c1130"]],selectionPalette:[],disabled:!1,offset:null},Ve=[],We=!!/msie/i.exec(window.navigator.userAgent),Be=((e=document.createElement("div").style).cssText="background-color:rgba(0,0,0,.5)",t(e.backgroundColor,"rgba")||t(e.backgroundColor,"hsla")),Ke=["<div class='sp-replacer'>","<div class='sp-preview'><div class='sp-preview-inner'></div></div>","<div class='sp-dd'>▼</div>","</div>"].join(""),$e=function(){var e="";if(We)for(var t=1;t<=6;t++)e+="<div class='sp-"+t+"'></div>";return["<div class='sp-container sp-hidden'>","<div class='sp-palette-container'>","<div class='sp-palette sp-thumb sp-cf'></div>","<div class='sp-palette-button-container sp-cf'>","<button type='button' class='sp-palette-toggle'></button>","</div>","</div>","<div class='sp-picker-container'>","<div class='sp-top sp-cf'>","<div class='sp-fill'></div>","<div class='sp-top-inner'>","<div class='sp-color'>","<div class='sp-sat'>","<div class='sp-val'>","<div class='sp-dragger'></div>","</div>","</div>","</div>","<div class='sp-clear sp-clear-display'>","</div>","<div class='sp-hue'>","<div class='sp-slider'></div>",e,"</div>","</div>","<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>","</div>","<div class='sp-input-container sp-cf'>","<input class='sp-input' type='text' spellcheck='false' />","</div>","<div class='sp-initial sp-thumb sp-cf'></div>","<div class='sp-button-container sp-cf'>","<button class='sp-cancel' href='#'></button>","<button type='button' class='sp-choose'></button>","</div>","</div>","</div>"].join("")}();function t(e,t){return!!~(""+e).indexOf(t)}function Xe(e,t,a,o){for(var r=[],n=0;n<e.length;n++){var s=e[n];if(s){var i=tinycolor(s),l=i.toHsl().l<.5?"sp-thumb-el sp-thumb-dark":"sp-thumb-el sp-thumb-light";l+=tinycolor.equals(t,s)?" sp-thumb-active":"";var c=i.toString(o.preferredFormat||"rgb"),u=Be?"background-color:"+i.toRgbString():"filter:"+i.toFilter();r.push('<span title="'+c+'" data-color="'+i.toRgbString()+'" class="'+l+'"><span class="sp-thumb-inner" style="'+u+';" /></span>')}else r.push('<span class="sp-thumb-el sp-clear-display" ><span class="sp-clear-palette-only" style="background-color: transparent;" /></span>')}return"<div class='sp-cf "+a+"'>"+r.join("")+"</div>"}function n(e,t){var a,o,r,n,h=function(e,t){e.locale=e.locale||window.navigator.language,e.locale&&(e.locale=e.locale.split("-")[0].toLowerCase()),"en"!=e.locale&&De.spectrum.localization[e.locale]&&(e=De.extend({},De.spectrum.localization[e.locale],e));var a=De.extend({},Ie,e);return a.callbacks={move:Ge(a.move,t),change:Ge(a.change,t),show:Ge(a.show,t),hide:Ge(a.hide,t),beforeShow:Ge(a.beforeShow,t)},a}(t,e),s=h.type,d="flat"==s,i=h.showSelectionPalette,l=h.localStorageKey,c=h.theme,u=h.callbacks,f=(a=Qe,function(){var e=this,t=arguments;r&&clearTimeout(n),!r&&n||(n=setTimeout(function(){n=null,a.apply(e,t)},o))}),p=!(o=10),g=!1,b=0,m=0,v=0,x=0,y=0,T=0,w=0,_=0,k=0,P=0,C=1,S=[],M=[],z={},j=h.selectionPalette.slice(0),A=h.maxSelectionSize,R="sp-dragging",F=!1,H=null,L=e.ownerDocument,O=(L.body,De(e)),Q=!1,E=De($e,L).addClass(c),N=E.find(".sp-picker-container"),D=E.find(".sp-color"),q=E.find(".sp-dragger"),I=E.find(".sp-hue"),V=E.find(".sp-slider"),W=E.find(".sp-alpha-inner"),B=E.find(".sp-alpha"),K=E.find(".sp-alpha-handle"),$=E.find(".sp-input"),X=E.find(".sp-palette"),Y=E.find(".sp-initial"),G=E.find(".sp-cancel"),U=E.find(".sp-clear"),J=E.find(".sp-choose"),Z=E.find(".sp-palette-toggle"),ee=O.is("input"),te=(ee&&"color"===O.attr("type")&&Je(),ee&&"color"==s),ae=te?De(Ke).addClass(c).addClass(h.className).addClass(h.replacerClassName):De([]),oe=te?ae:O,re=ae.find(".sp-preview-inner"),ne=h.color||ee&&O.val(),se=!1,ie=h.preferredFormat,le=!h.showButtons||h.clickoutFiresChange,ce=!ne,ue=h.allowEmpty,fe=null,he=null,de=null,pe=null,ge=O.attr("id");if(ge!==qe&&0<ge.length){var be=De('label[for="'+ge+'"]');be.length&&be.on("click",function(e){return e.preventDefault(),O.spectrum("show"),!1})}function me(){if(h.showPaletteOnly&&(h.showPalette=!0),Z.text(h.showPaletteOnly?h.togglePaletteMoreText:h.togglePaletteLessText),h.palette){S=h.palette.slice(0),M=De.isArray(S[0])?S:[S],z={};for(var e=0;e<M.length;e++)for(var t=0;t<M[e].length;t++){var a=tinycolor(M[e][t]).toRgbString();z[a]=!0}h.showPaletteOnly&&!h.color&&(ne=""===S[0][0]?S[0][0]:Object.keys(z)[0])}E.toggleClass("sp-flat",d),E.toggleClass("sp-input-disabled",!h.showInput),E.toggleClass("sp-alpha-enabled",h.showAlpha),E.toggleClass("sp-clear-enabled",ue),E.toggleClass("sp-buttons-disabled",!h.showButtons),E.toggleClass("sp-palette-buttons-disabled",!h.togglePaletteOnly),E.toggleClass("sp-palette-disabled",!h.showPalette),E.toggleClass("sp-palette-only",h.showPaletteOnly),E.toggleClass("sp-initial-disabled",!h.showInitial),E.addClass(h.className).addClass(h.containerClassName),Qe()}function ve(){if(l){try{var e=window.localStorage,t=e[l].split(",#");1<t.length&&(delete e[l],De.each(t,function(e,t){xe(t)}))}catch(e){}try{j=window.localStorage[l].split(";")}catch(e){}}}function xe(e){if(i){var t=tinycolor(e).toRgbString();if(!z[t]&&-1===De.inArray(t,j))for(j.push(t);j.length>A;)j.shift();if(l)try{window.localStorage[l]=j.join(";")}catch(e){}}}function ye(){var a=Re(),e=De.map(M,function(e,t){return Xe(e,a,"sp-palette-row sp-palette-row-"+t,h)});ve(),j&&e.push(Xe(function(){var e=[];if(h.showPalette)for(var t=0;t<j.length;t++){var a=tinycolor(j[t]).toRgbString();z[a]||e.push(j[t])}return e.reverse().slice(0,h.maxSelectionSize)}(),a,"sp-palette-row sp-palette-row-selection",h)),X.html(e.join(""))}function Te(){if(h.showInitial){var e=se,t=Re();Y.html(Xe([e,t],t,"sp-palette-row-initial",h))}}function we(){(m<=0||b<=0||x<=0)&&Qe(),g=!0,E.addClass(R),H=null,O.trigger("dragstart.spectrum",[Re()])}function _e(){g=!1,E.removeClass(R),O.trigger("dragstop.spectrum",[Re()])}function ke(e){if(F)F=!1;else if(null!==e&&""!==e||!ue){var t=tinycolor(e);t.isValid()?(Ae(t),Fe(),Oe()):$.addClass("sp-validation-error")}else Ae(null),Fe(),Oe()}function Pe(){(p?ze:Ce)()}function Ce(){var e=De.Event("beforeShow.spectrum");p?Qe():(O.trigger(e,[Re()]),!1===u.beforeShow(Re())||e.isDefaultPrevented()||(function(){for(var e=0;e<Ve.length;e++)Ve[e]&&Ve[e].hide()}(),p=!0,De(L).on("keydown.spectrum",Se),De(L).on("click.spectrum",Me),De(window).on("resize.spectrum",f),ae.addClass("sp-active"),E.removeClass("sp-hidden"),Qe(),He(),se=Re(),Te(),u.show(se),O.trigger("show.spectrum",[se])))}function Se(e){27===e.keyCode&&ze()}function Me(e){2!=e.button&&(g||(le?Oe(!0):je(),ze()))}function ze(){p&&!d&&(p=!1,De(L).off("keydown.spectrum",Se),De(L).off("click.spectrum",Me),De(window).off("resize.spectrum",f),ae.removeClass("sp-active"),E.addClass("sp-hidden"),u.hide(Re()),O.trigger("hide.spectrum",[Re()]))}function je(){Ae(se,!0),Oe(!0)}function Ae(e,t){var a,o;tinycolor.equals(e,Re())?He():(e&&e!==qe||!ue?(ce=!1,o=(a=tinycolor(e)).toHsv(),_=o.h%360/360,k=o.s,P=o.v,C=o.a):ce=!0,He(),a&&a.isValid()&&!t&&(ie=h.preferredFormat||a.getFormat()))}function Re(e){return e=e||{},ue&&ce?null:tinycolor.fromRatio({h:_,s:k,v:P,a:Math.round(1e3*C)/1e3},{format:e.format||ie})}function Fe(){He(),u.move(Re()),O.trigger("move.spectrum",[Re()])}function He(){$.removeClass("sp-validation-error"),Le();var e=tinycolor.fromRatio({h:_,s:1,v:1});D.css("background-color",e.toHexString());var t=ie;C<1&&(0!==C||"name"!==t)&&("hex"!==t&&"hex3"!==t&&"hex6"!==t&&"name"!==t||(t="rgb"));var a=Re({format:t}),o="";if(re.removeClass("sp-clear-display"),re.css("background-color","transparent"),!a&&ue)re.addClass("sp-clear-display");else{var r=a.toHexString(),n=a.toRgbString();if(Be||1===a.alpha?re.css("background-color",n):(re.css("background-color","transparent"),re.css("filter",a.toFilter())),h.showAlpha){var s=a.toRgb();s.a=0;var i=tinycolor(s).toRgbString(),l="linear-gradient(left, "+i+", "+r+")";We?W.css("filter",tinycolor(i).toFilter({gradientType:1},r)):(W.css("background","-webkit-"+l),W.css("background","-moz-"+l),W.css("background","-ms-"+l),W.css("background","linear-gradient(to right, "+i+", "+r+")"))}o=a.toString(t)}if(h.showInput&&$.val(o),O.val(o),"text"==h.type||"component"==h.type){var c=a;if(c&&he){var u=c.isLight()||c.getAlpha()<.4?"black":"white";he.css("background-color",c.toRgbString()).css("color",u)}else he.css("background-color",pe).css("color",de)}h.showPalette&&ye(),Te()}function Le(){var e=k,t=P;if(ue&&ce)K.hide(),V.hide(),q.hide();else{K.show(),V.show(),q.show();var a=e*b,o=m-t*m;a=Math.max(-v,Math.min(b-v,a-v)),o=Math.max(-v,Math.min(m-v,o-v)),q.css({top:o+"px",left:a+"px"});var r=C*y;K.css({left:r-T/2+"px"});var n=_*x;V.css({top:n-w+"px"})}}function Oe(e){var t=Re(),a=!tinycolor.equals(t,se);t&&(t.toString(ie),xe(t)),e&&a&&(u.change(t),F=!0,O.trigger("change",[t]))}function Qe(){var e,t,a,o,r,n,s,i,l,c,u,f;p&&(b=D.width(),m=D.height(),v=q.height(),I.width(),x=I.height(),w=V.height(),y=B.width(),T=K.width(),d||(E.css("position","absolute"),h.offset?E.offset(h.offset):E.offset((t=oe,a=(e=E).outerWidth(),o=e.outerHeight(),r=t.outerHeight(),n=e[0].ownerDocument,s=n.documentElement,i=s.clientWidth+De(n).scrollLeft(),l=s.clientHeight+De(n).scrollTop(),c=t.offset(),u=c.left,f=c.top,f+=r,u-=Math.min(u,i<u+a&&a<i?Math.abs(u+a-i):0),{top:f-=Math.min(f,l<f+o&&o<l?Math.abs(+(o+r)):0),bottom:c.bottom,left:u,right:c.right,width:c.width,height:c.height}))),Le(),h.showPalette&&ye(),O.trigger("reflow.spectrum"))}function Ee(){ze(),Q=!0,O.attr("disabled",!0),oe.addClass("sp-disabled")}!function(){if(We&&E.find("*:not(input)").attr("unselectable","on"),me(),fe=De('<span class="sp-original-input-container"></span>'),["margin"].forEach(function(e){fe.css(e,O.css(e))}),"block"==O.css("display")&&fe.css("display","flex"),te)O.after(ae).hide();else if("text"==s)fe.addClass("sp-colorize-container"),O.addClass("spectrum sp-colorize").wrap(fe);else if("component"==s){O.addClass("spectrum").wrap(fe);var e=De(["<div class='sp-colorize-container sp-add-on'>","<div class='sp-colorize'></div> ","</div>"].join(""));e.width(O.outerHeight()+"px").css("border-radius",O.css("border-radius")).css("border",O.css("border")),O.addClass("with-add-on").before(e)}if(he=O.parent().find(".sp-colorize"),de=he.css("color"),pe=he.css("background-color"),ue||U.hide(),d)O.after(E).hide();else{var t="parent"===h.appendTo?O.parent():De(h.appendTo);1!==t.length&&(t=De("body")),t.append(E)}function a(e){return e.data&&e.data.ignore?(Ae(De(e.target).closest(".sp-thumb-el").data("color")),Fe()):(Ae(De(e.target).closest(".sp-thumb-el").data("color")),Fe(),h.hideAfterPaletteSelect?(Oe(!0),ze()):Oe()),!1}ve(),oe.on("click.spectrum touchstart.spectrum",function(e){Q||Pe(),e.stopPropagation(),De(e.target).is("input")||e.preventDefault()}),!O.is(":disabled")&&!0!==h.disabled||Ee(),E.click(Ye),[$,O].forEach(function(t){t.change(function(){ke(t.val())}),t.on("paste",function(){setTimeout(function(){ke(t.val())},1)}),t.keydown(function(e){13==e.keyCode&&(ke(De(t).val()),t==O&&ze())})}),G.text(h.cancelText),G.on("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),je(),ze()}),U.attr("title",h.clearText),U.on("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),ce=!0,Fe(),d&&Oe(!0)}),J.text(h.chooseText),J.on("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),We&&$.is(":focus")&&$.trigger("change"),$.hasClass("sp-validation-error")||(Oe(!0),ze())}),Z.text(h.showPaletteOnly?h.togglePaletteMoreText:h.togglePaletteLessText),Z.on("click.spectrum",function(e){e.stopPropagation(),e.preventDefault(),h.showPaletteOnly=!h.showPaletteOnly,h.showPaletteOnly||d||E.css("left","-="+(N.outerWidth(!0)+5)),me()}),Ue(B,function(e,t,a){C=e/y,ce=!1,a.shiftKey&&(C=Math.round(10*C)/10),Fe()},we,_e),Ue(I,function(e,t){_=parseFloat(t/x),ce=!1,h.showAlpha||(C=1),Fe()},we,_e),Ue(D,function(e,t,a){if(a.shiftKey){if(!H){var o=k*b,r=m-P*m,n=Math.abs(e-o)>Math.abs(t-r);H=n?"x":"y"}}else H=null;var s=!H||"y"===H;H&&"x"!==H||(k=parseFloat(e/b)),s&&(P=parseFloat((m-t)/m)),ce=!1,h.showAlpha||(C=1),Fe()},we,_e),ne?(Ae(ne),He(),ie=tinycolor(ne).format||h.preferredFormat,xe(ne)):(""===ne&&Ae(ne),He()),d&&Ce();var o=We?"mousedown.spectrum":"click.spectrum touchstart.spectrum";X.on(o,".sp-thumb-el",a),Y.on(o,".sp-thumb-el:nth-child(1)",{ignore:!0},a)}();var Ne={show:Ce,hide:ze,toggle:Pe,reflow:Qe,option:function(e,t){return e===qe?De.extend({},h):t===qe?h[e]:(h[e]=t,"preferredFormat"===e&&(ie=h.preferredFormat),void me())},enable:function(){Q=!1,O.attr("disabled",!1),oe.removeClass("sp-disabled")},disable:Ee,offset:function(e){h.offset=e,Qe()},set:function(e){Ae(e),Oe()},get:Re,destroy:function(){O.show().removeClass("spectrum with-add-on sp-colorize"),oe.off("click.spectrum touchstart.spectrum"),E.remove(),ae.remove(),he&&he.css("background-color",pe).css("color",de);var e=O.closest(".sp-original-input-container");0<e.length&&e.after(O).remove(),Ve[Ne.id]=null},container:E};return Ne.id=Ve.push(Ne)-1,Ne}function a(){}function Ye(e){e.stopPropagation()}function Ge(e,t){var a=Array.prototype.slice,o=a.call(arguments,2);return function(){return e.apply(t,o.concat(a.call(arguments)))}}function Ue(s,i,t,e){i=i||function(){},t=t||function(){},e=e||function(){};var l=document,c=!1,u={},f=0,h=0,d="ontouchstart"in window,a={};function p(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.returnValue=!1}function o(e){if(c){if(We&&l.documentMode<9&&!e.button)return g();var t=e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches[0],a=t&&t.pageX||e.pageX,o=t&&t.pageY||e.pageY,r=Math.max(0,Math.min(a-u.left,h)),n=Math.max(0,Math.min(o-u.top,f));d&&p(e),i.apply(s,[r,n,e])}}function g(){c&&(De(l).off(a),De(l.body).removeClass("sp-dragging"),setTimeout(function(){e.apply(s,arguments)},0)),c=!1}a.selectstart=p,a.dragstart=p,a["touchmove mousemove"]=o,a["touchend mouseup"]=g,De(s).on("touchstart mousedown",function(e){(e.which?3==e.which:2==e.button)||c||!1!==t.apply(s,arguments)&&(c=!0,f=De(s).height(),h=De(s).width(),u=De(s).offset(),De(l).on(a),De(l.body).addClass("sp-dragging"),o(e),p(e))})}function Je(){return De.fn.spectrum.inputTypeColorSupport()}var s="spectrum.id";De.fn.spectrum=function(a,e){if("string"!=typeof a)return this.spectrum("destroy").each(function(){var e=De.extend({},De(this).data(),a);De(this).is("input")?e.flat||"flat"==e.type?e.type="flat":"color"==De(this).attr("type")?e.type="color":e.type=e.type||"component":e.type="noInput";var t=n(this,e);De(this).data(s,t.id)});var o=this,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=Ve[De(this).data(s)];if(e){var t=e[a];if(!t)throw new Error("Spectrum: no such method: '"+a+"'");"get"==a?o=e.get():"container"==a?o=e.container:"option"==a?o=e.option.apply(e,r):"destroy"==a?(e.destroy(),De(this).removeData(s)):t.apply(e,r)}}),o},De.fn.spectrum.load=!0,De.fn.spectrum.loadOpts={},De.fn.spectrum.draggable=Ue,De.fn.spectrum.defaults=Ie,De.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var t=De("<input type='color'/>")[0];e._cachedResult="color"===t.type&&""!==t.value}return e._cachedResult},De.spectrum={},De.spectrum.localization={},De.spectrum.palettes={},De.fn.spectrum.processNativeColorInputs=function(){var e=De("input[type=color]");e.length&&!Je()&&e.spectrum({preferredFormat:"hex6"})},function(){var n=/^[\s,#]+/,s=/\s+$/,o=0,c=Math,i=c.round,u=c.min,f=c.max,e=c.random,h=function(e,t){if(t=t||{},(e=e||"")instanceof h)return e;if(!(this instanceof h))return new h(e,t);var a=function(e){var t={r:0,g:0,b:0},a=1,o=!1,r=!1;"string"==typeof e&&(e=function(e){e=e.replace(n,"").replace(s,"").toLowerCase();var t,a=!1;if(C[e])e=C[e],a=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=Q.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=Q.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=Q.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=Q.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=Q.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=Q.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=Q.hex8.exec(e))return{a:function(e){return A(e)/255}(t[1]),r:A(t[2]),g:A(t[3]),b:A(t[4]),format:a?"name":"hex8"};if(t=Q.hex6.exec(e))return{r:A(t[1]),g:A(t[2]),b:A(t[3]),format:a?"name":"hex"};if(t=Q.hex3.exec(e))return{r:A(t[1]+""+t[1]),g:A(t[2]+""+t[2]),b:A(t[3]+""+t[3]),format:a?"name":"hex"};return!1}(e));"object"==typeof e&&(e.hasOwnProperty("r")&&e.hasOwnProperty("g")&&e.hasOwnProperty("b")?(t=function(e,t,a){return{r:255*z(e,255),g:255*z(t,255),b:255*z(a,255)}}(e.r,e.g,e.b),o=!0,r="%"===String(e.r).substr(-1)?"prgb":"rgb"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("v")?(e.s=F(e.s),e.v=F(e.v),t=function(e,t,a){e=6*z(e,360),t=z(t,100),a=z(a,100);var o=c.floor(e),r=e-o,n=a*(1-t),s=a*(1-r*t),i=a*(1-(1-r)*t),l=o%6;return{r:255*[a,s,n,n,i,a][l],g:255*[i,a,a,s,n,n][l],b:255*[n,n,i,a,a,s][l]}}(e.h,e.s,e.v),o=!0,r="hsv"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("l")&&(e.s=F(e.s),e.l=F(e.l),t=function(e,t,a){var o,r,n;function s(e,t,a){return a<0&&(a+=1),1<a&&--a,a<1/6?e+6*(t-e)*a:a<.5?t:a<2/3?e+(t-e)*(2/3-a)*6:e}if(e=z(e,360),t=z(t,100),a=z(a,100),0===t)o=r=n=a;else{var i=a<.5?a*(1+t):a+t-a*t,l=2*a-i;o=s(l,i,e+1/3),r=s(l,i,e),n=s(l,i,e-1/3)}return{r:255*o,g:255*r,b:255*n}}(e.h,e.s,e.l),o=!0,r="hsl"),e.hasOwnProperty("a")&&(a=e.a));return a=M(a),{ok:o,format:e.format||r,r:u(255,f(t.r,0)),g:u(255,f(t.g,0)),b:u(255,f(t.b,0)),a:a}}(e);this._originalInput=e,this._r=a.r,this._g=a.g,this._b=a.b,this._a=a.a,this._roundA=i(1e3*this._a)/1e3,this._format=t.format||a.format,this._gradientType=t.gradientType,this._r<1&&(this._r=i(this._r)),this._g<1&&(this._g=i(this._g)),this._b<1&&(this._b=i(this._b)),this._ok=a.ok,this._tc_id=o++};function r(e,t,a){e=z(e,255),t=z(t,255),a=z(a,255);var o,r,n=f(e,t,a),s=u(e,t,a),i=(n+s)/2;if(n==s)o=r=0;else{var l=n-s;switch(r=.5<i?l/(2-n-s):l/(n+s),n){case e:o=(t-a)/l+(t<a?6:0);break;case t:o=(a-e)/l+2;break;case a:o=(e-t)/l+4}o/=6}return{h:o,s:r,l:i}}function l(e,t,a){e=z(e,255),t=z(t,255),a=z(a,255);var o,r,n=f(e,t,a),s=u(e,t,a),i=n,l=n-s;if(r=0===n?0:l/n,n==s)o=0;else{switch(n){case e:o=(t-a)/l+(t<a?6:0);break;case t:o=(a-e)/l+2;break;case a:o=(e-t)/l+4}o/=6}return{h:o,s:r,v:i}}function t(e,t,a,o){var r=[R(i(e).toString(16)),R(i(t).toString(16)),R(i(a).toString(16))];return o&&r[0].charAt(0)==r[0].charAt(1)&&r[1].charAt(0)==r[1].charAt(1)&&r[2].charAt(0)==r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function d(e,t,a,o){var r;return[R((r=o,Math.round(255*parseFloat(r)).toString(16))),R(i(e).toString(16)),R(i(t).toString(16)),R(i(a).toString(16))].join("")}function a(e,t){t=0===t?0:t||10;var a=h(e).toHsl();return a.s-=t/100,a.s=j(a.s),h(a)}function p(e,t){t=0===t?0:t||10;var a=h(e).toHsl();return a.s+=t/100,a.s=j(a.s),h(a)}function g(e){return h(e).desaturate(100)}function b(e,t){t=0===t?0:t||10;var a=h(e).toHsl();return a.l+=t/100,a.l=j(a.l),h(a)}function m(e,t){t=0===t?0:t||10;var a=h(e).toRgb();return a.r=f(0,u(255,a.r-i(-t/100*255))),a.g=f(0,u(255,a.g-i(-t/100*255))),a.b=f(0,u(255,a.b-i(-t/100*255))),h(a)}function v(e,t){t=0===t?0:t||10;var a=h(e).toHsl();return a.l-=t/100,a.l=j(a.l),h(a)}function x(e,t){var a=h(e).toHsl(),o=(i(a.h)+t)%360;return a.h=o<0?360+o:o,h(a)}function y(e){var t=h(e).toHsl();return t.h=(t.h+180)%360,h(t)}function T(e){var t=h(e).toHsl(),a=t.h;return[h(e),h({h:(a+120)%360,s:t.s,l:t.l}),h({h:(a+240)%360,s:t.s,l:t.l})]}function w(e){var t=h(e).toHsl(),a=t.h;return[h(e),h({h:(a+90)%360,s:t.s,l:t.l}),h({h:(a+180)%360,s:t.s,l:t.l}),h({h:(a+270)%360,s:t.s,l:t.l})]}function _(e){var t=h(e).toHsl(),a=t.h;return[h(e),h({h:(a+72)%360,s:t.s,l:t.l}),h({h:(a+216)%360,s:t.s,l:t.l})]}function k(e,t,a){t=t||6,a=a||30;var o=h(e).toHsl(),r=360/a,n=[h(e)];for(o.h=(o.h-(r*t>>1)+720)%360;--t;)o.h=(o.h+r)%360,n.push(h(o));return n}function P(e,t){t=t||6;for(var a=h(e).toHsv(),o=a.h,r=a.s,n=a.v,s=[],i=1/t;t--;)s.push(h({h:o,s:r,v:n})),n=(n+i)%1;return s}h.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},setAlpha:function(e){return this._a=M(e),this._roundA=i(1e3*this._a)/1e3,this},toHsv:function(){var e=l(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=l(this._r,this._g,this._b),t=i(360*e.h),a=i(100*e.s),o=i(100*e.v);return 1==this._a?"hsv("+t+", "+a+"%, "+o+"%)":"hsva("+t+", "+a+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var e=r(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=r(this._r,this._g,this._b),t=i(360*e.h),a=i(100*e.s),o=i(100*e.l);return 1==this._a?"hsl("+t+", "+a+"%, "+o+"%)":"hsla("+t+", "+a+"%, "+o+"%, "+this._roundA+")"},toHex:function(e){return t(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(){return d(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:i(this._r),g:i(this._g),b:i(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+i(this._r)+", "+i(this._g)+", "+i(this._b)+")":"rgba("+i(this._r)+", "+i(this._g)+", "+i(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:i(100*z(this._r,255))+"%",g:i(100*z(this._g,255))+"%",b:i(100*z(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+i(100*z(this._r,255))+"%, "+i(100*z(this._g,255))+"%, "+i(100*z(this._b,255))+"%)":"rgba("+i(100*z(this._r,255))+"%, "+i(100*z(this._g,255))+"%, "+i(100*z(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(S[t(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+d(this._r,this._g,this._b,this._a),a=t,o=this._gradientType?"GradientType = 1, ":"";e&&(a=h(e).toHex8String());return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+t+",endColorstr="+a+")"},toString:function(e){var t=!!e;e=e||this._format;var a=!1,o=this._a<1&&0<=this._a;return t||!o||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"name"!==e?("rgb"===e&&(a=this.toRgbString()),"prgb"===e&&(a=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(a=this.toHexString()),"hex3"===e&&(a=this.toHexString(!0)),"hex8"===e&&(a=this.toHex8String()),"name"===e&&(a=this.toName()),"hsl"===e&&(a=this.toHslString()),"hsv"===e&&(a=this.toHsvString()),a||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(e,t){var a=e.apply(null,[this].concat([].slice.call(t)));return this._r=a._r,this._g=a._g,this._b=a._b,this.setAlpha(a._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(m,arguments)},darken:function(){return this._applyModification(v,arguments)},desaturate:function(){return this._applyModification(a,arguments)},saturate:function(){return this._applyModification(p,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(x,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(k,arguments)},complement:function(){return this._applyCombination(y,arguments)},monochromatic:function(){return this._applyCombination(P,arguments)},splitcomplement:function(){return this._applyCombination(_,arguments)},triad:function(){return this._applyCombination(T,arguments)},tetrad:function(){return this._applyCombination(w,arguments)}},h.fromRatio=function(e,t){if("object"==typeof e){var a={};for(var o in e)e.hasOwnProperty(o)&&(a[o]="a"===o?e[o]:F(e[o]));e=a}return h(e,t)},h.equals=function(e,t){return!(!e||!t)&&h(e).toRgbString()==h(t).toRgbString()},h.random=function(){return h.fromRatio({r:e(),g:e(),b:e()})},h.mix=function(e,t,a){a=0===a?0:a||50;var o,r=h(e).toRgb(),n=h(t).toRgb(),s=a/100,i=2*s-1,l=n.a-r.a,c=1-(o=((o=i*l==-1?i:(i+l)/(1+i*l))+1)/2),u={r:n.r*o+r.r*c,g:n.g*o+r.g*c,b:n.b*o+r.b*c,a:n.a*s+r.a*(1-s)};return h(u)},h.readability=function(e,t){var a=h(e),o=h(t),r=a.toRgb(),n=o.toRgb(),s=a.getBrightness(),i=o.getBrightness(),l=Math.max(r.r,n.r)-Math.min(r.r,n.r)+Math.max(r.g,n.g)-Math.min(r.g,n.g)+Math.max(r.b,n.b)-Math.min(r.b,n.b);return{brightness:Math.abs(s-i),color:l}},h.isReadable=function(e,t){var a=h.readability(e,t);return 125<a.brightness&&500<a.color},h.mostReadable=function(e,t){for(var a=null,o=0,r=!1,n=0;n<t.length;n++){var s=h.readability(e,t[n]),i=125<s.brightness&&500<s.color,l=s.brightness/125*3+s.color/500;(i&&!r||i&&r&&o<l||!i&&!r&&o<l)&&(r=i,o=l,a=h(t[n]))}return a};var C=h.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},S=h.hexNames=function(e){var t={};for(var a in e)e.hasOwnProperty(a)&&(t[e[a]]=a);return t}(C);function M(e){return e=parseFloat(e),(isNaN(e)||e<0||1<e)&&(e=1),e}function z(e,t){var a;"string"==typeof(a=e)&&-1!=a.indexOf(".")&&1===parseFloat(a)&&(e="100%");var o,r="string"==typeof(o=e)&&-1!=o.indexOf("%");return e=u(t,f(0,parseFloat(e))),r&&(e=parseInt(e*t,10)/100),c.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function j(e){return u(1,f(0,e))}function A(e){return parseInt(e,16)}function R(e){return 1==e.length?"0"+e:""+e}function F(e){return e<=1&&(e=100*e+"%"),e}var H,L,O,Q=(L="[\\s|\\(]+("+(H="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+H+")[,|\\s]+("+H+")\\s*\\)?",O="[\\s|\\(]+("+H+")[,|\\s]+("+H+")[,|\\s]+("+H+")[,|\\s]+("+H+")\\s*\\)?",{rgb:new RegExp("rgb"+L),rgba:new RegExp("rgba"+O),hsl:new RegExp("hsl"+L),hsla:new RegExp("hsla"+O),hsv:new RegExp("hsv"+L),hsva:new RegExp("hsva"+O),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=h}(),De(function(){De.fn.spectrum.load&&De.fn.spectrum.processNativeColorInputs()})}),jQuery.spectrum.localization.ar={cancelText:"إلغاء",chooseText:"إختار",clearText:"إرجاع الألوان على ما كانت",noColorSelectedText:"لم تختار أي لون",togglePaletteMoreText:"أكثر",togglePaletteLessText:"أقل"},jQuery.spectrum.localization.ca={cancelText:"Cancel·lar",chooseText:"Escollir",clearText:"Esborrar color seleccionat",noColorSelectedText:"Cap color seleccionat",togglePaletteMoreText:"Més",togglePaletteLessText:"Menys"},jQuery.spectrum.localization.cs={cancelText:"zrušit",chooseText:"vybrat",clearText:"Resetovat výměr barev",noColorSelectedText:"Žádná barva nebyla vybrána",togglePaletteMoreText:"více",togglePaletteLessText:"méně"},jQuery.spectrum.localization.de={cancelText:"Abbrechen",chooseText:"Wählen",clearText:"Farbauswahl zurücksetzen",noColorSelectedText:"Keine Farbe ausgewählt",togglePaletteMoreText:"Mehr",togglePaletteLessText:"Weniger"},jQuery.spectrum.localization.dk={cancelText:"annuller",chooseText:"Vælg"},jQuery.spectrum.localization.es={cancelText:"Cancelar",chooseText:"Elegir",clearText:"Borrar color seleccionado",noColorSelectedText:"Ningún color seleccionado",togglePaletteMoreText:"Más",togglePaletteLessText:"Menos"},jQuery.spectrum.localization.et={cancelText:"Katkesta",chooseText:"Vali",clearText:"Tühista värvivalik",noColorSelectedText:"Ühtki värvi pole valitud",togglePaletteMoreText:"Rohkem",togglePaletteLessText:"Vähem"},jQuery.spectrum.localization.fa={cancelText:"لغو",chooseText:"انتخاب",clearText:"تنظیم مجدد رنگ",noColorSelectedText:"هیچ رنگی انتخاب نشده است!",togglePaletteMoreText:"بیشتر",togglePaletteLessText:"کمتر"},jQuery.spectrum.localization.fi={cancelText:"Kumoa",chooseText:"Valitse"},jQuery.spectrum.localization.fr={cancelText:"Annuler",chooseText:"Valider",clearText:"Effacer couleur sélectionnée",noColorSelectedText:"Aucune couleur sélectionnée",togglePaletteMoreText:"Plus",togglePaletteLessText:"Moins"},jQuery.spectrum.localization.gr={cancelText:"Ακύρωση",chooseText:"Επιλογή",clearText:"Καθαρισμός επιλεγμένου χρώματος",noColorSelectedText:"Δεν έχει επιλεχθεί κάποιο χρώμα",togglePaletteMoreText:"Περισσότερα",togglePaletteLessText:"Λιγότερα"},jQuery.spectrum.localization.he={cancelText:"בטל בחירה",chooseText:"בחר צבע",clearText:"אפס בחירה",noColorSelectedText:"לא נבחר צבע",togglePaletteMoreText:"עוד צבעים",togglePaletteLessText:"פחות צבעים"},jQuery.spectrum.localization.hr={cancelText:"Odustani",chooseText:"Odaberi",clearText:"Poništi odabir",noColorSelectedText:"Niti jedna boja nije odabrana",togglePaletteMoreText:"Više",togglePaletteLessText:"Manje"},jQuery.spectrum.localization.hu={cancelText:"Mégsem",chooseText:"Mentés",clearText:"A színválasztás visszaállítása",noColorSelectedText:"Nincs szín kijelölve",togglePaletteMoreText:"Több",togglePaletteLessText:"Kevesebb"},jQuery.spectrum.localization.id={cancelText:"Batal",chooseText:"Pilih",clearText:"Hapus Pilihan Warna",noColorSelectedText:"Warna Tidak Dipilih",togglePaletteMoreText:"tambah",togglePaletteLessText:"kurangi"},jQuery.spectrum.localization.it={cancelText:"annulla",chooseText:"scegli",clearText:"Annulla selezione colore",noColorSelectedText:"Nessun colore selezionato"},jQuery.spectrum.localization.ja={cancelText:"中止",chooseText:"選択"},jQuery.spectrum.localization.ko={cancelText:"취소",chooseText:"선택",clearText:"선택 초기화",noColorSelectedText:"선택된 색상 없음",togglePaletteMoreText:"더보기",togglePaletteLessText:"줄이기"},jQuery.spectrum.localization.lt={cancelText:"Atšaukti",chooseText:"Pasirinkti",clearText:"Išvalyti pasirinkimą",noColorSelectedText:"Spalva nepasirinkta",togglePaletteMoreText:"Daugiau",togglePaletteLessText:"Mažiau"},jQuery.spectrum.localization["nb-no"]={cancelText:"Avbryte",chooseText:"Velg",clearText:"Tilbakestill",noColorSelectedText:"Farge er ikke valgt",togglePaletteMoreText:"Mer",togglePaletteLessText:"Mindre"},jQuery.spectrum.localization["nl-nl"]={cancelText:"Annuleer",chooseText:"Kies",clearText:"Wis kleur selectie",togglePaletteMoreText:"Meer",togglePaletteLessText:"Minder"},jQuery.spectrum.localization.pl={cancelText:"Anuluj",chooseText:"Wybierz",clearText:"Usuń wybór koloru",noColorSelectedText:"Nie wybrano koloru",togglePaletteMoreText:"Więcej",togglePaletteLessText:"Mniej"},jQuery.spectrum.localization["pt-br"]={cancelText:"Cancelar",chooseText:"Escolher",clearText:"Limpar cor selecionada",noColorSelectedText:"Nenhuma cor selecionada",togglePaletteMoreText:"Mais",togglePaletteLessText:"Menos"},jQuery.spectrum.localization["pt-pt"]={cancelText:"Cancelar",chooseText:"Escolher",clearText:"Limpar cor seleccionada",noColorSelectedText:"Nenhuma cor seleccionada",togglePaletteMoreText:"Mais",togglePaletteLessText:"Menos"},jQuery.spectrum.localization.ru={cancelText:"Отмена",chooseText:"Выбрать",clearText:"Сбросить",noColorSelectedText:"Цвет не выбран",togglePaletteMoreText:"Ещё",togglePaletteLessText:"Скрыть"},jQuery.spectrum.localization.sv={cancelText:"Avbryt",chooseText:"Välj"},jQuery.spectrum.localization.tr={cancelText:"iptal",chooseText:"tamam"},jQuery.spectrum.localization["zh-cn"]={cancelText:"取消",chooseText:"选择",clearText:"清除",togglePaletteMoreText:"更多选项",togglePaletteLessText:"隐藏",noColorSelectedText:"尚未选择任何颜色"},jQuery.spectrum.localization["zh-tw"]={cancelText:"取消",chooseText:"選擇",clearText:"清除",togglePaletteMoreText:"更多選項",togglePaletteLessText:"隱藏",noColorSelectedText:"尚未選擇任何顏色"};
|