Contact Form by WPForms – Drag & Drop Form Builder for WordPress - Version 1.4.5

Version Description

  • Added: Image choices feature with Checkbox and Multiple Choice fields; Images can now be uploaded and displayed with your choices!
  • Added: Custom input masks for Single Line Text fields (Advanced Options).
  • Added: No-Conflict Mode for Google reCAPTCHA (Settings > reCAPTCHA). Removes other reCAPTCHA occurrences, to prevent conflicts.
  • Added: SSL Connection Test (Tools > System Info). Quicky verify that your web host correct supports SSL connections.
  • Added: {user_full_name} Smart Tag, displays users first and last name.
  • Added: Discalimer / Terms of Service Display formatting option for Checkbox fields (Advanced Options).
  • Added: Basic CSS styling for disabled fields.
  • Added: Uninstall routine, available from Settings > Misc.
  • Added: Form builder performance improvements. Editing a form with hundreds of fields is now 500%+ faster!
  • Changed: New Settings tab: Misc, moved Hide Annoucements option to new tab.
  • Changed: {user_display} Smart Tag diplays user's display name (in most cases, this is the user's name).
  • Changed: All <form> attributes can now be changed via wpforms_frontend_form_atts filter.
  • Fixed: Form builder tab icon alignment conflicts with third party plugin CSS.
  • Fixed: Smart Tag dropdown display issues in the form builder.
  • Fixed: Form builder drag and drop area disappearing if all fields are removed from a form.
Download this release

Release Info

Developer jaredatch
Plugin Icon 128x128 Contact Form by WPForms – Drag & Drop Form Builder for WordPress
Version 1.4.5
Comparing to
See all releases

Code changes from version 1.4.4.1 to 1.4.5

Files changed (54) hide show
  1. assets/css/admin-builder-fields.css +35 -1
  2. assets/css/admin-builder-settings.css +0 -2
  3. assets/css/admin-builder.css +1 -51
  4. assets/css/admin.css +3525 -1
  5. assets/css/admin.min.css +1 -0
  6. assets/css/builder.css +577 -0
  7. assets/css/builder.min.css +1 -0
  8. assets/css/wpforms-base.css +131 -1
  9. assets/css/wpforms-full.css +148 -1
  10. assets/images/placeholder-200x125.png +0 -0
  11. assets/js/admin-builder-conditional-logic-core.js +165 -143
  12. assets/js/admin-builder-providers.js +40 -0
  13. assets/js/admin-builder.js +339 -162
  14. assets/js/admin-utils.js +178 -63
  15. assets/js/admin.js +1603 -0
  16. assets/js/admin.min.js +1 -1
  17. assets/js/jquery.inputmask.bundle.min.js +5 -6
  18. assets/js/wpforms.js +13 -0
  19. changelog.txt +17 -0
  20. includes/admin/admin.php +2 -1
  21. includes/admin/ajax-actions.php +19 -5
  22. includes/admin/builder/class-builder.php +17 -11
  23. includes/admin/builder/panels/class-fields.php +52 -1
  24. includes/admin/builder/panels/class-settings.php +0 -16
  25. includes/admin/class-settings.php +37 -10
  26. includes/admin/class-tools.php +6 -0
  27. includes/class-conditional-logic-core.php +1 -1
  28. includes/class-form.php +3 -1
  29. includes/class-frontend.php +122 -70
  30. includes/class-process.php +43 -20
  31. includes/class-smart-tags.php +12 -1
  32. includes/fields/class-base.php +409 -82
  33. includes/fields/class-checkbox.php +318 -215
  34. includes/fields/class-radio.php +237 -192
  35. includes/fields/class-text.php +86 -20
  36. includes/functions.php +144 -7
  37. languages/wpforms.pot +898 -735
  38. lite/assets/images/addon-icon-captcha.png +0 -0
  39. lite/assets/images/addon-icon-conditional-logic.png +0 -0
  40. lite/assets/images/addon-icon-constant-contact.png +0 -0
  41. lite/assets/images/addon-icon-form-abandonment.png +0 -0
  42. lite/assets/images/addon-icon-form-templates-pack.png +0 -0
  43. lite/assets/images/addon-icon-geolocation.png +0 -0
  44. lite/assets/images/addon-icon-offline-forms.png +0 -0
  45. lite/assets/images/addon-icon-paypal.png +0 -0
  46. lite/assets/images/addon-icon-post-submissions.png +0 -0
  47. lite/assets/images/addon-icon-signatures.png +0 -0
  48. lite/assets/images/addon-icon-stripe.png +0 -0
  49. lite/assets/images/addon-icon-user-registration.png +0 -0
  50. lite/assets/images/addon-icons-surveys-polls.png +0 -0
  51. lite/wpforms-lite.php +29 -13
  52. readme.txt +18 -0
  53. uninstall.php +88 -0
  54. wpforms.php +2 -2
assets/css/admin-builder-fields.css CHANGED
@@ -373,7 +373,7 @@
373
  #wpforms-panel-fields .wpforms-field-option-row-questions li {
374
  border-bottom:1px solid #ddd;
375
  overflow: hidden;
376
- padding: 5px 0;
377
  margin: 0
378
  }
379
 
@@ -518,6 +518,19 @@
518
  display: none;
519
  }
520
 
 
 
 
 
 
 
 
 
 
 
 
 
 
521
 
522
  /* Preview (right column)
523
  -------------------------------------------------------------- */
@@ -785,6 +798,22 @@
785
  clear:both;
786
  }
787
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
788
  #wpforms-panel-fields .wpforms-field .wpforms-sub-label {
789
  font-size: 12px;
790
  display: block;
@@ -1274,6 +1303,11 @@
1274
  padding-right: 26px !important;
1275
  }
1276
 
 
 
 
 
 
1277
  /* Captchas and submit */
1278
  #wpforms-panel-fields .wpforms-field-recaptcha {
1279
  padding: 10px;
373
  #wpforms-panel-fields .wpforms-field-option-row-questions li {
374
  border-bottom:1px solid #ddd;
375
  overflow: hidden;
376
+ padding: 8px 0;
377
  margin: 0
378
  }
379
 
518
  display: none;
519
  }
520
 
521
+ /* After field description */
522
+ #wpforms-panel-fields .after-label-description {
523
+ font-size: 11px;
524
+ color: #999;
525
+ text-decoration: none;
526
+ float: right;
527
+ }
528
+
529
+ #wpforms-panel-fields .after-label-description:hover {
530
+ color: #666;
531
+ text-decoration: underline;
532
+ }
533
+
534
 
535
  /* Preview (right column)
536
  -------------------------------------------------------------- */
798
  clear:both;
799
  }
800
 
801
+ #wpforms-panel-fields .wpforms-field .description.disclaimer {
802
+ background-color: #fff;
803
+ border: 1px solid #ddd;
804
+ padding: 15px 15px 0;
805
+ margin-top: 15px;
806
+ height: 125px;
807
+ overflow: scroll;
808
+ font-size: 12px
809
+ }
810
+
811
+ #wpforms-panel-fields .wpforms-field .description.disclaimer p {
812
+ margin: 0 0 15px 0;
813
+ font-size: 12px;
814
+ line-height: 18px;
815
+ }
816
+
817
  #wpforms-panel-fields .wpforms-field .wpforms-sub-label {
818
  font-size: 12px;
819
  display: block;
1303
  padding-right: 26px !important;
1304
  }
1305
 
1306
+ #wpforms-panel-fields .wpforms-list-inline ul li {
1307
+ display: inline-block;
1308
+ margin-right: 20px;
1309
+ }
1310
+
1311
  /* Captchas and submit */
1312
  #wpforms-panel-fields .wpforms-field-recaptcha {
1313
  padding: 10px;
assets/css/admin-builder-settings.css DELETED
@@ -1,2 +0,0 @@
1
- body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification{border:1px solid #d3d3d3;margin:0 0 20px 0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field{padding:0 20px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header{background-color:#f1f1f1;padding:10px 20px;font-size:16px;margin:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder{display:block;margin-right:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit{display:none;margin-top:-6px;margin-bottom:-6px;width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit.active{display:inline-block}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit input{width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions{display:inline-block;float:right;text-align:right;width:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button{-webkit-appearance:none;background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:16px;line-height:1}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button.wpforms-notification-delete{color:#d22222;padding-right:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-content{margin-top:20px}
2
-
 
 
assets/css/admin-builder.css CHANGED
@@ -50,57 +50,6 @@ body {
50
  color: #666;
51
  }
52
 
53
- #wpforms-builder .wpforms-alert {
54
- padding: 16px;
55
- margin-bottom: 18px;
56
- border: 1px solid transparent;
57
- }
58
-
59
- #wpforms-builder .wpforms-alert h4 {
60
- margin-top: 0;
61
- color: inherit;
62
- }
63
-
64
- #wpforms-builder .wpforms-alert p{
65
- margin: 0 0 15px 0;
66
- }
67
-
68
- #wpforms-builder .wpforms-alert p:last-of-type {
69
- margin: 0;
70
- }
71
-
72
- #wpforms-builder .wpforms-alert-nomargin {
73
- margin: 0;
74
- }
75
-
76
- #wpforms-builder .wpforms-alert-small {
77
- font-size: 12px;
78
- }
79
-
80
- #wpforms-builder .wpforms-alert-success {
81
- background-color: #dff0d8;
82
- border-color: #d6e9c6;
83
- color: #3c763d;
84
- }
85
-
86
- #wpforms-builder .wpforms-alert-info {
87
- background-color: #d9edf7;
88
- border-color: #bce8f1;
89
- color: #31708f;
90
- }
91
-
92
- #wpforms-builder .wpforms-alert-warning {
93
- background-color: #fcf8e3;
94
- border-color: #faebcc;
95
- color: #8a6d3b;
96
- }
97
-
98
- #wpforms-builder .wpforms-alert-danger {
99
- background-color: #f2dede;
100
- border-color: #ebccd1;
101
- color: #a94442;
102
- }
103
-
104
  #wpforms-builder input.wpforms-error{
105
  border: 1px solid #ebccd1 !important;
106
  }
@@ -349,6 +298,7 @@ body {
349
  display: block;
350
  font-size: 28px;
351
  margin: 0 auto 5px auto;
 
352
  }
353
 
354
  #wpforms-builder .wpforms-panels-toggle span {
50
  color: #666;
51
  }
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  #wpforms-builder input.wpforms-error{
54
  border: 1px solid #ebccd1 !important;
55
  }
298
  display: block;
299
  font-size: 28px;
300
  margin: 0 auto 5px auto;
301
+ text-align: center !important;
302
  }
303
 
304
  #wpforms-builder .wpforms-panels-toggle span {
assets/css/admin.css CHANGED
@@ -1,2 +1,3526 @@
1
- .choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #ddd !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #ddd;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-flag{width:16px;height:16px;background:url(../../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:90px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{height:28px;margin:0 2px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{height:28px;background-color:#fff;vertical-align:middle;max-width:210px}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding-left:20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .captcha-addon-notice{background-color:#fff;border:1px solid #e27730;border-radius:3px;padding:30px;max-width:1000px;margin:20px 0 0 0}.wpforms-admin-settings .captcha-addon-notice img{float:left;max-width:90px}.wpforms-admin-settings .captcha-addon-notice h5{margin:0 0 10px 120px;font-size:18px}.wpforms-admin-settings .captcha-addon-notice p{margin:0 0 0 120px;font-size:14px;line-height:1.3}.wpforms-admin-settings .info-area{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo img{border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}.wpforms-admin-settings #wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}
 
 
 
 
 
 
 
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*===============================
2
+ = Choices =
3
+ ===============================*/
4
+ .choices {
5
+ position: relative;
6
+ margin-bottom: 24px;
7
+ font-size: 16px;
8
+ }
9
 
10
+ .choices:focus {
11
+ outline: none;
12
+ }
13
+
14
+ .choices:last-child {
15
+ margin-bottom: 0;
16
+ }
17
+
18
+ .choices.is-disabled .choices__inner, .choices.is-disabled .choices__input {
19
+ background-color: #EAEAEA;
20
+ cursor: not-allowed;
21
+ user-select: none;
22
+ }
23
+
24
+ .choices.is-disabled .choices__item {
25
+ cursor: not-allowed;
26
+ }
27
+
28
+ .choices[data-type*="select-one"] {
29
+ cursor: pointer;
30
+ }
31
+
32
+ .choices[data-type*="select-one"] .choices__inner {
33
+ padding-bottom: 3.0px;
34
+ }
35
+
36
+ .choices[data-type*="select-one"] .choices__input {
37
+ display: block;
38
+ width: 100% !important;
39
+ padding: 10px !important;
40
+ border-bottom: 1px solid #DDDDDD !important;
41
+ background-color: #FFFFFF;
42
+ margin: 0 !important;
43
+ }
44
+
45
+ .choices[data-type*="select-one"] .choices__button {
46
+ background-image: url("../images/cross-inverse.svg");
47
+ padding: 0;
48
+ background-size: 8px;
49
+ height: 100%;
50
+ position: absolute;
51
+ top: 50%;
52
+ right: 0;
53
+ margin-top: -10px;
54
+ margin-right: 25px;
55
+ height: 20px;
56
+ width: 20px;
57
+ border-radius: 10em;
58
+ opacity: .5;
59
+ }
60
+
61
+ .choices[data-type*="select-one"] .choices__button:hover, .choices[data-type*="select-one"] .choices__button:focus {
62
+ opacity: 1;
63
+ }
64
+
65
+ .choices[data-type*="select-one"] .choices__button:focus {
66
+ box-shadow: 0px 0px 0px 2px #0e6cad;
67
+ }
68
+
69
+ .choices[data-type*="select-one"]:after {
70
+ content: "";
71
+ height: 0;
72
+ width: 0;
73
+ border-style: solid;
74
+ border-color: #333333 transparent transparent transparent;
75
+ border-width: 5px;
76
+ position: absolute;
77
+ right: 11.5px;
78
+ top: 50%;
79
+ margin-top: -2.5px;
80
+ pointer-events: none;
81
+ }
82
+
83
+ .choices[data-type*="select-one"].is-open:after {
84
+ border-color: transparent transparent #333333 transparent;
85
+ margin-top: -7.5px;
86
+ }
87
+
88
+ .choices[data-type*="select-one"][dir="rtl"]:after {
89
+ left: 11.5px;
90
+ right: auto;
91
+ }
92
+
93
+ .choices[data-type*="select-one"][dir="rtl"] .choices__button {
94
+ right: auto;
95
+ left: 0;
96
+ margin-left: 25px;
97
+ margin-right: 0;
98
+ }
99
+
100
+ .choices[data-type*="select-multiple"]:after {
101
+ content: "";
102
+ height: 0;
103
+ width: 0;
104
+ border-style: solid;
105
+ border-color: #333333 transparent transparent transparent;
106
+ border-width: 5px;
107
+ position: absolute;
108
+ right: 11.5px;
109
+ top: 18px;
110
+ margin-top: -2.5px;
111
+ pointer-events: none;
112
+ }
113
+
114
+ .choices[data-type*="select-multiple"].is-open:after {
115
+ border-color: transparent transparent #333333 transparent;
116
+ margin-top: -7.5px;
117
+ }
118
+
119
+ .choices[data-type*="select-multiple"] .choices__inner, .choices[data-type*="text"] .choices__inner {
120
+ cursor: text;
121
+ }
122
+
123
+ .choices[data-type*="select-multiple"] .choices__button, .choices[data-type*="text"] .choices__button {
124
+ position: relative;
125
+ display: inline-block;
126
+ margin-top: 0;
127
+ margin-right: -4px;
128
+ margin-bottom: 0;
129
+ margin-left: 8px;
130
+ padding-left: 16px;
131
+ border-left: 1px solid #0a4f7e;
132
+ background-image: url("../images/cross.svg");
133
+ background-size: 8px;
134
+ width: 8px;
135
+ line-height: 1;
136
+ opacity: .75;
137
+ }
138
+
139
+ .choices[data-type*="select-multiple"] .choices__button:hover, .choices[data-type*="select-multiple"] .choices__button:focus, .choices[data-type*="text"] .choices__button:hover, .choices[data-type*="text"] .choices__button:focus {
140
+ opacity: 1;
141
+ }
142
+
143
+ .choices__inner {
144
+ display: inline-block;
145
+ vertical-align: top;
146
+ width: 100%;
147
+ background-color: #fff;
148
+ padding: 4px 7.5px 1px;
149
+ border: 1px solid #DDDDDD;
150
+ border-radius: 3px;
151
+ font-size: 14px;
152
+ min-height: 35px;
153
+ overflow: hidden;
154
+ }
155
+
156
+ .is-focused .choices__inner, .is-open .choices__inner {
157
+ border-color: #b7b7b7;
158
+ }
159
+
160
+ .is-open .choices__inner {
161
+ border-radius: 3px 3px 0 0;
162
+ }
163
+
164
+ .is-flipped.is-open .choices__inner {
165
+ border-radius: 0 0 3px 3px;
166
+ }
167
+
168
+ .choices__list {
169
+ margin: 0;
170
+ padding-left: 0;
171
+ list-style: none;
172
+ }
173
+
174
+ .choices__list--single {
175
+ display: inline-block;
176
+ padding: 4px 16px 4px 4px;
177
+ width: 100%;
178
+ }
179
+
180
+ [dir="rtl"] .choices__list--single {
181
+ padding-right: 4px;
182
+ padding-left: 16px;
183
+ }
184
+
185
+ .choices__list--single .choices__item {
186
+ width: 100%;
187
+ }
188
+
189
+ .choices__list--multiple {
190
+ display: inline;
191
+ }
192
+
193
+ .choices__list--multiple .choices__item {
194
+ display: inline-block;
195
+ vertical-align: middle;
196
+ border-radius: 3px;
197
+ padding: 3px 10px;
198
+ font-size: 12px;
199
+ font-weight: 500;
200
+ margin-right: 4px;
201
+ margin-top: 0px;
202
+ margin-bottom: 3px;
203
+ background-color: #0e6cad;
204
+ border: 1px solid #0c5d95;
205
+ color: #FFFFFF;
206
+ word-break: break-all;
207
+ }
208
+
209
+ .choices__list--multiple .choices__item[data-deletable] {
210
+ padding-right: 5px;
211
+ }
212
+
213
+ [dir="rtl"] .choices__list--multiple .choices__item {
214
+ margin-right: 0;
215
+ margin-left: 3.75px;
216
+ }
217
+
218
+ .choices__list--multiple .choices__item.is-highlighted {
219
+ background-color: #0c5d95;
220
+ border: 1px solid #0a4f7e;
221
+ }
222
+
223
+ .is-disabled .choices__list--multiple .choices__item {
224
+ background-color: #aaaaaa;
225
+ border: 1px solid #919191;
226
+ }
227
+
228
+ .choices__list--dropdown {
229
+ display: none;
230
+ z-index: 1;
231
+ position: absolute;
232
+ width: 100%;
233
+ background-color: #FFFFFF;
234
+ border: 1px solid #DDDDDD;
235
+ top: 100%;
236
+ margin-top: -1px;
237
+ border-bottom-left-radius: 3px;
238
+ border-bottom-right-radius: 3px;
239
+ overflow: hidden;
240
+ word-break: break-all;
241
+ }
242
+
243
+ .choices__list--dropdown.is-active {
244
+ display: block;
245
+ }
246
+
247
+ .is-open .choices__list--dropdown {
248
+ border-color: #b7b7b7;
249
+ }
250
+
251
+ .is-flipped .choices__list--dropdown {
252
+ top: auto;
253
+ bottom: 100%;
254
+ margin-top: 0;
255
+ margin-bottom: -1px;
256
+ border-radius: .25rem .25rem 0 0;
257
+ }
258
+
259
+ .choices__list--dropdown .choices__list {
260
+ position: relative;
261
+ max-height: 300px;
262
+ overflow: auto;
263
+ -webkit-overflow-scrolling: touch;
264
+ will-change: scroll-position;
265
+ }
266
+
267
+ .choices__list--dropdown .choices__item {
268
+ position: relative;
269
+ padding: 10px;
270
+ font-size: 14px;
271
+ }
272
+
273
+ [dir="rtl"] .choices__list--dropdown .choices__item {
274
+ text-align: right;
275
+ }
276
+
277
+ @media (min-width: 640px) {
278
+ .choices__list--dropdown .choices__item--selectable {
279
+ padding-right: 100px;
280
+ }
281
+ .choices__list--dropdown .choices__item--selectable:after {
282
+ content: attr(data-select-text);
283
+ font-size: 12px;
284
+ opacity: 0;
285
+ position: absolute;
286
+ right: 10px;
287
+ top: 50%;
288
+ transform: translateY(-50%);
289
+ }
290
+ [dir="rtl"] .choices__list--dropdown .choices__item--selectable {
291
+ text-align: right;
292
+ padding-left: 100px;
293
+ padding-right: 10px;
294
+ }
295
+ [dir="rtl"] .choices__list--dropdown .choices__item--selectable:after {
296
+ right: auto;
297
+ left: 10px;
298
+ }
299
+ }
300
+
301
+ .choices__list--dropdown .choices__item--selectable.is-highlighted {
302
+ background-color: #f2f2f2;
303
+ }
304
+
305
+ .choices__list--dropdown .choices__item--selectable.is-highlighted:after {
306
+ opacity: .5;
307
+ }
308
+
309
+ .choices__item {
310
+ cursor: default;
311
+ }
312
+
313
+ .choices__item--selectable {
314
+ cursor: pointer;
315
+ }
316
+
317
+ .choices__item--disabled {
318
+ cursor: not-allowed;
319
+ user-select: none;
320
+ opacity: .5;
321
+ }
322
+
323
+ .choices__heading {
324
+ font-weight: 600;
325
+ font-size: 12px;
326
+ padding: 10px;
327
+ border-bottom: 1px solid #f7f7f7;
328
+ color: gray;
329
+ }
330
+
331
+ .choices__button {
332
+ text-indent: -9999px;
333
+ -webkit-appearance: none;
334
+ appearance: none;
335
+ border: 0;
336
+ background-color: transparent;
337
+ background-repeat: no-repeat;
338
+ background-position: center;
339
+ cursor: pointer;
340
+ }
341
+
342
+ .choices__button:focus {
343
+ outline: none;
344
+ }
345
+
346
+ .choices__input {
347
+ display: inline-block;
348
+ vertical-align: baseline !important;
349
+ background-color: #f9f9f9;
350
+ font-size: 14px;
351
+ margin: 0 !important;
352
+ border: 0 !important;
353
+ border-radius: 0 !important;
354
+ max-width: 100%;
355
+ min-height: 0 !important;
356
+ width: auto !important;
357
+ padding: 4px 0 4px 2px !important;
358
+ }
359
+
360
+ .choices__input:focus {
361
+ outline: 0;
362
+ }
363
+
364
+ [dir="rtl"] .choices__input {
365
+ padding-right: 2px;
366
+ padding-left: 0;
367
+ }
368
+
369
+ .choices__placeholder {
370
+ opacity: .5;
371
+ }
372
+
373
+ /*===== End of Choices ======*/
374
+ .wpforms-admin-page .wpforms-btn {
375
+ border: 0;
376
+ border-radius: 3px;
377
+ cursor: pointer;
378
+ display: inline-block;
379
+ margin: 0;
380
+ text-decoration: none;
381
+ text-align: center;
382
+ vertical-align: middle;
383
+ white-space: nowrap;
384
+ box-shadow: none;
385
+ }
386
+
387
+ .wpforms-admin-page .wpforms-btn-block {
388
+ display: block;
389
+ width: 100%;
390
+ }
391
+
392
+ .wpforms-admin-page .wpforms-btn-md {
393
+ font-size: 13px;
394
+ font-weight: 600;
395
+ padding: 8px 12px;
396
+ min-height: 35px;
397
+ }
398
+
399
+ .wpforms-admin-page .wpforms-btn-lg {
400
+ font-size: 16px;
401
+ font-weight: 600;
402
+ padding: 16px 28px;
403
+ }
404
+
405
+ .wpforms-admin-page .wpforms-btn-orange {
406
+ background-color: #e27730;
407
+ border-color: #e27730;
408
+ color: #fff;
409
+ }
410
+
411
+ .wpforms-admin-page .wpforms-btn-orange:hover {
412
+ background-color: #b85a1b;
413
+ border-color: #b85a1b;
414
+ }
415
+
416
+ .wpforms-admin-page .wpforms-btn-grey {
417
+ background-color: #eee;
418
+ border-color: #ccc;
419
+ color: #666;
420
+ }
421
+
422
+ .wpforms-admin-page .wpforms-btn-grey:hover {
423
+ background-color: #d7d7d7;
424
+ border-color: #ccc;
425
+ color: #444;
426
+ }
427
+
428
+ .wpforms-admin-page .wpforms-btn-light-grey {
429
+ background-color: #f5f5f5;
430
+ border: 1px solid #ccc;
431
+ color: #666;
432
+ }
433
+
434
+ .wpforms-admin-page .wpforms-btn-light-grey:hover {
435
+ background-color: #eee;
436
+ color: #444;
437
+ }
438
+
439
+ .wpforms-admin-page .wpforms-btn-trans-green {
440
+ background-color: none;
441
+ color: #2a9b39;
442
+ }
443
+
444
+ .wpforms-admin-page .wpforms-btn-trans-green:hover {
445
+ background-color: #2a9b39;
446
+ color: #fff;
447
+ }
448
+
449
+ .wpforms-admin-page .wpforms-btn-trans-green .underline {
450
+ position: relative;
451
+ }
452
+
453
+ .wpforms-admin-page .wpforms-btn-trans-green .underline:after {
454
+ content: " ";
455
+ border-bottom: 1px dashed #2a9b39;
456
+ position: absolute;
457
+ bottom: -5px;
458
+ left: 0;
459
+ width: 100%;
460
+ }
461
+
462
+ .wpforms-admin-page .wpforms-btn-trans-green .dashicons {
463
+ height: 18px;
464
+ }
465
+
466
+ body div.jconfirm *,
467
+ body div.jconfirm *::before,
468
+ body div.jconfirm *::after {
469
+ -webkit-box-sizing: border-box;
470
+ -moz-box-sizing: border-box;
471
+ box-sizing: border-box;
472
+ }
473
+
474
+ body div.jconfirm div.jconfirm-box-container div.jconfirm-box {
475
+ border-radius: 0;
476
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
477
+ }
478
+
479
+ body div.jconfirm div.jconfirm-box div.jconfirm-content-pane {
480
+ margin-bottom: 20px;
481
+ display: block;
482
+ }
483
+
484
+ body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content {
485
+ overflow: initial;
486
+ }
487
+
488
+ body div.jconfirm div.jconfirm-box div.jconfirm-content {
489
+ font-size: 16px;
490
+ color: #555;
491
+ line-height: 1.5;
492
+ }
493
+
494
+ body div.jconfirm div.jconfirm-box div.jconfirm-content p {
495
+ margin: 0 0 16px;
496
+ font-size: 16px;
497
+ }
498
+
499
+ body div.jconfirm div.jconfirm-box input[type=text] {
500
+ display: block;
501
+ width: 99%;
502
+ border: 1px solid #d6d6d6;
503
+ padding: 10px;
504
+ box-shadow: none;
505
+ margin: 20px auto 0 auto;
506
+ }
507
+
508
+ body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode {
509
+ margin: 20px 0;
510
+ text-align: center;
511
+ font-size: 24px;
512
+ padding: 8px 5px;
513
+ }
514
+
515
+ body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled {
516
+ color: #333;
517
+ }
518
+
519
+ body div.jconfirm div.jconfirm-box button.btn-confirm {
520
+ background-color: #e27730;
521
+ color: #fff;
522
+ outline: none;
523
+ }
524
+
525
+ body div.jconfirm div.jconfirm-box button.btn-confirm:hover {
526
+ background-color: #b85a1b;
527
+ border-color: #b85a1b;
528
+ }
529
+
530
+ body div.jconfirm div.jconfirm-box .error {
531
+ display: none;
532
+ color: red;
533
+ }
534
+
535
+ body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c {
536
+ -webkit-transition: none !important;
537
+ transition: none !important;
538
+ -webkit-transform: none !important;
539
+ -ms-transform: none !important;
540
+ transform: none !important;
541
+ font-size: 45px !important;
542
+ }
543
+
544
+ body .choices {
545
+ text-align: left;
546
+ }
547
+
548
+ body .choices input[type=text].choices__input {
549
+ display: inline-block !important;
550
+ }
551
+
552
+ .wpforms-admin-page .wpforms-alert {
553
+ padding: 16px;
554
+ margin-bottom: 18px;
555
+ border: 1px solid transparent;
556
+ }
557
+
558
+ .wpforms-admin-page .wpforms-alert h4 {
559
+ margin-top: 0;
560
+ color: inherit;
561
+ }
562
+
563
+ .wpforms-admin-page .wpforms-alert p {
564
+ margin: 0 0 15px 0;
565
+ }
566
+
567
+ .wpforms-admin-page .wpforms-alert p:last-of-type {
568
+ margin: 0;
569
+ }
570
+
571
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin {
572
+ margin: 0;
573
+ }
574
+
575
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-small {
576
+ font-size: 12px;
577
+ }
578
+
579
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-success {
580
+ background-color: #dff0d8;
581
+ border-color: #d6e9c6;
582
+ color: #3c763d;
583
+ }
584
+
585
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-info {
586
+ background-color: #d9edf7;
587
+ border-color: #bce8f1;
588
+ color: #31708f;
589
+ }
590
+
591
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-warning {
592
+ background-color: #fcf8e3;
593
+ border-color: #faebcc;
594
+ color: #8a6d3b;
595
+ }
596
+
597
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-danger {
598
+ background-color: #f2dede;
599
+ border-color: #ebccd1;
600
+ color: #a94442;
601
+ }
602
+
603
+ .wpforms-flag {
604
+ width: 16px;
605
+ height: 16px;
606
+ background: url(../../images/flags.png) no-repeat;
607
+ display: inline-block;
608
+ }
609
+
610
+ .wpforms-flag.wpforms-flag-ad {
611
+ background-position: -16px 0;
612
+ }
613
+
614
+ .wpforms-flag.wpforms-flag-ae {
615
+ background-position: -32px 0;
616
+ }
617
+
618
+ .wpforms-flag.wpforms-flag-af {
619
+ background-position: -48px 0;
620
+ }
621
+
622
+ .wpforms-flag.wpforms-flag-ag {
623
+ background-position: -64px 0;
624
+ }
625
+
626
+ .wpforms-flag.wpforms-flag-ai {
627
+ background-position: -80px 0;
628
+ }
629
+
630
+ .wpforms-flag.wpforms-flag-al {
631
+ background-position: -96px 0;
632
+ }
633
+
634
+ .wpforms-flag.wpforms-flag-am {
635
+ background-position: -112px 0;
636
+ }
637
+
638
+ .wpforms-flag.wpforms-flag-an {
639
+ background-position: -128px 0;
640
+ }
641
+
642
+ .wpforms-flag.wpforms-flag-ao {
643
+ background-position: -144px 0;
644
+ }
645
+
646
+ .wpforms-flag.wpforms-flag-ar {
647
+ background-position: -160px 0;
648
+ }
649
+
650
+ .wpforms-flag.wpforms-flag-as {
651
+ background-position: -176px 0;
652
+ }
653
+
654
+ .wpforms-flag.wpforms-flag-at {
655
+ background-position: -192px 0;
656
+ }
657
+
658
+ .wpforms-flag.wpforms-flag-au {
659
+ background-position: -208px 0;
660
+ }
661
+
662
+ .wpforms-flag.wpforms-flag-aw {
663
+ background-position: -224px 0;
664
+ }
665
+
666
+ .wpforms-flag.wpforms-flag-az {
667
+ background-position: 0 -16px;
668
+ }
669
+
670
+ .wpforms-flag.wpforms-flag-ba {
671
+ background-position: -16px -16px;
672
+ }
673
+
674
+ .wpforms-flag.wpforms-flag-bb {
675
+ background-position: -32px -16px;
676
+ }
677
+
678
+ .wpforms-flag.wpforms-flag-bd {
679
+ background-position: -48px -16px;
680
+ }
681
+
682
+ .wpforms-flag.wpforms-flag-be {
683
+ background-position: -64px -16px;
684
+ }
685
+
686
+ .wpforms-flag.wpforms-flag-bf {
687
+ background-position: -80px -16px;
688
+ }
689
+
690
+ .wpforms-flag.wpforms-flag-bg {
691
+ background-position: -96px -16px;
692
+ }
693
+
694
+ .wpforms-flag.wpforms-flag-bh {
695
+ background-position: -112px -16px;
696
+ }
697
+
698
+ .wpforms-flag.wpforms-flag-bi {
699
+ background-position: -128px -16px;
700
+ }
701
+
702
+ .wpforms-flag.wpforms-flag-bj {
703
+ background-position: -144px -16px;
704
+ }
705
+
706
+ .wpforms-flag.wpforms-flag-bm {
707
+ background-position: -160px -16px;
708
+ }
709
+
710
+ .wpforms-flag.wpforms-flag-bn {
711
+ background-position: -176px -16px;
712
+ }
713
+
714
+ .wpforms-flag.wpforms-flag-bo {
715
+ background-position: -192px -16px;
716
+ }
717
+
718
+ .wpforms-flag.wpforms-flag-br {
719
+ background-position: -208px -16px;
720
+ }
721
+
722
+ .wpforms-flag.wpforms-flag-bs {
723
+ background-position: -224px -16px;
724
+ }
725
+
726
+ .wpforms-flag.wpforms-flag-bt {
727
+ background-position: 0 -32px;
728
+ }
729
+
730
+ .wpforms-flag.wpforms-flag-bw {
731
+ background-position: -16px -32px;
732
+ }
733
+
734
+ .wpforms-flag.wpforms-flag-by {
735
+ background-position: -32px -32px;
736
+ }
737
+
738
+ .wpforms-flag.wpforms-flag-bz {
739
+ background-position: -48px -32px;
740
+ }
741
+
742
+ .wpforms-flag.wpforms-flag-ca {
743
+ background-position: -64px -32px;
744
+ }
745
+
746
+ .wpforms-flag.wpforms-flag-cd {
747
+ background-position: -80px -32px;
748
+ }
749
+
750
+ .wpforms-flag.wpforms-flag-cf {
751
+ background-position: -96px -32px;
752
+ }
753
+
754
+ .wpforms-flag.wpforms-flag-cg {
755
+ background-position: -112px -32px;
756
+ }
757
+
758
+ .wpforms-flag.wpforms-flag-ch {
759
+ background-position: -128px -32px;
760
+ }
761
+
762
+ .wpforms-flag.wpforms-flag-ci {
763
+ background-position: -144px -32px;
764
+ }
765
+
766
+ .wpforms-flag.wpforms-flag-ck {
767
+ background-position: -160px -32px;
768
+ }
769
+
770
+ .wpforms-flag.wpforms-flag-cl {
771
+ background-position: -176px -32px;
772
+ }
773
+
774
+ .wpforms-flag.wpforms-flag-cm {
775
+ background-position: -192px -32px;
776
+ }
777
+
778
+ .wpforms-flag.wpforms-flag-cn {
779
+ background-position: -208px -32px;
780
+ }
781
+
782
+ .wpforms-flag.wpforms-flag-co {
783
+ background-position: -224px -32px;
784
+ }
785
+
786
+ .wpforms-flag.wpforms-flag-cr {
787
+ background-position: 0 -48px;
788
+ }
789
+
790
+ .wpforms-flag.wpforms-flag-cu {
791
+ background-position: -16px -48px;
792
+ }
793
+
794
+ .wpforms-flag.wpforms-flag-cv {
795
+ background-position: -32px -48px;
796
+ }
797
+
798
+ .wpforms-flag.wpforms-flag-cy {
799
+ background-position: -48px -48px;
800
+ }
801
+
802
+ .wpforms-flag.wpforms-flag-cz {
803
+ background-position: -64px -48px;
804
+ }
805
+
806
+ .wpforms-flag.wpforms-flag-de {
807
+ background-position: -80px -48px;
808
+ }
809
+
810
+ .wpforms-flag.wpforms-flag-dj {
811
+ background-position: -96px -48px;
812
+ }
813
+
814
+ .wpforms-flag.wpforms-flag-dk {
815
+ background-position: -112px -48px;
816
+ }
817
+
818
+ .wpforms-flag.wpforms-flag-dm {
819
+ background-position: -128px -48px;
820
+ }
821
+
822
+ .wpforms-flag.wpforms-flag-do {
823
+ background-position: -144px -48px;
824
+ }
825
+
826
+ .wpforms-flag.wpforms-flag-dz {
827
+ background-position: -160px -48px;
828
+ }
829
+
830
+ .wpforms-flag.wpforms-flag-ec {
831
+ background-position: -176px -48px;
832
+ }
833
+
834
+ .wpforms-flag.wpforms-flag-ee {
835
+ background-position: -192px -48px;
836
+ }
837
+
838
+ .wpforms-flag.wpforms-flag-eg {
839
+ background-position: -208px -48px;
840
+ }
841
+
842
+ .wpforms-flag.wpforms-flag-eh {
843
+ background-position: -224px -48px;
844
+ }
845
+
846
+ .wpforms-flag.wpforms-flag-er {
847
+ background-position: 0 -64px;
848
+ }
849
+
850
+ .wpforms-flag.wpforms-flag-es {
851
+ background-position: -16px -64px;
852
+ }
853
+
854
+ .wpforms-flag.wpforms-flag-et {
855
+ background-position: -32px -64px;
856
+ }
857
+
858
+ .wpforms-flag.wpforms-flag-fi {
859
+ background-position: -48px -64px;
860
+ }
861
+
862
+ .wpforms-flag.wpforms-flag-fj {
863
+ background-position: -64px -64px;
864
+ }
865
+
866
+ .wpforms-flag.wpforms-flag-fm {
867
+ background-position: -80px -64px;
868
+ }
869
+
870
+ .wpforms-flag.wpforms-flag-fo {
871
+ background-position: -96px -64px;
872
+ }
873
+
874
+ .wpforms-flag.wpforms-flag-fr {
875
+ background-position: -112px -64px;
876
+ }
877
+
878
+ .wpforms-flag.wpforms-flag-ga {
879
+ background-position: -128px -64px;
880
+ }
881
+
882
+ .wpforms-flag.wpforms-flag-gb {
883
+ background-position: -144px -64px;
884
+ }
885
+
886
+ .wpforms-flag.wpforms-flag-gd {
887
+ background-position: -160px -64px;
888
+ }
889
+
890
+ .wpforms-flag.wpforms-flag-ge {
891
+ background-position: -176px -64px;
892
+ }
893
+
894
+ .wpforms-flag.wpforms-flag-gg {
895
+ background-position: -192px -64px;
896
+ }
897
+
898
+ .wpforms-flag.wpforms-flag-gh {
899
+ background-position: -208px -64px;
900
+ }
901
+
902
+ .wpforms-flag.wpforms-flag-gi {
903
+ background-position: -224px -64px;
904
+ }
905
+
906
+ .wpforms-flag.wpforms-flag-gl {
907
+ background-position: 0 -80px;
908
+ }
909
+
910
+ .wpforms-flag.wpforms-flag-gm {
911
+ background-position: -16px -80px;
912
+ }
913
+
914
+ .wpforms-flag.wpforms-flag-gn {
915
+ background-position: -32px -80px;
916
+ }
917
+
918
+ .wpforms-flag.wpforms-flag-gp {
919
+ background-position: -48px -80px;
920
+ }
921
+
922
+ .wpforms-flag.wpforms-flag-gq {
923
+ background-position: -64px -80px;
924
+ }
925
+
926
+ .wpforms-flag.wpforms-flag-gr {
927
+ background-position: -80px -80px;
928
+ }
929
+
930
+ .wpforms-flag.wpforms-flag-gt {
931
+ background-position: -96px -80px;
932
+ }
933
+
934
+ .wpforms-flag.wpforms-flag-gu {
935
+ background-position: -112px -80px;
936
+ }
937
+
938
+ .wpforms-flag.wpforms-flag-gw {
939
+ background-position: -128px -80px;
940
+ }
941
+
942
+ .wpforms-flag.wpforms-flag-gy {
943
+ background-position: -144px -80px;
944
+ }
945
+
946
+ .wpforms-flag.wpforms-flag-hk {
947
+ background-position: -160px -80px;
948
+ }
949
+
950
+ .wpforms-flag.wpforms-flag-hn {
951
+ background-position: -176px -80px;
952
+ }
953
+
954
+ .wpforms-flag.wpforms-flag-hr {
955
+ background-position: -192px -80px;
956
+ }
957
+
958
+ .wpforms-flag.wpforms-flag-ht {
959
+ background-position: -208px -80px;
960
+ }
961
+
962
+ .wpforms-flag.wpforms-flag-hu {
963
+ background-position: -224px -80px;
964
+ }
965
+
966
+ .wpforms-flag.wpforms-flag-id {
967
+ background-position: 0 -96px;
968
+ }
969
+
970
+ .wpforms-flag.wpforms-flag-ie {
971
+ background-position: -16px -96px;
972
+ }
973
+
974
+ .wpforms-flag.wpforms-flag-il {
975
+ background-position: -32px -96px;
976
+ }
977
+
978
+ .wpforms-flag.wpforms-flag-im {
979
+ background-position: -48px -96px;
980
+ }
981
+
982
+ .wpforms-flag.wpforms-flag-in {
983
+ background-position: -64px -96px;
984
+ }
985
+
986
+ .wpforms-flag.wpforms-flag-iq {
987
+ background-position: -80px -96px;
988
+ }
989
+
990
+ .wpforms-flag.wpforms-flag-ir {
991
+ background-position: -96px -96px;
992
+ }
993
+
994
+ .wpforms-flag.wpforms-flag-is {
995
+ background-position: -112px -96px;
996
+ }
997
+
998
+ .wpforms-flag.wpforms-flag-it {
999
+ background-position: -128px -96px;
1000
+ }
1001
+
1002
+ .wpforms-flag.wpforms-flag-je {
1003
+ background-position: -144px -96px;
1004
+ }
1005
+
1006
+ .wpforms-flag.wpforms-flag-jm {
1007
+ background-position: -160px -96px;
1008
+ }
1009
+
1010
+ .wpforms-flag.wpforms-flag-jo {
1011
+ background-position: -176px -96px;
1012
+ }
1013
+
1014
+ .wpforms-flag.wpforms-flag-jp {
1015
+ background-position: -192px -96px;
1016
+ }
1017
+
1018
+ .wpforms-flag.wpforms-flag-ke {
1019
+ background-position: -208px -96px;
1020
+ }
1021
+
1022
+ .wpforms-flag.wpforms-flag-kg {
1023
+ background-position: -224px -96px;
1024
+ }
1025
+
1026
+ .wpforms-flag.wpforms-flag-kh {
1027
+ background-position: 0 -112px;
1028
+ }
1029
+
1030
+ .wpforms-flag.wpforms-flag-ki {
1031
+ background-position: -16px -112px;
1032
+ }
1033
+
1034
+ .wpforms-flag.wpforms-flag-km {
1035
+ background-position: -32px -112px;
1036
+ }
1037
+
1038
+ .wpforms-flag.wpforms-flag-kn {
1039
+ background-position: -48px -112px;
1040
+ }
1041
+
1042
+ .wpforms-flag.wpforms-flag-kp {
1043
+ background-position: -64px -112px;
1044
+ }
1045
+
1046
+ .wpforms-flag.wpforms-flag-kr {
1047
+ background-position: -80px -112px;
1048
+ }
1049
+
1050
+ .wpforms-flag.wpforms-flag-kw {
1051
+ background-position: -96px -112px;
1052
+ }
1053
+
1054
+ .wpforms-flag.wpforms-flag-ky {
1055
+ background-position: -112px -112px;
1056
+ }
1057
+
1058
+ .wpforms-flag.wpforms-flag-kz {
1059
+ background-position: -128px -112px;
1060
+ }
1061
+
1062
+ .wpforms-flag.wpforms-flag-la {
1063
+ background-position: -144px -112px;
1064
+ }
1065
+
1066
+ .wpforms-flag.wpforms-flag-lb {
1067
+ background-position: -160px -112px;
1068
+ }
1069
+
1070
+ .wpforms-flag.wpforms-flag-lc {
1071
+ background-position: -176px -112px;
1072
+ }
1073
+
1074
+ .wpforms-flag.wpforms-flag-li {
1075
+ background-position: -192px -112px;
1076
+ }
1077
+
1078
+ .wpforms-flag.wpforms-flag-lk {
1079
+ background-position: -208px -112px;
1080
+ }
1081
+
1082
+ .wpforms-flag.wpforms-flag-lr {
1083
+ background-position: -224px -112px;
1084
+ }
1085
+
1086
+ .wpforms-flag.wpforms-flag-ls {
1087
+ background-position: 0 -128px;
1088
+ }
1089
+
1090
+ .wpforms-flag.wpforms-flag-lt {
1091
+ background-position: -16px -128px;
1092
+ }
1093
+
1094
+ .wpforms-flag.wpforms-flag-lu {
1095
+ background-position: -32px -128px;
1096
+ }
1097
+
1098
+ .wpforms-flag.wpforms-flag-lv {
1099
+ background-position: -48px -128px;
1100
+ }
1101
+
1102
+ .wpforms-flag.wpforms-flag-ly {
1103
+ background-position: -64px -128px;
1104
+ }
1105
+
1106
+ .wpforms-flag.wpforms-flag-ma {
1107
+ background-position: -80px -128px;
1108
+ }
1109
+
1110
+ .wpforms-flag.wpforms-flag-mc {
1111
+ background-position: -96px -128px;
1112
+ }
1113
+
1114
+ .wpforms-flag.wpforms-flag-md {
1115
+ background-position: -112px -128px;
1116
+ }
1117
+
1118
+ .wpforms-flag.wpforms-flag-me {
1119
+ background-position: -128px -128px;
1120
+ }
1121
+
1122
+ .wpforms-flag.wpforms-flag-mg {
1123
+ background-position: -144px -128px;
1124
+ }
1125
+
1126
+ .wpforms-flag.wpforms-flag-mh {
1127
+ background-position: -160px -128px;
1128
+ }
1129
+
1130
+ .wpforms-flag.wpforms-flag-mk {
1131
+ background-position: -176px -128px;
1132
+ }
1133
+
1134
+ .wpforms-flag.wpforms-flag-ml {
1135
+ background-position: -192px -128px;
1136
+ }
1137
+
1138
+ .wpforms-flag.wpforms-flag-mm {
1139
+ background-position: -208px -128px;
1140
+ }
1141
+
1142
+ .wpforms-flag.wpforms-flag-mn {
1143
+ background-position: -224px -128px;
1144
+ }
1145
+
1146
+ .wpforms-flag.wpforms-flag-mo {
1147
+ background-position: 0 -144px;
1148
+ }
1149
+
1150
+ .wpforms-flag.wpforms-flag-mq {
1151
+ background-position: -16px -144px;
1152
+ }
1153
+
1154
+ .wpforms-flag.wpforms-flag-mr {
1155
+ background-position: -32px -144px;
1156
+ }
1157
+
1158
+ .wpforms-flag.wpforms-flag-ms {
1159
+ background-position: -48px -144px;
1160
+ }
1161
+
1162
+ .wpforms-flag.wpforms-flag-mt {
1163
+ background-position: -64px -144px;
1164
+ }
1165
+
1166
+ .wpforms-flag.wpforms-flag-mu {
1167
+ background-position: -80px -144px;
1168
+ }
1169
+
1170
+ .wpforms-flag.wpforms-flag-mv {
1171
+ background-position: -96px -144px;
1172
+ }
1173
+
1174
+ .wpforms-flag.wpforms-flag-mw {
1175
+ background-position: -112px -144px;
1176
+ }
1177
+
1178
+ .wpforms-flag.wpforms-flag-mx {
1179
+ background-position: -128px -144px;
1180
+ }
1181
+
1182
+ .wpforms-flag.wpforms-flag-my {
1183
+ background-position: -144px -144px;
1184
+ }
1185
+
1186
+ .wpforms-flag.wpforms-flag-mz {
1187
+ background-position: -160px -144px;
1188
+ }
1189
+
1190
+ .wpforms-flag.wpforms-flag-na {
1191
+ background-position: -176px -144px;
1192
+ }
1193
+
1194
+ .wpforms-flag.wpforms-flag-nc {
1195
+ background-position: -192px -144px;
1196
+ }
1197
+
1198
+ .wpforms-flag.wpforms-flag-ne {
1199
+ background-position: -208px -144px;
1200
+ }
1201
+
1202
+ .wpforms-flag.wpforms-flag-ng {
1203
+ background-position: -224px -144px;
1204
+ }
1205
+
1206
+ .wpforms-flag.wpforms-flag-ni {
1207
+ background-position: 0 -160px;
1208
+ }
1209
+
1210
+ .wpforms-flag.wpforms-flag-nl {
1211
+ background-position: -16px -160px;
1212
+ }
1213
+
1214
+ .wpforms-flag.wpforms-flag-no {
1215
+ background-position: -32px -160px;
1216
+ }
1217
+
1218
+ .wpforms-flag.wpforms-flag-np {
1219
+ background-position: -48px -160px;
1220
+ }
1221
+
1222
+ .wpforms-flag.wpforms-flag-nr {
1223
+ background-position: -64px -160px;
1224
+ }
1225
+
1226
+ .wpforms-flag.wpforms-flag-nz {
1227
+ background-position: -80px -160px;
1228
+ }
1229
+
1230
+ .wpforms-flag.wpforms-flag-om {
1231
+ background-position: -96px -160px;
1232
+ }
1233
+
1234
+ .wpforms-flag.wpforms-flag-pa {
1235
+ background-position: -112px -160px;
1236
+ }
1237
+
1238
+ .wpforms-flag.wpforms-flag-pe {
1239
+ background-position: -128px -160px;
1240
+ }
1241
+
1242
+ .wpforms-flag.wpforms-flag-pf {
1243
+ background-position: -144px -160px;
1244
+ }
1245
+
1246
+ .wpforms-flag.wpforms-flag-pg {
1247
+ background-position: -160px -160px;
1248
+ }
1249
+
1250
+ .wpforms-flag.wpforms-flag-ph {
1251
+ background-position: -176px -160px;
1252
+ }
1253
+
1254
+ .wpforms-flag.wpforms-flag-pk {
1255
+ background-position: -192px -160px;
1256
+ }
1257
+
1258
+ .wpforms-flag.wpforms-flag-pl {
1259
+ background-position: -208px -160px;
1260
+ }
1261
+
1262
+ .wpforms-flag.wpforms-flag-pr {
1263
+ background-position: -224px -160px;
1264
+ }
1265
+
1266
+ .wpforms-flag.wpforms-flag-ps {
1267
+ background-position: 0 -176px;
1268
+ }
1269
+
1270
+ .wpforms-flag.wpforms-flag-pt {
1271
+ background-position: -16px -176px;
1272
+ }
1273
+
1274
+ .wpforms-flag.wpforms-flag-pw {
1275
+ background-position: -32px -176px;
1276
+ }
1277
+
1278
+ .wpforms-flag.wpforms-flag-py {
1279
+ background-position: -48px -176px;
1280
+ }
1281
+
1282
+ .wpforms-flag.wpforms-flag-qa {
1283
+ background-position: -64px -176px;
1284
+ }
1285
+
1286
+ .wpforms-flag.wpforms-flag-re {
1287
+ background-position: -80px -176px;
1288
+ }
1289
+
1290
+ .wpforms-flag.wpforms-flag-ro {
1291
+ background-position: -96px -176px;
1292
+ }
1293
+
1294
+ .wpforms-flag.wpforms-flag-rs {
1295
+ background-position: -112px -176px;
1296
+ }
1297
+
1298
+ .wpforms-flag.wpforms-flag-ru {
1299
+ background-position: -128px -176px;
1300
+ }
1301
+
1302
+ .wpforms-flag.wpforms-flag-rw {
1303
+ background-position: -144px -176px;
1304
+ }
1305
+
1306
+ .wpforms-flag.wpforms-flag-sa {
1307
+ background-position: -160px -176px;
1308
+ }
1309
+
1310
+ .wpforms-flag.wpforms-flag-sb {
1311
+ background-position: -176px -176px;
1312
+ }
1313
+
1314
+ .wpforms-flag.wpforms-flag-sc {
1315
+ background-position: -192px -176px;
1316
+ }
1317
+
1318
+ .wpforms-flag.wpforms-flag-sd {
1319
+ background-position: -208px -176px;
1320
+ }
1321
+
1322
+ .wpforms-flag.wpforms-flag-se {
1323
+ background-position: -224px -176px;
1324
+ }
1325
+
1326
+ .wpforms-flag.wpforms-flag-sg {
1327
+ background-position: 0 -192px;
1328
+ }
1329
+
1330
+ .wpforms-flag.wpforms-flag-si {
1331
+ background-position: -16px -192px;
1332
+ }
1333
+
1334
+ .wpforms-flag.wpforms-flag-sk {
1335
+ background-position: -32px -192px;
1336
+ }
1337
+
1338
+ .wpforms-flag.wpforms-flag-sl {
1339
+ background-position: -48px -192px;
1340
+ }
1341
+
1342
+ .wpforms-flag.wpforms-flag-sm {
1343
+ background-position: -64px -192px;
1344
+ }
1345
+
1346
+ .wpforms-flag.wpforms-flag-sn {
1347
+ background-position: -80px -192px;
1348
+ }
1349
+
1350
+ .wpforms-flag.wpforms-flag-so {
1351
+ background-position: -96px -192px;
1352
+ }
1353
+
1354
+ .wpforms-flag.wpforms-flag-sr {
1355
+ background-position: -112px -192px;
1356
+ }
1357
+
1358
+ .wpforms-flag.wpforms-flag-st {
1359
+ background-position: -128px -192px;
1360
+ }
1361
+
1362
+ .wpforms-flag.wpforms-flag-sv {
1363
+ background-position: -144px -192px;
1364
+ }
1365
+
1366
+ .wpforms-flag.wpforms-flag-sy {
1367
+ background-position: -160px -192px;
1368
+ }
1369
+
1370
+ .wpforms-flag.wpforms-flag-sz {
1371
+ background-position: -176px -192px;
1372
+ }
1373
+
1374
+ .wpforms-flag.wpforms-flag-tc {
1375
+ background-position: -192px -192px;
1376
+ }
1377
+
1378
+ .wpforms-flag.wpforms-flag-td {
1379
+ background-position: -208px -192px;
1380
+ }
1381
+
1382
+ .wpforms-flag.wpforms-flag-tg {
1383
+ background-position: -224px -192px;
1384
+ }
1385
+
1386
+ .wpforms-flag.wpforms-flag-th {
1387
+ background-position: 0 -208px;
1388
+ }
1389
+
1390
+ .wpforms-flag.wpforms-flag-tj {
1391
+ background-position: -16px -208px;
1392
+ }
1393
+
1394
+ .wpforms-flag.wpforms-flag-tl {
1395
+ background-position: -32px -208px;
1396
+ }
1397
+
1398
+ .wpforms-flag.wpforms-flag-tm {
1399
+ background-position: -48px -208px;
1400
+ }
1401
+
1402
+ .wpforms-flag.wpforms-flag-tn {
1403
+ background-position: -64px -208px;
1404
+ }
1405
+
1406
+ .wpforms-flag.wpforms-flag-to {
1407
+ background-position: -80px -208px;
1408
+ }
1409
+
1410
+ .wpforms-flag.wpforms-flag-tr {
1411
+ background-position: -96px -208px;
1412
+ }
1413
+
1414
+ .wpforms-flag.wpforms-flag-tt {
1415
+ background-position: -112px -208px;
1416
+ }
1417
+
1418
+ .wpforms-flag.wpforms-flag-tv {
1419
+ background-position: -128px -208px;
1420
+ }
1421
+
1422
+ .wpforms-flag.wpforms-flag-tw {
1423
+ background-position: -144px -208px;
1424
+ }
1425
+
1426
+ .wpforms-flag.wpforms-flag-tz {
1427
+ background-position: -160px -208px;
1428
+ }
1429
+
1430
+ .wpforms-flag.wpforms-flag-ua {
1431
+ background-position: -176px -208px;
1432
+ }
1433
+
1434
+ .wpforms-flag.wpforms-flag-ug {
1435
+ background-position: -192px -208px;
1436
+ }
1437
+
1438
+ .wpforms-flag.wpforms-flag-us {
1439
+ background-position: -208px -208px;
1440
+ }
1441
+
1442
+ .wpforms-flag.wpforms-flag-uy {
1443
+ background-position: -224px -208px;
1444
+ }
1445
+
1446
+ .wpforms-flag.wpforms-flag-uz {
1447
+ background-position: 0 -224px;
1448
+ }
1449
+
1450
+ .wpforms-flag.wpforms-flag-va {
1451
+ background-position: -16px -224px;
1452
+ }
1453
+
1454
+ .wpforms-flag.wpforms-flag-vc {
1455
+ background-position: -32px -224px;
1456
+ }
1457
+
1458
+ .wpforms-flag.wpforms-flag-ve {
1459
+ background-position: -48px -224px;
1460
+ }
1461
+
1462
+ .wpforms-flag.wpforms-flag-vg {
1463
+ background-position: -64px -224px;
1464
+ }
1465
+
1466
+ .wpforms-flag.wpforms-flag-vi {
1467
+ background-position: -80px -224px;
1468
+ }
1469
+
1470
+ .wpforms-flag.wpforms-flag-vn {
1471
+ background-position: -96px -224px;
1472
+ }
1473
+
1474
+ .wpforms-flag.wpforms-flag-vu {
1475
+ background-position: -112px -224px;
1476
+ }
1477
+
1478
+ .wpforms-flag.wpforms-flag-ws {
1479
+ background-position: -128px -224px;
1480
+ }
1481
+
1482
+ .wpforms-flag.wpforms-flag-ye {
1483
+ background-position: -144px -224px;
1484
+ }
1485
+
1486
+ .wpforms-flag.wpforms-flag-za {
1487
+ background-position: -160px -224px;
1488
+ }
1489
+
1490
+ .wpforms-flag.wpforms-flag-zm {
1491
+ background-position: -176px -224px;
1492
+ }
1493
+
1494
+ .wpforms-flag.wpforms-flag-zw {
1495
+ background-position: -192px -224px;
1496
+ }
1497
+
1498
+ #wpforms-header-temp {
1499
+ position: relative;
1500
+ margin: 0;
1501
+ position: absolute;
1502
+ top: -1px;
1503
+ left: 20px;
1504
+ right: 20px;
1505
+ z-index: 99;
1506
+ }
1507
+
1508
+ #wpforms-header {
1509
+ border-top: 3px solid #e27730;
1510
+ padding: 22px 20px;
1511
+ }
1512
+
1513
+ #wpforms-header img {
1514
+ display: block;
1515
+ margin: 0;
1516
+ max-width: 235px;
1517
+ }
1518
+
1519
+ @media (max-width: 782px) {
1520
+ #wpforms-header img {
1521
+ max-width: 200px;
1522
+ }
1523
+ }
1524
+
1525
+ .wpforms-admin-wrap .page-title {
1526
+ background-color: #fff;
1527
+ margin: 0 0 20px 0;
1528
+ padding: 15px 20px;
1529
+ }
1530
+
1531
+ .wpforms-admin-wrap .page-title .add-new-h2 {
1532
+ margin-left: 28px;
1533
+ }
1534
+
1535
+ .wpforms-admin-tabs {
1536
+ background-color: #fff;
1537
+ margin: 0 0 20px 0;
1538
+ padding: 0 20px;
1539
+ list-style: none;
1540
+ overflow: auto;
1541
+ font-size: 14px;
1542
+ }
1543
+
1544
+ .wpforms-admin-tabs li {
1545
+ margin: 0 30px 0 0;
1546
+ padding: 0;
1547
+ float: left;
1548
+ }
1549
+
1550
+ .wpforms-admin-tabs li:last-of-type {
1551
+ margin: 0;
1552
+ }
1553
+
1554
+ .wpforms-admin-tabs li a {
1555
+ color: #666;
1556
+ display: block;
1557
+ padding: 20px 0 18px 0;
1558
+ text-decoration: none;
1559
+ border-bottom: 2px solid #fff;
1560
+ box-shadow: none;
1561
+ }
1562
+
1563
+ .wpforms-admin-tabs li a:hover {
1564
+ border-color: #999;
1565
+ }
1566
+
1567
+ .wpforms-admin-tabs li a.active {
1568
+ border-color: #e27730;
1569
+ }
1570
+
1571
+ #wpcontent {
1572
+ padding-left: 0 !important;
1573
+ position: relative;
1574
+ }
1575
+
1576
+ @media (max-width: 600px) {
1577
+ #wpcontent {
1578
+ padding-top: 46px;
1579
+ }
1580
+ }
1581
+
1582
+ @media (max-width: 600px) {
1583
+ #wpbody {
1584
+ padding-top: 0;
1585
+ }
1586
+ }
1587
+
1588
+ .wpforms-admin-page #screen-meta-links,
1589
+ .wpforms-admin-page #screen-meta {
1590
+ display: none;
1591
+ }
1592
+
1593
+ .wpforms-admin-page .video-container {
1594
+ position: relative;
1595
+ padding-bottom: 56.1%;
1596
+ height: 0;
1597
+ overflow: hidden;
1598
+ }
1599
+
1600
+ .wpforms-admin-page .video-container iframe,
1601
+ .wpforms-admin-page .video-container object,
1602
+ .wpforms-admin-page .video-container embed {
1603
+ position: absolute;
1604
+ top: 0;
1605
+ left: 0;
1606
+ width: 100%;
1607
+ height: 100%;
1608
+ }
1609
+
1610
+ .wpforms-admin-page .wpforms-file-upload input[type=file] {
1611
+ width: 0.1px;
1612
+ height: 0.1px;
1613
+ opacity: 0;
1614
+ overflow: hidden;
1615
+ position: absolute;
1616
+ z-index: -1;
1617
+ }
1618
+
1619
+ .wpforms-admin-page .wpforms-file-upload label {
1620
+ text-overflow: ellipsis;
1621
+ white-space: nowrap;
1622
+ cursor: pointer;
1623
+ display: inline-block;
1624
+ overflow: hidden;
1625
+ padding: 0;
1626
+ }
1627
+
1628
+ .wpforms-admin-page .wpforms-file-upload input[type=file]:focus + label,
1629
+ .wpforms-admin-page .wpforms-file-upload input[type=file].has-focus + label {
1630
+ outline: 1px dotted #000;
1631
+ outline: -webkit-focus-ring-color auto 5px;
1632
+ }
1633
+
1634
+ .wpforms-admin-page .wpforms-file-upload .fld {
1635
+ text-overflow: ellipsis;
1636
+ white-space: nowrap;
1637
+ overflow: hidden;
1638
+ background-color: #fff;
1639
+ border: 1px solid #ddd;
1640
+ border-radius: 3px;
1641
+ box-shadow: none;
1642
+ color: #333;
1643
+ display: inline-block;
1644
+ vertical-align: middle;
1645
+ padding: 7px 12px;
1646
+ margin: 0 10px 0 0;
1647
+ width: 400px;
1648
+ min-height: 35px;
1649
+ }
1650
+
1651
+ .wpforms-admin-page .wpforms-file-upload .fld .placeholder {
1652
+ color: #ccc;
1653
+ }
1654
+
1655
+ .wpforms-admin-page .wpforms-file-upload strong .fa {
1656
+ margin-right: 8px;
1657
+ }
1658
+
1659
+ .wpforms-admin-page .wpforms-hide {
1660
+ display: none;
1661
+ }
1662
+
1663
+ .wpforms-admin-page .wpforms-h1-placeholder {
1664
+ display: none;
1665
+ }
1666
+
1667
+ .wpforms-admin-page .notice {
1668
+ display: none;
1669
+ }
1670
+
1671
+ .wpforms-admin-wrap {
1672
+ margin: 0;
1673
+ }
1674
+
1675
+ .wpforms-admin-wrap .notice {
1676
+ margin-left: 20px !important;
1677
+ margin-right: 20px !important;
1678
+ }
1679
+
1680
+ .wpforms-admin-content {
1681
+ padding-left: 20px;
1682
+ padding-right: 20px;
1683
+ }
1684
+
1685
+ .wpforms-admin-content:before {
1686
+ content: " ";
1687
+ display: table;
1688
+ }
1689
+
1690
+ .wpforms-admin-content:after {
1691
+ clear: both;
1692
+ content: " ";
1693
+ display: table;
1694
+ }
1695
+
1696
+ .wpforms-clear:before {
1697
+ content: " ";
1698
+ display: table;
1699
+ }
1700
+
1701
+ .wpforms-clear:after {
1702
+ clear: both;
1703
+ content: " ";
1704
+ display: table;
1705
+ }
1706
+
1707
+ #wpforms-overview .tablenav.top {
1708
+ margin-top: 0;
1709
+ }
1710
+
1711
+ #wpforms-overview .wp-list-table .column-id {
1712
+ width: 30px;
1713
+ }
1714
+
1715
+ #wpforms-overview .wp-list-table .column-entries {
1716
+ width: 70px;
1717
+ }
1718
+
1719
+ #wpforms-overview .wp-list-table .column-shortcode {
1720
+ width: 150px;
1721
+ }
1722
+
1723
+ #wpforms-overview .wp-list-table .column-created {
1724
+ width: 145px;
1725
+ }
1726
+
1727
+ #wpforms-entries-single #poststuff {
1728
+ padding: 0;
1729
+ }
1730
+
1731
+ #wpforms-entries-single .postbox .hndle {
1732
+ cursor: default !important;
1733
+ }
1734
+
1735
+ #wpforms-entries-single .wpforms-entry-navigation {
1736
+ font-size: 13px;
1737
+ line-height: 29px;
1738
+ float: right;
1739
+ position: relative;
1740
+ padding-top: 2px;
1741
+ }
1742
+
1743
+ @media (max-width: 600px) {
1744
+ #wpforms-entries-single .wpforms-entry-navigation {
1745
+ display: none;
1746
+ }
1747
+ }
1748
+
1749
+ #wpforms-entries-single .wpforms-entry-navigation .add-new-h2 {
1750
+ top: auto;
1751
+ margin: 0;
1752
+ padding: 4px 0px;
1753
+ text-align: center;
1754
+ }
1755
+
1756
+ #wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons {
1757
+ font-size: 16px;
1758
+ height: auto;
1759
+ width: 28px;
1760
+ line-height: 29px;
1761
+ }
1762
+
1763
+ #wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive {
1764
+ opacity: 0.5;
1765
+ pointer-events: none;
1766
+ cursor: default;
1767
+ }
1768
+
1769
+ #wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text {
1770
+ display: inline-block;
1771
+ margin-right: 10px;
1772
+ }
1773
+
1774
+ #wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current {
1775
+ top: auto;
1776
+ margin: 0;
1777
+ text-align: center;
1778
+ padding: 4px 10px;
1779
+ position: relative;
1780
+ text-decoration: none;
1781
+ border: 1px solid #ccc;
1782
+ -webkit-border-radius: 2px;
1783
+ border-radius: 2px;
1784
+ background: #fff;
1785
+ font-size: 13px;
1786
+ line-height: 29px;
1787
+ text-transform: center;
1788
+ }
1789
+
1790
+ #wpforms-entries-single #wpforms-entry-fields h2.hndle {
1791
+ font-size: 18px;
1792
+ }
1793
+
1794
+ #wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons {
1795
+ font-size: 16px;
1796
+ height: 16px;
1797
+ width: 16px;
1798
+ margin: 4px 4px 0 0;
1799
+ color: #e27730;
1800
+ }
1801
+
1802
+ #wpforms-entries-single #wpforms-entry-fields .no-fields {
1803
+ padding: 12px;
1804
+ margin: 0;
1805
+ }
1806
+
1807
+ #wpforms-entries-single #wpforms-entry-fields .inside {
1808
+ padding: 0;
1809
+ margin: 0;
1810
+ }
1811
+
1812
+ #wpforms-entries-single #wpforms-entry-fields .inside p {
1813
+ padding: 0;
1814
+ margin: 0;
1815
+ }
1816
+
1817
+ #wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name {
1818
+ font-weight: 600;
1819
+ background: #ebf3fb;
1820
+ padding: 8px 12px;
1821
+ }
1822
+
1823
+ #wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value {
1824
+ background: #fff;
1825
+ padding: 8px 12px;
1826
+ }
1827
+
1828
+ #wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value {
1829
+ font-style: italic;
1830
+ color: #999;
1831
+ }
1832
+
1833
+ #wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle {
1834
+ float: right;
1835
+ text-decoration: none;
1836
+ padding: 5px 0 0;
1837
+ }
1838
+
1839
+ #wpforms-entries-single #wpforms-entry-notes .inside {
1840
+ margin: 0;
1841
+ padding: 0;
1842
+ }
1843
+
1844
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new {
1845
+ padding: 10px;
1846
+ }
1847
+
1848
+ #wpforms-entries-single #wpforms-entry-notes form {
1849
+ display: none;
1850
+ }
1851
+
1852
+ #wpforms-entries-single #wpforms-entry-notes .btns {
1853
+ overflow: auto;
1854
+ padding: 8px 0;
1855
+ }
1856
+
1857
+ #wpforms-entries-single #wpforms-entry-notes .no-notes {
1858
+ margin: 0;
1859
+ padding: 4px 10px 8px;
1860
+ }
1861
+
1862
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single {
1863
+ padding: 10px;
1864
+ border-top: 1px solid #e3e1e3;
1865
+ }
1866
+
1867
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type {
1868
+ margin-bottom: 0;
1869
+ }
1870
+
1871
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even {
1872
+ background-color: #f9f9f9;
1873
+ }
1874
+
1875
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline {
1876
+ color: #888;
1877
+ margin-bottom: 10px;
1878
+ }
1879
+
1880
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep {
1881
+ color: #ddd;
1882
+ }
1883
+
1884
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user {
1885
+ text-decoration: none;
1886
+ font-weight: 600;
1887
+ }
1888
+
1889
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete {
1890
+ color: #a00;
1891
+ text-decoration: none;
1892
+ }
1893
+
1894
+ #wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover {
1895
+ color: red;
1896
+ text-decoration: none;
1897
+ }
1898
+
1899
+ #wpforms-entries-single #wpforms-entry-details .inside,
1900
+ #wpforms-entries-single #wpforms-entry-payment .inside,
1901
+ #wpforms-entries-single #wpforms-entry-actions .inside {
1902
+ margin: 0;
1903
+ padding: 0;
1904
+ }
1905
+
1906
+ #wpforms-entries-single .wpforms-entry-details-meta,
1907
+ #wpforms-entries-single .wpforms-entry-actions-meta {
1908
+ padding: 6px 0 0;
1909
+ }
1910
+
1911
+ #wpforms-entries-single .wpforms-entry-details-meta p,
1912
+ #wpforms-entries-single .wpforms-entry-payment-meta p,
1913
+ #wpforms-entries-single .wpforms-entry-actions-meta p {
1914
+ padding: 6px 10px 8px;
1915
+ margin: 0;
1916
+ }
1917
+
1918
+ #wpforms-entries-single .wpforms-entry-payment-meta {
1919
+ padding: 0;
1920
+ }
1921
+
1922
+ #wpforms-entries-single .wpforms-entry-payment-meta p {
1923
+ border-bottom: 1px solid #eee;
1924
+ padding: 10px;
1925
+ }
1926
+
1927
+ #wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type {
1928
+ border-bottom: 0;
1929
+ }
1930
+
1931
+ #wpforms-entries-single .wpforms-entry-details-meta strong,
1932
+ #wpforms-entries-single .wpforms-entry-actions-meta strong {
1933
+ font-weight: 600;
1934
+ }
1935
+
1936
+ #wpforms-entries-single .wpforms-entry-details-meta .dashicons,
1937
+ #wpforms-entries-single .wpforms-entry-actions-meta .dashicons {
1938
+ padding: 0 2px 0 0;
1939
+ color: #82878A;
1940
+ top: -1px;
1941
+ left: -1px;
1942
+ position: relative;
1943
+ text-decoration: none;
1944
+ }
1945
+
1946
+ #wpforms-entries-single #wpforms-entry-details .submitdelete {
1947
+ color: #a00;
1948
+ text-decoration: none;
1949
+ padding: 1px 2px;
1950
+ }
1951
+
1952
+ #wpforms-entries-single #wpforms-entry-details .submitdelete:hover {
1953
+ color: red;
1954
+ }
1955
+
1956
+ #wpforms-entries-single .wpforms-entry-actions-meta a {
1957
+ text-decoration: none;
1958
+ }
1959
+
1960
+ #wpforms-entries-single .wpforms-entry-actions-meta a:hover {
1961
+ text-decoration: underline;
1962
+ }
1963
+
1964
+ #wpforms-entries-single #wpforms-entry-geolocation .inside {
1965
+ padding: 0;
1966
+ margin: 0;
1967
+ }
1968
+
1969
+ #wpforms-entries-single #wpforms-entry-geolocation ul {
1970
+ margin: 0;
1971
+ }
1972
+
1973
+ #wpforms-entries-single #wpforms-entry-geolocation ul li {
1974
+ border-bottom: 1px solid #eee;
1975
+ margin: 0;
1976
+ overflow: auto;
1977
+ }
1978
+
1979
+ #wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type {
1980
+ border-bottom: 0;
1981
+ }
1982
+
1983
+ #wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta {
1984
+ width: 85px;
1985
+ float: left;
1986
+ border-right: 1px solid #eee;
1987
+ padding: 10px 20px 10px 12px;
1988
+ }
1989
+
1990
+ #wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value {
1991
+ display: inline-block;
1992
+ padding: 10px 12px 10px 20px;
1993
+ }
1994
+
1995
+ #wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag {
1996
+ vertical-align: text-top;
1997
+ margin-right: 4px;
1998
+ }
1999
+
2000
+ #wpforms-entries-list .form-details {
2001
+ border-bottom: 1px solid #ddd;
2002
+ padding-bottom: 15px;
2003
+ margin: 0 0 10px;
2004
+ }
2005
+
2006
+ #wpforms-entries-list .form-details .form-details-sub {
2007
+ color: #999;
2008
+ display: block;
2009
+ font-size: 10px;
2010
+ text-transform: uppercase;
2011
+ margin: 0 0 8px 0;
2012
+ }
2013
+
2014
+ #wpforms-entries-list .form-details .form-details-title {
2015
+ float: left;
2016
+ font-size: 18px;
2017
+ font-weight: 400;
2018
+ margin: 0;
2019
+ }
2020
+
2021
+ @media (max-width: 1199px) {
2022
+ #wpforms-entries-list .form-details .form-details-title {
2023
+ float: none;
2024
+ margin-bottom: 10px;
2025
+ }
2026
+ }
2027
+
2028
+ #wpforms-entries-list .form-details .form-selector {
2029
+ display: inline-block;
2030
+ position: relative;
2031
+ }
2032
+
2033
+ #wpforms-entries-list .form-details .form-selector .toggle {
2034
+ border-radius: 50%;
2035
+ color: #444;
2036
+ font-size: 16px;
2037
+ box-shadow: none;
2038
+ }
2039
+
2040
+ #wpforms-entries-list .form-details .form-selector .toggle:hover, #wpforms-entries-list .form-details .form-selector .toggle.active {
2041
+ background-color: #e3e3e3;
2042
+ outline: none;
2043
+ }
2044
+
2045
+ #wpforms-entries-list .form-details .form-selector .toggle:before {
2046
+ vertical-align: middle;
2047
+ }
2048
+
2049
+ #wpforms-entries-list .form-details .form-selector .form-list {
2050
+ display: none;
2051
+ background: #fff;
2052
+ border-radius: 3px;
2053
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
2054
+ position: absolute;
2055
+ top: 27px;
2056
+ left: -108px;
2057
+ width: 230px;
2058
+ padding: 10px 0;
2059
+ z-index: 9991;
2060
+ }
2061
+
2062
+ #wpforms-entries-list .form-details .form-selector .form-list:before {
2063
+ content: " ";
2064
+ position: absolute;
2065
+ top: -10px;
2066
+ left: 110px;
2067
+ width: 0;
2068
+ height: 0;
2069
+ border-style: solid;
2070
+ border-width: 0 8px 10px 8px;
2071
+ border-color: transparent transparent #fff transparent;
2072
+ }
2073
+
2074
+ #wpforms-entries-list .form-details .form-selector ul {
2075
+ max-height: 196px;
2076
+ overflow-x: hidden;
2077
+ padding: 0;
2078
+ margin: 0;
2079
+ }
2080
+
2081
+ #wpforms-entries-list .form-details .form-selector ul li {
2082
+ list-style: none;
2083
+ margin: 0;
2084
+ font-size: 13px;
2085
+ }
2086
+
2087
+ #wpforms-entries-list .form-details .form-selector ul li a {
2088
+ display: block;
2089
+ text-decoration: none;
2090
+ padding: 5px 15px;
2091
+ color: #444;
2092
+ }
2093
+
2094
+ #wpforms-entries-list .form-details .form-selector ul li a:hover {
2095
+ background-color: #f7f7f7;
2096
+ }
2097
+
2098
+ #wpforms-entries-list .form-details .form-details-actions {
2099
+ float: right;
2100
+ }
2101
+
2102
+ @media (max-width: 1199px) {
2103
+ #wpforms-entries-list .form-details .form-details-actions {
2104
+ float: none;
2105
+ }
2106
+ }
2107
+
2108
+ #wpforms-entries-list .form-details .form-details-actions a {
2109
+ text-decoration: none;
2110
+ display: inline-block;
2111
+ margin: 0 12px 0 0;
2112
+ }
2113
+
2114
+ #wpforms-entries-list .form-details .form-details-actions a:last-of-type {
2115
+ margin: 0;
2116
+ }
2117
+
2118
+ #wpforms-entries-list .form-details .form-details-actions a .dashicons {
2119
+ width: 16px;
2120
+ height: 16px;
2121
+ font-size: 16px;
2122
+ }
2123
+
2124
+ #wpforms-entries-list .search-box .wpforms-form-search-box-field {
2125
+ max-width: 180px;
2126
+ vertical-align: top;
2127
+ margin: 0 2px 0 0;
2128
+ }
2129
+
2130
+ #wpforms-entries-list .search-box .wpforms-form-search-box-comparison {
2131
+ max-width: 90px;
2132
+ vertical-align: top;
2133
+ margin: 0 2px 0 0;
2134
+ }
2135
+
2136
+ #wpforms-entries-list .search-box .wpforms-form-search-box-term {
2137
+ height: 28px;
2138
+ margin: 0 2px 0 0;
2139
+ }
2140
+
2141
+ #wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector {
2142
+ height: 28px;
2143
+ background-color: #fff;
2144
+ vertical-align: middle;
2145
+ max-width: 210px;
2146
+ }
2147
+
2148
+ #wpforms-entries-list .wpforms-filter-date button {
2149
+ margin: 1px 8px 0 0;
2150
+ vertical-align: top;
2151
+ }
2152
+
2153
+ #wpforms-entries-list .wp-list-table .column-indicators {
2154
+ width: 35px;
2155
+ text-align: center;
2156
+ }
2157
+
2158
+ #wpforms-entries-list .wp-list-table .column-indicators a:focus {
2159
+ -webkit-box-shadow: none;
2160
+ box-shadow: none;
2161
+ }
2162
+
2163
+ #wpforms-entries-list .wp-list-table .column-indicators .dashicons {
2164
+ width: 14px;
2165
+ height: 14px;
2166
+ font-size: 14px;
2167
+ margin-top: 3px;
2168
+ }
2169
+
2170
+ #wpforms-entries-list .wp-list-table .indicator-star .dashicons {
2171
+ margin-right: 6px;
2172
+ }
2173
+
2174
+ #wpforms-entries-list .wp-list-table .indicator-star {
2175
+ color: #e4e4e4;
2176
+ }
2177
+
2178
+ #wpforms-entries-list .wp-list-table .indicator-star:hover, #wpforms-entries-list .wp-list-table .indicator-star.unstar {
2179
+ color: #e27730;
2180
+ }
2181
+
2182
+ #wpforms-entries-list .wp-list-table .indicator-read {
2183
+ color: #9ede84;
2184
+ }
2185
+
2186
+ #wpforms-entries-list .wp-list-table .indicator-read:hover, #wpforms-entries-list .wp-list-table .indicator-read.unread {
2187
+ color: #e4e4e4;
2188
+ }
2189
+
2190
+ #wpforms-entries-list .wp-list-table .column-date {
2191
+ width: 150px;
2192
+ }
2193
+
2194
+ #wpforms-entries-list .wp-list-table .column-status {
2195
+ width: 120px;
2196
+ }
2197
+
2198
+ #wpforms-entries-list .wp-list-table .column-status img {
2199
+ display: inline-block;
2200
+ height: 12px;
2201
+ width: auto;
2202
+ margin: 0 0 0 3px;
2203
+ }
2204
+
2205
+ #wpforms-entries-list .wp-list-table .column-payment_total {
2206
+ width: 100px;
2207
+ }
2208
+
2209
+ #wpforms-entries-list .wp-list-table .column-actions {
2210
+ width: 100px;
2211
+ }
2212
+
2213
+ #wpforms-entries-list .wp-list-table .sep {
2214
+ color: #ddd;
2215
+ }
2216
+
2217
+ #wpforms-entries-list .wp-list-table .delete:hover {
2218
+ color: red;
2219
+ }
2220
+
2221
+ #wpforms-entries-list #wpforms-entries-table-edit-columns {
2222
+ float: right;
2223
+ color: #ccc;
2224
+ }
2225
+
2226
+ #wpforms-entries-list #wpforms-entries-table-edit-columns:hover {
2227
+ color: #666;
2228
+ }
2229
+
2230
+ #wpforms-welcome {
2231
+ border-top: 3px solid #e27730;
2232
+ color: #555;
2233
+ padding-top: 110px;
2234
+ }
2235
+
2236
+ @media (max-width: 767px) {
2237
+ #wpforms-welcome {
2238
+ padding-top: 64px;
2239
+ }
2240
+ }
2241
+
2242
+ #wpforms-welcome *,
2243
+ #wpforms-welcome *::before,
2244
+ #wpforms-welcome *::after {
2245
+ -webkit-box-sizing: border-box;
2246
+ -moz-box-sizing: border-box;
2247
+ box-sizing: border-box;
2248
+ }
2249
+
2250
+ #wpforms-welcome .container {
2251
+ margin: 0 auto;
2252
+ max-width: 720px;
2253
+ padding: 0;
2254
+ }
2255
+
2256
+ #wpforms-welcome .block {
2257
+ padding: 40px;
2258
+ }
2259
+
2260
+ @media (max-width: 767px) {
2261
+ #wpforms-welcome .block {
2262
+ padding: 20px;
2263
+ }
2264
+ }
2265
+
2266
+ #wpforms-welcome img {
2267
+ max-width: 100%;
2268
+ height: auto;
2269
+ }
2270
+
2271
+ #wpforms-welcome h1 {
2272
+ color: #222;
2273
+ font-size: 24px;
2274
+ text-align: center;
2275
+ margin: 0 0 16px 0;
2276
+ }
2277
+
2278
+ #wpforms-welcome h5 {
2279
+ color: #222;
2280
+ font-size: 16px;
2281
+ margin: 0 0 8px 0;
2282
+ }
2283
+
2284
+ #wpforms-welcome h6 {
2285
+ font-size: 16px;
2286
+ font-weight: 400;
2287
+ line-height: 1.6;
2288
+ text-align: center;
2289
+ margin: 0;
2290
+ }
2291
+
2292
+ #wpforms-welcome p {
2293
+ font-size: 14px;
2294
+ margin: 0 0 20px 0;
2295
+ }
2296
+
2297
+ #wpforms-welcome .button-wrap {
2298
+ max-width: 590px;
2299
+ margin: 0 auto 0 auto;
2300
+ }
2301
+
2302
+ #wpforms-welcome .button-wrap .left {
2303
+ float: left;
2304
+ width: 50%;
2305
+ padding-right: 20px;
2306
+ }
2307
+
2308
+ @media (max-width: 767px) {
2309
+ #wpforms-welcome .button-wrap .left {
2310
+ float: none;
2311
+ width: 100%;
2312
+ padding: 0;
2313
+ margin-bottom: 20px;
2314
+ }
2315
+ }
2316
+
2317
+ #wpforms-welcome .button-wrap .right {
2318
+ float: right;
2319
+ width: 50%;
2320
+ padding-left: 20px;
2321
+ }
2322
+
2323
+ @media (max-width: 767px) {
2324
+ #wpforms-welcome .button-wrap .right {
2325
+ float: none;
2326
+ width: 100%;
2327
+ padding: 0;
2328
+ }
2329
+ }
2330
+
2331
+ #wpforms-welcome .intro {
2332
+ background-color: #fff;
2333
+ border: 2px solid #e1e1e1;
2334
+ border-radius: 2px;
2335
+ margin-bottom: 30px;
2336
+ position: relative;
2337
+ padding-top: 40px;
2338
+ }
2339
+
2340
+ #wpforms-welcome .intro .sullie {
2341
+ background-color: #fff;
2342
+ border: 2px solid #e1e1e1;
2343
+ border-radius: 50%;
2344
+ height: 110px;
2345
+ width: 110px;
2346
+ padding: 18px 14px 0 14px;
2347
+ position: absolute;
2348
+ top: -58px;
2349
+ left: 50%;
2350
+ margin-left: -55px;
2351
+ }
2352
+
2353
+ #wpforms-welcome .intro .video-thumbnail {
2354
+ display: block;
2355
+ margin: 0 auto;
2356
+ }
2357
+
2358
+ #wpforms-welcome .intro .button-wrap {
2359
+ margin-top: 25px;
2360
+ }
2361
+
2362
+ #wpforms-welcome .features {
2363
+ background-color: #fff;
2364
+ border: 2px solid #e1e1e1;
2365
+ border-bottom: 0;
2366
+ border-radius: 2px 2px 0 0;
2367
+ position: relative;
2368
+ padding-top: 20px;
2369
+ padding-bottom: 20px;
2370
+ }
2371
+
2372
+ #wpforms-welcome .features .feature-list {
2373
+ margin-top: 60px;
2374
+ }
2375
+
2376
+ #wpforms-welcome .features .feature-block {
2377
+ float: left;
2378
+ width: 50%;
2379
+ padding-bottom: 35px;
2380
+ overflow: auto;
2381
+ }
2382
+
2383
+ @media (max-width: 767px) {
2384
+ #wpforms-welcome .features .feature-block {
2385
+ float: none;
2386
+ width: 100%;
2387
+ }
2388
+ }
2389
+
2390
+ #wpforms-welcome .features .feature-block.first {
2391
+ padding-right: 20px;
2392
+ clear: both;
2393
+ }
2394
+
2395
+ @media (max-width: 767px) {
2396
+ #wpforms-welcome .features .feature-block.first {
2397
+ padding-right: 0;
2398
+ }
2399
+ }
2400
+
2401
+ #wpforms-welcome .features .feature-block.last {
2402
+ padding-left: 20px;
2403
+ }
2404
+
2405
+ @media (max-width: 767px) {
2406
+ #wpforms-welcome .features .feature-block.last {
2407
+ padding-left: 0;
2408
+ }
2409
+ }
2410
+
2411
+ #wpforms-welcome .features .feature-block img {
2412
+ float: left;
2413
+ max-width: 46px;
2414
+ }
2415
+
2416
+ #wpforms-welcome .features .feature-block h5 {
2417
+ margin-left: 68px;
2418
+ }
2419
+
2420
+ #wpforms-welcome .features .feature-block p {
2421
+ margin: 0;
2422
+ margin-left: 68px;
2423
+ }
2424
+
2425
+ #wpforms-welcome .features .button-wrap {
2426
+ margin-top: 25px;
2427
+ text-align: center;
2428
+ }
2429
+
2430
+ #wpforms-welcome .upgrade-cta {
2431
+ background-color: #000;
2432
+ border: 2px solid #e1e1e1;
2433
+ border-top: 0;
2434
+ border-bottom: 0;
2435
+ color: #fff;
2436
+ }
2437
+
2438
+ #wpforms-welcome .upgrade-cta h2 {
2439
+ color: #fff;
2440
+ font-size: 20px;
2441
+ margin: 0 0 30px 0;
2442
+ }
2443
+
2444
+ #wpforms-welcome .upgrade-cta ul {
2445
+ display: -ms-flex;
2446
+ display: -webkit-flex;
2447
+ display: flex;
2448
+ -webkit-flex-wrap: wrap;
2449
+ flex-wrap: wrap;
2450
+ font-size: 15px;
2451
+ margin: 0;
2452
+ padding: 0;
2453
+ }
2454
+
2455
+ #wpforms-welcome .upgrade-cta ul li {
2456
+ display: block;
2457
+ width: 50%;
2458
+ margin: 0 0 8px 0;
2459
+ padding: 0;
2460
+ }
2461
+
2462
+ #wpforms-welcome .upgrade-cta ul li .dashicons {
2463
+ color: #2a9b39;
2464
+ margin-right: 5px;
2465
+ }
2466
+
2467
+ #wpforms-welcome .upgrade-cta .left {
2468
+ float: left;
2469
+ width: 66.666666%;
2470
+ padding-right: 20px;
2471
+ }
2472
+
2473
+ @media (max-width: 767px) {
2474
+ #wpforms-welcome .upgrade-cta .left {
2475
+ float: none;
2476
+ width: 100%;
2477
+ padding-right: 0;
2478
+ margin-bottom: 20px;
2479
+ }
2480
+ }
2481
+
2482
+ #wpforms-welcome .upgrade-cta .right {
2483
+ float: right;
2484
+ width: 33.333333%;
2485
+ padding-left: 20px;
2486
+ text-align: center;
2487
+ }
2488
+
2489
+ @media (max-width: 767px) {
2490
+ #wpforms-welcome .upgrade-cta .right {
2491
+ float: none;
2492
+ width: 100%;
2493
+ padding-left: 0;
2494
+ }
2495
+ }
2496
+
2497
+ #wpforms-welcome .upgrade-cta .right h2 {
2498
+ text-align: center;
2499
+ margin: 0;
2500
+ }
2501
+
2502
+ #wpforms-welcome .upgrade-cta .right h2 span {
2503
+ display: inline-block;
2504
+ border-bottom: 1px solid #555;
2505
+ padding: 0 15px 12px;
2506
+ }
2507
+
2508
+ #wpforms-welcome .upgrade-cta .right .price {
2509
+ padding: 26px 0;
2510
+ }
2511
+
2512
+ #wpforms-welcome .upgrade-cta .right .price .amount {
2513
+ font-size: 48px;
2514
+ font-weight: 600;
2515
+ position: relative;
2516
+ display: inline-block;
2517
+ }
2518
+
2519
+ #wpforms-welcome .upgrade-cta .right .price .amount:before {
2520
+ content: '$';
2521
+ position: absolute;
2522
+ top: -8px;
2523
+ left: -16px;
2524
+ font-size: 18px;
2525
+ }
2526
+
2527
+ #wpforms-welcome .upgrade-cta .right .price .term {
2528
+ font-size: 12px;
2529
+ display: inline-block;
2530
+ }
2531
+
2532
+ #wpforms-welcome .testimonials {
2533
+ background-color: #fff;
2534
+ border: 2px solid #e1e1e1;
2535
+ border-top: 0;
2536
+ padding: 20px 0;
2537
+ }
2538
+
2539
+ #wpforms-welcome .testimonials .testimonial-block {
2540
+ margin: 50px 0 0 0;
2541
+ }
2542
+
2543
+ #wpforms-welcome .testimonials .testimonial-block img {
2544
+ border-radius: 50%;
2545
+ float: left;
2546
+ max-width: 100px;
2547
+ box-shadow: 0 0 18px rgba(0, 0, 0, 0.2);
2548
+ }
2549
+
2550
+ @media (max-width: 767px) {
2551
+ #wpforms-welcome .testimonials .testimonial-block img {
2552
+ width: 65px;
2553
+ }
2554
+ }
2555
+
2556
+ #wpforms-welcome .testimonials .testimonial-block p {
2557
+ font-size: 14px;
2558
+ margin: 0 0 12px 140px;
2559
+ }
2560
+
2561
+ @media (max-width: 767px) {
2562
+ #wpforms-welcome .testimonials .testimonial-block p {
2563
+ margin-left: 100px;
2564
+ }
2565
+ }
2566
+
2567
+ #wpforms-welcome .testimonials .testimonial-block p:last-of-type {
2568
+ margin-bottom: 0;
2569
+ }
2570
+
2571
+ #wpforms-welcome .footer {
2572
+ background-color: #f1f1f1;
2573
+ border: 2px solid #e1e1e1;
2574
+ border-top: 0;
2575
+ border-radius: 0 0 2px 2px;
2576
+ }
2577
+
2578
+ #wpforms-welcome.pro .features {
2579
+ border: 2px solid #e1e1e1;
2580
+ margin-bottom: 30px;
2581
+ }
2582
+
2583
+ #wpforms-welcome.pro .upgrade,
2584
+ #wpforms-welcome.pro .footer {
2585
+ display: none;
2586
+ }
2587
+
2588
+ #wpforms-welcome.pro .testimonials {
2589
+ border: 2px solid #e1e1e1;
2590
+ }
2591
+
2592
+ .dashboard_page_wpforms-getting-started .video-container {
2593
+ border: 2px solid #e1e1e1;
2594
+ }
2595
+
2596
+ .dashboard_page_wpforms-getting-started #wpfooter,
2597
+ .dashboard_page_wpforms-getting-started div.notice {
2598
+ display: none !important;
2599
+ }
2600
+
2601
+ #wpforms-admin-addons *,
2602
+ #wpforms-admin-addons *::before,
2603
+ #wpforms-admin-addons *::after {
2604
+ -webkit-box-sizing: border-box;
2605
+ -moz-box-sizing: border-box;
2606
+ box-sizing: border-box;
2607
+ }
2608
+
2609
+ #wpforms-admin-addons .addons-container {
2610
+ margin-left: -20px;
2611
+ margin-right: -20px;
2612
+ }
2613
+
2614
+ #wpforms-admin-addons .unlock-msg {
2615
+ padding: 0 20px;
2616
+ margin-top: -20px;
2617
+ }
2618
+
2619
+ #wpforms-admin-addons #wpforms-admin-addons-search {
2620
+ background-color: #fff;
2621
+ border: 1px solid #ddd;
2622
+ border-radius: 3px;
2623
+ box-shadow: none;
2624
+ color: #333;
2625
+ display: inline-block;
2626
+ vertical-align: middle;
2627
+ padding: 7px 12px;
2628
+ margin: -3px 10px 0 0;
2629
+ width: 200px;
2630
+ min-height: 35px;
2631
+ float: right;
2632
+ }
2633
+
2634
+ #wpforms-admin-addons #wpforms-admin-addons-search:focus {
2635
+ border-color: #bbb;
2636
+ }
2637
+
2638
+ #wpforms-admin-addons .addon-container {
2639
+ padding: 0 20px;
2640
+ float: left;
2641
+ width: 33.333333%;
2642
+ }
2643
+
2644
+ @media (max-width: 1249px) {
2645
+ #wpforms-admin-addons .addon-container {
2646
+ width: 50%;
2647
+ }
2648
+ }
2649
+
2650
+ @media (max-width: 767px) {
2651
+ #wpforms-admin-addons .addon-container {
2652
+ width: 100%;
2653
+ }
2654
+ }
2655
+
2656
+ #wpforms-admin-addons h4 {
2657
+ font-size: 17px;
2658
+ font-weight: 700;
2659
+ }
2660
+
2661
+ #wpforms-admin-addons .addon-item {
2662
+ background-color: #fff;
2663
+ border: 1px solid #ddd;
2664
+ border-radius: 3px;
2665
+ margin: 0 0 40px 0;
2666
+ }
2667
+
2668
+ @media (max-width: 767px) {
2669
+ #wpforms-admin-addons .addon-item {
2670
+ margin: 0 0;
2671
+ }
2672
+ }
2673
+
2674
+ #wpforms-admin-addons .addon-item img {
2675
+ border: 1px solid #eee;
2676
+ float: left;
2677
+ max-width: 75px;
2678
+ }
2679
+
2680
+ #wpforms-admin-addons .addon-item h5 {
2681
+ margin: 0 0 10px 100px;
2682
+ font-size: 16px;
2683
+ }
2684
+
2685
+ #wpforms-admin-addons .addon-item p {
2686
+ margin: 0 0 0 100px;
2687
+ }
2688
+
2689
+ #wpforms-admin-addons .addon-item .details {
2690
+ padding: 30px 20px;
2691
+ }
2692
+
2693
+ #wpforms-admin-addons .addon-item .actions {
2694
+ background-color: #f7f7f7;
2695
+ border-top: 1px solid #ddd;
2696
+ padding: 20px;
2697
+ position: relative;
2698
+ }
2699
+
2700
+ #wpforms-admin-addons .addon-item .actions .msg {
2701
+ background-color: #f7f7f7;
2702
+ position: absolute;
2703
+ text-align: center;
2704
+ font-weight: 600;
2705
+ top: 0;
2706
+ left: 0;
2707
+ height: 100%;
2708
+ width: 100%;
2709
+ z-index: 99;
2710
+ padding: 20px;
2711
+ display: -webkit-box;
2712
+ display: -moz-box;
2713
+ display: -ms-flexbox;
2714
+ display: -webkit-flex;
2715
+ display: flex;
2716
+ -webkit-align-items: center;
2717
+ -ms-align-items: center;
2718
+ align-items: center;
2719
+ justify-content: center;
2720
+ }
2721
+
2722
+ #wpforms-admin-addons .addon-item .actions .msg.success {
2723
+ color: #2a9b39;
2724
+ }
2725
+
2726
+ #wpforms-admin-addons .addon-item .actions .msg.error {
2727
+ color: red;
2728
+ }
2729
+
2730
+ #wpforms-admin-addons .addon-item .status {
2731
+ float: left;
2732
+ padding-top: 8px;
2733
+ }
2734
+
2735
+ #wpforms-admin-addons .addon-item .status .status-inactive {
2736
+ color: red;
2737
+ }
2738
+
2739
+ #wpforms-admin-addons .addon-item .status .status-download {
2740
+ color: #666;
2741
+ }
2742
+
2743
+ #wpforms-admin-addons .addon-item .status .status-active {
2744
+ color: #2a9b39;
2745
+ }
2746
+
2747
+ #wpforms-admin-addons .addon-item .upgrade-button {
2748
+ text-align: center;
2749
+ }
2750
+
2751
+ #wpforms-admin-addons .addon-item .upgrade-button a {
2752
+ font-weight: 600;
2753
+ width: 140px;
2754
+ text-align: center;
2755
+ padding: 8px 5px;
2756
+ }
2757
+
2758
+ #wpforms-admin-addons .addon-item .action-button {
2759
+ float: right;
2760
+ }
2761
+
2762
+ #wpforms-admin-addons .addon-item .action-button button {
2763
+ background: none;
2764
+ border: 1px solid #ddd;
2765
+ border-radius: 3px;
2766
+ box-shadow: none;
2767
+ cursor: pointer;
2768
+ font-weight: 600;
2769
+ width: 140px;
2770
+ text-align: center;
2771
+ padding: 8px 5px;
2772
+ }
2773
+
2774
+ #wpforms-admin-addons .addon-item .action-button button:hover, #wpforms-admin-addons .addon-item .action-button button.loading {
2775
+ background-color: #e9e9e9;
2776
+ }
2777
+
2778
+ #wpforms-admin-addons .addon-item .action-button button .fa {
2779
+ margin-right: 8px;
2780
+ }
2781
+
2782
+ #wpforms-admin-addons .addon-item .action-button button.status-active .fa {
2783
+ color: #2a9b39;
2784
+ }
2785
+
2786
+ #wpforms-admin-addons .addon-item .action-button button.status-active .fa {
2787
+ color: #2a9b39;
2788
+ }
2789
+
2790
+ #wpforms-admin-addons .addon-item .action-button button.status-inactive .fa {
2791
+ color: red;
2792
+ }
2793
+
2794
+ #wpforms-admin-addons .addon-item .action-button button.status-download .fa {
2795
+ color: #999;
2796
+ }
2797
+
2798
+ #wpforms-admin-addons .addon-item .action-button button.loading .fa {
2799
+ color: #666;
2800
+ }
2801
+
2802
+ .wpforms-admin-settings *,
2803
+ .wpforms-admin-settings *::before,
2804
+ .wpforms-admin-settings *::after {
2805
+ -webkit-box-sizing: border-box;
2806
+ -moz-box-sizing: border-box;
2807
+ box-sizing: border-box;
2808
+ }
2809
+
2810
+ .wpforms-admin-settings .wpforms-setting-row {
2811
+ border-bottom: 1px solid #e4e4e4;
2812
+ padding: 30px 0;
2813
+ font-size: 14px;
2814
+ line-height: 1.3;
2815
+ }
2816
+
2817
+ .wpforms-admin-settings .wpforms-setting-row:first-of-type {
2818
+ padding-top: 10px !important;
2819
+ }
2820
+
2821
+ @media (max-width: 781px) {
2822
+ .wpforms-admin-settings .wpforms-setting-row {
2823
+ padding: 20px 0;
2824
+ }
2825
+ }
2826
+
2827
+ .wpforms-admin-settings .wpforms-setting-row.section-heading {
2828
+ padding: 20px 0;
2829
+ }
2830
+
2831
+ .wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4 {
2832
+ margin: 0;
2833
+ }
2834
+
2835
+ .wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field {
2836
+ margin: 0;
2837
+ max-width: 1000px;
2838
+ }
2839
+
2840
+ .wpforms-admin-settings .wpforms-setting-row.tools p,
2841
+ .wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type {
2842
+ margin: 0 0 16px 0;
2843
+ }
2844
+
2845
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox] {
2846
+ float: left;
2847
+ margin: 1px 0 0 0;
2848
+ }
2849
+
2850
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc {
2851
+ margin: 0 0 0 30px;
2852
+ }
2853
+
2854
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label {
2855
+ padding-top: 8px;
2856
+ }
2857
+
2858
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type {
2859
+ margin-top: 12px;
2860
+ }
2861
+
2862
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label {
2863
+ padding-top: 8px;
2864
+ }
2865
+
2866
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label {
2867
+ padding-top: 8px;
2868
+ }
2869
+
2870
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio] {
2871
+ margin: -3px 10px 0 0;
2872
+ }
2873
+
2874
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label {
2875
+ margin-right: 30px;
2876
+ display: inline-block;
2877
+ }
2878
+
2879
+ .wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before {
2880
+ content: " ";
2881
+ display: block;
2882
+ width: 155px;
2883
+ height: 180px;
2884
+ margin: 0 0 10px 0;
2885
+ }
2886
+
2887
+ .wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before {
2888
+ background: url(../images/settings-email-html.png) center center;
2889
+ }
2890
+
2891
+ .wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before {
2892
+ background: url(../images/settings-email-plaintext.png) center center;
2893
+ }
2894
+
2895
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img {
2896
+ display: block;
2897
+ margin: 0 0 20px 0;
2898
+ max-width: 400px;
2899
+ }
2900
+
2901
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker {
2902
+ padding-left: 40px;
2903
+ }
2904
+
2905
+ .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch {
2906
+ top: 7px;
2907
+ left: 7px;
2908
+ height: 21px;
2909
+ width: 21px;
2910
+ border-radius: 2px;
2911
+ }
2912
+
2913
+ .wpforms-admin-settings .wpforms-setting-row h4 {
2914
+ font-size: 20px;
2915
+ font-weight: 700;
2916
+ margin: 0 0 6px 0;
2917
+ }
2918
+
2919
+ .wpforms-admin-settings .wpforms-setting-row h3 {
2920
+ font-size: 24px;
2921
+ font-weight: 600;
2922
+ margin: 0 0 20px 0;
2923
+ }
2924
+
2925
+ .wpforms-admin-settings .wpforms-setting-row p {
2926
+ margin: 12px 0 0;
2927
+ font-size: 14px;
2928
+ line-height: 1.3;
2929
+ }
2930
+
2931
+ .wpforms-admin-settings .wpforms-setting-row p:first-of-type {
2932
+ margin: 8px 0 0;
2933
+ }
2934
+
2935
+ .wpforms-admin-settings .wpforms-setting-row p.desc {
2936
+ font-style: italic;
2937
+ color: #666;
2938
+ }
2939
+
2940
+ .wpforms-admin-settings .wpforms-setting-row input[type=text],
2941
+ .wpforms-admin-settings .wpforms-setting-row input[type=password] {
2942
+ background-color: #fff;
2943
+ border: 1px solid #ddd;
2944
+ border-radius: 3px;
2945
+ box-shadow: none;
2946
+ color: #333;
2947
+ display: inline-block;
2948
+ vertical-align: middle;
2949
+ padding: 7px 12px;
2950
+ margin: 0 10px 0 0;
2951
+ width: 400px;
2952
+ min-height: 35px;
2953
+ }
2954
+
2955
+ @media (max-width: 959px) {
2956
+ .wpforms-admin-settings .wpforms-setting-row input[type=text],
2957
+ .wpforms-admin-settings .wpforms-setting-row input[type=password] {
2958
+ width: 300px;
2959
+ }
2960
+ }
2961
+
2962
+ .wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,
2963
+ .wpforms-admin-settings .wpforms-setting-row input[type=password]:focus {
2964
+ border-color: #bbb;
2965
+ }
2966
+
2967
+ .wpforms-admin-settings .wpforms-setting-row button {
2968
+ margin-right: 10px;
2969
+ }
2970
+
2971
+ .wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap {
2972
+ display: block;
2973
+ max-width: 400px;
2974
+ }
2975
+
2976
+ @media (max-width: 959px) {
2977
+ .wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap {
2978
+ width: 300px;
2979
+ }
2980
+ }
2981
+
2982
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar {
2983
+ background: #fff;
2984
+ border: 1px solid #e27730;
2985
+ height: 30px;
2986
+ width: 100%;
2987
+ position: relative;
2988
+ border-radius: 3px;
2989
+ margin: 0 0 16px 0;
2990
+ }
2991
+
2992
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar.complete {
2993
+ border: 1px solid #2a9b39;
2994
+ }
2995
+
2996
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar {
2997
+ background-color: #2a9b39;
2998
+ }
2999
+
3000
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after {
3001
+ content: none;
3002
+ display: none;
3003
+ }
3004
+
3005
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar .bar {
3006
+ display: block;
3007
+ background: #e27730;
3008
+ height: 100%;
3009
+ left: 0;
3010
+ position: absolute;
3011
+ -webkit-transition: width 0.5s ease-in-out;
3012
+ -moz-transition: width 0.5s ease-in-out;
3013
+ -o-transition: width 0.5s ease-in-out;
3014
+ transition: width 0.5s ease-in-out;
3015
+ }
3016
+
3017
+ @-webkit-keyframes progress {
3018
+ to {
3019
+ background-position: 60px 0;
3020
+ }
3021
+ }
3022
+
3023
+ @-moz-keyframes progress {
3024
+ to {
3025
+ background-position: 60px 0;
3026
+ }
3027
+ }
3028
+
3029
+ @keyframes progress {
3030
+ to {
3031
+ background-position: 60px 0;
3032
+ }
3033
+ }
3034
+
3035
+ .wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after {
3036
+ content: '';
3037
+ display: block;
3038
+ position: absolute;
3039
+ top: 0;
3040
+ left: 0;
3041
+ width: 100%;
3042
+ height: 100%;
3043
+ -webkit-animation: progress 1s linear infinite;
3044
+ -moz-animation: progress 1s linear infinite;
3045
+ animation: progress 1s linear infinite;
3046
+ background-repeat: repeat-x;
3047
+ background-size: 60px 60px;
3048
+ background-image: -webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
3049
+ background-image: linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
3050
+ }
3051
+
3052
+ .wpforms-admin-settings .wpforms-setting-label {
3053
+ display: block;
3054
+ float: left;
3055
+ width: 200px;
3056
+ padding: 0;
3057
+ }
3058
+
3059
+ @media (max-width: 781px) {
3060
+ .wpforms-admin-settings .wpforms-setting-label {
3061
+ float: none;
3062
+ width: 100%;
3063
+ padding-bottom: 15px;
3064
+ }
3065
+ }
3066
+
3067
+ .wpforms-admin-settings .wpforms-setting-label label {
3068
+ display: block;
3069
+ font-weight: 600;
3070
+ }
3071
+
3072
+ .wpforms-admin-settings .wpforms-setting-field {
3073
+ display: block;
3074
+ margin: 0 0 0 200px;
3075
+ max-width: 800px;
3076
+ }
3077
+
3078
+ @media (max-width: 781px) {
3079
+ .wpforms-admin-settings .wpforms-setting-field {
3080
+ margin: 0;
3081
+ }
3082
+ }
3083
+
3084
+ .wpforms-admin-settings p.submit {
3085
+ margin: 0;
3086
+ padding: 25px 0;
3087
+ }
3088
+
3089
+ .wpforms-admin-settings .captcha-addon-notice {
3090
+ background-color: #fff;
3091
+ border: 1px solid #e27730;
3092
+ border-radius: 3px;
3093
+ padding: 30px;
3094
+ max-width: 1000px;
3095
+ margin: 20px 0 0 0;
3096
+ }
3097
+
3098
+ .wpforms-admin-settings .captcha-addon-notice img {
3099
+ float: left;
3100
+ max-width: 90px;
3101
+ }
3102
+
3103
+ .wpforms-admin-settings .captcha-addon-notice h5 {
3104
+ margin: 0 0 10px 120px;
3105
+ font-size: 18px;
3106
+ }
3107
+
3108
+ .wpforms-admin-settings .captcha-addon-notice p {
3109
+ margin: 0 0 0 120px;
3110
+ font-size: 14px;
3111
+ line-height: 1.3;
3112
+ }
3113
+
3114
+ .wpforms-admin-settings .info-area,
3115
+ .wpforms-admin-settings .pre-error {
3116
+ display: block;
3117
+ width: 100%;
3118
+ max-width: 1000px;
3119
+ height: 450px;
3120
+ font-family: Menlo,Monaco,monospace;
3121
+ font-size: 12px;
3122
+ background: #fff;
3123
+ box-shadow: none;
3124
+ border: 1px solid #ddd;
3125
+ white-space: pre;
3126
+ overflow: auto;
3127
+ padding: 20px;
3128
+ }
3129
+
3130
+ .wpforms-admin-settings .pre-error {
3131
+ height: auto;
3132
+ max-height: 250px;
3133
+ margin-bottom: 20px;
3134
+ }
3135
+
3136
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider {
3137
+ border-bottom: 1px solid #ddd;
3138
+ padding: 30px 0;
3139
+ }
3140
+
3141
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider.focus-out {
3142
+ opacity: 0.4;
3143
+ }
3144
+
3145
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-header {
3146
+ cursor: pointer;
3147
+ max-width: 1000px;
3148
+ }
3149
+
3150
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo {
3151
+ float: left;
3152
+ position: relative;
3153
+ }
3154
+
3155
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo .fa {
3156
+ position: absolute;
3157
+ top: 50%;
3158
+ margin: -9px 0 0 0;
3159
+ left: 10px;
3160
+ color: #666;
3161
+ font-size: 18px;
3162
+ }
3163
+
3164
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo img {
3165
+ border: 1px solid #ddd;
3166
+ max-width: 90px;
3167
+ display: block;
3168
+ margin: 0 0 0 40px;
3169
+ }
3170
+
3171
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info {
3172
+ margin: 0 0 0 160px;
3173
+ position: relative;
3174
+ padding: 20px 0 0;
3175
+ }
3176
+
3177
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info h3 {
3178
+ margin: 0 0 10px 0;
3179
+ font-size: 20px;
3180
+ font-weight: 600;
3181
+ }
3182
+
3183
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info p {
3184
+ margin: 0;
3185
+ font-size: 14px;
3186
+ }
3187
+
3188
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator {
3189
+ color: #83c11f;
3190
+ width: 135px;
3191
+ border: 1px solid #83c11f;
3192
+ border-radius: 4px;
3193
+ padding: 8px 14px;
3194
+ font-size: 16px;
3195
+ position: absolute;
3196
+ top: 28px;
3197
+ right: 0;
3198
+ display: none;
3199
+ }
3200
+
3201
+ .wpforms-admin-settings #wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator {
3202
+ display: block;
3203
+ }
3204
+
3205
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts {
3206
+ margin: 0 0 0 160px;
3207
+ display: none;
3208
+ max-width: 840px;
3209
+ }
3210
+
3211
+ .wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts {
3212
+ display: block;
3213
+ }
3214
+
3215
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul {
3216
+ padding: 0;
3217
+ margin: 0;
3218
+ }
3219
+
3220
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li {
3221
+ border-bottom: 1px solid #ddd;
3222
+ margin: 0;
3223
+ padding: 10px 0;
3224
+ font-size: 14px;
3225
+ }
3226
+
3227
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type {
3228
+ border-top: 1px solid #ddd;
3229
+ }
3230
+
3231
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type {
3232
+ margin-bottom: 16px;
3233
+ }
3234
+
3235
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label {
3236
+ float: left;
3237
+ width: 50%;
3238
+ }
3239
+
3240
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date {
3241
+ color: #999;
3242
+ float: left;
3243
+ width: 35%;
3244
+ }
3245
+
3246
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove {
3247
+ float: right;
3248
+ width: 15%;
3249
+ text-align: right;
3250
+ }
3251
+
3252
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect {
3253
+ display: none;
3254
+ padding: 20px;
3255
+ background-color: #ebf3fb;
3256
+ border: 1px solid #0e6cad;
3257
+ }
3258
+
3259
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text] {
3260
+ background-color: #fff;
3261
+ border: 1px solid #ddd;
3262
+ border-radius: 3px;
3263
+ box-shadow: none;
3264
+ color: #333;
3265
+ display: block;
3266
+ padding: 7px 12px;
3267
+ margin: 5px 0;
3268
+ width: 400px;
3269
+ min-height: 35px;
3270
+ }
3271
+
3272
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus {
3273
+ border-color: #bbb;
3274
+ }
3275
+
3276
+ .wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect {
3277
+ display: block;
3278
+ }
3279
+
3280
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa {
3281
+ display: none;
3282
+ }
3283
+
3284
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,
3285
+ .wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts p {
3286
+ margin: 0 0 15px 0;
3287
+ font-size: 14px;
3288
+ }
3289
+
3290
+ .wpforms-admin-settings .checkbox-multiselect-columns {
3291
+ max-width: 600px;
3292
+ position: relative;
3293
+ }
3294
+
3295
+ .wpforms-admin-settings .checkbox-multiselect-columns:after {
3296
+ content: ".";
3297
+ display: block;
3298
+ height: 0;
3299
+ line-height: 0;
3300
+ font-size: 0;
3301
+ clear: both;
3302
+ min-height: 0;
3303
+ visibility: hidden;
3304
+ }
3305
+
3306
+ .wpforms-admin-settings .checkbox-multiselect-columns:before {
3307
+ content: "\f0ec";
3308
+ color: #999;
3309
+ font: normal normal normal 20px/1 FontAwesome;
3310
+ text-rendering: auto;
3311
+ -webkit-font-smoothing: antialiased;
3312
+ -moz-osx-font-smoothing: grayscale;
3313
+ position: absolute;
3314
+ top: 130px;
3315
+ left: 50%;
3316
+ margin: 0 0 0 -10px;
3317
+ }
3318
+
3319
+ .wpforms-admin-settings .checkbox-multiselect-columns .header {
3320
+ font-weight: 600;
3321
+ font-size: 13px;
3322
+ margin: 0;
3323
+ padding: 0 0 5px 0;
3324
+ text-align: center;
3325
+ }
3326
+
3327
+ .wpforms-admin-settings .checkbox-multiselect-columns .first-column,
3328
+ .wpforms-admin-settings .checkbox-multiselect-columns .second-column {
3329
+ width: 45%;
3330
+ float: left;
3331
+ }
3332
+
3333
+ .wpforms-admin-settings .checkbox-multiselect-columns .second-column {
3334
+ float: right;
3335
+ }
3336
+
3337
+ .wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li {
3338
+ padding: 10px;
3339
+ }
3340
+
3341
+ .wpforms-admin-settings .checkbox-multiselect-columns ul {
3342
+ background-color: #fff;
3343
+ border: 1px solid #ddd;
3344
+ border-radius: 3px;
3345
+ position: relative;
3346
+ height: 250px;
3347
+ padding: 0;
3348
+ overflow-y: auto;
3349
+ margin: 0;
3350
+ list-style-type: none;
3351
+ }
3352
+
3353
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li {
3354
+ border-bottom: 1px #eee solid;
3355
+ margin: 0;
3356
+ font-size: 14px;
3357
+ }
3358
+
3359
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li label {
3360
+ display: block;
3361
+ padding: 10px 10px 10px 32px;
3362
+ position: relative;
3363
+ vertical-align: baseline;
3364
+ }
3365
+
3366
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover {
3367
+ background-color: #e27730;
3368
+ color: #fff;
3369
+ }
3370
+
3371
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li label:before {
3372
+ content: "\f0c8";
3373
+ color: #ddd;
3374
+ font: normal normal normal 16px/1 FontAwesome;
3375
+ text-rendering: auto;
3376
+ -webkit-font-smoothing: antialiased;
3377
+ -moz-osx-font-smoothing: grayscale;
3378
+ position: absolute;
3379
+ top: 12px;
3380
+ left: 10px;
3381
+ }
3382
+
3383
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked {
3384
+ opacity: 0.6;
3385
+ }
3386
+
3387
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before {
3388
+ content: "\f14a";
3389
+ color: #2a9b39;
3390
+ }
3391
+
3392
+ .wpforms-admin-settings .checkbox-multiselect-columns ul li input {
3393
+ display: none;
3394
+ }
3395
+
3396
+ .wpforms-admin-settings .checkbox-multiselect-columns .all {
3397
+ color: #999;
3398
+ display: inline-block;
3399
+ font-size: 13px;
3400
+ margin: 10px 0 0;
3401
+ }
3402
+
3403
+ .wpforms-admin-settings #wpforms-importer-analyze {
3404
+ display: none;
3405
+ }
3406
+
3407
+ .wpforms-admin-settings #wpforms-importer-analyze .process-count,
3408
+ .wpforms-admin-settings #wpforms-importer-analyze p {
3409
+ font-size: 14px;
3410
+ }
3411
+
3412
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade {
3413
+ display: none;
3414
+ font-size: 14px;
3415
+ }
3416
+
3417
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade h5 {
3418
+ font-size: 18px;
3419
+ font-weight: 600;
3420
+ padding: 0;
3421
+ margin: 30px 0 20px 0;
3422
+ }
3423
+
3424
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade hr {
3425
+ border: none;
3426
+ border-bottom: 1px solid #e4e4e4;
3427
+ margin: 40px 0;
3428
+ }
3429
+
3430
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn {
3431
+ margin-right: 10px;
3432
+ }
3433
+
3434
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li {
3435
+ list-style-type: disc;
3436
+ margin-left: 14px;
3437
+ }
3438
+
3439
+ .wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form {
3440
+ list-style-type: none;
3441
+ margin-left: 0;
3442
+ font-weight: 700;
3443
+ }
3444
+
3445
+ .wpforms-admin-settings #wpforms-importer-process {
3446
+ display: none;
3447
+ }
3448
+
3449
+ .wpforms-admin-settings #wpforms-importer-process .process-count,
3450
+ .wpforms-admin-settings #wpforms-importer-process .process-completed {
3451
+ font-size: 14px;
3452
+ }
3453
+
3454
+ .wpforms-admin-settings #wpforms-importer-process .process-completed {
3455
+ display: none;
3456
+ }
3457
+
3458
+ .wpforms-admin-settings #wpforms-importer-process .status {
3459
+ margin: 20px 0 30px;
3460
+ background-color: #fff;
3461
+ border-radius: 3px;
3462
+ border: 1px solid #ddd;
3463
+ max-height: 800px;
3464
+ overflow-y: scroll;
3465
+ display: none;
3466
+ }
3467
+
3468
+ .wpforms-admin-settings #wpforms-importer-process .status .item {
3469
+ border-bottom: 1px solid #ddd;
3470
+ padding: 20px;
3471
+ }
3472
+
3473
+ .wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type {
3474
+ border: none;
3475
+ }
3476
+
3477
+ .wpforms-admin-settings #wpforms-importer-process .status .item p {
3478
+ font-size: 13px;
3479
+ margin: 12px 0 0;
3480
+ }
3481
+
3482
+ .wpforms-admin-settings #wpforms-importer-process .status .item ul {
3483
+ font-size: 13px;
3484
+ margin: 12px 0 0 16px;
3485
+ }
3486
+
3487
+ .wpforms-admin-settings #wpforms-importer-process .status .item ul li {
3488
+ list-style: disc;
3489
+ }
3490
+
3491
+ .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon {
3492
+ display: inline-block;
3493
+ margin: 0 10px 0 0;
3494
+ }
3495
+
3496
+ .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle {
3497
+ color: #00a0d2;
3498
+ }
3499
+
3500
+ .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check {
3501
+ color: #46b450;
3502
+ }
3503
+
3504
+ .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle {
3505
+ color: #ffb900;
3506
+ }
3507
+
3508
+ .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times, .wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle {
3509
+ color: red;
3510
+ }
3511
+
3512
+ .wpforms-admin-settings #wpforms-importer-process .status .item .name {
3513
+ font-size: 14px;
3514
+ float: left;
3515
+ }
3516
+
3517
+ .wpforms-admin-settings #wpforms-importer-process .status .item .actions {
3518
+ font-size: 14px;
3519
+ float: right;
3520
+ }
3521
+
3522
+ .wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep {
3523
+ color: #ddd;
3524
+ }
3525
+
3526
+ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Bmb3Jtcy9hc3NldHMvY3NzL2FkbWluLmNzcyIsInNvdXJjZXMiOlsid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJ3cGZvcm1zL2Fzc2V0cy9zY3NzL3ZlbmRvci9faW5jbHVkZS1tZWRpYS5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy92ZW5kb3IvX2Nob2ljZXMuc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX2J1dHRvbnMuc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX2NvbmZpcm0uc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX2FsZXJ0cy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fZmxhZ3Muc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX2hlYWRlci5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fdGl0bGUtdGFicy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fZ2VuZXJhbC5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1mb3Jtcy1vdmVydmlldy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1lbnRyaWVzLXNpbmdsZS5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1lbnRyaWVzLWxpc3Quc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2Utd2VsY29tZS5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1hZGRvbnMuc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2Utc2V0dGluZ3MtdG9vbHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXUEZvcm1zIGFkbWluIHN0eWxlcy5cbi8vIFRoZXNlIHN0eWxlcyBhcmUgbG9hZGVkIG9uIGFsbCBXUEZvcm1zIHJlbGF0ZWQgYWRtaW4gcGFnZXMuXG5cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3IvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd2ZW5kb3IvY2hvaWNlcyc7XG5cbiRicmVha3BvaW50czogKFxuXHQneHMtcGhvbmUnOiAzMjBweCxcblx0J3Bob25lJzogNjAwcHgsXG5cdCdpcGFkJzogNzY4cHgsXG5cdCd0YWJsZXQnOiA3ODJweCxcblx0J2Rlc2t0b3AnOiA5NjBweCxcbik7XG5cbkBpbXBvcnQgJ2FkbWluL2J1dHRvbnMnO1xuQGltcG9ydCAnYWRtaW4vY29uZmlybSc7XG5AaW1wb3J0ICdhZG1pbi9hbGVydHMnO1xuQGltcG9ydCAnYWRtaW4vZmxhZ3MnO1xuQGltcG9ydCAnYWRtaW4vaGVhZGVyJztcbkBpbXBvcnQgJ2FkbWluL3RpdGxlLXRhYnMnO1xuQGltcG9ydCAnYWRtaW4vZ2VuZXJhbCc7XG5AaW1wb3J0ICdhZG1pbi9wYWdlLWZvcm1zLW92ZXJ2aWV3JztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtZW50cmllcy1zaW5nbGUnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1lbnRyaWVzLWxpc3QnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS13ZWxjb21lJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtYWRkb25zJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2Utc2V0dGluZ3MtdG9vbHMnO1xuIiwiJG9yYW5nZTogI2UyNzczMDtcbiRkYXJrb3JhbmdlOiAjYjg1YTFiO1xuJGdyZWVuOiAjMmE5YjM5O1xuJGJsdWU6ICMwZTZjYWQ7XG4kbGlnaHRCbHVlOiAjZWJmM2ZiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcblx0QGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcblx0QHdhcm4gJG1lc3NhZ2U7XG5cdCRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG5cdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG5cdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG5cdCAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcblx0ICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcblx0ICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cblx0ICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3Jcblx0XHQgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuXHRcdEByZXR1cm4gZmFsc2U7XG5cdCAgfVxuXHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICBAcmV0dXJuIGZhbHNlO1xuXHR9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcblx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdCAgQHJldHVybiAkb3BlcmF0b3I7XG5cdH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuXHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG5cdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuXHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2Vcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cblx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuXHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcblx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG5cdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuXHRAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuXHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuXHRAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuXHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG5cdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG5cdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cblx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuXHQgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG5cdH1cblxuXHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuXHQgICRkaWdpdHM6IDE7XG5cdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcblx0ICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcblx0fSBAZWxzZSB7XG5cdCAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcblx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuXHQgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG5cdEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcblx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuXHQgIC8vIFJlY3Vyc2l2ZSBjYWxsXG5cdCAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdCAgfVxuXHR9XG4gIH1cbn1cbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuPSAgICAgICAgICAgIENob2ljZXMgICAgICAgICAgICA9XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuJGNob2ljZXMtc2VsZWN0b3I6ICdjaG9pY2VzJyAhZGVmYXVsdDtcbiRjaG9pY2VzLWZvbnQtc2l6ZS1sZzogMTZweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWZvbnQtc2l6ZS1tZDogMTRweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWZvbnQtc2l6ZS1zbTogMTJweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWd1dHRlcmluZzogMjRweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWJvcmRlci1yYWRpdXMtaXRlbTogM3B4ICFkZWZhdWx0O1xuJGNob2ljZXMtYmctY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kY2hvaWNlcy1iZy1jb2xvci1kaXNhYmxlZDogI0VBRUFFQSAhZGVmYXVsdDtcbiRjaG9pY2VzLWJnLWNvbG9yLWRyb3Bkb3duOiAjRkZGRkZGICFkZWZhdWx0O1xuJGNob2ljZXMtdGV4dC1jb2xvcjogIzMzMzMzMyAhZGVmYXVsdDtcbiRjaG9pY2VzLWtleWxpbmUtY29sb3I6ICNEREREREQgIWRlZmF1bHQ7XG4kY2hvaWNlcy1wcmltYXJ5LWNvbG9yOiAkYmx1ZSAhZGVmYXVsdDtcbiRjaG9pY2VzLWRpc2FibGVkLWNvbG9yOiAjZWFlYWVhICFkZWZhdWx0O1xuJGNob2ljZXMtaGlnaGxpZ2h0LWNvbG9yOiAkY2hvaWNlcy1wcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNob2ljZXMtYnV0dG9uLWljb24tcGF0aDogJy4uL2ltYWdlcycgIWRlZmF1bHQ7XG4kY2hvaWNlcy1idXR0b24tZGltZW5zaW9uOiA4cHggIWRlZmF1bHQ7XG4kY2hvaWNlcy1idXR0b24tb2Zmc2V0OiA4cHggIWRlZmF1bHQ7XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJGNob2ljZXMtZ3V0dGVyaW5nO1xuICBmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1sZztcbiAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbiAgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAmLmlzLWRpc2FibGVkIHtcblx0LiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbm5lciwgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbnB1dCB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogJGNob2ljZXMtYmctY29sb3ItZGlzYWJsZWQ7XG5cdCAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblx0ICB1c2VyLXNlbGVjdDogbm9uZTtcblx0fVxuXHQuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0geyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9W2RhdGEtdHlwZSo9XCJzZWxlY3Qtb25lXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvLyAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lubmVyIHsgcGFkZGluZy1ib3R0b206IDcuNXB4OyB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIgeyBwYWRkaW5nLWJvdHRvbTogMy4wcHg7IH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbnB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2hvaWNlcy1rZXlsaW5lLWNvbG9yICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fYnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCRjaG9pY2VzLWJ1dHRvbi1pY29uLXBhdGggKyAnL2Nyb3NzLWludmVyc2Uuc3ZnJyk7XG5cdHBhZGRpbmc6IDA7XG5cdGJhY2tncm91bmQtc2l6ZTogOHB4O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW4tdG9wOiAtMTBweDtcblx0bWFyZ2luLXJpZ2h0OiAyNXB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdHdpZHRoOiAyMHB4O1xuXHRib3JkZXItcmFkaXVzOiAxMGVtO1xuXHRvcGFjaXR5OiAuNTtcblx0Jjpob3ZlciwgJjpmb2N1cyB7IG9wYWNpdHk6IDE7IH1cblx0Jjpmb2N1cyB7IGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAkY2hvaWNlcy1oaWdobGlnaHQtY29sb3I7IH1cbiAgfVxuICAmOmFmdGVyIHtcblx0Y29udGVudDogXCJcIjtcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkY2hvaWNlcy10ZXh0LWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRib3JkZXItd2lkdGg6IDVweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTEuNXB4O1xuXHR0b3A6IDUwJTtcblx0bWFyZ2luLXRvcDogLTIuNXB4O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAmLmlzLW9wZW46YWZ0ZXIge1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbi10b3A6IC03LjVweDtcbiAgfVxuICAmW2Rpcj1cInJ0bFwiXSB7XG5cdCY6YWZ0ZXIge1xuXHQgIGxlZnQ6IDExLjVweDtcblx0ICByaWdodDogYXV0bztcblx0fVxuXHQuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2J1dHRvbiB7XG5cdCAgcmlnaHQ6IGF1dG87XG5cdCAgbGVmdDogMDtcblx0ICBtYXJnaW4tbGVmdDogMjVweDtcblx0ICBtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInNlbGVjdC1tdWx0aXBsZVwiXXtcblx0JjphZnRlciB7XG5cdCAgY29udGVudDogXCJcIjtcblx0ICBoZWlnaHQ6IDA7XG5cdCAgd2lkdGg6IDA7XG5cdCAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcblx0ICBib3JkZXItY29sb3I6ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdCAgYm9yZGVyLXdpZHRoOiA1cHg7XG5cdCAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgIHJpZ2h0OiAxMS41cHg7XG5cdC8vICAgdG9wOiA1MCU7XG5cdCB0b3A6IDE4cHg7XG5cdCAgbWFyZ2luLXRvcDogLTIuNXB4O1xuXHQgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cdCYuaXMtb3BlbjphZnRlciB7XG5cdCAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY2hvaWNlcy10ZXh0LWNvbG9yIHRyYW5zcGFyZW50O1xuXHQgIG1hcmdpbi10b3A6IC03LjVweDtcblx0fVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInNlbGVjdC1tdWx0aXBsZVwiXSwgLiN7JGNob2ljZXMtc2VsZWN0b3J9W2RhdGEtdHlwZSo9XCJ0ZXh0XCJdICB7XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIgeyBjdXJzb3I6IHRleHQ7IH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19idXR0b24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLXJpZ2h0OiAtJGNob2ljZXMtYnV0dG9uLW9mZnNldC8yO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tbGVmdDogJGNob2ljZXMtYnV0dG9uLW9mZnNldDtcblx0cGFkZGluZy1sZWZ0OiAkY2hvaWNlcy1idXR0b24tb2Zmc2V0KjI7XG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKCRjaG9pY2VzLXByaW1hcnktY29sb3IsIDEwJSk7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgkY2hvaWNlcy1idXR0b24taWNvbi1wYXRoICsgJy9jcm9zcy5zdmcnKTtcblx0YmFja2dyb3VuZC1zaXplOiAkY2hvaWNlcy1idXR0b24tZGltZW5zaW9uO1xuXHR3aWR0aDogJGNob2ljZXMtYnV0dG9uLWRpbWVuc2lvbjtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdG9wYWNpdHk6IC43NTtcblx0Jjpob3ZlciwgJjpmb2N1cyB7IG9wYWNpdHk6IDE7IH1cbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lubmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNob2ljZXMtYmctY29sb3I7XG4gIC8vcGFkZGluZzogNy41cHggNy41cHggMy43NXB4O1xuICBwYWRkaW5nOiA0cHggNy41cHggMXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkY2hvaWNlcy1rZXlsaW5lLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkY2hvaWNlcy1ib3JkZXItcmFkaXVzO1xuICBmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1tZDtcbiAgbWluLWhlaWdodDogMzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLmlzLWZvY3VzZWQgJiwgLmlzLW9wZW4gJiB7IGJvcmRlci1jb2xvcjogZGFya2VuKCRjaG9pY2VzLWtleWxpbmUtY29sb3IsIDE1JSk7IH1cbiAgLmlzLW9wZW4gJiB7IGJvcmRlci1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXMgJGNob2ljZXMtYm9yZGVyLXJhZGl1cyAwIDA7IH1cbiAgLmlzLWZsaXBwZWQuaXMtb3BlbiAmIHsgYm9yZGVyLXJhZGl1czogMCAwICRjaG9pY2VzLWJvcmRlci1yYWRpdXMgJGNob2ljZXMtYm9yZGVyLXJhZGl1czsgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19saXN0LS1zaW5nbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCAxNnB4IDRweCA0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBbZGlyPVwicnRsXCJdICYge1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdHBhZGRpbmctbGVmdDogMTZweDtcbiAgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0geyB3aWR0aDogMTAwJTsgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3QtLW11bHRpcGxlIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGJvcmRlci1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXMtaXRlbTtcblx0cGFkZGluZzogM3B4IDEwcHg7XG5cdGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLXNtO1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0bWFyZ2luLXRvcDogMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAzcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjaG9pY2VzLXByaW1hcnktY29sb3I7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkY2hvaWNlcy1wcmltYXJ5LWNvbG9yLCA1JSk7XG5cdGNvbG9yOiAjRkZGRkZGO1xuXHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG5cdCZbZGF0YS1kZWxldGFibGVdIHsgcGFkZGluZy1yaWdodDogNXB4OyB9XG5cdFtkaXI9XCJydGxcIl0gJiB7XG5cdCAgbWFyZ2luLXJpZ2h0OiAwO1xuXHQgIG1hcmdpbi1sZWZ0OiAzLjc1cHg7XG5cdH1cblx0Ji5pcy1oaWdobGlnaHRlZCB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjaG9pY2VzLXByaW1hcnktY29sb3IsIDUlKTtcblx0ICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJGNob2ljZXMtcHJpbWFyeS1jb2xvciwgMTAlKTtcblx0fVxuXHQuaXMtZGlzYWJsZWQgJiB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjaG9pY2VzLWRpc2FibGVkLWNvbG9yLCAyNSUpO1xuXHQgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkY2hvaWNlcy1kaXNhYmxlZC1jb2xvciwgMzUlKTtcblx0fVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fbGlzdC0tZHJvcGRvd24ge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hvaWNlcy1iZy1jb2xvci1kcm9wZG93bjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNob2ljZXMta2V5bGluZS1jb2xvcjtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkY2hvaWNlcy1ib3JkZXItcmFkaXVzO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGNob2ljZXMtYm9yZGVyLXJhZGl1cztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAmLmlzLWFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5pcy1vcGVuICYgeyBib3JkZXItY29sb3I6IGRhcmtlbigkY2hvaWNlcy1rZXlsaW5lLWNvbG9yLCAxNSUpOyB9XG4gIC5pcy1mbGlwcGVkICYge1xuXHR0b3A6IGF1dG87XG5cdGJvdHRvbTogMTAwJTtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0Ym9yZGVyLXJhZGl1czogLjI1cmVtIC4yNXJlbSAwIDA7XG4gIH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19saXN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXgtaGVpZ2h0OiAzMDBweDtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0d2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcbiAgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLW1kO1xuXHRbZGlyPVwicnRsXCJdICYgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbS0tc2VsZWN0YWJsZSB7XG5cdEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuXHQgIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuXHQgICY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1zZWxlY3QtdGV4dCk7XG5cdFx0Zm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtc207XG5cdFx0b3BhY2l0eTogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHQgIH1cblx0ICBbZGlyPVwicnRsXCJdICYge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHBhZGRpbmctbGVmdDogMTAwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHQmOmFmdGVyIHtcblx0XHQgIHJpZ2h0OiBhdXRvO1xuXHRcdCAgbGVmdDogMTBweDtcblx0XHR9XG5cdCAgfVxuXHR9XG5cdCYuaXMtaGlnaGxpZ2h0ZWQge1xuXHQgIGJhY2tncm91bmQtY29sb3I6IG1peCgjMDAwMDAwLCAjRkZGRkZGLCA1JSk7XG5cdCAgJjphZnRlciB7IG9wYWNpdHk6IC41OyB9XG5cdH1cbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0geyBjdXJzb3I6IGRlZmF1bHQ7IH1cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbS0tc2VsZWN0YWJsZSB7IGN1cnNvcjogcG9pbnRlcjsgfVxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pdGVtLS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvcGFjaXR5OiAuNTtcbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19oZWFkaW5nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtc207XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRjaG9pY2VzLWtleWxpbmUtY29sb3IsIDEwJSk7XG4gIGNvbG9yOiBsaWdodGVuKCMzMzMsIDMwJSk7XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fYnV0dG9uIHtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoIzAwMDAwMCwgI0ZGRkZGRiwgMi41JSk7XG4gIGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLW1kO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDRweCAwIDRweCAycHggIWltcG9ydGFudDtcbiAgJjpmb2N1cyB7IG91dGxpbmU6IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAmIHtcblx0cGFkZGluZy1yaWdodDogMnB4O1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19wbGFjZWhvbGRlciB7IG9wYWNpdHk6IC41OyB9XG5cbi8qPT09PT0gIEVuZCBvZiBDaG9pY2VzICA9PT09PT0qL1xuIiwiLy8gQnV0dG9uIHN0eWxlcy5cbi53cGZvcm1zLWFkbWluLXBhZ2Uge1xuXG5cdC53cGZvcm1zLWJ0biB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjogMDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLWJsb2NrIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1tZCB7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0bWluLWhlaWdodDogMzVweDtcblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1sZyB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0cGFkZGluZzogMTZweCAyOHB4O1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLW9yYW5nZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRib3JkZXItY29sb3I6ICRvcmFuZ2U7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrb3JhbmdlO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkZGFya29yYW5nZTtcblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tZ3JleSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRib3JkZXItY29sb3I6ICNjY2M7XG5cdFx0Y29sb3I6ICM2NjY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkN2Q3ZDc7XG5cdFx0XHRib3JkZXItY29sb3I6ICNjY2M7XG5cdFx0XHRjb2xvcjogIzQ0NDtcblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tbGlnaHQtZ3JleSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRcdGNvbG9yOiAjNjY2O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdFx0Y29sb3I6ICM0NDQ7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtYnRuLXRyYW5zLWdyZWVuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuXHRcdGNvbG9yOiAkZ3JlZW47XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHRcdC51bmRlcmxpbmUge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCIgXCI7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGdyZWVuO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJvdHRvbTogLTVweDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBBbGVydCBzdHlsZXMuXG4vLyBTdHlsaW5nIHR3ZWFrcyBmb3IgalF1ZXJ5LWNvbmZpcm0gSlMgYWxlcnQgbGlicmFyeS5cbmJvZHkge1xuXG5cdGRpdi5qY29uZmlybSB7XG5cblx0XHQqLFxuXHRcdCo6OmJlZm9yZSxcblx0XHQqOjphZnRlciB7XG5cdFx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdH1cblxuXHRcdGRpdi5qY29uZmlybS1ib3gtY29udGFpbmVyIGRpdi5qY29uZmlybS1ib3gge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdFx0fVxuXG5cdFx0ZGl2Lmpjb25maXJtLWJveCB7XG5cblx0XHRcdGRpdi5qY29uZmlybS1jb250ZW50LXBhbmUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHQuamNvbmZpcm0tY29udGVudCB7XG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGluaXRpYWw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZGl2Lmpjb25maXJtLWNvbnRlbnQge1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXG5cdFx0XHRcdHAge1xuXHRcdFx0XHRcdG1hcmdpbjogMCAwIDE2cHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlucHV0W3R5cGU9dGV4dF0ge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDk5JTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2Q2ZDZkNjtcblx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0bWFyZ2luOiAyMHB4IGF1dG8gMCBhdXRvO1xuXHRcdFx0fVxuXG5cdFx0XHQjd3Bmb3Jtcy1lbWJlZC1zaG9ydGNvZGUge1xuXHRcdFx0XHRtYXJnaW46IDIwcHggMDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCA1cHg7XG5cdFx0XHR9XG5cblx0XHRcdCN3cGZvcm1zLWVtYmVkLXNob3J0Y29kZTpkaXNhYmxlZCB7XG5cdFx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0fVxuXG5cdFx0XHRidXR0b24uYnRuLWNvbmZpcm0ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya29yYW5nZTtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6ICRkYXJrb3JhbmdlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5lcnJvciB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdGNvbG9yOiByZWQ7XG5cdFx0XHR9XG5cblx0XHRcdC5qY29uZmlybS10aXRsZS1jIC5qY29uZmlybS1pY29uLWMge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRmb250LXNpemU6IDQ1cHggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuY2hvaWNlcyB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdGlucHV0W3R5cGU9dGV4dF0uY2hvaWNlc19faW5wdXQge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBBbGVydCBzdHlsZXMuXG4ud3Bmb3Jtcy1hZG1pbi1wYWdlIHtcblxuXHQud3Bmb3Jtcy1hbGVydCB7XG5cdFx0cGFkZGluZzogMTZweDtcblx0XHRtYXJnaW4tYm90dG9tOiAxOHB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdFx0aDQge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwIDAgMTVweCAwO1xuXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtbm9tYXJnaW4ge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1zbWFsbCB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LXN1Y2Nlc3Mge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcblx0XHRcdGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcblx0XHRcdGNvbG9yOiAjM2M3NjNkO1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1pbmZvIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG5cdFx0XHRib3JkZXItY29sb3I6ICNiY2U4ZjE7XG5cdFx0XHRjb2xvcjogIzMxNzA4Zjtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtd2FybmluZyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZmFlYmNjO1xuXHRcdFx0Y29sb3I6ICM4YTZkM2I7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LWRhbmdlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZWJjY2QxO1xuXHRcdFx0Y29sb3I6ICNhOTQ0NDI7XG5cdFx0fVxuXHR9XG59IiwiLy8gRmxhZyBpY29ucy5cbi53cGZvcm1zLWZsYWcge1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kOnVybCguLi8uLi9pbWFnZXMvZmxhZ3MucG5nKSBuby1yZXBlYXQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWQge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFmIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWcge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1haSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYW0ge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYW4ge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYW8ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXIge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXMge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXQge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXUge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYXoge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iYiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iZiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iaCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYmkge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJqIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ibSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYm4ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYnMge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJ0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYncge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYnkge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYnoge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2Ege2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2Qge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2Yge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2cge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2sge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY24ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jciB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWN1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWN2IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWN5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWN6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWRlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWRqIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWRrIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1kbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZG8ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWR6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZWUge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1laCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZXIge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lcyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ldCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1maSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1maiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1mbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1mbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1mciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2Ege2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdiIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2Uge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1naCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2kge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ20ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ24ge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3Age2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3Ege2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3Ige2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3Qge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3Uge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWd3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1neSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaGsge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWhuIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ociB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaHQge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWh1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1pZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWllIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWltIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWluIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlxIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1pdCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctamUge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWptIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1qbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctanAge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1rZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta2gge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta2kge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWttIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1rbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta3Age2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1rdyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta3kge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1reiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGIge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGsge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWx0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sdSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHYge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWx5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWMge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1kIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWUge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1oIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWsge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tbCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1tIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbW4ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tcSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXIge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1zIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tdCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXUge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW12IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tdyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW14IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXkge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1teiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5hIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmMge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5nIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmkge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmwge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5vIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ucCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbnIge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW56IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1vbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGEge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBmIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGcge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1waCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBrIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGwge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXB0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wdyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcHkge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXFhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1yZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcm8ge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXJzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcnUge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ydyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Ige2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Uge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2sge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc24ge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXN0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc3Yge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zeSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXN6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGMge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10ZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGgge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRsIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10bSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdG4ge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10ciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdHQge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10diB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXR3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdHoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy11YSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXVnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdXMge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy11eSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXV6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12YyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdmUge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12aSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdm4ge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZ1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctd3Mge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy15ZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXphIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctem0ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy16dyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0yMjRweH1cbiIsIi8vIEhlYWRlciBzdHlsZXMuXG5cbiN3cGZvcm1zLWhlYWRlci10ZW1wIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW46IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtMXB4O1xuXHRsZWZ0OiAyMHB4O1xuXHRyaWdodDogMjBweDtcblx0ei1pbmRleDogOTk7XG59XG5cbiN3cGZvcm1zLWhlYWRlciB7XG5cdGJvcmRlci10b3A6IDNweCBzb2xpZCAkb3JhbmdlO1xuXHRwYWRkaW5nOiAyMnB4IDIwcHg7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDA7XG5cdFx0bWF4LXdpZHRoOiAyMzVweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuXHRcdFx0bWF4LXdpZHRoOiAyMDBweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIFBhZ2UgdGl0bGUgYW5kIHRhYnMgc3R5bGVzLlxuLndwZm9ybXMtYWRtaW4td3JhcCB7XG5cblx0Ly8gVGl0bGUgYXJlYS5cblx0LnBhZ2UtdGl0bGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdHBhZGRpbmc6IDE1cHggMjBweDtcblxuXHRcdC5hZGQtbmV3LWgyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyOHB4O1xuXHRcdH1cblx0fVxufVxuXG4vLyBUYWIgbmF2aWdhdGlvbi5cbi53cGZvcm1zLWFkbWluLXRhYnMge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdHBhZGRpbmc6IDAgMjBweDtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdGZvbnQtc2l6ZTogMTRweDtcblxuXHRsaSB7XG5cdFx0bWFyZ2luOiAwIDMwcHggMCAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogIzY2Njtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogMjBweCAwIDE4cHggMDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZmO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogIzk5OTtcblx0XHRcdH1cblxuXHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICRvcmFuZ2U7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBHZW5lcmFsIGFkbWluIHN0eWxpbmcuXG5cbi8vIENvcmUgYWRtaW4gc3R5bGUgb3ZlcnJpZGVzLlxuI3dwY29udGVudCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcblx0XHRwYWRkaW5nLXRvcDogNDZweDtcblx0fVxufVxuXG4jd3Bib2R5IHtcblx0QGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxufVxuXG4vLyBUaGlzIGNsYXNzIGlzIGF1dG8gYXBwbGllZCB0byBfYWxsXyBXUEZvcm1zIGFkbWluIHBhZ2VzL3NjcmVlbnMuXG4ud3Bmb3Jtcy1hZG1pbi1wYWdlIHtcblxuXHQvLyBUaGlzIGlzIGhpZGRlbiBvbiBsb2FkLCB0aGVuIG1hZGUgdmlzaWJsZSB3aXRoIEpTLCB0b1xuXHQvLyBwcmV2ZW50IGl0IGZyb20gXCJqdW1waW5nXCIuXG5cdCNzY3JlZW4tbWV0YS1saW5rcyxcblx0I3NjcmVlbi1tZXRhIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ly8gUmVzcG9uc2l2ZSB2aWRlbyBjb250YWluZXIsIHJlcGxhY2VzIEpTIG1ldGhvZC5cblx0LnZpZGVvLWNvbnRhaW5lciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmctYm90dG9tOiA1Ni4xJTtcblx0XHQvLyBwYWRkaW5nLXRvcDogMzBweDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuXG5cdC52aWRlby1jb250YWluZXIgaWZyYW1lLFxuXHQudmlkZW8tY29udGFpbmVyIG9iamVjdCxcblx0LnZpZGVvLWNvbnRhaW5lciBlbWJlZCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC8vIEZhbmN5IGZpbGUgdXBsb2FkLlxuXHQud3Bmb3Jtcy1maWxlLXVwbG9hZCB7XG5cblx0XHRpbnB1dFt0eXBlPWZpbGVdIHtcblx0XHRcdHdpZHRoOiAwLjFweDtcblx0XHRcdGhlaWdodDogMC4xcHg7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdH1cblxuXHRcdGxhYmVsIHtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdGlucHV0W3R5cGU9ZmlsZV06Zm9jdXMgKyBsYWJlbCxcblx0XHRpbnB1dFt0eXBlPWZpbGVdLmhhcy1mb2N1cyArIGxhYmVsIHtcblx0XHRcdG91dGxpbmU6IDFweCBkb3R0ZWQgIzAwMDtcblx0XHRcdG91dGxpbmU6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDVweDtcblx0XHR9XG5cblx0XHQuZmxkIHtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRcdG1hcmdpbjogMCAxMHB4IDAgMDtcblx0XHRcdHdpZHRoOiA0MDBweDtcblx0XHRcdG1pbi1oZWlnaHQ6IDM1cHg7XG5cblx0XHRcdC5wbGFjZWhvbGRlciB7XG5cdFx0XHRcdGNvbG9yOiAjY2NjO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHN0cm9uZyAuZmEge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdFx0fVxuXHR9XG5cblx0Ly8gR2VucmljIGNsYXNzIGZvciBoaWRpbmcgZGlzcGxheTtcblx0LndwZm9ybXMtaGlkZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8vIFBsYWNlaG9sZGVyIGgxIGZvciBhZG1pbiBub3RpY2VzLlxuXHQud3Bmb3Jtcy1oMS1wbGFjZWhvbGRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8vIEhpZGUgbm90aWNlcyBvbiBsb2FkIHRvIHByZXZlbnQganVtcGluZy4gSlMgd2lsbCByZXZlYWwgdGhlbS5cblx0Lm5vdGljZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4vLyBBZG1pbiB3cmFwIC0gY29udGFpbnMgZXZlcnl0aGluZyBleGNlcHQgdGhlIGhlYWRlci5cbi53cGZvcm1zLWFkbWluLXdyYXAge1xuXG5cdG1hcmdpbjogMDtcblxuXHQubm90aWNlIHtcblx0XHRtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi8vIEFkbWluIGNvbnRlbnQuXG4ud3Bmb3Jtcy1hZG1pbi1jb250ZW50IHtcblx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG59XG5cbi53cGZvcm1zLWNsZWFyIHtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjbGVhcjogYm90aDtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxufVxuIiwiLy8gRm9ybSBPdmVydmlldyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtb3ZlcnZpZXdcbiN3cGZvcm1zLW92ZXJ2aWV3IHtcblxuXHQvLyBSZW1vdmUgdGhlIHRvcCBtYXJnaW4gc28gaXQgZGlzcGxheXMgMjBweCBiZXR3ZWVuIHRoZSBoZWFkZXIgYXJlYVxuXHQvLyBhbmQgdGhlIGNvbnRlbnQsIGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgYWRtaW4gcGFnZXMuXG5cdC50YWJsZW5hdi50b3Age1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQvLyBTZXQgY2VydGFpbiBjb2x1bW4gd2lkdGhzLlxuXHQud3AtbGlzdC10YWJsZSB7XG5cblx0XHQuY29sdW1uLWlkIHtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdH1cblxuXHRcdC5jb2x1bW4tZW50cmllcyB7XG5cdFx0XHR3aWR0aDogNzBweDtcblx0XHR9XG5cblx0XHQuY29sdW1uLXNob3J0Y29kZSB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1jcmVhdGVkIHtcblx0XHRcdHdpZHRoOiAxNDVweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEVudHJpZXMgU2luZ2xlIChEZXRhaWxzKSAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtZW50cmllcyZ2aWV3PWRldGFpbHNcbiN3cGZvcm1zLWVudHJpZXMtc2luZ2xlIHtcblxuXHQjcG9zdHN0dWZmIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Ly8gTWV0YWJveGVzIGFyZSBub3QgbW92YWJsZSBzbyBkb24ndCBsZXQgdGhlIHVzZXIgdGhpbmsgc28uXG5cdC5wb3N0Ym94IC5obmRsZSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQvLyBFbnRyeSBuYXZpZ2F0aW9uIC0gbmV4dC9wcmV2LlxuXHQud3Bmb3Jtcy1lbnRyeS1uYXZpZ2F0aW9uIHtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogMnB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LmFkZC1uZXctaDIge1xuXHRcdFx0dG9wOiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogNHB4IDBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0XHR9XG5cblx0XHRcdCYuaW5hY3RpdmUge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW50cnktbmF2aWdhdGlvbi10ZXh0IHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1lbnRyeS1jdXJyZW50IHtcblx0XHRcdHRvcDogYXV0bztcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyOXB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQvLyBFbnRyeSBmaWVsZHMgbWV0YWJveC5cblx0I3dwZm9ybXMtZW50cnktZmllbGRzIHtcblxuXHRcdGgyLmhuZGxlIHtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblxuXHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0aGVpZ2h0OiAxNnB4O1xuXHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0bWFyZ2luOiA0cHggNHB4IDAgMDtcblx0XHRcdFx0Y29sb3I6ICRvcmFuZ2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lm5vLWZpZWxkcyB7XG5cdFx0XHRwYWRkaW5nOiAxMnB4O1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdC5pbnNpZGUge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0cCB7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblxuXHRcdFx0LndwZm9ybXMtZW50cnktZmllbGQtbmFtZSB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNlYmYzZmI7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCAxMnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1lbnRyeS1maWVsZC12YWx1ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCAxMnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQuZW1wdHkgLndwZm9ybXMtZW50cnktZmllbGQtdmFsdWUge1xuXHRcdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVtcHR5LWZpZWxkLXRvZ2dsZSB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRwYWRkaW5nOiA1cHggMCAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIEVudHJ5IE5vdGVzIG1ldGFib3guXG5cdCN3cGZvcm1zLWVudHJ5LW5vdGVzIHtcblxuXHRcdC5pbnNpZGUge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1lbnRyeS1ub3Rlcy1uZXcge1xuXHRcdFx0cGFkZGluZzogMTBweDtcblx0XHR9XG5cblx0XHRmb3JtIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LmJ0bnMge1xuXHRcdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiA4cHggMDtcblx0XHR9XG5cblx0XHQubm8tbm90ZXMge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogNHB4IDEwcHggOHB4O1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVudHJ5LW5vdGVzLXNpbmdsZSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlM2UxZTM7XG5cblx0XHRcdHA6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblxuXHRcdFx0Ji5ldmVuIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1lbnRyeS1ub3Rlcy1ieWxpbmUge1xuXHRcdFx0Y29sb3I6ICM4ODg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdFx0XHQuc2VwIHtcblx0XHRcdFx0Y29sb3I6ICNkZGQ7XG5cdFx0XHR9XG5cblx0XHRcdC5ub3Rlcy11c2VyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0fVxuXG5cdFx0XHQubm90ZS1kZWxldGUge1xuXHRcdFx0XHRjb2xvcjogI2EwMDtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiByZWQ7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gRW50cnkgRGV0YWlscywgQWN0aW9ucywgYW5kIFBheW1lbnRzLlxuXHQjd3Bmb3Jtcy1lbnRyeS1kZXRhaWxzIC5pbnNpZGUsXG5cdCN3cGZvcm1zLWVudHJ5LXBheW1lbnQgLmluc2lkZSxcblx0I3dwZm9ybXMtZW50cnktYWN0aW9ucyAuaW5zaWRlIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWRldGFpbHMtbWV0YSxcblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhICB7XG5cdFx0cGFkZGluZzogNnB4IDAgMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWRldGFpbHMtbWV0YSBwLFxuXHQud3Bmb3Jtcy1lbnRyeS1wYXltZW50LW1ldGEgcCxcblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIHAge1xuXHRcdHBhZGRpbmc6IDZweCAxMHB4IDhweDtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQud3Bmb3Jtcy1lbnRyeS1wYXltZW50LW1ldGEge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQud3Bmb3Jtcy1lbnRyeS1wYXltZW50LW1ldGEgcCB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG5cdFx0cGFkZGluZzogMTBweDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSBwOmxhc3Qtb2YtdHlwZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWRldGFpbHMtbWV0YSBzdHJvbmcsXG5cdC53cGZvcm1zLWVudHJ5LWFjdGlvbnMtbWV0YSBzdHJvbmcge1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdH1cblxuXHQud3Bmb3Jtcy1lbnRyeS1kZXRhaWxzLW1ldGEgLmRhc2hpY29ucyxcblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIC5kYXNoaWNvbnMge1xuXHRcdHBhZGRpbmc6IDAgMnB4IDAgMDtcblx0XHRjb2xvcjogIzgyODc4QTtcblx0XHR0b3A6IC0xcHg7XG5cdFx0bGVmdDogLTFweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0I3dwZm9ybXMtZW50cnktZGV0YWlscyAuc3VibWl0ZGVsZXRlIHtcblx0XHRjb2xvcjogI2EwMDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0cGFkZGluZzogMXB4IDJweDtcblx0fVxuXG5cdCN3cGZvcm1zLWVudHJ5LWRldGFpbHMgLnN1Ym1pdGRlbGV0ZTpob3ZlciB7XG5cdFx0Y29sb3I6IHJlZDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWFjdGlvbnMtbWV0YSBhIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgYTpob3ZlciB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cblxuXHQvLyBFbnRyeSBMb2NhdGlvbi5cblx0I3dwZm9ybXMtZW50cnktZ2VvbG9jYXRpb24ge1xuXG5cdFx0Lmluc2lkZSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdHVsIHtcblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRvdmVyZmxvdzogYXV0bztcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWdlb2xvY2F0aW9uLW1ldGEge1xuXHRcdFx0d2lkdGg6IDg1cHg7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAxMnB4O1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWdlb2xvY2F0aW9uLXZhbHVlIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBhZGRpbmc6IDEwcHggMTJweCAxMHB4IDIwcHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZmxhZyB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEVudHJpZXMgTGlzdCAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtZW50cmllcyZ2aWV3PWxpc3RcbiN3cGZvcm1zLWVudHJpZXMtbGlzdCB7XG5cblx0LmZvcm0tZGV0YWlscyB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdFx0bWFyZ2luOiAwIDAgMTBweDtcblxuXHRcdC5mb3JtLWRldGFpbHMtc3ViIHtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luOiAwIDAgOHB4IDA7XG5cdFx0fVxuXG5cdFx0LmZvcm0tZGV0YWlscy10aXRsZSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPDEyMDBweFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mb3JtLXNlbGVjdG9yIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0LnRvZ2dsZSB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0Y29sb3I6ICM0NDQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2UzZTNlMztcblx0XHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmZvcm0tbGlzdCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAycHggOHB4IDAgcmdiYSgwLDAsMCwwLjEpO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMjdweDtcblx0XHRcdFx0bGVmdDogLTEwOHB4O1xuXHRcdFx0XHR3aWR0aDogMjMwcHg7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdFx0ei1pbmRleDogOTk5MTtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCIgXCI7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogLTEwcHg7XG5cdFx0XHRcdFx0bGVmdDogMTEwcHg7XG5cdFx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIDhweCAxMHB4IDhweDtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dWwge1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiAxOTZweDtcblx0XHRcdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiA1cHggMTVweDtcblx0XHRcdFx0XHRcdGNvbG9yOiAjNDQ0O1xuXG5cdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZm9ybS1kZXRhaWxzLWFjdGlvbnMge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjwxMjAwcHhcIikge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0YSB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IDAgMTJweCAwIDA7XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdFx0d2lkdGg6IDE2cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFNlYXJjaC5cblx0LnNlYXJjaC1ib3gge1xuXHRcdC53cGZvcm1zLWZvcm0tc2VhcmNoLWJveC1maWVsZCB7XG5cdFx0XHRtYXgtd2lkdGg6IDE4MHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdG1hcmdpbjogMCAycHggMCAwO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWZvcm0tc2VhcmNoLWJveC1jb21wYXJpc29uIHtcblx0XHRcdG1heC13aWR0aDogOTBweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRtYXJnaW46IDAgMnB4IDAgMDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1mb3JtLXNlYXJjaC1ib3gtdGVybSB7XG5cdFx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0XHRtYXJnaW46IDAgMnB4IDAgMDtcblx0XHR9XG5cdH1cblxuXHQvLyBGaWx0ZXJpbmcuXG5cdC53cGZvcm1zLWZpbHRlci1kYXRlIHtcblxuXHRcdC53cGZvcm1zLWZpbHRlci1kYXRlLXNlbGVjdG9yIHtcblx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0bWF4LXdpZHRoOiAyMTBweDtcblx0XHR9XG5cblx0XHRidXR0b24ge1xuXHRcdFx0bWFyZ2luOiAxcHggOHB4IDAgMDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0fVxuXHR9XG5cblx0Ly8gV1AgVGFibGUgc3R5bGluZy5cblx0LndwLWxpc3QtdGFibGUge1xuXG5cdFx0LmNvbHVtbi1pbmRpY2F0b3JzIHtcblx0XHRcdHdpZHRoOiAzNXB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhOmZvY3VzIHtcblx0XHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jb2x1bW4taW5kaWNhdG9ycyAuZGFzaGljb25zIHtcblx0XHRcdHdpZHRoOiAxNHB4O1xuXHRcdFx0aGVpZ2h0OiAxNHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogM3B4O1xuXHRcdH1cblxuXHRcdC5pbmRpY2F0b3Itc3RhciAuZGFzaGljb25zIHtcblx0XHRcdG1hcmdpbi1yaWdodDogNnB4O1xuXHRcdH1cblxuXHRcdC5pbmRpY2F0b3Itc3RhciB7XG5cdFx0XHRjb2xvcjogI2U0ZTRlNDtcblxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCYudW5zdGFyIHtcblx0XHRcdFx0Y29sb3I6ICRvcmFuZ2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci1yZWFkIHtcblx0XHRcdGNvbG9yOiAjOWVkZTg0O1xuXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Ji51bnJlYWQge1xuXHRcdFx0XHRjb2xvcjogI2U0ZTRlNDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY29sdW1uLWRhdGUge1xuXHRcdFx0d2lkdGg6IDE1MHB4O1xuXHRcdH1cblxuXHRcdC5jb2x1bW4tc3RhdHVzIHtcblx0XHRcdHdpZHRoOiAxMjBweDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6IDEycHg7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtYXJnaW46IDAgMCAwIDNweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY29sdW1uLXBheW1lbnRfdG90YWwge1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdH1cblxuXHRcdC5jb2x1bW4tYWN0aW9ucyB7XG5cdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0fVxuXG5cdFx0LnNlcCB7XG5cdFx0XHRjb2xvcjogI2RkZDtcblx0XHR9XG5cblx0XHQuZGVsZXRlOmhvdmVyIHtcblx0XHRcdGNvbG9yOiByZWQ7XG5cdFx0fVxuXHR9XG5cblx0I3dwZm9ybXMtZW50cmllcy10YWJsZS1lZGl0LWNvbHVtbnMge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRjb2xvcjogI2NjYztcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBXZWxjb21lIEFjdGl2YXRpb24gLSBpbmRleC5waHA/cGFnZT13cGZvcm1zLWdldHRpbmctc3RhcnRlZFxuI3dwZm9ybXMtd2VsY29tZSB7XG5cdGJvcmRlci10b3A6IDNweCBzb2xpZCAkb3JhbmdlO1xuXHRjb2xvcjogIzU1NTtcblx0cGFkZGluZy10b3A6IDExMHB4O1xuXG5cdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdHBhZGRpbmctdG9wOiA2NHB4O1xuXHR9XG5cblx0Kixcblx0Kjo6YmVmb3JlLFxuXHQqOjphZnRlciB7XG5cdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWF4LXdpZHRoOiA3MjBweDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0LmJsb2NrIHtcblx0XHRwYWRkaW5nOiA0MHB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdGltZyB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG5cdGgxIHtcblx0XHRjb2xvcjogIzIyMjtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMCAwIDE2cHggMDtcblx0fVxuXG5cdGg1IHtcblx0XHRjb2xvcjogIzIyMjtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bWFyZ2luOiAwIDAgOHB4IDA7XG5cdH1cblxuXHRoNiB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdG1hcmdpbjogMCAwIDIwcHggMDtcblx0fVxuXG5cdC5idXR0b24td3JhcCB7XG5cdFx0bWF4LXdpZHRoOiA1OTBweDtcblx0XHRtYXJnaW46IDAgYXV0byAwIGF1dG87XG5cblx0XHQubGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5pbnRybyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogNDBweDtcblxuXHRcdC5zdWxsaWUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRoZWlnaHQ6IDExMHB4O1xuXHRcdFx0d2lkdGg6IDExMHB4O1xuXHRcdFx0cGFkZGluZzogMThweCAxNHB4IDAgMTRweDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogLTU4cHg7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTU1cHg7XG5cdFx0fVxuXG5cdFx0LnZpZGVvLXRodW1ibmFpbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdH1cblxuXHRcdC5idXR0b24td3JhcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAyNXB4O1xuXHRcdH1cblx0fVxuXG5cdC5mZWF0dXJlcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmctdG9wOiAyMHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG5cdFx0LmZlYXR1cmUtbGlzdCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXHRcdH1cblxuXHRcdC5mZWF0dXJlLWJsb2NrIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAzNXB4O1xuXHRcdFx0b3ZlcmZsb3c6IGF1dG87XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdCYuZmlyc3Qge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdFx0XHRjbGVhcjogYm90aDtcblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYubGFzdCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1heC13aWR0aDogNDZweDtcblx0XHRcdH1cblxuXHRcdFx0aDUge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogNjhweFxuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogNjhweFxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5idXR0b24td3JhcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAyNXB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0fVxuXG5cdC51cGdyYWRlLWN0YSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdGgyIHtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMzBweCAwO1xuXHRcdH1cblxuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IC1tcy1mbGV4O1xuXHRcdFx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0bWFyZ2luOiAwIDAgOHB4IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdFx0Y29sb3I6ICRncmVlbjtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5sZWZ0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDY2LjY2NjY2NiU7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5yaWdodCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR3aWR0aDogMzMuMzMzMzMzJTtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRoMiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDE1cHggMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQucHJpY2Uge1xuXHRcdFx0XHRwYWRkaW5nOiAyNnB4IDA7XG5cblx0XHRcdFx0LmFtb3VudCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiA0OHB4O1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICckJztcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogLThweDtcblx0XHRcdFx0XHRcdGxlZnQ6IC0xNnB4O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC50ZXJtIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cblx0fVxuXG5cdC50ZXN0aW1vbmlhbHMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItdG9wOiAwO1xuXHRcdHBhZGRpbmc6IDIwcHggMDtcblxuXHRcdC50ZXN0aW1vbmlhbC1ibG9jayB7XG5cdFx0XHRtYXJnaW46IDUwcHggMCAwIDA7O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMHB4O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMThweCByZ2JhKDAsMCwwLC4yKTtcblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0XHR3aWR0aDogNjVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRtYXJnaW46IDAgMCAxMnB4IDE0MHB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMDBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XG5cdH1cblxuXHQvLyBDaGFuZ2VzIGZvciBwYWlkIHZlcnNpb24uXG5cdCYucHJvIHtcblxuXHRcdC5mZWF0dXJlcyB7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHR9XG5cblx0XHQudXBncmFkZSxcblx0XHQuZm9vdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LnRlc3RpbW9uaWFscyB7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdH1cblx0fVxufVxuXG4uZGFzaGJvYXJkX3BhZ2Vfd3Bmb3Jtcy1nZXR0aW5nLXN0YXJ0ZWQge1xuXG5cdC52aWRlby1jb250YWluZXIge1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdH1cblxuXHQvLyBIaWRlIGFkbWluIGZvb3Rlci5cblx0I3dwZm9vdGVyLFxuXHRkaXYubm90aWNlIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cbiIsIi8vIEFkZG9ucyBMaXN0IC0gYWRtaW4ucGhwP3BhZ2U9d3Bmb3Jtcy1hZGRvbnNcbiN3cGZvcm1zLWFkbWluLWFkZG9ucyB7XG5cblx0Kixcblx0Kjo6YmVmb3JlLFxuXHQqOjphZnRlciB7XG5cdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cblx0LmFkZG9ucy1jb250YWluZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiAtMjBweDtcblx0XHRtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuXHR9XG5cblx0LnVubG9jay1tc2cge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblx0XHRtYXJnaW4tdG9wOiAtMjBweDtcblx0fVxuXG5cdCN3cGZvcm1zLWFkbWluLWFkZG9ucy1zZWFyY2gge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRjb2xvcjogIzMzMztcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRtYXJnaW46IC0zcHggMTBweCAwIDA7XG5cdFx0d2lkdGg6IDIwMHB4O1xuXHRcdG1pbi1oZWlnaHQ6IDM1cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRib3JkZXItY29sb3I6ICNiYmI7XG5cdFx0fVxuXHR9XG5cblx0LmFkZG9uLWNvbnRhaW5lciB7XG5cdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAzMy4zMzMzMzMlO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8MTI1MHB4XCIpIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAxN3B4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblxuXHQuYWRkb24taXRlbSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRtYXJnaW46IDAgMCA0MHB4IDA7XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdG1hcmdpbjogMCAwXG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1heC13aWR0aDogNzVweDtcblx0XHR9XG5cblx0XHRoNSB7XG5cdFx0XHRtYXJnaW46IDAgMCAxMHB4IDEwMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwIDAgMCAxMDBweDtcblx0XHR9XG5cblx0XHQuZGV0YWlscyB7XG5cdFx0XHRwYWRkaW5nOiAzMHB4IDIwcHg7XG5cblx0XHR9XG5cblx0XHQuYWN0aW9ucyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQubXNnIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ei1pbmRleDogOTk7XG5cdFx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRcdFx0XHRkaXNwbGF5OiAtbW96LWJveDtcblx0XHRcdFx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdFx0XHRcdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHQtbXMtYWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHRcdFx0Ji5zdWNjZXNzIHtcblx0XHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5lcnJvciB7XG5cdFx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zdGF0dXMge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXG5cdFx0XHQuc3RhdHVzLWluYWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdH1cblxuXHRcdFx0LnN0YXR1cy1kb3dubG9hZCB7XG5cdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0fVxuXG5cdFx0XHQuc3RhdHVzLWFjdGl2ZSB7XG5cdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVwZ3JhZGUtYnV0dG9uIHtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdHdpZHRoOiAxNDBweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5hY3Rpb24tYnV0dG9uIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblxuXHRcdFx0YnV0dG9uIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdHdpZHRoOiAxNDBweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggNXB4O1xuXG5cdFx0XHRcdCY6aG92ZXIsXG5cdFx0XHRcdCYubG9hZGluZyB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLnN0YXR1cy1hY3RpdmUge1xuXG5cdFx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5zdGF0dXMtYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWluYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWRvd25sb2FkIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmxvYWRpbmcge1xuXG5cdFx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gU2V0dGluZ3MgLSBhZG1pbi5waHA/cGFnZT13cGZvcm1zLXNldHRpbmdzXG4vLyBUb29scyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtdG9vbHNcbi53cGZvcm1zLWFkbWluLXNldHRpbmdzIHtcblxuXHQqLFxuXHQqOjpiZWZvcmUsXG5cdCo6OmFmdGVyIHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQvLyBTZXR0aW5nIHJvd3MsIGVnIGZpZWxkIHJvdy5cblx0LndwZm9ybXMtc2V0dGluZy1yb3cge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuXHRcdHBhZGRpbmc6IDMwcHggMDtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMztcblxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0fVxuXG5cdFx0Ly8gU2VjdGlvbiBoZWFkaW5nLlxuXHRcdCYuc2VjdGlvbi1oZWFkaW5nIHtcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblxuXHRcdFx0Ji5uby1kZXNjIHtcblx0XHRcdFx0aDQge1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1zZXR0aW5nLWZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBUb29scyBmdWxsIHdpZHRoIGZpZWxkcy5cblx0XHQmLnRvb2xzIHtcblxuXHRcdFx0cCxcblx0XHRcdHA6Zmlyc3Qtb2YtdHlwZXtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMTZweCAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENoZWNrYm94IHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1jaGVja2JveCB7XG5cblx0XHRcdGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbjogMXB4IDAgMCAwO1xuXHRcdFx0fVxuXG5cdFx0XHQuZGVzYyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgMzBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBMaWNlbnNlIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1saWNlbnNlIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cblx0XHRcdHAudHlwZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVGV4dCBzZXR0aW5ncyBmaWVsZC5cblx0XHQmLndwZm9ybXMtc2V0dGluZy1yb3ctdGV4dCB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNlbGVjdCBzZXR0aW5ncyBmaWVsZC5cblx0XHQmLndwZm9ybXMtc2V0dGluZy1yb3ctc2VsZWN0IHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmFkaW8gc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LXJhZGlvIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1maWVsZCB7XG5cblx0XHRcdFx0aW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdFx0XHRcdG1hcmdpbjogLTNweCAxMHB4IDAgMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQvLyBFbWFpbCBUZW1wbGF0ZSBzZXR0aW5nIGZpZWxkLlxuXHRcdCYjd3Bmb3Jtcy1zZXR0aW5nLXJvdy1lbWFpbC10ZW1wbGF0ZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGxhYmVsOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCIgXCI7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDE1NXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTgwcHg7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMTBweCAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lm9wdGlvbi1kZWZhdWx0OmJlZm9yZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zZXR0aW5ncy1lbWFpbC1odG1sLnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5vcHRpb24tbm9uZTpiZWZvcmUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvc2V0dGluZ3MtZW1haWwtcGxhaW50ZXh0LnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJhZGlvIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1pbWFnZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb2xvciBwaWNrZXIgc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LWNvbG9yIHtcblxuXHRcdFx0LndwZm9ybXMtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQubWluaWNvbG9ycy1pbnB1dC1zd2F0Y2gge1xuXHRcdFx0XHR0b3A6IDdweDtcblx0XHRcdFx0bGVmdDogN3B4O1xuXHRcdFx0XHRoZWlnaHQ6IDIxcHg7XG5cdFx0XHRcdHdpZHRoOiAyMXB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gR2VuZXJhbCBlbGVtZW50cy5cblx0XHRoNCB7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0bWFyZ2luOiAwIDAgNnB4IDA7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdG1hcmdpbjogMCAwIDIwcHggMDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDhweCAwIDA7XG5cdFx0XHR9XG5cblx0XHRcdCYuZGVzYyB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRm9ybSBlbGVtZW50cy5cblx0XHRpbnB1dFt0eXBlPXRleHRdLFxuXHRcdGlucHV0W3R5cGU9cGFzc3dvcmRdIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0bWluLWhlaWdodDogMzVweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XG5cdFx0XHRcdHdpZHRoOiAzMDBweDtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogI2JiYjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0ZXh0YXJlYSB7XG5cblx0XHR9XG5cblx0XHRidXR0b24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblxuXHRcdC5jaG9pY2VzanMtc2VsZWN0LXdyYXAge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXgtd2lkdGg6IDQwMHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcblx0XHRcdFx0d2lkdGg6IDMwMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcm9ncmVzcy1iYXIge1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRvcmFuZ2U7XG5cdFx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdG1hcmdpbjogMCAwIDE2cHggMDtcblxuXHRcdFx0Ji5jb21wbGV0ZSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmVlbjtcblxuXHRcdFx0XHQuYmFyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG5cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYmFyIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRvcmFuZ2U7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuNXMgZWFzZS1pbi1vdXQ7XG5cdFx0XHRcdC1tb3otdHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlLWluLW91dDtcblx0XHRcdFx0LW8tdHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlLWluLW91dDtcblx0XHRcdFx0dHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlLWluLW91dDtcblxuXHRcdFx0XHRALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3Mge1xuXHRcdFx0XHRcdHRvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNjBweCAwOyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRALW1vei1rZXlmcmFtZXMgcHJvZ3Jlc3Mge1xuXHRcdFx0XHQgIHRvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNjBweCAwOyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAa2V5ZnJhbWVzIHByb2dyZXNzIHtcblx0XHRcdFx0ICB0byB7IGJhY2tncm91bmQtcG9zaXRpb246IDYwcHggMDsgfVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcyAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdFx0XHRcdFx0LW1vei1hbmltYXRpb246IHByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdFx0XHRhbmltYXRpb246IHByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA2MHB4IDYwcHg7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSb3cgbGFiZWwgKGxlZnQpLlxuXHQud3Bmb3Jtcy1zZXR0aW5nLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogMjAwcHg7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdFx0fVxuXG5cdFx0bGFiZWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJvdyBmaWVsZCAocmlnaHQpLlxuXHQud3Bmb3Jtcy1zZXR0aW5nLWZpZWxkIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDAgMCAwIDIwMHB4O1xuXHRcdG1heC13aWR0aDogODAwcHg7XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxuXG5cdHAuc3VibWl0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMjVweCAwO1xuXHR9XG5cblx0Ly8gQ3VzdG9tIENhcHRjaGEgYWRkb24gbm90aWNlLlxuXHQuY2FwdGNoYS1hZGRvbi1ub3RpY2Uge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0cGFkZGluZzogMzBweDtcblx0XHRtYXgtd2lkdGg6IDEwMDBweDtcblx0XHRtYXJnaW46IDIwcHggMCAwIDA7XG5cblx0XHRpbWcge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXgtd2lkdGg6IDkwcHg7XG5cdFx0fVxuXG5cdFx0aDUge1xuXHRcdFx0bWFyZ2luOiAwIDAgMTBweCAxMjBweDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMCAwIDAgMTIwcHg7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdH1cblx0fVxuXG5cdC8vIEdlbmVyaWMgaW5mby9jb2RlIGluZm9ybWF0aW9uLlxuXHQuaW5mby1hcmVhLFxuXHQucHJlLWVycm9yIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDEwMDBweDtcblx0XHRoZWlnaHQ6IDQ1MHB4O1xuXHRcdGZvbnQtZmFtaWx5OiBNZW5sbyxNb25hY28sbW9ub3NwYWNlO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHR3aGl0ZS1zcGFjZTogcHJlO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdH1cblxuXHQucHJlLWVycm9yIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bWF4LWhlaWdodDogMjUwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdC8vIEludGVncmF0aW9ucyB0YWIgY29udGVudC5cblx0Ly8gTGVnYWN5IENTUyBhbmQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgd2hlbiB0aW1lIHBlcm1pdHMuXG5cdCN3cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVycyB7XG5cblx0XHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlciB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdHBhZGRpbmc6IDMwcHggMDtcblxuXHRcdFx0Ji5mb2N1cy1vdXQge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaGVhZGVyIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdG1heC13aWR0aDogMTAwMHB4O1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWxvZ28ge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5mYSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdG1hcmdpbjogLTlweCAwIDAgMDtcblx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdFx0bWF4LXdpZHRoOiA5MHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiAwIDAgMCA0MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWluZm8ge1xuXHRcdFx0bWFyZ2luOiAwIDAgMCAxNjBweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmc6IDIwcHggMCAwO1xuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDEwcHggMDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHR9XG5cblx0XHRcdC5jb25uZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0Y29sb3I6ICM4M2MxMWY7XG5cdFx0XHRcdHdpZHRoOiAxMzVweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzgzYzExZjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggMTRweDtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMjhweDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNvbm5lY3RlZCAud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1pbmZvIC5jb25uZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWFjY291bnRzIHtcblx0XHRcdG1hcmdpbjogMCAwIDAgMTYwcHg7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0bWF4LXdpZHRoOiA4NDBweDtcblx0XHR9XG5cblx0XHQuZm9jdXMtaW4gLndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtbGlzdCB1bCB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTZweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRzcGFuLmxhYmVsIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHR9XG5cblx0XHRcdHNwYW4uZGF0ZSB7XG5cdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0d2lkdGg6IDM1JTtcblx0XHRcdH1cblxuXHRcdFx0c3Bhbi5yZW1vdmUge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdHdpZHRoOiAxNSU7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtY29ubmVjdCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEJsdWU7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcblxuXHRcdFx0aW5wdXRbdHlwZT10ZXh0XSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRcdFx0bWFyZ2luOiA1cHggMDtcblx0XHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXG5cdFx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogI2JiYjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mb2N1cy1pbiAud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0ICB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0IC5mYSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWFjY291bnRzLWNvbm5lY3QgcCxcblx0XHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cyBwIHtcblx0XHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVja2JveCBtdWx0aS1zZWxlY3QgY29sdW1ucy5cblx0LmNoZWNrYm94LW11bHRpc2VsZWN0LWNvbHVtbnMge1xuXHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0XHRmb250LXNpemU6IDA7XG5cdFx0XHRjbGVhcjogYm90aDtcblx0XHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcXGYwZWNcIjtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC8xIEZvbnRBd2Vzb21lO1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IGF1dG87XG5cdFx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDEzMHB4O1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luOiAwIDAgMCAtMTBweDtcblx0XHR9XG5cblx0XHQuaGVhZGVyIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwIDAgNXB4IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbixcblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHR3aWR0aDogNDUlO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbiB7XG5cblx0XHR9XG5cblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdHVsIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGhlaWdodDogMjUwcHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggI2VlZSBzb2xpZDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdFx0bGFiZWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDMycHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2RkZDtcblx0XHRcdFx0XHRcdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE2cHgvMSBGb250QXdlc29tZTtcblx0XHRcdFx0XHRcdHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuXHRcdFx0XHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHRcdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAxMnB4O1xuXHRcdFx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmNoZWNrZWQge1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC42O1xuXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWxsIHtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0bWFyZ2luOiAxMHB4IDAgMDtcblx0XHR9XG5cdH1cblxuXHQvLyBPdGhlciBJbXBvcnRlcnMuIChUb29scylcblx0I3dwZm9ybXMtaW1wb3J0ZXItYW5hbHl6ZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdC5wcm9jZXNzLWNvdW50LFxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdC51cGdyYWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdGg1IHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAyMHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdGhyIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDtcblx0XHRcdFx0bWFyZ2luOiA0MHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdC53cGZvcm1zLWJ0biB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0dWwge1xuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxNHB4O1xuXG5cdFx0XHRcdFx0Ji5mb3JtIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1pbXBvcnRlci1wcm9jZXNzIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0LnByb2Nlc3MtY291bnQsXG5cdFx0LnByb2Nlc3MtY29tcGxldGVkIHtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cblx0XHQucHJvY2Vzcy1jb21wbGV0ZWQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuc3RhdHVzIHtcblx0XHRcdG1hcmdpbjogMjBweCAwIDMwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdG1heC1oZWlnaHQ6IDgwMHB4O1xuXHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0Lml0ZW0td3JhcCB7XG5cblx0XHRcdH1cblxuXHRcdFx0Lml0ZW0ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDAgMTZweDtcblxuXHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGU6IGRpc2M7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN0YXR1cy1pY29uIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0XHRcdFx0Ji5mYS1pbmZvLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzAwYTBkMlxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuZmEtY2hlY2sge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICM0NmI0NTBcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZiOTAwXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5mYS10aW1lcyxcblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5uYW1lIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYWN0aW9ucyB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblxuXHRcdFx0XHRcdC5zZXAge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNkZGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFHQUE7O2lDQUVpQztBQXFCakMsQUFBQSxRQUFRLENBQWM7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQWpCSyxJQUFJO0VBa0J0QixTQUFTLEVBckJZLElBQUk7Q0FnQzFC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 */
assets/css/admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #DDDDDD !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #DDDDDD;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaaaaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#FFFFFF;border:1px solid #DDDDDD;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-admin-page .wpforms-alert{padding:16px;margin-bottom:18px;border:1px solid transparent}.wpforms-admin-page .wpforms-alert h4{margin-top:0;color:inherit}.wpforms-admin-page .wpforms-alert p{margin:0 0 15px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-small{font-size:12px}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wpforms-flag{width:16px;height:16px;background:url(../../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:90px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{height:28px;margin:0 2px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{height:28px;background-color:#fff;vertical-align:middle;max-width:210px}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding-left:20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px}#wpforms-admin-addons #wpforms-admin-addons-search{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:-3px 10px 0 0;width:200px;min-height:35px;float:right}#wpforms-admin-addons #wpforms-admin-addons-search:focus{border-color:#bbb}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .captcha-addon-notice{background-color:#fff;border:1px solid #e27730;border-radius:3px;padding:30px;max-width:1000px;margin:20px 0 0 0}.wpforms-admin-settings .captcha-addon-notice img{float:left;max-width:90px}.wpforms-admin-settings .captcha-addon-notice h5{margin:0 0 10px 120px;font-size:18px}.wpforms-admin-settings .captcha-addon-notice p{margin:0 0 0 120px;font-size:14px;line-height:1.3}.wpforms-admin-settings .info-area,.wpforms-admin-settings .pre-error{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings .pre-error{height:auto;max-height:250px;margin-bottom:20px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo img{border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}.wpforms-admin-settings #wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}
assets/css/builder.css ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body div.jconfirm *,
2
+ body div.jconfirm *::before,
3
+ body div.jconfirm *::after {
4
+ -webkit-box-sizing: border-box;
5
+ -moz-box-sizing: border-box;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ body div.jconfirm div.jconfirm-box-container div.jconfirm-box {
10
+ border-radius: 0;
11
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
12
+ }
13
+
14
+ body div.jconfirm div.jconfirm-box div.jconfirm-content-pane {
15
+ margin-bottom: 20px;
16
+ display: block;
17
+ }
18
+
19
+ body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content {
20
+ overflow: initial;
21
+ }
22
+
23
+ body div.jconfirm div.jconfirm-box div.jconfirm-content {
24
+ font-size: 16px;
25
+ color: #555;
26
+ line-height: 1.5;
27
+ }
28
+
29
+ body div.jconfirm div.jconfirm-box div.jconfirm-content p {
30
+ margin: 0 0 16px;
31
+ font-size: 16px;
32
+ }
33
+
34
+ body div.jconfirm div.jconfirm-box input[type=text] {
35
+ display: block;
36
+ width: 99%;
37
+ border: 1px solid #d6d6d6;
38
+ padding: 10px;
39
+ box-shadow: none;
40
+ margin: 20px auto 0 auto;
41
+ }
42
+
43
+ body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode {
44
+ margin: 20px 0;
45
+ text-align: center;
46
+ font-size: 24px;
47
+ padding: 8px 5px;
48
+ }
49
+
50
+ body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled {
51
+ color: #333;
52
+ }
53
+
54
+ body div.jconfirm div.jconfirm-box button.btn-confirm {
55
+ background-color: #e27730;
56
+ color: #fff;
57
+ outline: none;
58
+ }
59
+
60
+ body div.jconfirm div.jconfirm-box button.btn-confirm:hover {
61
+ background-color: #b85a1b;
62
+ border-color: #b85a1b;
63
+ }
64
+
65
+ body div.jconfirm div.jconfirm-box .error {
66
+ display: none;
67
+ color: red;
68
+ }
69
+
70
+ body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c {
71
+ -webkit-transition: none !important;
72
+ transition: none !important;
73
+ -webkit-transform: none !important;
74
+ -ms-transform: none !important;
75
+ transform: none !important;
76
+ font-size: 45px !important;
77
+ }
78
+
79
+ body .choices {
80
+ text-align: left;
81
+ }
82
+
83
+ body .choices input[type=text].choices__input {
84
+ display: inline-block !important;
85
+ }
86
+
87
+ .wpforms-admin-page .wpforms-btn {
88
+ border: 0;
89
+ border-radius: 3px;
90
+ cursor: pointer;
91
+ display: inline-block;
92
+ margin: 0;
93
+ text-decoration: none;
94
+ text-align: center;
95
+ vertical-align: middle;
96
+ white-space: nowrap;
97
+ box-shadow: none;
98
+ }
99
+
100
+ .wpforms-admin-page .wpforms-btn-block {
101
+ display: block;
102
+ width: 100%;
103
+ }
104
+
105
+ .wpforms-admin-page .wpforms-btn-md {
106
+ font-size: 13px;
107
+ font-weight: 600;
108
+ padding: 8px 12px;
109
+ min-height: 35px;
110
+ }
111
+
112
+ .wpforms-admin-page .wpforms-btn-lg {
113
+ font-size: 16px;
114
+ font-weight: 600;
115
+ padding: 16px 28px;
116
+ }
117
+
118
+ .wpforms-admin-page .wpforms-btn-orange {
119
+ background-color: #e27730;
120
+ border-color: #e27730;
121
+ color: #fff;
122
+ }
123
+
124
+ .wpforms-admin-page .wpforms-btn-orange:hover {
125
+ background-color: #b85a1b;
126
+ border-color: #b85a1b;
127
+ }
128
+
129
+ .wpforms-admin-page .wpforms-btn-grey {
130
+ background-color: #eee;
131
+ border-color: #ccc;
132
+ color: #666;
133
+ }
134
+
135
+ .wpforms-admin-page .wpforms-btn-grey:hover {
136
+ background-color: #d7d7d7;
137
+ border-color: #ccc;
138
+ color: #444;
139
+ }
140
+
141
+ .wpforms-admin-page .wpforms-btn-light-grey {
142
+ background-color: #f5f5f5;
143
+ border: 1px solid #ccc;
144
+ color: #666;
145
+ }
146
+
147
+ .wpforms-admin-page .wpforms-btn-light-grey:hover {
148
+ background-color: #eee;
149
+ color: #444;
150
+ }
151
+
152
+ .wpforms-admin-page .wpforms-btn-trans-green {
153
+ background-color: none;
154
+ color: #2a9b39;
155
+ }
156
+
157
+ .wpforms-admin-page .wpforms-btn-trans-green:hover {
158
+ background-color: #2a9b39;
159
+ color: #fff;
160
+ }
161
+
162
+ .wpforms-admin-page .wpforms-btn-trans-green .underline {
163
+ position: relative;
164
+ }
165
+
166
+ .wpforms-admin-page .wpforms-btn-trans-green .underline:after {
167
+ content: " ";
168
+ border-bottom: 1px dashed #2a9b39;
169
+ position: absolute;
170
+ bottom: -5px;
171
+ left: 0;
172
+ width: 100%;
173
+ }
174
+
175
+ .wpforms-admin-page .wpforms-btn-trans-green .dashicons {
176
+ height: 18px;
177
+ }
178
+
179
+ .wpforms-admin-page .wpforms-alert {
180
+ padding: 16px;
181
+ margin-bottom: 18px;
182
+ border: 1px solid transparent;
183
+ }
184
+
185
+ .wpforms-admin-page .wpforms-alert h4 {
186
+ margin-top: 0;
187
+ color: inherit;
188
+ }
189
+
190
+ .wpforms-admin-page .wpforms-alert p {
191
+ margin: 0 0 15px 0;
192
+ }
193
+
194
+ .wpforms-admin-page .wpforms-alert p:last-of-type {
195
+ margin: 0;
196
+ }
197
+
198
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin {
199
+ margin: 0;
200
+ }
201
+
202
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-small {
203
+ font-size: 12px;
204
+ }
205
+
206
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-success {
207
+ background-color: #dff0d8;
208
+ border-color: #d6e9c6;
209
+ color: #3c763d;
210
+ }
211
+
212
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-info {
213
+ background-color: #d9edf7;
214
+ border-color: #bce8f1;
215
+ color: #31708f;
216
+ }
217
+
218
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-warning {
219
+ background-color: #fcf8e3;
220
+ border-color: #faebcc;
221
+ color: #8a6d3b;
222
+ }
223
+
224
+ .wpforms-admin-page .wpforms-alert.wpforms-alert-danger {
225
+ background-color: #f2dede;
226
+ border-color: #ebccd1;
227
+ color: #a94442;
228
+ }
229
+
230
+ #wpforms-panel-fields .wpforms-panel-sidebar .choices-list.show-images .wpforms-image-upload {
231
+ display: block;
232
+ }
233
+
234
+ #wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-image-upload {
235
+ display: none;
236
+ }
237
+
238
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline .primary-input li,
239
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline .primary-input li,
240
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline .primary-input li {
241
+ vertical-align: top;
242
+ }
243
+
244
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-image-choices-modern li,
245
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline ul.wpforms-image-choices-modern li,
246
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-image-choices-modern li {
247
+ margin: 5px;
248
+ }
249
+
250
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-image-choices-classic li,
251
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline ul.wpforms-image-choices-classic li,
252
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-image-choices-classic li {
253
+ margin: 0 10px 10px 0;
254
+ }
255
+
256
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern img,
257
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern img,
258
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern img {
259
+ display: inline;
260
+ margin: 0 auto;
261
+ max-width: 100%;
262
+ }
263
+
264
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern label,
265
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern label,
266
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern label {
267
+ background-color: #fff;
268
+ display: inline-block;
269
+ margin: 0 auto;
270
+ padding: 0;
271
+ border: 1px solid #fff;
272
+ border-radius: 3px;
273
+ padding: 20px 20px 18px 20px;
274
+ transition: all 0.5s;
275
+ text-align: center;
276
+ }
277
+
278
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern label:hover,
279
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern label:hover,
280
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern label:hover {
281
+ border: 1px solid #ddd;
282
+ }
283
+
284
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image,
285
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image,
286
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image {
287
+ display: block;
288
+ position: relative;
289
+ }
290
+
291
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,
292
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,
293
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image:after {
294
+ content: "\2714";
295
+ font-size: 22px;
296
+ line-height: 32px;
297
+ color: #fff;
298
+ background: green;
299
+ opacity: 0;
300
+ position: absolute;
301
+ top: 50%;
302
+ left: 50%;
303
+ margin: -16px 0 0 -16px;
304
+ width: 32px;
305
+ height: 32px;
306
+ border-radius: 50%;
307
+ transition: all 0.5s;
308
+ }
309
+
310
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-label,
311
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-label,
312
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-label {
313
+ display: block;
314
+ margin-top: 12px;
315
+ }
316
+
317
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected label,
318
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected label,
319
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected label {
320
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
321
+ }
322
+
323
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,
324
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,
325
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after {
326
+ opacity: 1;
327
+ }
328
+
329
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,
330
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,
331
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label {
332
+ font-weight: 700;
333
+ }
334
+
335
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic img,
336
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic img,
337
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic img {
338
+ display: inline;
339
+ margin: 0 auto;
340
+ max-width: 100%;
341
+ }
342
+
343
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic label,
344
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic label,
345
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label {
346
+ background-color: #fff;
347
+ display: inline-block;
348
+ margin: 0 auto;
349
+ padding: 0;
350
+ border: 2px solid #fff;
351
+ padding: 10px;
352
+ text-align: center;
353
+ }
354
+
355
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic label:hover,
356
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic label:hover,
357
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label:hover {
358
+ border-color: #ddd;
359
+ }
360
+
361
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-image,
362
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-image,
363
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-image {
364
+ display: block;
365
+ }
366
+
367
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-label,
368
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-label,
369
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-label {
370
+ display: block;
371
+ margin-top: 8px;
372
+ }
373
+
374
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic li.wpforms-selected label,
375
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic li.wpforms-selected label,
376
+ #wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic li.wpforms-selected label {
377
+ border-color: #666;
378
+ }
379
+
380
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload {
381
+ margin: 6px 0 0 50px;
382
+ width: 68%;
383
+ }
384
+
385
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview {
386
+ background-color: rgba(255, 255, 255, 0.65);
387
+ display: block;
388
+ width: 100%;
389
+ }
390
+
391
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview a {
392
+ display: block;
393
+ position: relative;
394
+ }
395
+
396
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after {
397
+ content: "\f057";
398
+ font-family: FontAwesome;
399
+ width: 25px;
400
+ height: 25px;
401
+ border: 1px solid red;
402
+ position: absolute;
403
+ top: 50%;
404
+ left: 50%;
405
+ margin: -12.5px 0 0 -12.5px;
406
+ font-size: 30px;
407
+ color: red;
408
+ background-color: #fff;
409
+ vertical-align: unset;
410
+ line-height: 0.8;
411
+ border-radius: 50%;
412
+ }
413
+
414
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview img {
415
+ display: block;
416
+ margin: 0 auto;
417
+ max-width: 100%;
418
+ max-height: 100px;
419
+ }
420
+
421
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload {
422
+ margin: 6px 0 0 50px;
423
+ width: 68%;
424
+ }
425
+
426
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview {
427
+ background-color: rgba(255, 255, 255, 0.65);
428
+ display: block;
429
+ width: 100%;
430
+ }
431
+
432
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview a {
433
+ display: block;
434
+ position: relative;
435
+ }
436
+
437
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after {
438
+ content: "\f057";
439
+ font-family: FontAwesome;
440
+ width: 25px;
441
+ height: 25px;
442
+ border: 1px solid red;
443
+ position: absolute;
444
+ top: 50%;
445
+ left: 50%;
446
+ margin: -12.5px 0 0 -12.5px;
447
+ font-size: 30px;
448
+ color: red;
449
+ background-color: #fff;
450
+ vertical-align: unset;
451
+ line-height: 0.8;
452
+ border-radius: 50%;
453
+ }
454
+
455
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview img {
456
+ display: block;
457
+ margin: 0 auto;
458
+ max-width: 100%;
459
+ max-height: 100px;
460
+ }
461
+
462
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload {
463
+ margin: 6px 0 0 50px;
464
+ width: 70%;
465
+ }
466
+
467
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview {
468
+ background-color: rgba(255, 255, 255, 0.65);
469
+ display: block;
470
+ width: 100%;
471
+ }
472
+
473
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview a {
474
+ display: block;
475
+ position: relative;
476
+ }
477
+
478
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after {
479
+ content: "\f057";
480
+ font-family: FontAwesome;
481
+ width: 25px;
482
+ height: 25px;
483
+ border: 1px solid red;
484
+ position: absolute;
485
+ top: 50%;
486
+ left: 50%;
487
+ margin: -12.5px 0 0 -12.5px;
488
+ font-size: 30px;
489
+ color: red;
490
+ background-color: #fff;
491
+ vertical-align: unset;
492
+ line-height: 0.8;
493
+ border-radius: 50%;
494
+ }
495
+
496
+ #wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview img {
497
+ display: block;
498
+ margin: 0 auto;
499
+ max-width: 100%;
500
+ max-height: 100px;
501
+ }
502
+
503
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification {
504
+ border: 1px solid #d3d3d3;
505
+ margin: 0 0 20px 0;
506
+ }
507
+
508
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field {
509
+ padding: 0 20px;
510
+ }
511
+
512
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header {
513
+ background-color: #f1f1f1;
514
+ padding: 10px 20px;
515
+ font-size: 16px;
516
+ margin: 0;
517
+ }
518
+
519
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder {
520
+ display: block;
521
+ margin-right: 100px;
522
+ }
523
+
524
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit {
525
+ display: none;
526
+ margin-top: -6px;
527
+ margin-bottom: -6px;
528
+ width: 100%;
529
+ }
530
+
531
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit.active {
532
+ display: inline-block;
533
+ }
534
+
535
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit input {
536
+ width: 100%;
537
+ }
538
+
539
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions {
540
+ display: inline-block;
541
+ float: right;
542
+ text-align: right;
543
+ width: 100px;
544
+ }
545
+
546
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button {
547
+ -webkit-appearance: none;
548
+ background-color: transparent;
549
+ border: none;
550
+ color: inherit;
551
+ cursor: pointer;
552
+ font-size: 16px;
553
+ line-height: 1;
554
+ }
555
+
556
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button.wpforms-notification-delete {
557
+ color: #d22222;
558
+ padding-right: 0;
559
+ }
560
+
561
+ #wpforms-panel-settings .wpforms-panel-content .wpforms-notification-content {
562
+ margin-top: 20px;
563
+ }
564
+
565
+ .wpforms-screen-reader-element {
566
+ position: absolute !important;
567
+ clip: rect(0, 0, 0, 0) !important;
568
+ height: 1px !important;
569
+ width: 1px !important;
570
+ border: 0 !important;
571
+ margin: 0 !important;
572
+ padding: 0 !important;
573
+ overflow: hidden !important;
574
+ word-wrap: normal !important;
575
+ }
576
+
577
+ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Bmb3Jtcy9hc3NldHMvY3NzL2J1aWxkZXIuY3NzIiwic291cmNlcyI6WyJ3cGZvcm1zL2Fzc2V0cy9zY3NzL2J1aWxkZXIuc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fY29uZmlybS5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fYnV0dG9ucy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9hZG1pbi9fYWxlcnRzLnNjc3MiLCJ3cGZvcm1zL2Fzc2V0cy9zY3NzL2J1aWxkZXIvX3BhbmVsLWZpZWxkcy5zY3NzIiwid3Bmb3Jtcy9hc3NldHMvc2Nzcy9idWlsZGVyL3BhbmVsLWZpZWxkcy9fY2hlY2tib3guc2NzcyIsIndwZm9ybXMvYXNzZXRzL3Njc3MvYnVpbGRlci9wYW5lbC1maWVsZHMvX3JhZGlvLnNjc3MiLCJ3cGZvcm1zL2Fzc2V0cy9zY3NzL2J1aWxkZXIvcGFuZWwtZmllbGRzL19wYXltZW50LW11bHRpcGxlLnNjc3MiLCJ3cGZvcm1zL2Fzc2V0cy9zY3NzL2J1aWxkZXIvX3BhbmVsLXNldHRpbmdzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gV1BGb3JtcyBmb3JtIGJ1aWxkZXIgc3R5bGVzLlxuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnYWRtaW4vY29uZmlybSc7XG5AaW1wb3J0ICdhZG1pbi9idXR0b25zJztcbkBpbXBvcnQgJ2FkbWluL2FsZXJ0cyc7XG5AaW1wb3J0ICdidWlsZGVyL3BhbmVsLWZpZWxkcyc7XG5AaW1wb3J0ICdidWlsZGVyL3BhbmVsLXNldHRpbmdzJztcblxuLndwZm9ybXMtc2NyZWVuLXJlYWRlci1lbGVtZW50IHtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcblx0aGVpZ2h0OiAxcHggIWltcG9ydGFudDtcblx0d2lkdGg6IDFweCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0b3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuXHR3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufSIsIiRvcmFuZ2U6ICNlMjc3MzA7XG4kZGFya29yYW5nZTogI2I4NWExYjtcbiRncmVlbjogIzJhOWIzOTtcbiRibHVlOiAjMGU2Y2FkO1xuJGxpZ2h0Qmx1ZTogI2ViZjNmYjtcbiIsIi8vIEFsZXJ0IHN0eWxlcy5cbi8vIFN0eWxpbmcgdHdlYWtzIGZvciBqUXVlcnktY29uZmlybSBKUyBhbGVydCBsaWJyYXJ5LlxuYm9keSB7XG5cblx0ZGl2Lmpjb25maXJtIHtcblxuXHRcdCosXG5cdFx0Kjo6YmVmb3JlLFxuXHRcdCo6OmFmdGVyIHtcblx0XHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0fVxuXG5cdFx0ZGl2Lmpjb25maXJtLWJveC1jb250YWluZXIgZGl2Lmpjb25maXJtLWJveCB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblx0XHR9XG5cblx0XHRkaXYuamNvbmZpcm0tYm94IHtcblxuXHRcdFx0ZGl2Lmpjb25maXJtLWNvbnRlbnQtcGFuZSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRcdC5qY29uZmlybS1jb250ZW50IHtcblx0XHRcdFx0XHRvdmVyZmxvdzogaW5pdGlhbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRkaXYuamNvbmZpcm0tY29udGVudCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cblx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMTZweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aW5wdXRbdHlwZT10ZXh0XSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogOTklO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZDZkNmQ2O1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRtYXJnaW46IDIwcHggYXV0byAwIGF1dG87XG5cdFx0XHR9XG5cblx0XHRcdCN3cGZvcm1zLWVtYmVkLXNob3J0Y29kZSB7XG5cdFx0XHRcdG1hcmdpbjogMjBweCAwO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdFx0cGFkZGluZzogOHB4IDVweDtcblx0XHRcdH1cblxuXHRcdFx0I3dwZm9ybXMtZW1iZWQtc2hvcnRjb2RlOmRpc2FibGVkIHtcblx0XHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHR9XG5cblx0XHRcdGJ1dHRvbi5idG4tY29uZmlybSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrb3JhbmdlO1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmVycm9yIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdH1cblxuXHRcdFx0Lmpjb25maXJtLXRpdGxlLWMgLmpjb25maXJtLWljb24tYyB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0dHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDVweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jaG9pY2VzIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0aW5wdXRbdHlwZT10ZXh0XS5jaG9pY2VzX19pbnB1dCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEJ1dHRvbiBzdHlsZXMuXG4ud3Bmb3Jtcy1hZG1pbi1wYWdlIHtcblxuXHQud3Bmb3Jtcy1idG4ge1xuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW46IDA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1ibG9jayB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tbWQge1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdHBhZGRpbmc6IDhweCAxMnB4O1xuXHRcdG1pbi1oZWlnaHQ6IDM1cHg7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tbGcge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdHBhZGRpbmc6IDE2cHggMjhweDtcblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1vcmFuZ2Uge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkb3JhbmdlO1xuXHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya29yYW5nZTtcblx0XHRcdGJvcmRlci1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtYnRuLWdyZXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjY2NjO1xuXHRcdGNvbG9yOiAjNjY2O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZDdkN2Q3O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjY2NjO1xuXHRcdFx0Y29sb3I6ICM0NDQ7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtYnRuLWxpZ2h0LWdyZXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRjb2xvcjogIzY2NjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdGNvbG9yOiAjNDQ0O1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWJ0bi10cmFucy1ncmVlbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcblx0XHRjb2xvcjogJGdyZWVuO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cblx0XHQudW5kZXJsaW5lIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRncmVlbjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IC01cHg7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5kYXNoaWNvbnMge1xuXHRcdFx0aGVpZ2h0OiAxOHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gQWxlcnQgc3R5bGVzLlxuLndwZm9ybXMtYWRtaW4tcGFnZSB7XG5cblx0LndwZm9ybXMtYWxlcnQge1xuXHRcdHBhZGRpbmc6IDE2cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMThweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHRcdGg0IHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LW5vbWFyZ2luIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtc21hbGwge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1zdWNjZXNzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG5cdFx0XHRib3JkZXItY29sb3I6ICNkNmU5YzY7XG5cdFx0XHRjb2xvcjogIzNjNzYzZDtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtaW5mbyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmNlOGYxO1xuXHRcdFx0Y29sb3I6ICMzMTcwOGY7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LXdhcm5pbmcge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcblx0XHRcdGJvcmRlci1jb2xvcjogI2ZhZWJjYztcblx0XHRcdGNvbG9yOiAjOGE2ZDNiO1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1kYW5nZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcblx0XHRcdGJvcmRlci1jb2xvcjogI2ViY2NkMTtcblx0XHRcdGNvbG9yOiAjYTk0NDQyO1xuXHRcdH1cblx0fVxufSIsIi8vIEZpZWxkIHBhbmVsLlxuXG4jd3Bmb3Jtcy1wYW5lbC1maWVsZHMge1xuXG5cdC8vIFNpZGViYXIgYXJlYSAobGVmdCBzaWRlLCBmaWVsZCBidXR0b25zL29wdGlvbnMpLlxuXHQud3Bmb3Jtcy1wYW5lbC1zaWRlYmFyIHtcblxuXHRcdC5jaG9pY2VzLWxpc3Qge1xuXG5cdFx0XHQmLnNob3ctaW1hZ2VzIHtcblx0XHRcdFx0LndwZm9ybXMtaW1hZ2UtdXBsb2FkIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1pbWFnZS11cGxvYWQge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFBhbmVsIGNvbnRlbnQgYXJlYSAocmlnaHQgc2lkZSwgZm9ybSBwcmV2aWV3IGFyZWEpLlxuXHQud3Bmb3Jtcy1wYW5lbC1jb250ZW50LXdyYXAge1xuXG5cdFx0Ly8gSW1hZ2UgY2hvaWNlcyAoQ2hlY2tib3gsIFJhZGlvLCBNdWx0aXBsZSBwYXltZW50IGl0ZW1zKS5cblx0XHQud3Bmb3Jtcy1maWVsZC1jaGVja2JveCxcblx0XHQud3Bmb3Jtcy1maWVsZC1yYWRpbyxcblx0XHQud3Bmb3Jtcy1maWVsZC1wYXltZW50LW11bHRpcGxlIHtcblxuXHRcdFx0Ly8gR2VuZXJhbCB0b3AgbGV2ZWwgcnVsZXMuXG5cdFx0XHQmLndwZm9ybXMtbGlzdC1pbmxpbmUge1xuXG5cdFx0XHRcdC5wcmltYXJ5LWlucHV0IHtcblx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHVsLndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1tb2Rlcm4ge1xuXHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogNXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHVsLndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1jbGFzc2ljIHtcblx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgMTBweCAxMHB4IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1vZGVybiBzdHlsZS5cblx0XHRcdHVsLndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1tb2Rlcm4ge1xuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDIwcHggMjBweCAxOHB4IDIwcHg7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuNXM7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRib3JkZXI6MXB4IHNvbGlkICNkZGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1pbWFnZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlxcMjcxNFwiO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGdyZWVuO1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAtMTZweCAwIDAgLTE2cHg7XG5cdFx0XHRcdFx0XHR3aWR0aDogMzJweDtcblx0XHRcdFx0XHRcdGhlaWdodDogMzJweDtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjVzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC53cGZvcm1zLWltYWdlLWNob2ljZXMtbGFiZWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTZWxlY3RlZCBzdGF0ZS5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdCYud3Bmb3Jtcy1zZWxlY3RlZCB7XG5cblx0XHRcdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC53cGZvcm1zLWltYWdlLWNob2ljZXMtaW1hZ2U6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQud3Bmb3Jtcy1pbWFnZS1jaG9pY2VzLWxhYmVsIHtcblx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gQ2xhc3NpYyBzdHlsZS5cblx0XHRcdHVsLndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1jbGFzc2ljIHtcblxuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsYWJlbCB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6ICNkZGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LndwZm9ybXMtaW1hZ2UtY2hvaWNlcy1pbWFnZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQud3Bmb3Jtcy1pbWFnZS1jaG9pY2VzLWxhYmVsIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTZWxlY3RlZCBzdGF0ZS5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdCYud3Bmb3Jtcy1zZWxlY3RlZCB7XG5cblx0XHRcdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjNjY2O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEZpZWxkIHNwZWNpZmljIHJ1bGVzLlxuXHRAaW1wb3J0ICdwYW5lbC1maWVsZHMvY2hlY2tib3gnO1xuXHRAaW1wb3J0ICdwYW5lbC1maWVsZHMvcmFkaW8nO1xuXHRAaW1wb3J0ICdwYW5lbC1maWVsZHMvcGF5bWVudC1tdWx0aXBsZSc7XG59IiwiLy8gQ2hlY2tib3ggZmllbGQgdHlwZS5cblxuLy8gRmllbGQgb3B0aW9ucyBhcmVhIChsZWZ0IHNpZGUpLlxuLndwZm9ybXMtcGFuZWwtc2lkZWJhciB7XG5cblx0LndwZm9ybXMtZmllbGQtb3B0aW9uLWNoZWNrYm94IHtcblxuXHRcdC8vIENob2ljZXMgZmlsZSB1cGxvYWQuXG5cdFx0LndwZm9ybXMtZmllbGQtb3B0aW9uLXJvdy1jaG9pY2VzIC53cGZvcm1zLWltYWdlLXVwbG9hZCB7XG5cdFx0XHRtYXJnaW46IDZweCAwIDAgNTBweDtcblx0XHRcdHdpZHRoOiA2OCU7XG5cblx0XHRcdC5wcmV2aWV3IHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjU1LDI1NSwyNTUsMC42NSk7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMDU3XCI7XG5cdFx0XHRcdFx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0XHRcdFx0XHR3aWR0aDogMjVweDtcblx0XHRcdFx0XHRcdGhlaWdodDogMjVweDtcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAtMTIuNXB4IDAgMCAtMTIuNXB4O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzMHB4O1xuXHRcdFx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdW5zZXQ7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMC44O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdG1heC1oZWlnaHQ6IDEwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIEZvcm0gcHJldmlldyBhcmVhIChyaWdodCBzaWRlKS5cbi53cGZvcm1zLXBhbmVsLWNvbnRlbnQtd3JhcCB7XG59IiwiLy8gUmFkaW8gZmllbGQgdHlwZS5cblxuLy8gRmllbGQgb3B0aW9ucyBhcmVhIChsZWZ0IHNpZGUpLlxuLndwZm9ybXMtcGFuZWwtc2lkZWJhciB7XG5cblx0LndwZm9ybXMtZmllbGQtb3B0aW9uLXJhZGlvIHtcblxuXHRcdC8vIENob2ljZXMgZmlsZSB1cGxvYWQuXG5cdFx0LndwZm9ybXMtZmllbGQtb3B0aW9uLXJvdy1jaG9pY2VzIC53cGZvcm1zLWltYWdlLXVwbG9hZCB7XG5cdFx0XHRtYXJnaW46IDZweCAwIDAgNTBweDtcblx0XHRcdHdpZHRoOiA2OCU7XG5cblx0XHRcdC5wcmV2aWV3IHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjU1LDI1NSwyNTUsMC42NSk7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMDU3XCI7XG5cdFx0XHRcdFx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0XHRcdFx0XHR3aWR0aDogMjVweDtcblx0XHRcdFx0XHRcdGhlaWdodDogMjVweDtcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAtMTIuNXB4IDAgMCAtMTIuNXB4O1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzMHB4O1xuXHRcdFx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdW5zZXQ7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMC44O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdG1heC1oZWlnaHQ6IDEwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIEZvcm0gcHJldmlldyBhcmVhIChyaWdodCBzaWRlKS5cbi53cGZvcm1zLXBhbmVsLWNvbnRlbnQtd3JhcCB7XG59IiwiLy8gUGF5bWVudCBNdWx0aXBsZSBmaWVsZCB0eXBlLlxuXG4vLyBGaWVsZCBvcHRpb25zIGFyZWEgKGxlZnQgc2lkZSkuXG4ud3Bmb3Jtcy1wYW5lbC1zaWRlYmFyIHtcblxuXHQud3Bmb3Jtcy1maWVsZC1vcHRpb24tcGF5bWVudC1tdWx0aXBsZSB7XG5cblx0XHQvLyBDaG9pY2VzIGZpbGUgdXBsb2FkLlxuXHRcdC53cGZvcm1zLWZpZWxkLW9wdGlvbi1yb3ctY2hvaWNlcyAud3Bmb3Jtcy1pbWFnZS11cGxvYWQge1xuXHRcdFx0bWFyZ2luOiA2cHggMCAwIDUwcHg7XG5cdFx0XHR3aWR0aDogNzAlO1xuXG5cdFx0XHQucHJldmlldyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDI1NSwyNTUsMjU1LDAuNjUpO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YTpob3ZlciB7XG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlxcZjA1N1wiO1xuXHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdFx0XHRcdFx0d2lkdGg6IDI1cHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDI1cHg7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCByZWQ7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHRcdG1hcmdpbjogLTEyLjVweCAwIDAgLTEyLjVweDtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRcdFx0XHRcdGNvbG9yOiByZWQ7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IHVuc2V0O1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDAuODtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiAxMDBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLyBGb3JtIHByZXZpZXcgYXJlYSAocmlnaHQgc2lkZSkuXG4ud3Bmb3Jtcy1wYW5lbC1jb250ZW50LXdyYXAge1xufSIsIi8vIFNldHRpbmdzIHBhbmVsLlxuI3dwZm9ybXMtcGFuZWwtc2V0dGluZ3Mge1xuXG5cdC53cGZvcm1zLXBhbmVsLWNvbnRlbnQge1xuXG5cdFx0LndwZm9ybXMtbm90aWZpY2F0aW9uIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7XG5cdFx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cblx0XHRcdC53cGZvcm1zLXBhbmVsLWZpZWxkIHtcblx0XHRcdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLW5vdGlmaWNhdGlvbi1oZWFkZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcblx0XHRcdHBhZGRpbmc6IDEwcHggMjBweDtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LndwZm9ybXMtbm90aWZpY2F0aW9uLW5hbWUtaG9sZGVye1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMDBweDtcblxuXHRcdFx0XHQud3Bmb3Jtcy1ub3RpZmljYXRpb24tbmFtZS1lZGl0IHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IC02cHg7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogLTZweDtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpbnB1dCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LndwZm9ybXMtbm90aWZpY2F0aW9uLWFjdGlvbnMge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRcdHdpZHRoOiAxMDBweDtcblxuXHRcdFx0XHRidXR0b24ge1xuXHRcdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblxuXHRcdFx0XHRcdCYud3Bmb3Jtcy1ub3RpZmljYXRpb24tZWRpdCB7fVxuXG5cdFx0XHRcdFx0Ji53cGZvcm1zLW5vdGlmaWNhdGlvbi1kZWxldGUge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNkMjIyMjI7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLW5vdGlmaWNhdGlvbi1jb250ZW50IHtcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0fVxuXHR9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFFRUEsQUFJRSxJQUpFLENBRUgsR0FBRyxBQUFBLFNBQVMsQ0FFWCxDQUFDO0FBSkgsQUFLRSxJQUxFLENBRUgsR0FBRyxBQUFBLFNBQVMsQ0FHWCxDQUFDLEFBQUEsUUFBUTtBQUxYLEFBTUUsSUFORSxDQUVILEdBQUcsQUFBQSxTQUFTLENBSVgsQ0FBQyxBQUFBLE9BQU8sQ0FBQztFQUNSLGtCQUFrQixFQUFFLFVBQVU7RUFDOUIsZUFBZSxFQUFFLFVBQVU7RUFDM0IsVUFBVSxFQUFFLFVBQVU7Q0FDdEI7O0FBVkgsQUFZNkIsSUFaekIsQ0FFSCxHQUFHLEFBQUEsU0FBUyxDQVVYLEdBQUcsQUFBQSx1QkFBdUIsQ0FBQyxHQUFHLEFBQUEsYUFBYSxDQUFDO0VBQzNDLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7Q0FDeEM7O0FBZkgsQUFtQkcsSUFuQkMsQ0FFSCxHQUFHLEFBQUEsU0FBUyxDQWVYLEdBQUcsQUFBQSxhQUFhLENBRWYsR0FBRyxBQUFBLHNCQUFzQixDQUFDO0VBQ3pCLGFBQWEsRUFBRSxJQUFJO0VBQ25CLE9BQU8sRUFBRSxLQUFLO0NBS2Q7O0FBMUJKLEFBdUJJLElBdkJBLENBRUgsR0FBRyxBQUFBLFNBQVMsQ0FlWCxHQUFHLEFBQUEsYUFBYSxDQUVmLEdBQUcsQUFBQSxzQkFBc0IsQ0FJeEIsaUJBQWlCLENBQUM7RUFDakIsUUFBUSxFQUFFLE9BQU87Q0FDakI7O0FBekJMLEFBNEJH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 */
assets/css/builder.min.css ADDED
@@ -0,0 +1 @@
 
1
+ body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}.wpforms-admin-page .wpforms-alert{padding:16px;margin-bottom:18px;border:1px solid transparent}.wpforms-admin-page .wpforms-alert h4{margin-top:0;color:inherit}.wpforms-admin-page .wpforms-alert p{margin:0 0 15px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-small{font-size:12px}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}#wpforms-panel-fields .wpforms-panel-sidebar .choices-list.show-images .wpforms-image-upload{display:block}#wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-image-upload{display:none}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline .primary-input li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline .primary-input li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline .primary-input li{vertical-align:top}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-image-choices-modern li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline ul.wpforms-image-choices-modern li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-image-choices-modern li{margin:5px}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-image-choices-classic li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio.wpforms-list-inline ul.wpforms-image-choices-classic li,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-image-choices-classic li{margin:0 10px 10px 0}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern img,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern img,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern img{display:inline;margin:0 auto;max-width:100%}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern label{background-color:#fff;display:inline-block;margin:0 auto;padding:0;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern label:hover,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern label:hover,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern label:hover{border:1px solid #ddd}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after{opacity:1}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label{font-weight:700}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic img,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic img,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic img{display:inline;margin:0 auto;max-width:100%}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label{background-color:#fff;display:inline-block;margin:0 auto;padding:0;border:2px solid #fff;padding:10px;text-align:center}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic label:hover,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic label:hover,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label:hover{border-color:#ddd}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-image,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-image,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-image{display:block}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-checkbox ul.wpforms-image-choices-classic li.wpforms-selected label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-radio ul.wpforms-image-choices-classic li.wpforms-selected label,#wpforms-panel-fields .wpforms-panel-content-wrap .wpforms-field-payment-multiple ul.wpforms-image-choices-classic li.wpforms-selected label{border-color:#666}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload{margin:6px 0 0 50px;width:68%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview{background-color:rgba(255,255,255,0.65);display:block;width:100%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview a{display:block;position:relative}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after{content:"\f057";font-family:FontAwesome;width:25px;height:25px;border:1px solid red;position:absolute;top:50%;left:50%;margin:-12.5px 0 0 -12.5px;font-size:30px;color:red;background-color:#fff;vertical-align:unset;line-height:0.8;border-radius:50%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-checkbox .wpforms-field-option-row-choices .wpforms-image-upload .preview img{display:block;margin:0 auto;max-width:100%;max-height:100px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload{margin:6px 0 0 50px;width:68%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview{background-color:rgba(255,255,255,0.65);display:block;width:100%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview a{display:block;position:relative}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after{content:"\f057";font-family:FontAwesome;width:25px;height:25px;border:1px solid red;position:absolute;top:50%;left:50%;margin:-12.5px 0 0 -12.5px;font-size:30px;color:red;background-color:#fff;vertical-align:unset;line-height:0.8;border-radius:50%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-radio .wpforms-field-option-row-choices .wpforms-image-upload .preview img{display:block;margin:0 auto;max-width:100%;max-height:100px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload{margin:6px 0 0 50px;width:70%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview{background-color:rgba(255,255,255,0.65);display:block;width:100%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview a{display:block;position:relative}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover:after{content:"\f057";font-family:FontAwesome;width:25px;height:25px;border:1px solid red;position:absolute;top:50%;left:50%;margin:-12.5px 0 0 -12.5px;font-size:30px;color:red;background-color:#fff;vertical-align:unset;line-height:0.8;border-radius:50%}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-payment-multiple .wpforms-field-option-row-choices .wpforms-image-upload .preview img{display:block;margin:0 auto;max-width:100%;max-height:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification{border:1px solid #d3d3d3;margin:0 0 20px 0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field{padding:0 20px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header{background-color:#f1f1f1;padding:10px 20px;font-size:16px;margin:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder{display:block;margin-right:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit{display:none;margin-top:-6px;margin-bottom:-6px;width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit.active{display:inline-block}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit input{width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions{display:inline-block;float:right;text-align:right;width:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button{-webkit-appearance:none;background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:16px;line-height:1}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button.wpforms-notification-delete{color:#d22222;padding-right:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-content{margin-top:20px}.wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;width:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;word-wrap:normal !important}
assets/css/wpforms-base.css CHANGED
@@ -70,7 +70,21 @@
70
  margin: 5px 0 0 0;
71
  }
72
 
73
- .wpforms-container .wpforms-field-description-before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  font-size: 0.85em;
75
  margin: 0 0 5px 0;
76
  }
@@ -237,6 +251,12 @@
237
  padding-right: 26px;
238
  }
239
 
 
 
 
 
 
 
240
  /* Legacy, for BC */
241
  .wpforms-container .wpforms-first-half {
242
  float: left;
@@ -430,6 +450,7 @@
430
  width:auto;
431
  }
432
 
 
433
  /* Rating field
434
  ----------------------------------------------------------------------------- */
435
 
@@ -456,6 +477,115 @@
456
  }
457
 
458
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
 
460
  /* Page Indicator themes
461
  ----------------------------------------------------------------------------- */
70
  margin: 5px 0 0 0;
71
  }
72
 
73
+ .wpforms-container .wpforms-field-description.wpforms-disclaimer-description {
74
+ background-color: #fff;
75
+ border: 1px solid #ddd;
76
+ padding: 15px 15px 0;
77
+ height: 125px;
78
+ overflow-y: scroll;
79
+ overflow-x: hidden;
80
+ }
81
+
82
+ .wpforms-container .wpforms-field-description.wpforms-disclaimer-description p {
83
+ margin: 0 0 15px 0;
84
+ }
85
+
86
+ .wpforms-container .wpforms-field-description-before,
87
+ .wpforms-container .wpforms-field-description.before {
88
  font-size: 0.85em;
89
  margin: 0 0 5px 0;
90
  }
251
  padding-right: 26px;
252
  }
253
 
254
+ .wpforms-container .wpforms-list-inline ul li {
255
+ display: inline-block;
256
+ margin-right: 20px;
257
+ vertical-align: top;
258
+ }
259
+
260
  /* Legacy, for BC */
261
  .wpforms-container .wpforms-first-half {
262
  float: left;
450
  width:auto;
451
  }
452
 
453
+
454
  /* Rating field
455
  ----------------------------------------------------------------------------- */
456
 
477
  }
478
 
479
 
480
+ /* Image choices
481
+ ----------------------------------------------------------------------------- */
482
+
483
+ /* Modern style */
484
+ .wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li {
485
+ margin: 5px 5px 5px 5px ;
486
+ }
487
+
488
+ .wpforms-container .wpforms-image-choices-modern img {
489
+ display: inline;
490
+ margin: 0 auto;
491
+ max-width: 100%;
492
+ }
493
+
494
+ .wpforms-container .wpforms-image-choices-modern label {
495
+ background-color: #fff;
496
+ display: inline-block;
497
+ margin: 0 auto;
498
+ padding: 0;
499
+ cursor: pointer;
500
+ border: 1px solid #fff;
501
+ border-radius: 3px;
502
+ padding: 20px 20px 18px 20px;
503
+ transition: all 0.5s;
504
+ text-align: center;
505
+ }
506
+
507
+ .wpforms-container .wpforms-image-choices-modern label:hover {
508
+ border:1px solid #ddd;
509
+ }
510
+
511
+ .wpforms-container .wpforms-image-choices-modern .wpforms-selected label {
512
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
513
+ }
514
+
515
+ .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after {
516
+ content: "\2714";
517
+ font-size: 22px;
518
+ line-height: 32px;
519
+ color: #fff;
520
+ background: green;
521
+ opacity: 0;
522
+ position: absolute;
523
+ top: 50%;
524
+ left: 50%;
525
+ margin: -16px 0 0 -16px;
526
+ width: 32px;
527
+ height: 32px;
528
+ border-radius: 50%;
529
+ transition: all 0.5s;
530
+ }
531
+
532
+ .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after {
533
+ opacity: 1;
534
+ }
535
+
536
+ .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image {
537
+ display: block;
538
+ position: relative;
539
+ }
540
+
541
+ .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label {
542
+ font-weight: 700;
543
+ }
544
+
545
+ .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label {
546
+ display: block;
547
+ margin-top: 12px;
548
+ }
549
+
550
+ /* Classic */
551
+ .wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li {
552
+ margin: 0 10px 10px 0 !important;
553
+ }
554
+
555
+ .wpforms-container .wpforms-image-choices-classic img {
556
+ display: inline;
557
+ margin: 0 auto;
558
+ max-width: 100%;
559
+ }
560
+
561
+ .wpforms-container .wpforms-image-choices-classic label {
562
+ background-color: #fff;
563
+ display: inline-block;
564
+ margin: 0 auto;
565
+ padding: 0;
566
+ cursor: pointer;
567
+ border: 2px solid #fff;
568
+ padding: 10px;
569
+ text-align: center;
570
+ }
571
+
572
+ .wpforms-container .wpforms-image-choices-classic label:hover {
573
+ border-color: #ddd;
574
+ }
575
+
576
+ .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image {
577
+ display: block;
578
+ }
579
+
580
+ .wpforms-container .wpforms-image-choices-classic .wpforms-selected label {
581
+ border-color: #666;
582
+ }
583
+
584
+ .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label {
585
+ display: block;
586
+ margin-top: 8px;
587
+ }
588
+
589
 
590
  /* Page Indicator themes
591
  ----------------------------------------------------------------------------- */
assets/css/wpforms-full.css CHANGED
@@ -142,7 +142,27 @@ div.wpforms-container-full .wpforms-form .wpforms-field-description {
142
  margin: 8px 0 0 0;
143
  }
144
 
145
- div.wpforms-container-full .wpforms-form .wpforms-field-description-before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  margin: 0 0 8px 0;
147
  }
148
 
@@ -323,6 +343,12 @@ div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li {
323
  padding-right: 26px !important;
324
  }
325
 
 
 
 
 
 
 
326
  /* Legacy, for BC */
327
  div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-half {
328
  float: left;
@@ -486,6 +512,15 @@ div.wpforms-container-full .wpforms-form select:focus {
486
  border: 1px solid #999;
487
  }
488
 
 
 
 
 
 
 
 
 
 
489
 
490
  /* Errors, Warnings, etc
491
  ----------------------------------------------------------------------------- */
@@ -732,6 +767,118 @@ div.wpforms-container-full .wpforms-form .wpforms-field-rating-item input:focus
732
  }
733
 
734
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
735
  /* Page Indicator themes
736
  ----------------------------------------------------------------------------- */
737
 
142
  margin: 8px 0 0 0;
143
  }
144
 
145
+ div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description {
146
+ background-color: #fff;
147
+ border: 1px solid #ddd;
148
+ color: #444;
149
+ padding: 15px 15px 0;
150
+ margin-top: 15px;
151
+ height: 125px;
152
+ overflow-y: scroll;
153
+ overflow-x: hidden;
154
+ font-size: 12px
155
+ }
156
+
157
+ div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description p {
158
+ color: #444;
159
+ font-size: 12px;
160
+ line-height: 18px;
161
+ margin-bottom: 15px;
162
+ }
163
+
164
+ div.wpforms-container-full .wpforms-form .wpforms-field-description-before,
165
+ div.wpforms-container-full .wpforms-form .wpforms-field-description.before {
166
  margin: 0 0 8px 0;
167
  }
168
 
343
  padding-right: 26px !important;
344
  }
345
 
346
+ div.wpforms-container-full .wpforms-form .wpforms-list-inline ul li {
347
+ display: inline-block;
348
+ vertical-align: top;
349
+ margin-right: 20px !important;
350
+ }
351
+
352
  /* Legacy, for BC */
353
  div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-half {
354
  float: left;
512
  border: 1px solid #999;
513
  }
514
 
515
+ div.wpforms-container-full .wpforms-form input:disabled,
516
+ div.wpforms-container-full .wpforms-form textarea:disabled,
517
+ div.wpforms-container-full .wpforms-form select:disabled {
518
+ background-color: #f9f9f9;
519
+ border-color: #ddd;
520
+ color: #999;
521
+ cursor: not-allowed;
522
+ }
523
+
524
 
525
  /* Errors, Warnings, etc
526
  ----------------------------------------------------------------------------- */
767
  }
768
 
769
 
770
+ /* Image choices
771
+ ----------------------------------------------------------------------------- */
772
+
773
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label {
774
+ cursor: pointer;
775
+ }
776
+
777
+ /* Modern style */
778
+ div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-modern li {
779
+ margin: 5px 5px 5px 5px !important;
780
+ }
781
+
782
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img {
783
+ display: inline;
784
+ margin: 0 auto;
785
+ max-width: 100%;
786
+ }
787
+
788
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label {
789
+ background-color: #fff;
790
+ display: inline-block;
791
+ margin: 0 auto;
792
+ padding: 0;
793
+ border: 1px solid #fff;
794
+ border-radius: 3px;
795
+ padding: 20px 20px 18px 20px;
796
+ transition: all 0.5s;
797
+ text-align: center;
798
+ }
799
+
800
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:hover {
801
+ border:1px solid #ddd;
802
+ }
803
+
804
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected label {
805
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
806
+ }
807
+
808
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image:after {
809
+ content: "\2714";
810
+ font-size: 22px;
811
+ line-height: 32px;
812
+ color: #fff;
813
+ background: green;
814
+ opacity: 0;
815
+ position: absolute;
816
+ top: 50%;
817
+ left: 50%;
818
+ margin: -16px 0 0 -16px;
819
+ width: 32px;
820
+ height: 32px;
821
+ border-radius: 50%;
822
+ transition: all 0.5s;
823
+ }
824
+
825
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after {
826
+ opacity: 1;
827
+ }
828
+
829
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image {
830
+ display: block;
831
+ position: relative;
832
+ }
833
+
834
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label {
835
+ font-weight: 700;
836
+ }
837
+
838
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-label {
839
+ display: block;
840
+ margin-top: 12px;
841
+ }
842
+
843
+ /* Classic */
844
+ div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-classic li {
845
+ margin: 0 10px 10px 0 !important;
846
+ }
847
+
848
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img {
849
+ display: inline;
850
+ margin: 0 auto;
851
+ max-width: 100%;
852
+ }
853
+
854
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label {
855
+ background-color: #fff;
856
+ display: inline-block;
857
+ margin: 0 auto;
858
+ padding: 0;
859
+ border: 2px solid #fff;
860
+ padding: 10px;
861
+ text-align: center;
862
+ }
863
+
864
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:hover {
865
+ border-color: #ddd;
866
+ }
867
+
868
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-image {
869
+ display: block;
870
+ }
871
+
872
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-selected label {
873
+ border-color: #666;
874
+ }
875
+
876
+ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-label {
877
+ display: block;
878
+ margin-top: 8px;
879
+ }
880
+
881
+
882
  /* Page Indicator themes
883
  ----------------------------------------------------------------------------- */
884
 
assets/images/placeholder-200x125.png ADDED
Binary file
assets/js/admin-builder-conditional-logic-core.js CHANGED
@@ -1,6 +1,9 @@
1
  /* globals wpf, wpforms_builder, wp */
 
2
  ;(function($) {
3
 
 
 
4
  var WPFormsConditionals = {
5
 
6
  /**
@@ -10,9 +13,22 @@
10
  */
11
  init: function() {
12
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  WPFormsConditionals.bindUIActions();
14
  },
15
 
 
16
  /**
17
  * Element bindings.
18
  *
@@ -20,38 +36,40 @@
20
  */
21
  bindUIActions: function() {
22
 
23
- // Conditional support toggle
24
- $(document).on('change', '.wpforms-conditionals-enable-toggle input[type=checkbox]', function(e) {
25
- WPFormsConditionals.conditionalToggle(this, e);
 
 
26
  });
27
 
28
- // Conditional process field select
29
- $(document).on('change', '.wpforms-conditional-field', function(e) {
30
- WPFormsConditionals.conditionalField(this, e);
31
  });
32
 
33
- // Conditional process operator select
34
- $(document).on('change', '.wpforms-conditional-operator', function(e) {
35
- WPFormsConditionals.conditionalOperator(this, e);
36
  });
37
 
38
- // Conditional add new rule
39
- $(document).on('click', '.wpforms-conditional-rule-add', function(e) {
40
- WPFormsConditionals.conditionalRuleAdd(this, e);
41
  });
42
 
43
- // Conditional delete rule
44
- $(document).on('click', '.wpforms-conditional-rule-delete', function(e) {
45
- WPFormsConditionals.conditionalRuleDelete(this, e);
46
  });
47
 
48
- // Conditional add new group
49
- $(document).on('click', '.wpforms-conditional-groups-add', function(e) {
50
- WPFormsConditionals.conditionalGroupAdd(this, e);
51
  });
52
 
53
- // Conditional logic update/refresh
54
- $(document).on('wpformsFieldUpdate', WPFormsConditionals.conditionalUpdateOptions);
55
  },
56
 
57
  /**
@@ -59,12 +77,12 @@
59
  *
60
  * @since 1.0.0
61
  */
62
- conditionalUpdateOptions: function(e, allFields, $rows) {
63
 
64
- $rows = $rows || $('.wpforms-conditional-row'); // jshint ignore:line
65
 
66
  var fields = $.extend({}, allFields),
67
- allowed = ['text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden', 'rating'],
68
  changed = [],
69
  key = '',
70
  label = '';
@@ -74,74 +92,82 @@
74
  }
75
 
76
  // Remove field types that are not allowed and whitelested
77
- for(key in fields) {
78
- if ( $.inArray(fields[key].type, allowed) === -1 ){
79
  delete fields[key];
80
- } else if (typeof fields[key].dynamic_choices !== 'undefined' && fields[key].dynamic_choices !== '' ) {
81
  delete fields[key];
82
  }
83
  }
84
 
85
  // Now go through each conditional rule in the builder
86
- $rows.each(function(index, ele) {
87
 
88
- var $this = $(this),
89
- fieldID = $this.attr('data-field-id'),
90
- $fields = $this.find('.wpforms-conditional-field'),
91
- fieldSelected = $fields.find('option:selected').val(),
92
- $value = $this.find('.wpforms-conditional-value'),
93
  valueSelected = '';
94
 
95
  // Empty the field select box, re-add placeholder option
96
- $fields.empty().append($('<option>', { value: '', text : wpforms_builder.select_field }));
97
 
98
  // Add appropriate options for each field. Reference using the
99
  // field label (if provided) or fallback to the field ID.
100
- for(key in fields) {
101
- if (fields[key].label.length) {
102
- label = wpf.sanitizeString(fields[key].label);
 
 
 
 
 
 
103
  } else {
104
- label = wpforms_builder.field + ' #' + fields[key].id;
105
  }
106
- if (fieldID && fieldID === fields[key].id) {
107
  continue;
108
  } else {
109
- $fields.append($('<option>', { value: fields[key].id, text : label }));
110
  }
111
  }
112
 
113
- if ( !fieldSelected ) {
114
  return true;
115
  }
116
 
117
  // Check if previous selected field exists in the new options added
118
- if ( $fields.find('option[value="'+fieldSelected+'"]').length) {
119
 
120
  // Exists, so restore previous selected value
121
- $fields.find('option[value="'+fieldSelected+'"]').prop('selected', true);
122
 
123
  // Since the field exist and was selected, now we must proceed
124
  // to updating the field values. Luckily, we only have to do
125
  // this for fields that leverage a select element.
126
- if ($value.length && $value.is('select')) {
127
 
128
  // Grab the currently selected value to restore later
129
- valueSelected = $value.find('option:selected').val();
130
 
131
  // Remove all current options
132
  $value.empty();
133
 
134
  // Add new options, in the correct order
135
- $value.append($('<option>', { value: '', text : wpforms_builder.select_choice }));
136
- for(key in fields['field_'+fieldSelected].choices) {
137
- label = wpf.sanitizeString(fields['field_'+fieldSelected].choices[key].label);
138
- $value.append($('<option>', { value: fields['field_'+fieldSelected].choices[key].key, text : label }));
 
 
139
  }
140
 
141
  // Check if previous selected calue exists in the new options added
142
- if ($value.find('option[value="'+valueSelected+'"]').length) {
143
 
144
- $value.find('option[value="'+valueSelected+'"]').prop('selected', true);
145
 
146
  } else {
147
 
@@ -149,8 +175,8 @@
149
  // deleted. Add the field ID to the charged variable,
150
  // which will let the user know the fields conditional
151
  // logic has been altered.
152
- if (valueSelected.length > 0) {
153
- changed.push($this.closest('.wpforms-conditional-group').data('reference'));
154
  }
155
  }
156
  }
@@ -160,19 +186,19 @@
160
  // Old field does not exist in the new options, likely deleted.
161
  // Add the field ID to the charged variable, which will let
162
  // the user know the fields conditional logic has been altered.
163
- changed.push($this.closest('.wpforms-conditional-group').data('reference'));
164
 
165
  // Since previously selected field no longer exists, this
166
  // means this rule is now invalid. So the rule gets
167
  // deleted as long as it isn't the only rule remaining.
168
- var $group = $this.closest('.wpforms-conditional-group');
169
- if ($group.find('table >tbody >tr').length === 1) {
170
- var $groups = $this.closest('.wpforms-conditional-groups');
171
- if ($groups.find('.wpforms-conditional-group').length > 1) {
172
  $group.remove();
173
  } else {
174
- $this.find('.wpforms-conditional-value').remove();
175
- $this.find('.value').append('<select>');
176
  }
177
  } else {
178
  $this.remove();
@@ -190,11 +216,11 @@
190
  // Build and trigger alert
191
  var alert = wpforms_builder.conditionals_change;
192
 
193
- for(key in changedUnique) {
194
- if (wpf.isNumber(changedUnique[key]) ) {
195
  // Field
196
- if (allFields['field_'+changedUnique[key]].label.length ) {
197
- alert += '<br/>'+wpf.sanitizeString(allFields['field_'+changedUnique[key]].label) + ' ('+wpforms_builder.field+' #'+changedUnique[key]+')';
198
  } else {
199
  alert += '<br>'+wpforms_builder.field+' #'+changedUnique[key];
200
  }
@@ -218,8 +244,6 @@
218
  }
219
  });
220
  }
221
-
222
- //console.log('Conditional logic options updated');
223
  },
224
 
225
  /**
@@ -227,26 +251,26 @@
227
  *
228
  * @since 1.0.0
229
  */
230
- conditionalToggle: function(el, e) {
231
 
232
  e.preventDefault();
233
 
234
- var $this = $(el),
235
  $block = $this.parent().parent(),
236
- logicBlock = wp.template('wpforms-conditional-block'),
237
  data = {
238
- fieldID : $this.parent().data('field-id'),
239
- fieldName : $this.data('name'),
240
- actions : $this.data('actions'),
241
- actionDesc : $this.data('action-desc')
242
  };
243
 
244
- if ($this.is(':checked')) {
245
  // Add conditional logic rules.
246
- $block.append(logicBlock(data));
247
 
248
- // Update fields in the added rule
249
- WPFormsConditionals.conditionalUpdateOptions(false, wpf.getFields(false,true), $block.find('.wpforms-conditional-row') );
250
  } else {
251
  // Remove conditional logic rules.
252
  $.confirm({
@@ -262,19 +286,17 @@
262
  btnClass: 'btn-confirm',
263
  action: function(){
264
  // Prompt
265
- $block.find('.wpforms-conditional-groups').remove();
266
  }
267
  },
268
  cancel: {
269
  text: wpforms_builder.cancel,
270
  action: function() {
271
- $this.prop('checked', true);
272
  }
273
  }
274
  }
275
  });
276
-
277
-
278
  }
279
  },
280
 
@@ -283,34 +305,34 @@
283
  *
284
  * @since 1.0.0
285
  */
286
- conditionalField: function(el, e) {
287
 
288
  e.preventDefault();
289
 
290
  var $this = $(el),
291
  $rule = $this.parent().parent(),
292
- $operator = $rule.find('.wpforms-conditional-operator'),
293
- operator = $operator.find('option:selected').val(),
294
- data = WPFormsConditionals.conditionalData($this),
295
  name = data.inputName+'['+data.groupID+']['+data.ruleID+'][value]',
296
  $element;
297
 
298
  if ( !data.field ) {
299
 
300
- // Placeholder has been selected
301
- $element = $('<select>');
302
 
303
  } else if ( data.field.type === 'select' || data.field.type === 'radio' || data.field.type === 'checkbox' || data.field.type === 'payment-multiple' || data.field.type === 'payment-select' ) {
304
-
305
- // Selector type fields use select elements
306
- $element = $('<select>').attr({ name: name, class: 'wpforms-conditional-value' });
307
- $element.append($('<option>', { value: '', text : wpforms_builder.select_choice }));
308
- if (data.field.choices){
309
- for(var key in data.field.choices) {
310
- $element.append($('<option>', { value: data.field.choices[key].key, text : wpf.sanitizeString(data.field.choices[key].label) }));
311
  }
312
  }
313
- $operator.find("option:not([value='=='],[value='!='],[value='e'],[value='!e'])").prop('disabled', true).prop('selected', false);
314
 
315
  } else {
316
 
@@ -321,17 +343,17 @@
321
  if ( data.field.type === 'rating' ) {
322
  inputType = 'number';
323
  }
324
- $element = $('<input>').attr({ type: inputType, name: name, class: 'wpforms-conditional-value' });
325
- $operator.find('option').prop('disabled', false);
326
  }
327
 
328
  if ( operator === 'e' || operator === '!e' ) {
329
 
330
- // Empty/not empty doesn't use input, so we disable it
331
- $element.prop('disabled',true);
332
  }
333
 
334
- $rule.find('.value').empty().append($element);
335
  },
336
 
337
  /**
@@ -339,14 +361,14 @@
339
  *
340
  * @since 1.2.0
341
  */
342
- conditionalOperator: function(el, e) {
343
 
344
  e.preventDefault();
345
 
346
- var $this = $(el),
347
  $rule = $this.parent().parent(),
348
- $value = $rule.find('.wpforms-conditional-value'),
349
- operator = $this.find('option:selected').val();
350
 
351
  if ( operator === 'e' || operator === '!e' ) {
352
  $value.prop( 'disabled', true );
@@ -365,25 +387,25 @@
365
  *
366
  * @since 1.0.0
367
  */
368
- conditionalRuleAdd: function(el, e) {
369
 
370
  e.preventDefault();
371
 
372
- var $this = $(el),
373
- $group = $this.closest('.wpforms-conditional-group'),
374
- $rule = $group.find('tr').last(),
375
  $newRule = $rule.clone(),
376
- $field = $newRule.find('.wpforms-conditional-field'),
377
- $operator = $newRule.find('.wpforms-conditional-operator'),
378
- data = WPFormsConditionals.conditionalData($field),
379
- ruleID = Number(data.ruleID)+1,
380
  name = data.inputName+'['+data.groupID+']['+ruleID+']';
381
 
382
- $newRule.find('option:selected').prop('selected', false);
383
- $newRule.find('.value').empty().append( $('<select>') );
384
- $field.attr('name', name+'[field]').attr('data-ruleid', ruleID);
385
- $operator.attr('name', name+'[operator]');
386
- $rule.after($newRule);
387
  },
388
 
389
  /**
@@ -392,17 +414,17 @@
392
  *
393
  * @since 1.0.0
394
  */
395
- conditionalRuleDelete: function(el, e) {
396
 
397
  e.preventDefault();
398
 
399
- var $this = $(el),
400
- $group = $this.closest('.wpforms-conditional-group'),
401
- $rows = $group.find('table >tbody >tr');
402
 
403
- if ($rows && $rows.length === 1) {
404
- var $groups = $this.closest('.wpforms-conditional-groups');
405
- if ( $groups.find('.wpforms-conditional-group').length > 1 ) {
406
  $group.remove();
407
  } else {
408
  return;
@@ -417,26 +439,26 @@
417
  *
418
  * @since 1.0.0
419
  */
420
- conditionalGroupAdd: function(el, e) {
421
 
422
  e.preventDefault();
423
 
424
- var $this = $(el),
425
- $groupLast = $this.parent().find('.wpforms-conditional-group').last(),
426
  $newGroup = $groupLast.clone();
427
- $newGroup.find('tr').not(':first').remove();
428
- var $field = $newGroup.find('.wpforms-conditional-field'),
429
- $operator = $newGroup.find('.wpforms-conditional-operator'),
430
- data = WPFormsConditionals.conditionalData($field),
431
  groupID = Number(data.groupID)+1,
432
  ruleID = 0,
433
  name = data.inputName+'['+groupID+']['+ruleID+']';
434
 
435
- $newGroup.find('option:selected').prop('selected', false);
436
- $newGroup.find('.value').empty().append( $('<select>') );
437
- $field.attr('name', name+'[field]').attr('data-ruleid', ruleID).attr('data-groupid', groupID);
438
- $operator.attr('name', name+'[operator]');
439
- $this.before($newGroup);
440
  },
441
 
442
 
@@ -449,22 +471,22 @@
449
  *
450
  * @since 1.0.0
451
  */
452
- conditionalData: function(el) {
453
 
454
  var $this = $(el);
455
  var data = {
456
- fields : wpf.getFields(false, true),
457
- inputBase : $this.closest('.wpforms-conditional-row').attr('data-input-name'),
458
- fieldID : $this.closest('.wpforms-conditional-row').attr('data-field-id'),
459
- ruleID : $this.attr('data-ruleid'),
460
- groupID : $this.attr('data-groupid'),
461
- selectedID : $this.find(':selected').val()
462
  };
463
 
464
  data.inputName = data.inputBase+'[conditionals]';
465
 
466
  if (data.selectedID.length) {
467
- data.field = data.fields['field_'+data.selectedID];
468
  } else {
469
  data.field = false;
470
  }
1
  /* globals wpf, wpforms_builder, wp */
2
+
3
  ;(function($) {
4
 
5
+ 'use strict';
6
+
7
  var WPFormsConditionals = {
8
 
9
  /**
13
  */
14
  init: function() {
15
 
16
+ // Document ready
17
+ $(document).ready(WPFormsConditionals.ready);
18
+
19
+ },
20
+
21
+ /**
22
+ * Document ready.
23
+ *
24
+ * @since 1.0.0
25
+ */
26
+ ready: function() {
27
+
28
  WPFormsConditionals.bindUIActions();
29
  },
30
 
31
+
32
  /**
33
  * Element bindings.
34
  *
36
  */
37
  bindUIActions: function() {
38
 
39
+ var $builder = $('#wpforms-builder');
40
+
41
+ // Conditional support toggle.
42
+ $builder.on( 'change', '.wpforms-conditionals-enable-toggle input[type=checkbox]', function( e ) {
43
+ WPFormsConditionals.conditionalToggle( this, e );
44
  });
45
 
46
+ // Conditional process field select.
47
+ $builder.on( 'change', '.wpforms-conditional-field', function( e ) {
48
+ WPFormsConditionals.conditionalField( this, e );
49
  });
50
 
51
+ // Conditional process operator select.
52
+ $builder.on( 'change', '.wpforms-conditional-operator', function( e ) {
53
+ WPFormsConditionals.conditionalOperator( this, e );
54
  });
55
 
56
+ // Conditional add new rule.
57
+ $builder.on( 'click', '.wpforms-conditional-rule-add', function( e ) {
58
+ WPFormsConditionals.conditionalRuleAdd( this, e );
59
  });
60
 
61
+ // Conditional delete rule.
62
+ $builder.on( 'click', '.wpforms-conditional-rule-delete', function( e ) {
63
+ WPFormsConditionals.conditionalRuleDelete( this, e );
64
  });
65
 
66
+ // Conditional add new group.
67
+ $builder.on( 'click', '.wpforms-conditional-groups-add', function( e ) {
68
+ WPFormsConditionals.conditionalGroupAdd( this, e );
69
  });
70
 
71
+ // Conditional logic update/refresh.
72
+ $( document ).on( 'wpformsFieldUpdate', WPFormsConditionals.conditionalUpdateOptions );
73
  },
74
 
75
  /**
77
  *
78
  * @since 1.0.0
79
  */
80
+ conditionalUpdateOptions: function( e, allFields, $rows ) {
81
 
82
+ $rows = $rows || $( '.wpforms-conditional-row' ); // jshint ignore:line
83
 
84
  var fields = $.extend({}, allFields),
85
+ allowed = [ 'text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden', 'rating' ],
86
  changed = [],
87
  key = '',
88
  label = '';
92
  }
93
 
94
  // Remove field types that are not allowed and whitelested
95
+ for( key in fields ) {
96
+ if ( $.inArray( fields[key].type, allowed ) === -1 ){
97
  delete fields[key];
98
+ } else if ( typeof fields[key].dynamic_choices !== 'undefined' && fields[key].dynamic_choices !== '' ) {
99
  delete fields[key];
100
  }
101
  }
102
 
103
  // Now go through each conditional rule in the builder
104
+ $rows.each( function() {
105
 
106
+ var $this = $( this ),
107
+ fieldID = $this.attr( 'data-field-id' ),
108
+ $fields = $this.find( '.wpforms-conditional-field' ),
109
+ fieldSelected = $fields.find( 'option:selected' ).val(),
110
+ $value = $this.find( '.wpforms-conditional-value' ),
111
  valueSelected = '';
112
 
113
  // Empty the field select box, re-add placeholder option
114
+ $fields.empty().append( $( '<option>', { value: '', text : wpforms_builder.select_field } ) );
115
 
116
  // Add appropriate options for each field. Reference using the
117
  // field label (if provided) or fallback to the field ID.
118
+ for( key in wpf.orders.fields ) {
119
+ var field_id = wpf.orders.fields[key];
120
+
121
+ if ( ! fields[field_id] ) {
122
+ continue;
123
+ }
124
+
125
+ if ( fields[field_id].label.length ) {
126
+ label = wpf.sanitizeString( fields[field_id].label );
127
  } else {
128
+ label = wpforms_builder.field + ' #' + fields[field_id].id;
129
  }
130
+ if ( fieldID && fieldID === fields[field_id].id ) {
131
  continue;
132
  } else {
133
+ $fields.append( $( '<option>', { value: fields[field_id].id, text : label } ) );
134
  }
135
  }
136
 
137
+ if ( ! fieldSelected ) {
138
  return true;
139
  }
140
 
141
  // Check if previous selected field exists in the new options added
142
+ if ( $fields.find('option[value="'+fieldSelected+'"]').length ) {
143
 
144
  // Exists, so restore previous selected value
145
+ $fields.find( 'option[value="'+fieldSelected+'"]' ).prop( 'selected', true );
146
 
147
  // Since the field exist and was selected, now we must proceed
148
  // to updating the field values. Luckily, we only have to do
149
  // this for fields that leverage a select element.
150
+ if ( $value.length && $value.is( 'select' ) ) {
151
 
152
  // Grab the currently selected value to restore later
153
+ valueSelected = $value.find( 'option:selected' ).val();
154
 
155
  // Remove all current options
156
  $value.empty();
157
 
158
  // Add new options, in the correct order
159
+ $value.append( $( '<option>', { value: '', text : wpforms_builder.select_choice } ) );
160
+
161
+ for( key in wpf.orders.choices['field_'+fieldSelected] ) {
162
+ var choiceKey = wpf.orders.choices['field_'+fieldSelected][key];
163
+ label = wpf.sanitizeString( fields[fieldSelected].choices[choiceKey].label );
164
+ $value.append( $( '<option>', { value: choiceKey, text : label } ) );
165
  }
166
 
167
  // Check if previous selected calue exists in the new options added
168
+ if ( $value.find( 'option[value="'+valueSelected+'"]' ).length ) {
169
 
170
+ $value.find( 'option[value="'+valueSelected+'"]' ).prop( 'selected', true );
171
 
172
  } else {
173
 
175
  // deleted. Add the field ID to the charged variable,
176
  // which will let the user know the fields conditional
177
  // logic has been altered.
178
+ if ( valueSelected.length > 0 ) {
179
+ changed.push( $this.closest( '.wpforms-conditional-group' ).data( 'reference' ) );
180
  }
181
  }
182
  }
186
  // Old field does not exist in the new options, likely deleted.
187
  // Add the field ID to the charged variable, which will let
188
  // the user know the fields conditional logic has been altered.
189
+ changed.push( $this.closest( '.wpforms-conditional-group' ).data( 'reference' ) );
190
 
191
  // Since previously selected field no longer exists, this
192
  // means this rule is now invalid. So the rule gets
193
  // deleted as long as it isn't the only rule remaining.
194
+ var $group = $this.closest( '.wpforms-conditional-group' );
195
+ if ( $group.find( 'table >tbody >tr' ).length === 1 ) {
196
+ var $groups = $this.closest( '.wpforms-conditional-groups' );
197
+ if ( $groups.find( '.wpforms-conditional-group' ).length > 1 ) {
198
  $group.remove();
199
  } else {
200
+ $this.find( '.wpforms-conditional-value' ).remove();
201
+ $this.find( '.value' ).append( '<select>' );
202
  }
203
  } else {
204
  $this.remove();
216
  // Build and trigger alert
217
  var alert = wpforms_builder.conditionals_change;
218
 
219
+ for( key in changedUnique ) {
220
+ if ( wpf.isNumber( changedUnique[key] ) ) {
221
  // Field
222
+ if ( allFields[changedUnique[key]].label.length ) {
223
+ alert += '<br/>'+wpf.sanitizeString( allFields[changedUnique[key]].label ) + ' ('+wpforms_builder.field+' #'+changedUnique[key]+')';
224
  } else {
225
  alert += '<br>'+wpforms_builder.field+' #'+changedUnique[key];
226
  }
244
  }
245
  });
246
  }
 
 
247
  },
248
 
249
  /**
251
  *
252
  * @since 1.0.0
253
  */
254
+ conditionalToggle: function( el, e ) {
255
 
256
  e.preventDefault();
257
 
258
+ var $this = $( el ),
259
  $block = $this.parent().parent(),
260
+ logicBlock = wp.template( 'wpforms-conditional-block' ),
261
  data = {
262
+ fieldID : $this.parent().data( 'field-id' ),
263
+ fieldName : $this.data( 'name' ),
264
+ actions : $this.data( 'actions' ),
265
+ actionDesc : $this.data( 'action-desc' )
266
  };
267
 
268
+ if ( $this.is( ':checked' ) ) {
269
  // Add conditional logic rules.
270
+ $block.append( logicBlock( data ) );
271
 
272
+ // Update fields in the added rule.
273
+ WPFormsConditionals.conditionalUpdateOptions( false, wpf.getFields( false, true ), $block.find( '.wpforms-conditional-row' ) );
274
  } else {
275
  // Remove conditional logic rules.
276
  $.confirm({
286
  btnClass: 'btn-confirm',
287
  action: function(){
288
  // Prompt
289
+ $block.find( '.wpforms-conditional-groups' ).remove();
290
  }
291
  },
292
  cancel: {
293
  text: wpforms_builder.cancel,
294
  action: function() {
295
+ $this.prop( 'checked', true );
296
  }
297
  }
298
  }
299
  });
 
 
300
  }
301
  },
302
 
305
  *
306
  * @since 1.0.0
307
  */
308
+ conditionalField: function( el, e ) {
309
 
310
  e.preventDefault();
311
 
312
  var $this = $(el),
313
  $rule = $this.parent().parent(),
314
+ $operator = $rule.find( '.wpforms-conditional-operator' ),
315
+ operator = $operator.find( 'option:selected' ).val(),
316
+ data = WPFormsConditionals.conditionalData( $this ),
317
  name = data.inputName+'['+data.groupID+']['+data.ruleID+'][value]',
318
  $element;
319
 
320
  if ( !data.field ) {
321
 
322
+ // Placeholder has been selected.
323
+ $element = $( '<select>' );
324
 
325
  } else if ( data.field.type === 'select' || data.field.type === 'radio' || data.field.type === 'checkbox' || data.field.type === 'payment-multiple' || data.field.type === 'payment-select' ) {
326
+ // Selector type fields use select elements.
327
+ $element = $( '<select>' ).attr( { name: name, class: 'wpforms-conditional-value' } ); // jshint ignore:line
328
+ $element.append( $( '<option>', { value: '', text : wpforms_builder.select_choice } ) );
329
+ if ( data.field.choices ){
330
+ for( var key in wpf.orders.choices['field_'+data.field.id] ) {
331
+ var choiceKey = wpf.orders.choices['field_'+data.field.id][key];
332
+ $element.append( $( '<option>', { value: choiceKey, text : wpf.sanitizeString( data.field.choices[choiceKey].label) } ) );
333
  }
334
  }
335
+ $operator.find( "option:not([value='=='],[value='!='],[value='e'],[value='!e'])" ).prop( 'disabled', true ).prop( 'selected', false ); // jshint ignore:line
336
 
337
  } else {
338
 
343
  if ( data.field.type === 'rating' ) {
344
  inputType = 'number';
345
  }
346
+ $element = $( '<input>' ).attr( { type: inputType, name: name, class: 'wpforms-conditional-value' } ); // jshint ignore:line
347
+ $operator.find( 'option' ).prop( 'disabled', false );
348
  }
349
 
350
  if ( operator === 'e' || operator === '!e' ) {
351
 
352
+ // Empty/not empty doesn't use input, so we disable it.
353
+ $element.prop( 'disabled', true );
354
  }
355
 
356
+ $rule.find( '.value' ).empty().append( $element );
357
  },
358
 
359
  /**
361
  *
362
  * @since 1.2.0
363
  */
364
+ conditionalOperator: function( el, e ) {
365
 
366
  e.preventDefault();
367
 
368
+ var $this = $( el ),
369
  $rule = $this.parent().parent(),
370
+ $value = $rule.find( '.wpforms-conditional-value' ),
371
+ operator = $this.find( 'option:selected' ).val();
372
 
373
  if ( operator === 'e' || operator === '!e' ) {
374
  $value.prop( 'disabled', true );
387
  *
388
  * @since 1.0.0
389
  */
390
+ conditionalRuleAdd: function( el, e ) {
391
 
392
  e.preventDefault();
393
 
394
+ var $this = $( el ),
395
+ $group = $this.closest( '.wpforms-conditional-group' ),
396
+ $rule = $group.find( 'tr' ).last(),
397
  $newRule = $rule.clone(),
398
+ $field = $newRule.find( '.wpforms-conditional-field' ),
399
+ $operator = $newRule.find( '.wpforms-conditional-operator' ),
400
+ data = WPFormsConditionals.conditionalData( $field ),
401
+ ruleID = Number( data.ruleID )+1,
402
  name = data.inputName+'['+data.groupID+']['+ruleID+']';
403
 
404
+ $newRule.find( 'option:selected' ).prop( 'selected', false );
405
+ $newRule.find( '.value' ).empty().append( $( '<select>' ) );
406
+ $field.attr( 'name', name+'[field]' ).attr( 'data-ruleid', ruleID );
407
+ $operator.attr( 'name', name+'[operator]' );
408
+ $rule.after( $newRule );
409
  },
410
 
411
  /**
414
  *
415
  * @since 1.0.0
416
  */
417
+ conditionalRuleDelete: function( el, e ) {
418
 
419
  e.preventDefault();
420
 
421
+ var $this = $( el ),
422
+ $group = $this.closest( '.wpforms-conditional-group' ),
423
+ $rows = $group.find( 'table >tbody >tr' );
424
 
425
+ if ( $rows && $rows.length === 1 ) {
426
+ var $groups = $this.closest( '.wpforms-conditional-groups' );
427
+ if ( $groups.find( '.wpforms-conditional-group' ).length > 1 ) {
428
  $group.remove();
429
  } else {
430
  return;
439
  *
440
  * @since 1.0.0
441
  */
442
+ conditionalGroupAdd: function( el, e ) {
443
 
444
  e.preventDefault();
445
 
446
+ var $this = $( el ),
447
+ $groupLast = $this.parent().find( '.wpforms-conditional-group' ).last(),
448
  $newGroup = $groupLast.clone();
449
+ $newGroup.find( 'tr' ).not( ':first' ).remove();
450
+ var $field = $newGroup.find( '.wpforms-conditional-field' ),
451
+ $operator = $newGroup.find( '.wpforms-conditional-operator' ),
452
+ data = WPFormsConditionals.conditionalData( $field ),
453
  groupID = Number(data.groupID)+1,
454
  ruleID = 0,
455
  name = data.inputName+'['+groupID+']['+ruleID+']';
456
 
457
+ $newGroup.find( 'option:selected' ).prop('selected', false);
458
+ $newGroup.find( '.value' ).empty().append( $( '<select>' ) );
459
+ $field.attr( 'name', name+'[field]' ).attr( 'data-ruleid', ruleID ).attr( 'data-groupid', groupID );
460
+ $operator.attr( 'name', name+'[operator]' );
461
+ $this.before( $newGroup );
462
  },
463
 
464
 
471
  *
472
  * @since 1.0.0
473
  */
474
+ conditionalData: function( el ) {
475
 
476
  var $this = $(el);
477
  var data = {
478
+ fields : wpf.getFields( false, true ),
479
+ inputBase : $this.closest( '.wpforms-conditional-row' ).attr( 'data-input-name' ),
480
+ fieldID : $this.closest( '.wpforms-conditional-row' ).attr( 'data-field-id' ),
481
+ ruleID : $this.attr( 'data-ruleid' ),
482
+ groupID : $this.attr( 'data-groupid' ),
483
+ selectedID : $this.find( ':selected' ).val()
484
  };
485
 
486
  data.inputName = data.inputBase+'[conditionals]';
487
 
488
  if (data.selectedID.length) {
489
+ data.field = data.fields[data.selectedID];
490
  } else {
491
  data.field = false;
492
  }
assets/js/admin-builder-providers.js CHANGED
@@ -69,6 +69,46 @@
69
  $(document).on('wpformsPanelSwitch', function(e, targetPanel) {
70
  WPFormsProviders.providerPanelConfirm(targetPanel);
71
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  },
73
 
74
  /**
69
  $(document).on('wpformsPanelSwitch', function(e, targetPanel) {
70
  WPFormsProviders.providerPanelConfirm(targetPanel);
71
  });
72
+
73
+ // Alert users if they save a form and do not configure required
74
+ // fields.
75
+ $( document ).on( 'wpformsSaved', function(){
76
+
77
+ var $connectionBlocks = $( '#wpforms-panel-providers' ).find( '.wpforms-connection-block' );
78
+
79
+ if ( ! $connectionBlocks.length ) {
80
+ return;
81
+ }
82
+
83
+ $connectionBlocks.each( function() {
84
+ var requiredEmpty = false;
85
+ $( this ).find( 'table span.required' ).each(function() {
86
+ var $element = $( this ).parent().parent().find( 'select' );
87
+ if ( $element.val() === '' ) {
88
+ requiredEmpty = true;
89
+ }
90
+ });
91
+ if ( requiredEmpty ) {
92
+ var $titleArea = $( this ).closest( '.wpforms-panel-content-section' ).find( '.wpforms-panel-content-section-title' ).clone();
93
+ $titleArea.find( 'button' ).remove();
94
+ var msg = wpforms_builder.provider_required_flds;
95
+
96
+ $.alert({
97
+ title: wpforms_builder.heads_up,
98
+ content: msg.replace( '{provider}', $titleArea.text().trim() ),
99
+ icon: 'fa fa-exclamation-circle',
100
+ type: 'orange',
101
+ buttons: {
102
+ confirm: {
103
+ text: wpforms_builder.ok,
104
+ btnClass: 'btn-confirm',
105
+ keys: ['enter']
106
+ }
107
+ }
108
+ });
109
+ }
110
+ });
111
+ });
112
  },
113
 
114
  /**
assets/js/admin-builder.js CHANGED
@@ -1,14 +1,18 @@
 
 
1
  ;(function($) {
2
 
3
- var s;
 
4
 
5
  var WPFormsBuilder = {
6
 
7
  settings: {
8
- spinner: '<i class="fa fa-spinner fa-spin"></i>',
9
- spinnerInline: '<i class="fa fa-spinner fa-spin wpforms-loading-inline"></i>',
10
- pagebreakTop: false,
11
- pagebreakBottom: false
 
12
  },
13
 
14
  /**
@@ -26,8 +30,6 @@
26
 
27
  // Page load
28
  $(window).on('load', WPFormsBuilder.load);
29
-
30
- WPFormsBuilder.bindUIActions();
31
  },
32
 
33
  /**
@@ -65,6 +67,12 @@
65
  */
66
  ready: function() {
67
 
 
 
 
 
 
 
68
  // Trigger initial save for new forms
69
  var newForm = wpf.getQueryString('newform');
70
  if (newForm) {
@@ -148,7 +156,8 @@
148
  animationBounce: 1,
149
  useBootstrap: false,
150
  theme: 'modern',
151
- boxWidth: '400px'
 
152
  };
153
  },
154
 
@@ -190,13 +199,13 @@
190
  bindUIActionsPanels: function() {
191
 
192
  // Panel switching
193
- $(document).on('click', '#wpforms-panels-toggle button, .wpforms-panel-switch', function(e) {
194
  e.preventDefault();
195
  WPFormsBuilder.panelSwitch($(this).data('panel'));
196
  });
197
 
198
  // Panel sections switching
199
- $(document).on('click', '.wpforms-panel .wpforms-panel-sidebar-section', function(e) {
200
  WPFormsBuilder.panelSectionSwitch(this, e);
201
  });
202
  },
@@ -213,7 +222,7 @@
213
 
214
  if (!$panel.hasClass('active')) {
215
 
216
- $(document).trigger('wpformsPanelSwitch', panel);
217
 
218
  if (!wpforms_panel_switch) {
219
  return false;
@@ -267,29 +276,29 @@
267
  $(window).load(function(e) {
268
  WPFormsBuilder.setupTitleFocus(e, wpf.getQueryString('view'));
269
  });
270
- $(document).on('wpformsPanelSwitch', WPFormsBuilder.setupTitleFocus);
271
 
272
  // Select and apply a template
273
- $(document).on('click', '.wpforms-template-select', function(e) {
274
  WPFormsBuilder.templateSelect(this, e);
275
  });
276
 
277
  // "Blank form" text should trigger template selection
278
- $(document).on('click', '.wpforms-trigger-blank', function(e) {
279
  e.preventDefault();
280
  $('#wpforms-template-blank .wpforms-template-select').trigger('click');
281
  });
282
 
283
  // Keep Setup title and settings title instances the same
284
- $(document).on('input ', '#wpforms-panel-field-settings-form_title', function() {
285
  $('#wpforms-setup-name').val($('#wpforms-panel-field-settings-form_title').val());
286
  });
287
- $(document).on('input', '#wpforms-setup-name', function() {
288
  $('#wpforms-panel-field-settings-form_title').val($('#wpforms-setup-name').val());
289
  });
290
 
291
  // Additional template searching
292
- $(document).on('keyup', '#wpforms-setup-template-search' , function() {
293
  s.templateList.search( $(this).val() );
294
  });
295
  },
@@ -425,60 +434,60 @@
425
  bindUIActionsFields: function() {
426
 
427
  // Field sidebar tab toggle
428
- $(document).on('click', '.wpforms-tab a', function(e) {
429
  e.preventDefault();
430
  WPFormsBuilder.fieldTabToggle($(this).parent().attr('id'));
431
  });
432
 
433
  // Field sidebar group toggle
434
- $(document).on('click', '.wpforms-add-fields-heading', function(e) {
435
  e.preventDefault();
436
  WPFormsBuilder.fieldGroupToggle($(this), 'click');
437
  });
438
 
439
  // Form field preview clicking
440
- $(document).on('click', '.wpforms-field', function(e) {
441
  WPFormsBuilder.fieldTabToggle($(this).data('field-id'));
442
  });
443
 
444
  // Field delete
445
- $(document).on('click', '.wpforms-field-delete', function(e) {
446
  e.preventDefault();
447
  e.stopPropagation();
448
  WPFormsBuilder.fieldDelete($(this).parent().data('field-id'));
449
  });
450
 
451
  // Field duplicate
452
- $(document).on('click', '.wpforms-field-duplicate', function(e) {
453
  e.preventDefault();
454
  WPFormsBuilder.fieldDuplicate($(this).parent().data('field-id'));
455
  });
456
 
457
  // Field add
458
- $(document).on('click', '.wpforms-add-fields-button', function(e) {
459
  e.preventDefault();
460
  WPFormsBuilder.fieldAdd($(this).data('field-type'));
461
  });
462
 
463
  // New field choices should be sortable
464
- $(document).on('wpformsFieldAdd', function(event, id, type) {
465
  if (type === 'select' || type === 'radio' || type === 'checkbox' || type === 'payment-multiple' || type === 'payment-select' ) {
466
  WPFormsBuilder.fieldChoiceSortable(type,'#wpforms-field-option-row-' + id + '-choices ul');
467
  }
468
  });
469
 
470
  // Field choice add new
471
- $(document).on('click', '.wpforms-field-option-row-choices .add', function(e) {
472
  WPFormsBuilder.fieldChoiceAdd(e, $(this));
473
  });
474
 
475
  // Field choice delete
476
- $(document).on('click', '.wpforms-field-option-row-choices .remove', function(e) {
477
  WPFormsBuilder.fieldChoiceDelete(e, $(this));
478
  });
479
 
480
  // Field choices defaults
481
- $(document).on('change', '.wpforms-field-option-row-choices input[type=radio]', function(e) {
482
  var $this = $(this),
483
  list = $this.parent().parent();
484
  $this.parent().parent().find('input[type=radio]').not(this).prop('checked',false);
@@ -486,28 +495,69 @@
486
  });
487
 
488
  // Field choices update preview area
489
- $(document).on('change', '.wpforms-field-option-row-choices input[type=checkbox]', function(e) {
490
  var list = $(this).parent().parent();
491
  WPFormsBuilder.fieldChoiceUpdate(list.data('field-type'),list.data('field-id') );
492
  });
493
 
494
  // Field choices display value toggle
495
- $(document).on('change', '.wpforms-field-option-row-show_values input', function(e) {
496
  $(this).closest('.wpforms-field-option').find('.wpforms-field-option-row-choices ul').toggleClass('show-values');
497
  });
498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  // Updates field choices text in almost real time
500
- $(document).on('focusout', '.wpforms-field-option-row-choices input.label', function(e) {
501
  var list = $(this).parent().parent();
502
  WPFormsBuilder.fieldChoiceUpdate(list.data('field-type'),list.data('field-id'));
503
  });
504
 
505
  // Field Choices Bulk Add
506
- $(document).on('click', '.toggle-bulk-add-display', function(e) {
507
  e.preventDefault();
508
  WPFormsBuilder.fieldChoiceBulkAddToggle(this);
509
  });
510
- $(document).on('click', '.toggle-bulk-add-presets', function(e) {
511
  e.preventDefault();
512
  var $presetList = $(this).closest('.bulk-add-display').find('ul');
513
  if ( $presetList.css('display') === 'block' ) {
@@ -517,7 +567,7 @@
517
  }
518
  $presetList.slideToggle();
519
  });
520
- $(document).on('click', '.bulk-add-preset-insert', function(e) {
521
  e.preventDefault();
522
  var $this = $(this),
523
  preset = $this.data('preset'),
@@ -530,13 +580,13 @@
530
  $presetToggle.text(wpforms_builder.bulk_add_presets_show);
531
  $presetList.slideUp();
532
  });
533
- $(document).on('click', '.bulk-add-insert', function(e) {
534
  e.preventDefault();
535
  WPFormsBuilder.fieldChoiceBulkAddInsert(this);
536
  });
537
 
538
  // Field Options group toggle
539
- $(document).on('click', '.wpforms-field-option-group-toggle', function(e) {
540
  e.preventDefault();
541
  var $this = $(this);
542
  $this.parent().toggleClass('wpforms-hide').find('.wpforms-field-option-group-inner').slideToggle();
@@ -544,7 +594,7 @@
544
  });
545
 
546
  // Display toggle for Address field hide address line 2 option
547
- $(document).on('change', '.wpforms-field-option-address input.hide', function(e) {
548
  var $this = $(this),
549
  id = $this.parent().parent().data('field-id'),
550
  subfield = $this.parent().parent().data('subfield');
@@ -552,7 +602,7 @@
552
  });
553
 
554
  // Real-time updates for "Show Label" field option
555
- $(document).on('input', '.wpforms-field-option-row-label input', function(e) {
556
  var $this = $(this),
557
  value = $this.val(),
558
  id = $this.parent().data('field-id');
@@ -560,28 +610,34 @@
560
  });
561
 
562
  // Real-time updates for "Description" field option
563
- $(document).on('input', '.wpforms-field-option-row-description textarea', function(e) {
564
- var $this = $(this),
565
  value = $this.val(),
566
- id = $this.parent().data('field-id');
567
- $('#wpforms-field-'+id).find('.description').html(value);
 
 
 
 
 
 
568
  });
569
 
570
  // Real-time updates for "Required" field option
571
- $(document).on('change', '.wpforms-field-option-row-required input', function(e) {
572
  var id = $(this).parent().data('field-id');
573
  $('#wpforms-field-'+id).toggleClass('required');
574
  });
575
 
576
  // Real-time updates for "Confirmation" field option
577
- $(document).on('change', '.wpforms-field-option-row-confirmation input', function(e) {
578
  var id = $(this).parent().data('field-id');
579
  $('#wpforms-field-'+id).find('.wpforms-confirm').toggleClass('wpforms-confirm-enabled wpforms-confirm-disabled');
580
  $('#wpforms-field-option-'+id).toggleClass('wpforms-confirm-enabled wpforms-confirm-disabled');
581
  });
582
 
583
  // Real-time updates for "Size" field option
584
- $(document).on('change', '.wpforms-field-option-row-size select', function(e) {
585
  var $this = $(this),
586
  value = $this.val(),
587
  id = $this.parent().data('field-id');
@@ -589,7 +645,7 @@
589
  });
590
 
591
  // Real-time updates for "Placeholder" field option
592
- $(document).on('input', '.wpforms-field-option-row-placeholder input', function(e) {
593
  var $this = $(this),
594
  value = $this.val(),
595
  id = $this.parent().data('field-id'),
@@ -611,7 +667,7 @@
611
  });
612
 
613
  // Real-time updates for "Confirmation Placeholder" field option
614
- $(document).on('input', '.wpforms-field-option-row-confirmation_placeholder input', function(e) {
615
  var $this = $(this),
616
  value = $this.val(),
617
  id = $this.parent().data('field-id');
@@ -619,19 +675,19 @@
619
  });
620
 
621
  // Real-time updates for "Hide Label" field option
622
- $(document).on('change', '.wpforms-field-option-row-label_hide input', function(e) {
623
  var id = $(this).parent().data('field-id');
624
  $('#wpforms-field-'+id).toggleClass('label_hide');
625
  });
626
 
627
  // Real-time updates for Sub Label visbility field option
628
- $(document).on('change', '.wpforms-field-option-row-sublabel_hide input', function(e) {
629
  var id = $(this).parent().data('field-id');
630
  $('#wpforms-field-'+id).toggleClass('sublabel_hide');
631
  });
632
 
633
  // Real-time updates for Date/Time and Name "Format" option
634
- $(document).on('change', '.wpforms-field-option-row-format select', function(e) {
635
  var $this = $(this),
636
  value = $this.val(),
637
  id = $this.parent().data('field-id');
@@ -640,7 +696,7 @@
640
  })
641
 
642
  // Real-time updates specific for Address "Scheme" option
643
- $(document).on('change', '.wpforms-field-option-row-scheme select', function(e) {
644
  var $this = $(this),
645
  value = $this.val(),
646
  id = $this.parent().data('field-id');
@@ -655,7 +711,7 @@
655
  })
656
 
657
  // Real-time updates for Address, Date/Time, and Name "Placeholder" field options
658
- $(document).on('input', '.wpforms-field-option .format-selected input.placeholder, .wpforms-field-option-address input.placeholder', function(e) {
659
  var $this = $(this),
660
  value = $this.val(),
661
  id = $this.parent().parent().data('field-id'),
@@ -664,7 +720,7 @@
664
  });
665
 
666
  // Real-time updates for Date/Time date type
667
- $(document).on('change', '.wpforms-field-option-row-date .type select', function(e) {
668
  var $this = $(this),
669
  value = $this.val(),
670
  id = $(this).parent().parent().data('field-id');
@@ -673,7 +729,7 @@
673
  });
674
 
675
  // Real-time updates for Date/Time date select format
676
- $(document).on('change', '.wpforms-field-option-row-date .format select', function(e) {
677
  var $this = $(this),
678
  value = $this.val(),
679
  id = $(this).parent().parent().data('field-id');
@@ -687,13 +743,13 @@
687
  });
688
 
689
  // Consider the field active when a disabled nav button is clicked
690
- $(document).on('click', '.wpforms-pagebreak-button', function(e) {
691
  e.preventDefault();
692
  $(this).closest('.wpforms-field').trigger('click');
693
  });
694
 
695
  // Real-time updates for "Next" and "Prev" pagebreak field option
696
- $(document).on('input', '.wpforms-field-option-row-next input', function(e) {
697
  var $this = $(this),
698
  value = $this.val(),
699
  id = $this.parent().data('field-id');
@@ -703,7 +759,7 @@
703
  $('#wpforms-field-'+id).find('.wpforms-pagebreak-next').css('display','none').empty();
704
  }
705
  });
706
- $(document).on('input', '.wpforms-field-option-row-prev input', function(e) {
707
  var $this = $(this),
708
  value = $this.val(),
709
  id = $this.parent().data('field-id');
@@ -715,7 +771,7 @@
715
  });
716
 
717
  // Real-time updates for "Page Title" pagebreak field option
718
- $(document).on('input', '.wpforms-field-option-row-title input', function(e) {
719
  var $this = $(this),
720
  value = $this.val(),
721
  id = $this.parent().data('field-id');
@@ -727,7 +783,7 @@
727
  });
728
 
729
  // Real-time updates for "Page Navigation Alignment" pagebreak field option
730
- $(document).on('change', '.wpforms-field-option-row-nav_align select', function(e) {
731
  var $this = $(this),
732
  value = $this.val();
733
  if (!value) {
@@ -737,7 +793,7 @@
737
  });
738
 
739
  // Real-time updates for "Display Previous" pagebreak field option
740
- $(document).on('change', '.wpforms-field-option-row-prev_toggle input', function(e) {
741
  var $this = $(this),
742
  $group = $this.closest('.wpforms-field-option-group-inner'),
743
  $prev = $group.find('.wpforms-field-option-row-prev'),
@@ -754,7 +810,7 @@
754
  });
755
 
756
  // Real-time updates for Single Item field "Item Price" option
757
- $(document).on('input', '.wpforms-field-option-row-price input', function(e) {
758
  var $this = $(this),
759
  value = $this.val(),
760
  id = $this.parent().data('field-id'),
@@ -771,7 +827,7 @@
771
  });
772
 
773
  // Real-time updates for payment CC icons
774
- $(document).on('change', '.wpforms-field-option-credit-card .payment-icons input', function(e) {
775
  var $this = $(this),
776
  card = $this.data('card')
777
  id = $this.parent().data('field-id');
@@ -779,7 +835,7 @@
779
  });
780
 
781
  // Generic updates for various additional placeholder fields
782
- $(document).on('input', '.wpforms-field-option input.placeholder-update', function(e) {
783
  var $this = $(this),
784
  value = $this.val(),
785
  id = $this.data('field-id'),
@@ -787,22 +843,24 @@
787
  $('#wpforms-field-'+id).find('.wpforms-'+ subfield+' input' ).attr('placeholder', value);
788
  });
789
 
790
- // Toggle Choice Layout advanced field option
791
- $(document).on('change', '.wpforms-field-option-row-input_columns select', function(e) {
792
- var $this = $(this),
793
  value = $this.val(),
794
  cls = '',
795
- id = $this.parent().data('field-id');
796
  if ( value === '2' ) {
797
  cls = 'wpforms-list-2-columns';
798
  } else if ( value === '3' ) {
799
  cls = 'wpforms-list-3-columns';
 
 
800
  }
801
- $('#wpforms-field-'+id).removeClass('wpforms-list-2-columns wpforms-list-3-columns').addClass(cls);
802
  });
803
 
804
  // Toggle the toggle field
805
- $(document).on('click', '.wpforms-field-option-row .wpforms-toggle-icon', function(e) {
806
  var $this = $(this),
807
  $check = $this.find('input[type=checkbox]'),
808
  $label = $this.find('.wpforms-toggle-icon-label');
@@ -821,31 +879,31 @@
821
  });
822
 
823
  // Watch for pagebreak field being added and deleted
824
- $(document).on('wpformsFieldAdd', WPFormsBuilder.fieldPagebreakAdd);
825
- $(document).on('wpformsFieldDelete', WPFormsBuilder.fieldPagebreakDelete);
826
 
827
  // Real-time updates for "Dynamic Choices" field option, for Dropdown,
828
  // Checkboxes, and Multiple choice fields
829
- $(document).on('change', '.wpforms-field-option-row-dynamic_choices select', function(e) {
830
  WPFormsBuilder.fieldDynamicChoiceToggle($(this));
831
  });
832
 
833
  // Real-time updates for "Dynamic [type] Source" field option, for Dropdown,
834
  // Checkboxes, and Multiple choice fields
835
- $(document).on('change', '.wpforms-field-option-row-dynamic_taxonomy select, .wpforms-field-option-row-dynamic_post_type select', function(e) {
836
  WPFormsBuilder.fieldDynamicChoiceSource($(this));
837
  });
838
 
839
  // Toggle Layout selector
840
- $(document).on('click', '.toggle-layout-selector-display', function(e) {
841
  e.preventDefault();
842
  WPFormsBuilder.fieldLayoutSelectorToggle(this);
843
  });
844
- $(document).on('click', '.layout-selector-display-layout', function(e) {
845
  e.preventDefault();
846
  WPFormsBuilder.fieldLayoutSelectorLayout(this);
847
  });
848
- $(document).on('click', '.layout-selector-display-columns span', function(e) {
849
  e.preventDefault();
850
  WPFormsBuilder.fieldLayoutSelectorInsert(this);
851
  });
@@ -917,6 +975,16 @@
917
 
918
  $icons.css( 'color', value );
919
  });
 
 
 
 
 
 
 
 
 
 
920
  },
921
 
922
  /**
@@ -1003,7 +1071,10 @@
1003
  $('#wpforms-field-option-'+id).remove();
1004
  $('.wpforms-field, .wpforms-title-desc').removeClass('active');
1005
  WPFormsBuilder.fieldTabToggle('add-fields');
1006
- $(document).trigger('wpformsFieldDelete', [id, type ]);
 
 
 
1007
  });
1008
  }
1009
  },
@@ -1122,7 +1193,7 @@
1122
  $newField.find('.label-title .text').text(newFieldLabel);
1123
 
1124
  // Fire field add custom event
1125
- $(document).trigger('wpformsFieldAdd', [newFieldID, type]);
1126
 
1127
  // Lastly, update the next ID stored in database
1128
  $.post(wpforms_builder.ajax_url, {form_id : s.formID, nonce : wpforms_builder.nonce, action : 'wpforms_builder_increase_next_field_id'});
@@ -1225,13 +1296,13 @@
1225
 
1226
  $newField.fadeIn();
1227
 
1228
- $('#wpforms-builder-form .no-fields, #wpforms-builder-form .no-fields-preview').remove();
1229
  $('#wpforms-field-id').val(res.data.field.id+1);
1230
 
1231
  WPFormsBuilder.loadTooltips();
1232
  WPFormsBuilder.loadColorPickers();
1233
 
1234
- $(document).trigger('wpformsFieldAdd', [res.data.field.id, type ]);
1235
 
1236
  } else {
1237
  console.log(res);
@@ -1272,7 +1343,7 @@
1272
  } else {
1273
  $(fieldNew).before(field);
1274
  }
1275
- $(document).trigger('wpformsFieldMove', ui);
1276
  fieldReceived = false;
1277
  },
1278
  over: function(e, ui){
@@ -1338,30 +1409,33 @@
1338
  *
1339
  * @since 1.0.0
1340
  */
1341
- fieldChoiceAdd: function(e, el) {
1342
 
1343
- e.preventDefault();
1344
 
1345
- var $this = $(el),
1346
  $parent = $this.parent(),
1347
- checked = $parent.find('input.default').is(':checked'),
1348
- fieldID = $this.closest('.wpforms-field-option-row-choices').data('field-id'),
1349
- id = $parent.parent().attr('data-next-id'),
1350
- type = $parent.parent().data('field-type'),
1351
- choice = $parent.clone().insertAfter($parent);
1352
-
1353
- choice.attr('data-key', id);
1354
- choice.find('input.label').val('').attr('name', 'fields['+fieldID+'][choices]['+id+'][label]');
1355
- choice.find('input.value').val('').attr('name', 'fields['+fieldID+'][choices]['+id+'][value]');
1356
- choice.find('input.default').attr('name', 'fields['+fieldID+'][choices]['+id+'][default]').prop('checked', false);
 
 
 
1357
 
1358
  if ( checked == true ) {
1359
- $parent.find('input.default').prop('checked', true);
1360
  }
1361
  id++;
1362
- $parent.parent().attr('data-next-id', id);
1363
- $(document).trigger('wpformsFieldChoiceAdd');
1364
- WPFormsBuilder.fieldChoiceUpdate(type, fieldID);
1365
  },
1366
 
1367
  /**
@@ -1394,7 +1468,7 @@
1394
  } else {
1395
  $this.parent().remove();
1396
  WPFormsBuilder.fieldChoiceUpdate($list.data('field-type'), $list.data('field-id'));
1397
- $(document).trigger('wpformsFieldChoiceDelete');
1398
  }
1399
  },
1400
 
@@ -1418,7 +1492,7 @@
1418
  stop:function(e,ui){
1419
  var id = ui.item.parent().data('field-id');
1420
  WPFormsBuilder.fieldChoiceUpdate(type, id);
1421
- $(document).trigger('wpformsFieldChoiceMove', ui);
1422
  },
1423
  update:function(e,ui){
1424
  }
@@ -1434,6 +1508,25 @@
1434
  */
1435
  fieldChoiceUpdate: function(type, id) {
1436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1437
  var new_choice;
1438
 
1439
  // Multiple payment choices are radio buttons
@@ -1550,7 +1643,7 @@
1550
  $list.attr('data-next-id', nextID).append(newChoices)
1551
 
1552
  WPFormsBuilder.fieldChoiceUpdate(type, fieldID);
1553
- $(document).trigger('wpformsFieldChoiceAdd');
1554
  WPFormsBuilder.fieldChoiceBulkAddToggle( $container.find('.toggle-bulk-add-display') );
1555
  },
1556
 
@@ -1610,7 +1703,6 @@
1610
  }
1611
  WPFormsBuilder.fieldAdd('pagebreak', options).done(function(res){
1612
  s.pagebreakTop = res.data.field.id;
1613
- //console.log( 'PB top is ' + res.data.field.id);
1614
  var $preview = $('#wpforms-field-'+res.data.field.id),
1615
  $options = $('#wpforms-field-option-'+res.data.field.id);
1616
 
@@ -1630,7 +1722,6 @@
1630
  }
1631
  WPFormsBuilder.fieldAdd('pagebreak', options).done(function(res){
1632
  s.pagebreakBottom = res.data.field.id;
1633
- //console.log( 'PB bottom is ' + res.data.field.id);
1634
  var $preview = $('#wpforms-field-'+res.data.field.id),
1635
  $options = $('#wpforms-field-option-'+res.data.field.id);
1636
 
@@ -1685,8 +1776,10 @@
1685
  $thisOption = $this.parent(),
1686
  value = $this.val(),
1687
  id = $thisOption.data('field-id'),
 
1688
  $field = $('#wpforms-field-'+id),
1689
- $choices = $('#wpforms-field-option-row-'+id+'-choices');
 
1690
 
1691
  // Loading
1692
  wpf.fieldOptionLoading($thisOption);
@@ -1698,32 +1791,41 @@
1698
  if ( '' === value ) {
1699
  // "Off" - no dynamic populating
1700
 
1701
- // Get original field choices
1702
- var choices = [];
1703
- $('#wpforms-field-option-row-'+id+'-choices .label').each(function(index) {
1704
- choices.push($(this).val());
1705
- });
1706
 
1707
- // Restore field to display original field choices
1708
- if ($field.hasClass('wpforms-field-select')) {
1709
 
1710
- $field.find('select option:first').text(choices[0]);
1711
 
1712
  } else {
 
 
 
 
 
1713
 
1714
- var type = 'radio',
1715
- $list = $field.find('.primary-input');
1716
 
1717
- if ($field.hasClass('wpforms-field-checkbox')) {
1718
- type = 'checkbox';
1719
- }
1720
 
1721
- // Remove previous items
1722
- $list.empty();
 
 
1723
 
1724
- // Add new items to radio or checkbox field
1725
- for(var key in choices) {
1726
- $list.append('<li><input type="'+type+'" disabled> '+choices[key]+'</li>');
 
 
 
 
 
 
 
 
1727
  }
1728
  }
1729
 
@@ -1735,6 +1837,10 @@
1735
 
1736
  } else {
1737
  // Post type or Taxonomy based dynamic populating
 
 
 
 
1738
  var data = {
1739
  type : value,
1740
  field_id: id,
@@ -2059,25 +2165,25 @@
2059
  bindUIActionsSettings: function() {
2060
 
2061
  // Clicking form title/desc opens Settings panel
2062
- $(document).on('click', '.wpforms-title-desc, .wpforms-field-submit-button, .wpforms-center-form-name', function(e) {
2063
  e.preventDefault();
2064
  WPFormsBuilder.panelSwitch('settings');
2065
  });
2066
 
2067
  // Clicking form previous page break button
2068
- $(document).on('click', '.wpforms-field-pagebreak-last button', function(e) {
2069
  e.preventDefault();
2070
  WPFormsBuilder.panelSwitch('settings');
2071
  $('#wpforms-panel-field-settings-pagebreak_prev').focus();
2072
  });
2073
 
2074
  // Clicking form last page break button
2075
- $(document).on('input', '#wpforms-panel-field-settings-pagebreak_prev', function(){
2076
  $('.wpforms-field-pagebreak-last button').text( $(this).val() );
2077
  });
2078
 
2079
  // Real-time updates for editing the form title
2080
- $(document).on('input', '#wpforms-panel-field-settings-form_title, #wpforms-setup-name', function(){
2081
  var title = $(this).val();
2082
  if (title.length > 38) {
2083
  title = $.trim(title).substring(0, 38).split(" ").slice(0, -1).join(" ") + "..."
@@ -2086,38 +2192,38 @@
2086
  });
2087
 
2088
  // Real-time updates for editing the form description
2089
- $(document).on('input', '#wpforms-panel-field-settings-form_desc', function(){
2090
  $('.wpforms-form-desc').text( $(this).val() );
2091
  });
2092
 
2093
  // Real-time updates for editing the form submit button
2094
- $(document).on('input', '#wpforms-panel-field-settings-submit_text', function(){
2095
  $('.wpforms-field-submit input[type=submit]').val( $(this).val() );
2096
  });
2097
 
2098
  // Toggle form reCAPTCHA setting
2099
- $(document).on('change', '#wpforms-panel-field-settings-recaptcha', function() {
2100
  WPFormsBuilder.recaptchaToggle();
2101
  });
2102
 
2103
  // Toggle form confirmation setting fields
2104
- $(document).on('change', '#wpforms-panel-field-settings-confirmation_type', function() {
2105
  WPFormsBuilder.confirmationToggle();
2106
  });
2107
 
2108
  // Toggle form notification setting fields
2109
- $(document).on('change', '#wpforms-panel-field-settings-notification_enable', function() {
2110
  WPFormsBuilder.notificationToggle();
2111
  });
2112
 
2113
  // Add New notification settings block
2114
- $(document).on('click', '.wpforms-notifications-add', function(e) {
2115
  e.preventDefault();
2116
  WPFormsBuilder.notificationAdd();
2117
  });
2118
 
2119
  // Edit notification settings block name
2120
- $(document).on('click', '.wpforms-notification-edit', function(e) {
2121
  e.preventDefault();
2122
 
2123
  var $el = $(this);
@@ -2130,7 +2236,7 @@
2130
  });
2131
 
2132
  // Update notification settings block name and close editing interface
2133
- $(document).on('blur', '.wpforms-notification-name-edit input', function(e) {
2134
  // Do not fire if for onBlur user clicked on edit button - it has own event processing.
2135
  if ( ! $(e.relatedTarget).hasClass('wpforms-notification-edit')) {
2136
  WPFormsBuilder.notificationNameEditingHide( $(this) );
@@ -2138,7 +2244,7 @@
2138
  });
2139
 
2140
  // Close notifications editing interface with pressed Enter
2141
- $(document).on('keypress', '.wpforms-notification-name-edit input', function(e) {
2142
  // On Enter - hide editing interface.
2143
  if (e.keyCode === 13) {
2144
  WPFormsBuilder.notificationNameEditingHide( $(this) );
@@ -2149,14 +2255,14 @@
2149
  });
2150
 
2151
  // Toggle notification settings block - slide up or down
2152
- $(document).on('click', '.wpforms-notification-toggle', function(e) {
2153
  e.preventDefault();
2154
 
2155
  WPFormsBuilder.notificationPanelToggle($(this));
2156
  });
2157
 
2158
  // Remove notification settings block
2159
- $(document).on('click', '.wpforms-notification-delete', function(e) {
2160
  e.preventDefault();
2161
  WPFormsBuilder.notificationDelete($(this));
2162
  });
@@ -2287,7 +2393,7 @@
2287
 
2288
  // We need to process this event here, because we need a confirm modal object defined, so we can intrude into it.
2289
  // Pressing Enter will click the Ok button.
2290
- $(document).on('keypress', '#notification-name', function(e) {
2291
  if (e.keyCode === 13) {
2292
  $(modal.buttons.confirm.el).trigger('click');
2293
  }
@@ -2446,7 +2552,7 @@
2446
  bindUIActionsSaveExit: function() {
2447
 
2448
  // Embed form
2449
- $(document).on('click', '#wpforms-embed', function(e) {
2450
  e.preventDefault();
2451
  var content = wpforms_builder.embed_modal;
2452
  content += '<input type=\'text\' value=\'[wpforms id="' + s.formID + '" title="false" description="false"]\' readonly id=\'wpforms-embed-shortcode\'>';
@@ -2468,13 +2574,13 @@
2468
  });
2469
 
2470
  // Save form
2471
- $(document).on('click', '#wpforms-save', function(e) {
2472
  e.preventDefault();
2473
  WPFormsBuilder.formSave(false);
2474
  });
2475
 
2476
  // Exit builder
2477
- $(document).on('click', '#wpforms-exit', function(e) {
2478
  e.preventDefault();
2479
  WPFormsBuilder.formExit();
2480
  });
@@ -2510,7 +2616,7 @@
2510
  $label.text(text);
2511
  $icon.toggleClass('fa-check fa-cog fa-spin');
2512
  wpf.savedState = wpf.getFormState( '#wpforms-builder-form');
2513
- $(document).trigger('wpformsSaved');
2514
  if (true === redirect ) {
2515
  window.location.href = wpforms_builder.exit_url;
2516
  }
@@ -2585,18 +2691,18 @@
2585
  bindUIActionsGeneral: function() {
2586
 
2587
  // Toggle Smart Tags
2588
- $(document).on('click', '.toggle-smart-tag-display', function(e) {
2589
  e.preventDefault();
2590
  WPFormsBuilder.smartTagToggle(this);
2591
  });
2592
 
2593
- $(document).on('click', '.smart-tags-list-display a', function(e) {
2594
  e.preventDefault();
2595
  WPFormsBuilder.smartTagInsert(this);
2596
  });
2597
 
2598
  // Field map table, update key source
2599
- $(document).on('input', '.wpforms-field-map-table .key-source', function(){
2600
  var value = $(this).val(),
2601
  $dest = $(this).parent().parent().find('.key-destination'),
2602
  name = $dest.data('name');
@@ -2606,22 +2712,22 @@
2606
  });
2607
 
2608
  // Field map table, delete row
2609
- $(document).on('click', '.wpforms-field-map-table .remove', function(e) {
2610
  e.preventDefault();
2611
  WPFormsBuilder.fieldMapTableDeleteRow(e, $(this));
2612
  });
2613
 
2614
  // Field map table, Add row
2615
- $(document).on('click', '.wpforms-field-map-table .add', function(e) {
2616
  e.preventDefault();
2617
  WPFormsBuilder.fieldMapTableAddRow(e, $(this));
2618
  });
2619
 
2620
  // Global select field mapping
2621
- jQuery(document).on('wpformsFieldUpdate', WPFormsBuilder.fieldMapSelect);
2622
 
2623
  // Restrict user money input fields
2624
- $(document).on('input', '.wpforms-money-input', function(event) {
2625
  var $this = $(this),
2626
  amount = $this.val(),
2627
  start = $this[0].selectionStart,
@@ -2631,7 +2737,7 @@
2631
  });
2632
 
2633
  // Format user money input fields
2634
- $(document).on('focusout', '.wpforms-money-input', function(event) {
2635
  var $this = $(this),
2636
  amount = $this.val(),
2637
  sanitized = wpf.amountSanitize(amount),
@@ -2641,7 +2747,7 @@
2641
 
2642
  // Don't allow users to enable payments if storing entries has
2643
  // been disabled in the General settings.
2644
- $(document).on('change', '#wpforms-panel-field-stripe-enable, #wpforms-panel-field-paypal_standard-enable', function(event) {
2645
  var $this = $(this);
2646
  if ( $this.prop('checked') ) {
2647
  var disabled = $('#wpforms-panel-field-settings-disable_entries').prop('checked');
@@ -2664,6 +2770,61 @@
2664
  }
2665
  }
2666
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2667
  },
2668
 
2669
  /**
@@ -2691,6 +2852,7 @@
2691
  var allowed = $this.data( 'fields' ),
2692
  type = $this.data( 'type' ),
2693
  fields = [];
 
2694
  if ( allowed && allowed.length ) {
2695
  fields = wpf.getFields( allowed.split( ',' ), true );
2696
  }
@@ -2707,15 +2869,23 @@
2707
  }
2708
  else {
2709
  smartTagList += '<li class="heading">' + wpforms_builder.fields_available + '</li>';
2710
- for ( var field_key in fields ) {
 
 
 
2711
  var label = '';
2712
- if ( fields[ field_key ].label ) {
2713
- label = wpf.sanitizeString( fields[ field_key ].label );
 
 
 
 
 
2714
  }
2715
  else {
2716
- label = wpforms_builder.field + ' #' + fields[ field_key ].id;
2717
  }
2718
- smartTagList += '<li><a href="#" data-type="field" data-meta=\'' + fields[ field_key ].id + '\'>' + label + '</a></li>';
2719
  }
2720
  }
2721
  }
@@ -2842,18 +3012,25 @@
2842
  }
2843
 
2844
  // Loop through the current fields
2845
- for(var field_key in fields) {
2846
- var label = '';
 
 
 
 
 
 
 
2847
  // Compile the label
2848
- if (typeof fields[field_key].label !== 'undefined' && fields[field_key].label.length) {
2849
- label = wpf.sanitizeString(fields[field_key].label);
2850
  } else {
2851
- label = wpforms_builder.field + ' #' + fields[field_key].val;
2852
  }
2853
 
2854
  // Add to select if it is a field type allowed
2855
- if ($.inArray(fields[field_key].type, allowedFields) >= 0 || $.inArray('all-fields', allowedFields) >= 0) {
2856
- $this.append($('<option>', { value: fields[field_key].id, text : label }));
2857
  }
2858
  }
2859
 
1
+ /* global wpforms_builder, wp */
2
+
3
  ;(function($) {
4
 
5
+ var s,
6
+ $builder;
7
 
8
  var WPFormsBuilder = {
9
 
10
  settings: {
11
+ spinner: '<i class="fa fa-spinner fa-spin"></i>',
12
+ spinnerInline: '<i class="fa fa-spinner fa-spin wpforms-loading-inline"></i>',
13
+ pagebreakTop: false,
14
+ pagebreakBottom: false,
15
+ upload_img_modal: false
16
  },
17
 
18
  /**
30
 
31
  // Page load
32
  $(window).on('load', WPFormsBuilder.load);
 
 
33
  },
34
 
35
  /**
67
  */
68
  ready: function() {
69
 
70
+ // Cache builder element.
71
+ $builder = $('#wpforms-builder');
72
+
73
+ // Bind all actions.
74
+ WPFormsBuilder.bindUIActions();
75
+
76
  // Trigger initial save for new forms
77
  var newForm = wpf.getQueryString('newform');
78
  if (newForm) {
156
  animationBounce: 1,
157
  useBootstrap: false,
158
  theme: 'modern',
159
+ boxWidth: '400px',
160
+ animateFromElement: false
161
  };
162
  },
163
 
199
  bindUIActionsPanels: function() {
200
 
201
  // Panel switching
202
+ $builder.on('click', '#wpforms-panels-toggle button, .wpforms-panel-switch', function(e) {
203
  e.preventDefault();
204
  WPFormsBuilder.panelSwitch($(this).data('panel'));
205
  });
206
 
207
  // Panel sections switching
208
+ $builder.on('click', '.wpforms-panel .wpforms-panel-sidebar-section', function(e) {
209
  WPFormsBuilder.panelSectionSwitch(this, e);
210
  });
211
  },
222
 
223
  if (!$panel.hasClass('active')) {
224
 
225
+ $builder.trigger('wpformsPanelSwitch', panel);
226
 
227
  if (!wpforms_panel_switch) {
228
  return false;
276
  $(window).load(function(e) {
277
  WPFormsBuilder.setupTitleFocus(e, wpf.getQueryString('view'));
278
  });
279
+ $builder.on('wpformsPanelSwitch', WPFormsBuilder.setupTitleFocus);
280
 
281
  // Select and apply a template
282
+ $builder.on('click', '.wpforms-template-select', function(e) {
283
  WPFormsBuilder.templateSelect(this, e);
284
  });
285
 
286
  // "Blank form" text should trigger template selection
287
+ $builder.on('click', '.wpforms-trigger-blank', function(e) {
288
  e.preventDefault();
289
  $('#wpforms-template-blank .wpforms-template-select').trigger('click');
290
  });
291
 
292
  // Keep Setup title and settings title instances the same
293
+ $builder.on('input ', '#wpforms-panel-field-settings-form_title', function() {
294
  $('#wpforms-setup-name').val($('#wpforms-panel-field-settings-form_title').val());
295
  });
296
+ $builder.on('input', '#wpforms-setup-name', function() {
297
  $('#wpforms-panel-field-settings-form_title').val($('#wpforms-setup-name').val());
298
  });
299
 
300
  // Additional template searching
301
+ $builder.on('keyup', '#wpforms-setup-template-search' , function() {
302
  s.templateList.search( $(this).val() );
303
  });
304
  },
434
  bindUIActionsFields: function() {
435
 
436
  // Field sidebar tab toggle
437
+ $builder.on('click', '.wpforms-tab a', function(e) {
438
  e.preventDefault();
439
  WPFormsBuilder.fieldTabToggle($(this).parent().attr('id'));
440
  });
441
 
442
  // Field sidebar group toggle
443
+ $builder.on('click', '.wpforms-add-fields-heading', function(e) {
444
  e.preventDefault();
445
  WPFormsBuilder.fieldGroupToggle($(this), 'click');
446
  });
447
 
448
  // Form field preview clicking
449
+ $builder.on('click', '.wpforms-field', function(e) {
450
  WPFormsBuilder.fieldTabToggle($(this).data('field-id'));
451
  });
452
 
453
  // Field delete
454
+ $builder.on('click', '.wpforms-field-delete', function(e) {
455
  e.preventDefault();
456
  e.stopPropagation();
457
  WPFormsBuilder.fieldDelete($(this).parent().data('field-id'));
458
  });
459
 
460
  // Field duplicate
461
+ $builder.on('click', '.wpforms-field-duplicate', function(e) {
462
  e.preventDefault();
463
  WPFormsBuilder.fieldDuplicate($(this).parent().data('field-id'));
464
  });
465
 
466
  // Field add
467
+ $builder.on('click', '.wpforms-add-fields-button', function(e) {
468
  e.preventDefault();
469
  WPFormsBuilder.fieldAdd($(this).data('field-type'));
470
  });
471
 
472
  // New field choices should be sortable
473
+ $builder.on('wpformsFieldAdd', function(event, id, type) {
474
  if (type === 'select' || type === 'radio' || type === 'checkbox' || type === 'payment-multiple' || type === 'payment-select' ) {
475
  WPFormsBuilder.fieldChoiceSortable(type,'#wpforms-field-option-row-' + id + '-choices ul');
476
  }
477
  });
478
 
479
  // Field choice add new
480
+ $builder.on('click', '.wpforms-field-option-row-choices .add', function(e) {
481
  WPFormsBuilder.fieldChoiceAdd(e, $(this));
482
  });
483
 
484
  // Field choice delete
485
+ $builder.on('click', '.wpforms-field-option-row-choices .remove', function(e) {
486
  WPFormsBuilder.fieldChoiceDelete(e, $(this));
487
  });
488
 
489
  // Field choices defaults
490
+ $builder.on('change', '.wpforms-field-option-row-choices input[type=radio]', function(e) {
491
  var $this = $(this),
492
  list = $this.parent().parent();
493
  $this.parent().parent().find('input[type=radio]').not(this).prop('checked',false);
495
  });
496
 
497
  // Field choices update preview area
498
+ $builder.on('change', '.wpforms-field-option-row-choices input[type=checkbox]', function(e) {
499
  var list = $(this).parent().parent();
500
  WPFormsBuilder.fieldChoiceUpdate(list.data('field-type'),list.data('field-id') );
501
  });
502
 
503
  // Field choices display value toggle
504
+ $builder.on('change', '.wpforms-field-option-row-show_values input', function(e) {
505
  $(this).closest('.wpforms-field-option').find('.wpforms-field-option-row-choices ul').toggleClass('show-values');
506
  });
507
 
508
+ // Field choices image toggle.
509
+ $builder.on('change', '.wpforms-field-option-row-choices_images input', function() {
510
+
511
+ var $this = $( this ),
512
+ fieldID = $this.parent().data( 'field-id' )
513
+ $fieldOptions = $( '#wpforms-field-option-'+fieldID ),
514
+ checked = $this.is( ':checked' ),
515
+ type = $( '#wpforms-field-option-'+fieldID ).find( '.wpforms-field-option-hidden-type' ).val();
516
+
517
+ $this.parent().find( '.wpforms-alert' ).toggleClass( 'wpforms-hidden' );
518
+ $fieldOptions.find( '.wpforms-field-option-row-choices ul' ).toggleClass( 'show-images' );
519
+ $fieldOptions.find( '.wpforms-field-option-row-choices_images_style' ).toggleClass( 'wpforms-hidden' );
520
+
521
+ if ( checked ) {
522
+ $( '#wpforms-field-option-'+fieldID+'-input_columns' ).val( 'inline' ).trigger( 'change' );
523
+ } else {
524
+ $( '#wpforms-field-option-'+fieldID+'-input_columns' ).val( '' ).trigger( 'change' );
525
+ }
526
+
527
+ WPFormsBuilder.fieldChoiceUpdate( type, fieldID );
528
+ });
529
+
530
+ // Field choices image upload add/remove image.
531
+ $builder.on( 'wpformsImageUploadAdd wpformsImageUploadRemove', function( event, $this, $container ) {
532
+
533
+ var $list = $container.closest( '.choices-list' ),
534
+ fieldID = $list.data( 'field-id' ),
535
+ type = $list.data( 'field-type' );
536
+
537
+ WPFormsBuilder.fieldChoiceUpdate( type, fieldID );
538
+ });
539
+
540
+ // Field choices image style toggle.
541
+ $builder.on( 'change', '.wpforms-field-option-row-choices_images_style select', function() {
542
+
543
+ var fieldID = $( this ).parent().data( 'field-id' ),
544
+ type = $( '#wpforms-field-option-'+fieldID ).find( '.wpforms-field-option-hidden-type' ).val();
545
+
546
+ WPFormsBuilder.fieldChoiceUpdate( type, fieldID );
547
+ });
548
+
549
  // Updates field choices text in almost real time
550
+ $builder.on('focusout', '.wpforms-field-option-row-choices input.label', function(e) {
551
  var list = $(this).parent().parent();
552
  WPFormsBuilder.fieldChoiceUpdate(list.data('field-type'),list.data('field-id'));
553
  });
554
 
555
  // Field Choices Bulk Add
556
+ $builder.on('click', '.toggle-bulk-add-display', function(e) {
557
  e.preventDefault();
558
  WPFormsBuilder.fieldChoiceBulkAddToggle(this);
559
  });
560
+ $builder.on('click', '.toggle-bulk-add-presets', function(e) {
561
  e.preventDefault();
562
  var $presetList = $(this).closest('.bulk-add-display').find('ul');
563
  if ( $presetList.css('display') === 'block' ) {
567
  }
568
  $presetList.slideToggle();
569
  });
570
+ $builder.on('click', '.bulk-add-preset-insert', function(e) {
571
  e.preventDefault();
572
  var $this = $(this),
573
  preset = $this.data('preset'),
580
  $presetToggle.text(wpforms_builder.bulk_add_presets_show);
581
  $presetList.slideUp();
582
  });
583
+ $builder.on('click', '.bulk-add-insert', function(e) {
584
  e.preventDefault();
585
  WPFormsBuilder.fieldChoiceBulkAddInsert(this);
586
  });
587
 
588
  // Field Options group toggle
589
+ $builder.on('click', '.wpforms-field-option-group-toggle', function(e) {
590
  e.preventDefault();
591
  var $this = $(this);
592
  $this.parent().toggleClass('wpforms-hide').find('.wpforms-field-option-group-inner').slideToggle();
594
  });
595
 
596
  // Display toggle for Address field hide address line 2 option
597
+ $builder.on('change', '.wpforms-field-option-address input.hide', function(e) {
598
  var $this = $(this),
599
  id = $this.parent().parent().data('field-id'),
600
  subfield = $this.parent().parent().data('subfield');
602
  });
603
 
604
  // Real-time updates for "Show Label" field option
605
+ $builder.on('input', '.wpforms-field-option-row-label input', function(e) {
606
  var $this = $(this),
607
  value = $this.val(),
608
  id = $this.parent().data('field-id');
610
  });
611
 
612
  // Real-time updates for "Description" field option
613
+ $builder.on( 'input', '.wpforms-field-option-row-description textarea', function() {
614
+ var $this = $( this ),
615
  value = $this.val(),
616
+ id = $this.parent().data( 'field-id' ),
617
+ $desc = $( '#wpforms-field-'+id ).find( '.description' );
618
+
619
+ if ( $desc.hasClass( 'nl2br' ) ) {
620
+ $desc.html( value.replace( /\n/g, '<br>') );
621
+ } else {
622
+ $desc.html( value );
623
+ }
624
  });
625
 
626
  // Real-time updates for "Required" field option
627
+ $builder.on('change', '.wpforms-field-option-row-required input', function(e) {
628
  var id = $(this).parent().data('field-id');
629
  $('#wpforms-field-'+id).toggleClass('required');
630
  });
631
 
632
  // Real-time updates for "Confirmation" field option
633
+ $builder.on('change', '.wpforms-field-option-row-confirmation input', function(e) {
634
  var id = $(this).parent().data('field-id');
635
  $('#wpforms-field-'+id).find('.wpforms-confirm').toggleClass('wpforms-confirm-enabled wpforms-confirm-disabled');
636
  $('#wpforms-field-option-'+id).toggleClass('wpforms-confirm-enabled wpforms-confirm-disabled');
637
  });
638
 
639
  // Real-time updates for "Size" field option
640
+ $builder.on('change', '.wpforms-field-option-row-size select', function(e) {
641
  var $this = $(this),
642
  value = $this.val(),
643
  id = $this.parent().data('field-id');
645
  });
646
 
647
  // Real-time updates for "Placeholder" field option
648
+ $builder.on('input', '.wpforms-field-option-row-placeholder input', function(e) {
649
  var $this = $(this),
650
  value = $this.val(),
651
  id = $this.parent().data('field-id'),
667
  });
668
 
669
  // Real-time updates for "Confirmation Placeholder" field option
670
+ $builder.on('input', '.wpforms-field-option-row-confirmation_placeholder input', function(e) {
671
  var $this = $(this),
672
  value = $this.val(),
673
  id = $this.parent().data('field-id');
675
  });
676
 
677
  // Real-time updates for "Hide Label" field option
678
+ $builder.on('change', '.wpforms-field-option-row-label_hide input', function(e) {
679
  var id = $(this).parent().data('field-id');
680
  $('#wpforms-field-'+id).toggleClass('label_hide');
681
  });
682
 
683
  // Real-time updates for Sub Label visbility field option
684
+ $builder.on('change', '.wpforms-field-option-row-sublabel_hide input', function(e) {
685
  var id = $(this).parent().data('field-id');
686
  $('#wpforms-field-'+id).toggleClass('sublabel_hide');
687
  });
688
 
689
  // Real-time updates for Date/Time and Name "Format" option
690
+ $builder.on('change', '.wpforms-field-option-row-format select', function(e) {
691
  var $this = $(this),
692
  value = $this.val(),
693
  id = $this.parent().data('field-id');
696
  })
697
 
698
  // Real-time updates specific for Address "Scheme" option
699
+ $builder.on('change', '.wpforms-field-option-row-scheme select', function(e) {
700
  var $this = $(this),
701
  value = $this.val(),
702
  id = $this.parent().data('field-id');
711
  })
712
 
713
  // Real-time updates for Address, Date/Time, and Name "Placeholder" field options
714
+ $builder.on('input', '.wpforms-field-option .format-selected input.placeholder, .wpforms-field-option-address input.placeholder', function(e) {
715
  var $this = $(this),
716
  value = $this.val(),
717
  id = $this.parent().parent().data('field-id'),
720
  });
721
 
722
  // Real-time updates for Date/Time date type
723
+ $builder.on('change', '.wpforms-field-option-row-date .type select', function(e) {
724
  var $this = $(this),
725
  value = $this.val(),
726
  id = $(this).parent().parent().data('field-id');
729
  });
730
 
731
  // Real-time updates for Date/Time date select format
732
+ $builder.on('change', '.wpforms-field-option-row-date .format select', function(e) {
733
  var $this = $(this),
734
  value = $this.val(),
735
  id = $(this).parent().parent().data('field-id');
743
  });
744
 
745
  // Consider the field active when a disabled nav button is clicked
746
+ $builder.on('click', '.wpforms-pagebreak-button', function(e) {
747
  e.preventDefault();
748
  $(this).closest('.wpforms-field').trigger('click');
749
  });
750
 
751
  // Real-time updates for "Next" and "Prev" pagebreak field option
752
+ $builder.on('input', '.wpforms-field-option-row-next input', function(e) {
753
  var $this = $(this),
754
  value = $this.val(),
755
  id = $this.parent().data('field-id');
759
  $('#wpforms-field-'+id).find('.wpforms-pagebreak-next').css('display','none').empty();
760
  }
761
  });
762
+ $builder.on('input', '.wpforms-field-option-row-prev input', function(e) {
763
  var $this = $(this),
764
  value = $this.val(),
765
  id = $this.parent().data('field-id');
771
  });
772
 
773
  // Real-time updates for "Page Title" pagebreak field option
774
+ $builder.on('input', '.wpforms-field-option-row-title input', function(e) {
775
  var $this = $(this),
776
  value = $this.val(),
777
  id = $this.parent().data('field-id');
783
  });
784
 
785
  // Real-time updates for "Page Navigation Alignment" pagebreak field option
786
+ $builder.on('change', '.wpforms-field-option-row-nav_align select', function(e) {
787
  var $this = $(this),
788
  value = $this.val();
789
  if (!value) {
793
  });
794
 
795
  // Real-time updates for "Display Previous" pagebreak field option
796
+ $builder.on('change', '.wpforms-field-option-row-prev_toggle input', function(e) {
797
  var $this = $(this),
798
  $group = $this.closest('.wpforms-field-option-group-inner'),
799
  $prev = $group.find('.wpforms-field-option-row-prev'),
810
  });
811
 
812
  // Real-time updates for Single Item field "Item Price" option
813
+ $builder.on('input', '.wpforms-field-option-row-price input', function(e) {
814
  var $this = $(this),
815
  value = $this.val(),
816
  id = $this.parent().data('field-id'),
827
  });
828
 
829
  // Real-time updates for payment CC icons
830
+ $builder.on('change', '.wpforms-field-option-credit-card .payment-icons input', function(e) {
831
  var $this = $(this),
832
  card = $this.data('card')
833
  id = $this.parent().data('field-id');
835
  });
836
 
837
  // Generic updates for various additional placeholder fields
838
+ $builder.on('input', '.wpforms-field-option input.placeholder-update', function(e) {
839
  var $this = $(this),
840
  value = $this.val(),
841
  id = $this.data('field-id'),
843
  $('#wpforms-field-'+id).find('.wpforms-'+ subfield+' input' ).attr('placeholder', value);
844
  });
845
 
846
+ // Toggle Choice Layout advanced field option.
847
+ $builder.on( 'change', '.wpforms-field-option-row-input_columns select', function() {
848
+ var $this = $( this ),
849
  value = $this.val(),
850
  cls = '',
851
+ id = $this.parent().data( 'field-id' );
852
  if ( value === '2' ) {
853
  cls = 'wpforms-list-2-columns';
854
  } else if ( value === '3' ) {
855
  cls = 'wpforms-list-3-columns';
856
+ } else if ( value === 'inline' ) {
857
+ cls = 'wpforms-list-inline';
858
  }
859
+ $( '#wpforms-field-' + id ).removeClass( 'wpforms-list-2-columns wpforms-list-3-columns wpforms-list-inline' ).addClass( cls );
860
  });
861
 
862
  // Toggle the toggle field
863
+ $builder.on('click', '.wpforms-field-option-row .wpforms-toggle-icon', function(e) {
864
  var $this = $(this),
865
  $check = $this.find('input[type=checkbox]'),
866
  $label = $this.find('.wpforms-toggle-icon-label');
879
  });
880
 
881
  // Watch for pagebreak field being added and deleted
882
+ $builder.on('wpformsFieldAdd', WPFormsBuilder.fieldPagebreakAdd);
883
+ $builder.on('wpformsFieldDelete', WPFormsBuilder.fieldPagebreakDelete);
884
 
885
  // Real-time updates for "Dynamic Choices" field option, for Dropdown,
886
  // Checkboxes, and Multiple choice fields
887
+ $builder.on('change', '.wpforms-field-option-row-dynamic_choices select', function(e) {
888
  WPFormsBuilder.fieldDynamicChoiceToggle($(this));
889
  });
890
 
891
  // Real-time updates for "Dynamic [type] Source" field option, for Dropdown,
892
  // Checkboxes, and Multiple choice fields
893
+ $builder.on('change', '.wpforms-field-option-row-dynamic_taxonomy select, .wpforms-field-option-row-dynamic_post_type select', function(e) {
894
  WPFormsBuilder.fieldDynamicChoiceSource($(this));
895
  });
896
 
897
  // Toggle Layout selector
898
+ $builder.on('click', '.toggle-layout-selector-display', function(e) {
899
  e.preventDefault();
900
  WPFormsBuilder.fieldLayoutSelectorToggle(this);
901
  });
902
+ $builder.on('click', '.layout-selector-display-layout', function(e) {
903
  e.preventDefault();
904
  WPFormsBuilder.fieldLayoutSelectorLayout(this);
905
  });
906
+ $builder.on('click', '.layout-selector-display-columns span', function(e) {
907
  e.preventDefault();
908
  WPFormsBuilder.fieldLayoutSelectorInsert(this);
909
  });
975
 
976
  $icons.css( 'color', value );
977
  });
978
+
979
+ // Real-time updates for Checkbox field Disclaimer option.
980
+ $( document ).on( 'change', '.wpforms-field-option-row-disclaimer_format input', function() {
981
+
982
+ var $this = $( this ),
983
+ id = $this.parent().data( 'field-id' ),
984
+ $desc = $( '#wpforms-field-'+id +' .description' );
985
+
986
+ $desc.toggleClass( 'disclaimer' );
987
+ });
988
  },
989
 
990
  /**
1071
  $('#wpforms-field-option-'+id).remove();
1072
  $('.wpforms-field, .wpforms-title-desc').removeClass('active');
1073
  WPFormsBuilder.fieldTabToggle('add-fields');
1074
+ if ( $('.wpforms-field').length < 1 ) {
1075
+ $( '#wpforms-builder-form .no-fields, #wpforms-builder-form .no-fields-preview' ).show();
1076
+ }
1077
+ $builder.trigger('wpformsFieldDelete', [id, type ]);
1078
  });
1079
  }
1080
  },
1193
  $newField.find('.label-title .text').text(newFieldLabel);
1194
 
1195
  // Fire field add custom event
1196
+ $builder.trigger('wpformsFieldAdd', [newFieldID, type]);
1197
 
1198
  // Lastly, update the next ID stored in database
1199
  $.post(wpforms_builder.ajax_url, {form_id : s.formID, nonce : wpforms_builder.nonce, action : 'wpforms_builder_increase_next_field_id'});
1296
 
1297
  $newField.fadeIn();
1298
 
1299
+ $('#wpforms-builder-form .no-fields, #wpforms-builder-form .no-fields-preview').hide();
1300
  $('#wpforms-field-id').val(res.data.field.id+1);
1301
 
1302
  WPFormsBuilder.loadTooltips();
1303
  WPFormsBuilder.loadColorPickers();
1304
 
1305
+ $builder.trigger('wpformsFieldAdd', [res.data.field.id, type ]);
1306
 
1307
  } else {
1308
  console.log(res);
1343
  } else {
1344
  $(fieldNew).before(field);
1345
  }
1346
+ $builder.trigger('wpformsFieldMove', ui);
1347
  fieldReceived = false;
1348
  },
1349
  over: function(e, ui){
1409
  *
1410
  * @since 1.0.0
1411
  */
1412
+ fieldChoiceAdd: function( event, el ) {
1413
 
1414
+ event.preventDefault();
1415
 
1416
+ var $this = $( el ),
1417
  $parent = $this.parent(),
1418
+ checked = $parent.find( 'input.default' ).is( ':checked' ),
1419
+ fieldID = $this.closest( '.wpforms-field-option-row-choices' ).data( 'field-id' ),
1420
+ id = $parent.parent().attr( 'data-next-id' ),
1421
+ type = $parent.parent().data( 'field-type' ),
1422
+ $choice = $parent.clone().insertAfter( $parent );
1423
+
1424
+ $choice.attr( 'data-key', id );
1425
+ $choice.find( 'input.label' ).val( '' ).attr( 'name', 'fields['+fieldID+'][choices]['+id+'][label]' );
1426
+ $choice.find( 'input.value' ).val( '' ).attr( 'name', 'fields['+fieldID+'][choices]['+id+'][value]' );
1427
+ $choice.find( 'input.source' ).val( '' ).attr( 'name', 'fields['+fieldID+'][choices]['+id+'][image]' );
1428
+ $choice.find( 'input.default').attr( 'name', 'fields['+fieldID+'][choices]['+id+'][default]' ).prop( 'checked', false );
1429
+ $choice.find( '.preview' ).empty();
1430
+ $choice.find( '.wpforms-image-upload-add' ).show();
1431
 
1432
  if ( checked == true ) {
1433
+ $parent.find( 'input.default' ).prop( 'checked', true );
1434
  }
1435
  id++;
1436
+ $parent.parent().attr( 'data-next-id', id );
1437
+ $builder.trigger( 'wpformsFieldChoiceAdd' );
1438
+ WPFormsBuilder.fieldChoiceUpdate( type, fieldID );
1439
  },
1440
 
1441
  /**
1468
  } else {
1469
  $this.parent().remove();
1470
  WPFormsBuilder.fieldChoiceUpdate($list.data('field-type'), $list.data('field-id'));
1471
+ $builder.trigger('wpformsFieldChoiceDelete');
1472
  }
1473
  },
1474
 
1492
  stop:function(e,ui){
1493
  var id = ui.item.parent().data('field-id');
1494
  WPFormsBuilder.fieldChoiceUpdate(type, id);
1495
+ $builder.trigger('wpformsFieldChoiceMove', ui);
1496
  },
1497
  update:function(e,ui){
1498
  }
1508
  */
1509
  fieldChoiceUpdate: function(type, id) {
1510
 
1511
+ // Radio, Checkbox, and Payment Multiple use _ template.
1512
+ if ( 'radio' === type || 'checkbox' === type || 'payment-multiple' === type ) {
1513
+
1514
+ var tmpl = wp.template( 'wpforms-field-preview-checkbox-radio-payment-multiple' ),
1515
+ data = {
1516
+ settings: wpf.getField( id ),
1517
+ order: wpf.getChoicesOrder( id ),
1518
+ type: 'radio'
1519
+ };
1520
+
1521
+ if ( 'checkbox' === type ) {
1522
+ data.type = 'checkbox';
1523
+ }
1524
+
1525
+ $( '#wpforms-field-' + id ).find( 'ul.primary-input' ).replaceWith( tmpl( data ) );
1526
+
1527
+ return;
1528
+ }
1529
+
1530
  var new_choice;
1531
 
1532
  // Multiple payment choices are radio buttons
1643
  $list.attr('data-next-id', nextID).append(newChoices)
1644
 
1645
  WPFormsBuilder.fieldChoiceUpdate(type, fieldID);
1646
+ $builder.trigger('wpformsFieldChoiceAdd');
1647
  WPFormsBuilder.fieldChoiceBulkAddToggle( $container.find('.toggle-bulk-add-display') );
1648
  },
1649
 
1703
  }
1704
  WPFormsBuilder.fieldAdd('pagebreak', options).done(function(res){
1705
  s.pagebreakTop = res.data.field.id;
 
1706
  var $preview = $('#wpforms-field-'+res.data.field.id),
1707
  $options = $('#wpforms-field-option-'+res.data.field.id);
1708
 
1722
  }
1723
  WPFormsBuilder.fieldAdd('pagebreak', options).done(function(res){
1724
  s.pagebreakBottom = res.data.field.id;
 
1725
  var $preview = $('#wpforms-field-'+res.data.field.id),
1726
  $options = $('#wpforms-field-option-'+res.data.field.id);
1727
 
1776
  $thisOption = $this.parent(),
1777
  value = $this.val(),
1778
  id = $thisOption.data('field-id'),
1779
+ type = $( '#wpforms-field-option-'+id ).find( '.wpforms-field-option-hidden-type' ).val(),
1780
  $field = $('#wpforms-field-'+id),
1781
+ $choices = $('#wpforms-field-option-row-'+id+'-choices'),
1782
+ $images = $( '#wpforms-field-option-'+id+'-choices_images' );
1783
 
1784
  // Loading
1785
  wpf.fieldOptionLoading($thisOption);
1791
  if ( '' === value ) {
1792
  // "Off" - no dynamic populating
1793
 
1794
+ // Show choice images option.
1795
+ $images.removeClass( 'wpforms-hidden' );
 
 
 
1796
 
1797
+ if ( 'checkbox' === type || 'radio' === type || 'payment-multiple' === type ) {
 
1798
 
1799
+ WPFormsBuilder.fieldChoiceUpdate( type, id );
1800
 
1801
  } else {
1802
+ // Get original field choices
1803
+ var choices = [];
1804
+ $('#wpforms-field-option-row-'+id+'-choices .label').each(function(index) {
1805
+ choices.push($(this).val());
1806
+ });
1807
 
1808
+ // Restore field to display original field choices
1809
+ if ($field.hasClass('wpforms-field-select')) {
1810
 
1811
+ $field.find('select option:first').text(choices[0]);
 
 
1812
 
1813
+ } else {
1814
+
1815
+ var type = 'radio',
1816
+ $list = $field.find('.primary-input');
1817
 
1818
+ if ($field.hasClass('wpforms-field-checkbox')) {
1819
+ type = 'checkbox';
1820
+ }
1821
+
1822
+ // Remove previous items
1823
+ $list.empty();
1824
+
1825
+ // Add new items to radio or checkbox field
1826
+ for(var key in choices) {
1827
+ $list.append('<li><input type="'+type+'" disabled> '+choices[key]+'</li>');
1828
+ }
1829
  }
1830
  }
1831
 
1837
 
1838
  } else {
1839
  // Post type or Taxonomy based dynamic populating
1840
+
1841
+ // Hide choice images option, not applicable.
1842
+ $images.addClass( 'wpforms-hidden' );
1843
+
1844
  var data = {
1845
  type : value,
1846
  field_id: id,
2165
  bindUIActionsSettings: function() {
2166
 
2167
  // Clicking form title/desc opens Settings panel
2168
+ $builder.on('click', '.wpforms-title-desc, .wpforms-field-submit-button, .wpforms-center-form-name', function(e) {
2169
  e.preventDefault();
2170
  WPFormsBuilder.panelSwitch('settings');
2171
  });
2172
 
2173
  // Clicking form previous page break button
2174
+ $builder.on('click', '.wpforms-field-pagebreak-last button', function(e) {
2175
  e.preventDefault();
2176
  WPFormsBuilder.panelSwitch('settings');
2177
  $('#wpforms-panel-field-settings-pagebreak_prev').focus();
2178
  });
2179
 
2180
  // Clicking form last page break button
2181
+ $builder.on('input', '#wpforms-panel-field-settings-pagebreak_prev', function(){
2182
  $('.wpforms-field-pagebreak-last button').text( $(this).val() );
2183
  });
2184
 
2185
  // Real-time updates for editing the form title
2186
+ $builder.on('input', '#wpforms-panel-field-settings-form_title, #wpforms-setup-name', function(){
2187
  var title = $(this).val();
2188
  if (title.length > 38) {
2189
  title = $.trim(title).substring(0, 38).split(" ").slice(0, -1).join(" ") + "..."
2192
  });
2193
 
2194
  // Real-time updates for editing the form description
2195
+ $builder.on('input', '#wpforms-panel-field-settings-form_desc', function(){
2196
  $('.wpforms-form-desc').text( $(this).val() );
2197
  });
2198
 
2199
  // Real-time updates for editing the form submit button
2200
+ $builder.on('input', '#wpforms-panel-field-settings-submit_text', function(){
2201
  $('.wpforms-field-submit input[type=submit]').val( $(this).val() );
2202
  });
2203
 
2204
  // Toggle form reCAPTCHA setting
2205
+ $builder.on('change', '#wpforms-panel-field-settings-recaptcha', function() {
2206
  WPFormsBuilder.recaptchaToggle();
2207
  });
2208
 
2209
  // Toggle form confirmation setting fields
2210
+ $builder.on('change', '#wpforms-panel-field-settings-confirmation_type', function() {
2211
  WPFormsBuilder.confirmationToggle();
2212
  });
2213
 
2214
  // Toggle form notification setting fields
2215
+ $builder.on('change', '#wpforms-panel-field-settings-notification_enable', function() {
2216
  WPFormsBuilder.notificationToggle();
2217
  });
2218
 
2219
  // Add New notification settings block
2220
+ $builder.on('click', '.wpforms-notifications-add', function(e) {
2221
  e.preventDefault();
2222
  WPFormsBuilder.notificationAdd();
2223
  });
2224
 
2225
  // Edit notification settings block name
2226
+ $builder.on('click', '.wpforms-notification-edit', function(e) {
2227
  e.preventDefault();
2228
 
2229
  var $el = $(this);
2236
  });
2237
 
2238
  // Update notification settings block name and close editing interface
2239
+ $builder.on('blur', '.wpforms-notification-name-edit input', function(e) {
2240
  // Do not fire if for onBlur user clicked on edit button - it has own event processing.
2241
  if ( ! $(e.relatedTarget).hasClass('wpforms-notification-edit')) {
2242
  WPFormsBuilder.notificationNameEditingHide( $(this) );
2244
  });
2245
 
2246
  // Close notifications editing interface with pressed Enter
2247
+ $builder.on('keypress', '.wpforms-notification-name-edit input', function(e) {
2248
  // On Enter - hide editing interface.
2249
  if (e.keyCode === 13) {
2250
  WPFormsBuilder.notificationNameEditingHide( $(this) );
2255
  });
2256
 
2257
  // Toggle notification settings block - slide up or down
2258
+ $builder.on('click', '.wpforms-notification-toggle', function(e) {
2259
  e.preventDefault();
2260
 
2261
  WPFormsBuilder.notificationPanelToggle($(this));
2262
  });
2263
 
2264
  // Remove notification settings block
2265
+ $builder.on('click', '.wpforms-notification-delete', function(e) {
2266
  e.preventDefault();
2267
  WPFormsBuilder.notificationDelete($(this));
2268
  });
2393
 
2394
  // We need to process this event here, because we need a confirm modal object defined, so we can intrude into it.
2395
  // Pressing Enter will click the Ok button.
2396
+ $builder.on('keypress', '#notification-name', function(e) {
2397
  if (e.keyCode === 13) {
2398
  $(modal.buttons.confirm.el).trigger('click');
2399
  }
2552
  bindUIActionsSaveExit: function() {
2553
 
2554
  // Embed form
2555
+ $builder.on('click', '#wpforms-embed', function(e) {
2556
  e.preventDefault();
2557
  var content = wpforms_builder.embed_modal;
2558
  content += '<input type=\'text\' value=\'[wpforms id="' + s.formID + '" title="false" description="false"]\' readonly id=\'wpforms-embed-shortcode\'>';
2574
  });
2575
 
2576
  // Save form
2577
+ $builder.on('click', '#wpforms-save', function(e) {
2578
  e.preventDefault();
2579
  WPFormsBuilder.formSave(false);
2580
  });
2581
 
2582
  // Exit builder
2583
+ $builder.on('click', '#wpforms-exit', function(e) {
2584
  e.preventDefault();
2585
  WPFormsBuilder.formExit();
2586
  });
2616
  $label.text(text);
2617
  $icon.toggleClass('fa-check fa-cog fa-spin');
2618
  wpf.savedState = wpf.getFormState( '#wpforms-builder-form');
2619
+ $builder.trigger('wpformsSaved');
2620
  if (true === redirect ) {
2621
  window.location.href = wpforms_builder.exit_url;
2622
  }
2691
  bindUIActionsGeneral: function() {
2692
 
2693
  // Toggle Smart Tags
2694
+ $builder.on('click', '.toggle-smart-tag-display', function(e) {
2695
  e.preventDefault();
2696
  WPFormsBuilder.smartTagToggle(this);
2697
  });
2698
 
2699
+ $builder.on('click', '.smart-tags-list-display a', function(e) {
2700
  e.preventDefault();
2701
  WPFormsBuilder.smartTagInsert(this);
2702
  });
2703
 
2704
  // Field map table, update key source
2705
+ $builder.on('input', '.wpforms-field-map-table .key-source', function(){
2706
  var value = $(this).val(),
2707
  $dest = $(this).parent().parent().find('.key-destination'),
2708
  name = $dest.data('name');
2712
  });
2713
 
2714
  // Field map table, delete row
2715
+ $builder.on('click', '.wpforms-field-map-table .remove', function(e) {
2716
  e.preventDefault();
2717
  WPFormsBuilder.fieldMapTableDeleteRow(e, $(this));
2718
  });
2719
 
2720
  // Field map table, Add row
2721
+ $builder.on('click', '.wpforms-field-map-table .add', function(e) {
2722
  e.preventDefault();
2723
  WPFormsBuilder.fieldMapTableAddRow(e, $(this));
2724
  });
2725
 
2726
  // Global select field mapping
2727
+ $(document).on('wpformsFieldUpdate', WPFormsBuilder.fieldMapSelect);
2728
 
2729
  // Restrict user money input fields
2730
+ $builder.on('input', '.wpforms-money-input', function(event) {
2731
  var $this = $(this),
2732
  amount = $this.val(),
2733
  start = $this[0].selectionStart,
2737
  });
2738
 
2739
  // Format user money input fields
2740
+ $builder.on('focusout', '.wpforms-money-input', function(event) {
2741
  var $this = $(this),
2742
  amount = $this.val(),
2743
  sanitized = wpf.amountSanitize(amount),
2747
 
2748
  // Don't allow users to enable payments if storing entries has
2749
  // been disabled in the General settings.
2750
+ $builder.on('change', '#wpforms-panel-field-stripe-enable, #wpforms-panel-field-paypal_standard-enable', function(event) {
2751
  var $this = $(this);
2752
  if ( $this.prop('checked') ) {
2753
  var disabled = $('#wpforms-panel-field-settings-disable_entries').prop('checked');
2770
  }
2771
  }
2772
  });
2773
+
2774
+ // Upload or add an image.
2775
+ $builder.on( 'click', '.wpforms-image-upload-add', function( event ) {
2776
+
2777
+ event.preventDefault();
2778
+
2779
+ var $this = $( this ),
2780
+ $container = $this.parent(),
2781
+ mediaModal;
2782
+
2783
+ mediaModal = wp.media.frames.wpforms_media_frame = wp.media({
2784
+ className: 'media-frame wpforms-media-frame',
2785
+ frame: 'select',
2786
+ multiple: false,
2787
+ title: wpforms_builder.upload_image_title,
2788
+ library: {
2789
+ type: 'image'
2790
+ },
2791
+ button: {
2792
+ text: wpforms_builder.upload_image_button
2793
+ }
2794
+ });
2795
+
2796
+ mediaModal.on( 'select', function(){
2797
+
2798
+ var media_attachment = mediaModal.state().get( 'selection' ).first().toJSON();
2799
+
2800
+ $container.find( '.source' ).val( media_attachment.url );
2801
+ $container.find( '.preview' ).empty();
2802
+ $container.find( '.preview' ).prepend( '<a href="#" title="'+wpforms_builder.upload_image_remove+'" class="wpforms-image-upload-remove"><img src="'+media_attachment.url+'"></a>' );
2803
+
2804
+ if ( 'hide' === $this.data( 'after-upload' ) ) {
2805
+ $this.hide();
2806
+ }
2807
+
2808
+ $builder.trigger( 'wpformsImageUploadAdd', [ $this, $container ] );
2809
+ });
2810
+
2811
+ // Now that everything has been set, let's open up the frame.
2812
+ mediaModal.open();
2813
+ });
2814
+
2815
+ // Remove and uploaded image.
2816
+ $builder.on( 'click', '.wpforms-image-upload-remove', function( event ) {
2817
+
2818
+ event.preventDefault();
2819
+
2820
+ var $container = $( this ).parent().parent();
2821
+
2822
+ $container.find( '.preview' ).empty();
2823
+ $container.find( '.wpforms-image-upload-add' ).show();
2824
+ $container.find( '.source' ).val( '' );
2825
+
2826
+ $builder.trigger( 'wpformsImageUploadRemove', [ $( this ), $container ] );
2827
+ });
2828
  },
2829
 
2830
  /**
2852
  var allowed = $this.data( 'fields' ),
2853
  type = $this.data( 'type' ),
2854
  fields = [];
2855
+
2856
  if ( allowed && allowed.length ) {
2857
  fields = wpf.getFields( allowed.split( ',' ), true );
2858
  }
2869
  }
2870
  else {
2871
  smartTagList += '<li class="heading">' + wpforms_builder.fields_available + '</li>';
2872
+
2873
+ for ( var field_key in wpf.orders.fields ) {
2874
+
2875
+ var field_id = wpf.orders.fields[field_key];
2876
  var label = '';
2877
+
2878
+ if ( ! fields[ field_id ] ) {
2879
+ continue;
2880
+ }
2881
+
2882
+ if ( fields[ field_id ].label ) {
2883
+ label = wpf.sanitizeString( fields[ field_id ].label );
2884
  }
2885
  else {
2886
+ label = wpforms_builder.field + ' #' + fields[ field_id ].id;
2887
  }
2888
+ smartTagList += '<li><a href="#" data-type="field" data-meta=\'' + fields[ field_id ].id + '\'>' + label + '</a></li>';
2889
  }
2890
  }
2891
  }
3012
  }
3013
 
3014
  // Loop through the current fields
3015
+ //for(var field_key in fields) {
3016
+ for( key in wpf.orders.fields ) {
3017
+ var field_id = wpf.orders.fields[key],
3018
+ label = '';
3019
+
3020
+ if ( ! fields[field_id] ) {
3021
+ continue;
3022
+ }
3023
+
3024
  // Compile the label
3025
+ if (typeof fields[field_id].label !== 'undefined' && fields[field_id].label.length) {
3026
+ label = wpf.sanitizeString(fields[field_id].label);
3027
  } else {
3028
+ label = wpforms_builder.field + ' #' + fields[field_id].val;
3029
  }
3030
 
3031
  // Add to select if it is a field type allowed
3032
+ if ($.inArray(fields[field_id].type, allowedFields) >= 0 || $.inArray('all-fields', allowedFields) >= 0) {
3033
+ $this.append($('<option>', { value: fields[field_id].id, text : label }));
3034
  }
3035
  }
3036
 
assets/js/admin-utils.js CHANGED
@@ -3,6 +3,10 @@ var wpf = {
3
 
4
  cachedFields: {},
5
  savedState: false,
 
 
 
 
6
 
7
  // This file contains a collection of utility functions.
8
 
@@ -27,6 +31,10 @@ var wpf = {
27
 
28
  // Load initial form saved state.
29
  wpf.savedState = wpf.getFormState( '#wpforms-builder-form' );
 
 
 
 
30
  },
31
 
32
  /**
@@ -36,7 +44,13 @@ var wpf = {
36
  */
37
  bindUIActions: function() {
38
 
39
- // The following items should all trigger the fieldUpdate trigger
 
 
 
 
 
 
40
  jQuery(document).on('wpformsFieldAdd', wpf.fieldUpdate);
41
  jQuery(document).on('wpformsFieldDelete', wpf.fieldUpdate);
42
  jQuery(document).on('wpformsFieldMove', wpf.fieldUpdate);
@@ -47,6 +61,58 @@ var wpf = {
47
  jQuery(document).on('focusout', '.wpforms-field-option-row-choices input.label', wpf.fieldUpdate);
48
  },
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  /**
51
  * Trigger fired for all field update related actions.
52
  *
@@ -69,80 +135,69 @@ var wpf = {
69
  * @param bool useCache
70
  * @return object
71
  */
72
- getFields: function(allowedFields, useCache ) {
73
 
74
  useCache = useCache || false;
75
 
76
  if ( useCache && ! jQuery.isEmptyObject(wpf.cachedFields) ) {
77
 
78
  // Use cache if told and cache is primed.
79
- var fieldsOrdered = jQuery.extend({}, wpf.cachedFields);
80
 
81
  wpf.debug('getFields triggered (cached)');
82
 
83
  } else {
84
 
85
  // Normal processing, get fields from builder and prime cache.
86
- var formData = jQuery('#wpforms-builder-form').serializeObject(),
87
  fields = formData.fields,
88
  fieldOrder = [],
89
- fieldsOrdered = new Array(),
90
  fieldBlacklist = ['html','divider','pagebreak'];
91
 
92
  if (!fields) {
93
  return false;
94
  }
95
 
96
- // Find and store the order of forms. The order is lost when javascript
97
- // serilizes the form.
98
- jQuery('.wpforms-field-option').each(function(index, ele) {
99
- fieldOrder.push(jQuery(ele).data('field-id'));
100
- });
101
-
102
- // Remove fields that are not supported and check for white list
103
- jQuery.each(fields, function(index, ele) {
104
- if (ele) {
105
- if (jQuery.inArray(fields[index].type, fieldBlacklist) == '1' ){
106
- delete fields[index];
107
- wpf.removeArrayItem(fieldOrder, index);
108
- }
109
  }
110
- });
111
-
112
- // Preserve the order of field choices
113
- for(var key in fields) {
114
- if (fields[key].choices) {
115
- jQuery('#wpforms-field-option-row-'+fields[key].id+'-choices .choices-list li').each(function(index, ele) {
116
- var choiceKey = jQuery(ele).data('key');
117
- fields[key].choices['choice_'+choiceKey] = fields[key].choices[choiceKey];
118
- fields[key].choices['choice_'+choiceKey].key = choiceKey;
119
- delete fields[key].choices[choiceKey];
120
- });
121
- }
122
- }
123
-
124
- // Preserve the order of fields
125
- for(var key in fieldOrder) {
126
- fieldsOrdered['field_'+fieldOrder[key]] = fields[fieldOrder[key]];
127
  }
128
 
129
  // Cache the all the fields now that they have been ordered and initially
130
  // processed.
131
- wpf.cachedFields = fieldsOrdered;
132
 
133
  wpf.debug('getFields triggered');
134
  }
135
 
136
  // If we should only return specfic field types, remove the others.
137
  if ( allowedFields && allowedFields.constructor === Array ) {
138
- for(key in fieldsOrdered) {
139
- if ( jQuery.inArray(fieldsOrdered[key].type, allowedFields) === -1 ){
140
- delete fieldsOrdered[key];
141
  }
142
  }
143
  }
144
 
145
- return fieldsOrdered;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  },
147
 
148
  /**
@@ -168,18 +223,6 @@ var wpf = {
168
  }
169
  },
170
 
171
- /**
172
- * todo: get a single field
173
- *
174
- * @since 1.1.10
175
- * @param {[type]} id
176
- * @param {[type]} key
177
- * @return {[type]}
178
- */
179
- getField: function(id,key) {
180
- // @todo
181
- },
182
-
183
  /**
184
  * Get form state.
185
  *
@@ -188,15 +231,11 @@ var wpf = {
188
  */
189
  getFormState: function( el ) {
190
 
191
- //return JSON.stringify( jQuery( el ).serializeArray() );
192
-
193
  // Serialize tested the most performant string we can use for
194
  // comparisons.
195
  return jQuery( el ).serialize();
196
  },
197
 
198
- // hasField @todo
199
-
200
  /**
201
  * Remove items from an array.
202
  *
@@ -222,10 +261,17 @@ var wpf = {
222
  *
223
  * @since 1.0.1
224
  * @deprecated 1.2.8
 
 
 
 
225
  */
226
- sanitizeString: function(str) {
227
 
228
- return str.trim();
 
 
 
229
  },
230
 
231
  /**
@@ -382,15 +428,15 @@ var wpf = {
382
  var len;
383
  var emptyValues = [undef, null, false, 0, '', '0'];
384
 
385
- for (i = 0, len = emptyValues.length; i < len; i++) {
386
  if (mixedVar === emptyValues[i]) {
387
  return true;
388
  }
389
  }
390
 
391
- if (typeof mixedVar === 'object') {
392
- for (key in mixedVar) {
393
- if (mixedVar.hasOwnProperty(key)) {
394
  return false;
395
  }
396
  }
@@ -433,10 +479,79 @@ var wpf = {
433
  *
434
  * @since 1.4.1
435
  */
436
- focusCaretToEnd: function(el ) {
437
  el.focus();
438
  var $thisVal = el.val();
439
  el.val('').val($thisVal);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  }
441
  };
442
  wpf.init();
3
 
4
  cachedFields: {},
5
  savedState: false,
6
+ orders: {
7
+ fields: [],
8
+ choices: {}
9
+ },
10
 
11
  // This file contains a collection of utility functions.
12
 
31
 
32
  // Load initial form saved state.
33
  wpf.savedState = wpf.getFormState( '#wpforms-builder-form' );
34
+
35
+ // Save field and choice order for sorting later.
36
+ wpf.setFieldOrders();
37
+ wpf.setChoicesOrders();
38
  },
39
 
40
  /**
44
  */
45
  bindUIActions: function() {
46
 
47
+ // The following items should all trigger the fieldUpdate trigger.
48
+ jQuery(document).on('wpformsFieldAdd', wpf.setFieldOrders);
49
+ jQuery(document).on('wpformsFieldDelete', wpf.setFieldOrders);
50
+ jQuery(document).on('wpformsFieldMove', wpf.setFieldOrders);
51
+ jQuery(document).on('wpformsFieldChoiceAdd', wpf.setChoicesOrders);
52
+ jQuery(document).on('wpformsFieldChoiceDelete', wpf.setChoicesOrders);
53
+ jQuery(document).on('wpformsFieldChoiceMove', wpf.setChoicesOrders);
54
  jQuery(document).on('wpformsFieldAdd', wpf.fieldUpdate);
55
  jQuery(document).on('wpformsFieldDelete', wpf.fieldUpdate);
56
  jQuery(document).on('wpformsFieldMove', wpf.fieldUpdate);
61
  jQuery(document).on('focusout', '.wpforms-field-option-row-choices input.label', wpf.fieldUpdate);
62
  },
63
 
64
+ /**
65
+ * Store the order of the fields.
66
+ *
67
+ * @since 1.4.5
68
+ */
69
+ setFieldOrders: function() {
70
+
71
+ wpf.orders.fields = [];
72
+
73
+ jQuery( '.wpforms-field-option' ).each(function() {
74
+ wpf.orders.fields.push( jQuery( this ).data( 'field-id' ) );
75
+ });
76
+ },
77
+
78
+ /**
79
+ * Store the order of the choices for each field.
80
+ *
81
+ * @since 1.4.5
82
+ */
83
+ setChoicesOrders: function() {
84
+
85
+ wpf.orders.choices = {};
86
+
87
+ jQuery( '.choices-list' ).each(function() {
88
+ var fieldID = jQuery( this ).data( 'field-id' );
89
+ wpf.orders.choices[ 'field_'+ fieldID ] = [];
90
+ jQuery( this ).find( 'li' ).each( function() {
91
+ wpf.orders.choices[ 'field_' + fieldID ].push( jQuery( this ).data( 'key' ) );
92
+ });
93
+ });
94
+ },
95
+
96
+ /**
97
+ * Return the order of choices for a specific field.
98
+ *
99
+ * @since 1.4.5
100
+ *
101
+ * @param int id Field ID.
102
+ *
103
+ * @return array
104
+ */
105
+ getChoicesOrder: function( id ) {
106
+
107
+ var choices = [];
108
+
109
+ jQuery( '#wpforms-field-option-'+id ).find( '.choices-list li' ).each( function() {
110
+ choices.push( jQuery( this ).data( 'key' ) );
111
+ });
112
+
113
+ return choices;
114
+ },
115
+
116
  /**
117
  * Trigger fired for all field update related actions.
118
  *
135
  * @param bool useCache
136
  * @return object
137
  */
138
+ getFields: function( allowedFields, useCache ) {
139
 
140
  useCache = useCache || false;
141
 
142
  if ( useCache && ! jQuery.isEmptyObject(wpf.cachedFields) ) {
143
 
144
  // Use cache if told and cache is primed.
145
+ var fields = jQuery.extend({}, wpf.cachedFields);
146
 
147
  wpf.debug('getFields triggered (cached)');
148
 
149
  } else {
150
 
151
  // Normal processing, get fields from builder and prime cache.
152
+ var formData = wpf.formObject( '#wpforms-field-options' ),
153
  fields = formData.fields,
154
  fieldOrder = [],
155
+ fieldsOrdered = [],
156
  fieldBlacklist = ['html','divider','pagebreak'];
157
 
158
  if (!fields) {
159
  return false;
160
  }
161
 
162
+ for( var key in fields) {
163
+ if ( ! fields[key].type || jQuery.inArray(fields[key].type, fieldBlacklist) > -1 ){
164
+ delete fields[key];
 
 
 
 
 
 
 
 
 
 
165
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  }
167
 
168
  // Cache the all the fields now that they have been ordered and initially
169
  // processed.
170
+ wpf.cachedFields = jQuery.extend({}, fields);
171
 
172
  wpf.debug('getFields triggered');
173
  }
174
 
175
  // If we should only return specfic field types, remove the others.
176
  if ( allowedFields && allowedFields.constructor === Array ) {
177
+ for( var key in fields) {
178
+ if ( jQuery.inArray( fields[key].type, allowedFields ) === -1 ){
179
+ delete fields[key];
180
  }
181
  }
182
  }
183
 
184
+ return fields;
185
+ },
186
+
187
+ /**
188
+ * Get field settings object.
189
+ *
190
+ * @since 1.4.5
191
+ *
192
+ * @param int id Field ID.
193
+ *
194
+ * @return object
195
+ */
196
+ getField: function( id ) {
197
+
198
+ var field = wpf.formObject( '#wpforms-field-option-'+id );
199
+
200
+ return field.fields[ Object.keys( field.fields )[0] ];
201
  },
202
 
203
  /**
223
  }
224
  },
225
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  /**
227
  * Get form state.
228
  *
231
  */
232
  getFormState: function( el ) {
233
 
 
 
234
  // Serialize tested the most performant string we can use for
235
  // comparisons.
236
  return jQuery( el ).serialize();
237
  },
238
 
 
 
239
  /**
240
  * Remove items from an array.
241
  *
261
  *
262
  * @since 1.0.1
263
  * @deprecated 1.2.8
264
+ *
265
+ * @param string str String to sanitize.
266
+ *
267
+ * @return string
268
  */
269
+ sanitizeString: function( str ) {
270
 
271
+ if (typeof str === 'string' || str instanceof String) {
272
+ return str.trim();
273
+ }
274
+ return str;
275
  },
276
 
277
  /**
428
  var len;
429
  var emptyValues = [undef, null, false, 0, '', '0'];
430
 
431
+ for ( i = 0, len = emptyValues.length; i < len; i++ ) {
432
  if (mixedVar === emptyValues[i]) {
433
  return true;
434
  }
435
  }
436
 
437
+ if ( typeof mixedVar === 'object' ) {
438
+ for ( key in mixedVar ) {
439
+ if ( mixedVar.hasOwnProperty( key ) ) {
440
  return false;
441
  }
442
  }
479
  *
480
  * @since 1.4.1
481
  */
482
+ focusCaretToEnd: function( el ) {
483
  el.focus();
484
  var $thisVal = el.val();
485
  el.val('').val($thisVal);
486
+ },
487
+
488
+ /**
489
+ * Creates a object from form elements.
490
+ *
491
+ * @since 1.4.5
492
+ */
493
+ formObject: function( el ) {
494
+
495
+ var form = $( el ),
496
+ fields = form.find( '[name]' ) ,
497
+ json = {},
498
+ arraynames = {};
499
+
500
+ for ( var v = 0; v < fields.length; v++ ){
501
+
502
+ var field = $( fields[v] ),
503
+ name = field.prop( 'name' ).replace( /\]/gi,'' ).split( '[' ),
504
+ value = field.val(),
505
+ lineconf = {};
506
+
507
+ if ( ( field.is( ':radio' ) || field.is( ':checkbox' ) ) && ! field.is( ':checked' ) ) {
508
+ continue;
509
+ }
510
+ for ( var i = name.length-1; i >= 0; i-- ) {
511
+ var nestname = name[i];
512
+ if ( typeof nestname === 'undefined' ) {
513
+ nestname = '';
514
+ }
515
+ if ( nestname.length === 0 ){
516
+ lineconf = [];
517
+ if ( typeof arraynames[name[i-1]] === 'undefined' ) {
518
+ arraynames[name[i-1]] = 0;
519
+ } else {
520
+ arraynames[name[i-1]] += 1;
521
+ }
522
+ nestname = arraynames[name[i-1]];
523
+ }
524
+ if ( i === name.length-1 ){
525
+ if ( value ) {
526
+ if ( value === 'true' ) {
527
+ value = true;
528
+ } else if ( value === 'false' ) {
529
+ value = false;
530
+ }else if ( ! isNaN( parseFloat( value ) ) && parseFloat( value ).toString() === value ) {
531
+ value = parseFloat( value );
532
+ } else if ( typeof value === 'string' && ( value.substr( 0,1 ) === '{' || value.substr( 0,1 ) === '[' ) ) {
533
+ try {
534
+ value = JSON.parse( value );
535
+ } catch (e) {}
536
+ } else if ( typeof value === 'object' && value.length && field.is( 'select' ) ){
537
+ var new_val = {};
538
+ for ( var i = 0; i < value.length; i++ ){
539
+ new_val[ 'n' + i ] = value[ i ];
540
+ }
541
+ value = new_val;
542
+ }
543
+ }
544
+ lineconf[nestname] = value;
545
+ } else {
546
+ var newobj = lineconf;
547
+ lineconf = {};
548
+ lineconf[nestname] = newobj;
549
+ }
550
+ }
551
+ $.extend( true, json, lineconf );
552
+ };
553
+
554
+ return json;
555
  }
556
  };
557
  wpf.init();
assets/js/admin.js ADDED
@@ -0,0 +1,1603 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global wp, _, wpforms_admin, jconfirm, wpCookies, Choices, List */
2
+
3
+ ;(function($) {
4
+
5
+ 'use strict';
6
+
7
+ // Global settings access.
8
+ var s;
9
+
10
+ // Admin object.
11
+ var WPFormsAdmin = {
12
+
13
+ // Settings.
14
+ settings: {
15
+ iconActivate: '<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',
16
+ iconDeactivate: '<i class="fa fa-toggle-on" aria-hidden="true"></i>',
17
+ iconInstall: '<i class="fa fa-cloud-download" aria-hidden="true"></i>',
18
+ iconSpinner: '<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',
19
+ mediaFrame: false
20
+ },
21
+
22
+ /**
23
+ * Start the engine.
24
+ *
25
+ * @since 1.3.9
26
+ */
27
+ init: function() {
28
+
29
+ // Settings shortcut.
30
+ s = this.settings;
31
+
32
+ // Document ready.
33
+ $( document ).ready( WPFormsAdmin.ready );
34
+
35
+ // Forms Overview.
36
+ WPFormsAdmin.initFormOverview();
37
+
38
+ // Entries Single (Details).
39
+ WPFormsAdmin.initEntriesSingle();
40
+
41
+ // Entries List.
42
+ WPFormsAdmin.initEntriesList();
43
+
44
+ // Welcome activation.
45
+ WPFormsAdmin.initWelcome();
46
+
47
+ // Addons List.
48
+ WPFormsAdmin.initAddons();
49
+
50
+ // Settings.
51
+ WPFormsAdmin.initSettings();
52
+
53
+ // Tools.
54
+ WPFormsAdmin.initTools();
55
+
56
+ // Upgrades (Tools view).
57
+ WPFormsAdmin.initUpgrades();
58
+ },
59
+
60
+ /**
61
+ * Document ready.
62
+ *
63
+ * @since 1.3.9
64
+ */
65
+ ready: function() {
66
+
67
+ // To prevent jumping (since WP core moves the notices with js),
68
+ // they are hidden initally with CSS, then revealed below with JS,
69
+ // which runs after they have been moved.
70
+ $( '.notice' ).show();
71
+
72
+ // If there are screen options we have to move them.
73
+ $( '#screen-meta-links, #screen-meta' ).prependTo( '#wpforms-header-temp' ).show();
74
+
75
+ // Init fancy selects via choices.js.
76
+ WPFormsAdmin.initChoicesJS();
77
+
78
+ // Init checkbox multiselects columns.
79
+ WPFormsAdmin.initCheckboxMultiselectColumns();
80
+
81
+ // Init colorpickers via minicolors.js.
82
+ $( '.wpforms-color-picker' ).minicolors();
83
+
84
+ // Init fancy File Uploads.
85
+ $( '.wpforms-file-upload' ).each( function(){
86
+ var $input = $( this ).find( 'input[type=file]' ),
87
+ $label = $( this ).find( 'label' ),
88
+ labelVal = $label.html();
89
+ $input.on( 'change', function( event ) {
90
+ var fileName = '';
91
+ if ( this.files && this.files.length > 1 ) {
92
+ fileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length );
93
+ } else if( event.target.value ) {
94
+ fileName = event.target.value.split( '\\' ).pop();
95
+ }
96
+ if ( fileName ) {
97
+ $label.find( '.fld' ).html( fileName );
98
+ } else {
99
+ $label.html( labelVal );
100
+ }
101
+ });
102
+ // Firefox bug fix.
103
+ $input.on( 'focus', function(){ $input.addClass( 'has-focus' ); }).on( 'blur', function(){ $input.removeClass( 'has-focus' ); });
104
+ });
105
+
106
+ // jquery-confirm defaults.
107
+ jconfirm.defaults = {
108
+ closeIcon: true,
109
+ backgroundDismiss: true,
110
+ escapeKey: true,
111
+ animationBounce: 1,
112
+ useBootstrap: false,
113
+ theme: 'modern',
114
+ boxWidth: '400px',
115
+ animateFromElement: false
116
+ };
117
+
118
+ // Upgrade information modal for upgrade links.
119
+ $( document ).on( 'click', '.wpforms-upgrade-modal', function() {
120
+
121
+ $.alert({
122
+ title: false,
123
+ content: wpforms_admin.upgrade_modal,
124
+ icon: 'fa fa-info-circle',
125
+ type: 'blue',
126
+ boxWidth: '565px',
127
+ buttons: {
128
+ confirm: {
129
+ text: wpforms_admin.ok,
130
+ btnClass: 'btn-confirm',
131
+ keys: [ 'enter' ]
132
+ }
133
+ }
134
+ });
135
+ });
136
+
137
+ // Action available for each binding.
138
+ $( document ).trigger( 'wpformsReady' );
139
+ },
140
+
141
+ /**
142
+ * Initilize Choices JS elements.
143
+ *
144
+ * @since 1.4.2
145
+ */
146
+ initChoicesJS: function() {
147
+
148
+ $( '.choicesjs-select' ).each( function() {
149
+ var $this = $( this ),
150
+ args = { searchEnabled: false };
151
+ if ( $this.attr( 'multiple' ) ) {
152
+ args.searchEnabled = true;
153
+ args.removeItemButton = true;
154
+ }
155
+ if ( $this.data( 'placeholder' ) ) {
156
+ args.placeholderValue = $this.data( 'placeholder' );
157
+ }
158
+ if ( $this.data( 'sorting' ) === 'off' ) {
159
+ args.shouldSort = false;
160
+ }
161
+ if ( $this.data( 'search' ) ) {
162
+ args.searchEnabled = true;
163
+ }
164
+ new Choices( $this[0], args );
165
+ });
166
+ },
167
+
168
+ /**
169
+ * Initilize checkbox mulit-select columns.
170
+ *
171
+ * @since 1.4.2
172
+ */
173
+ initCheckboxMultiselectColumns: function() {
174
+
175
+ $( document ).on( 'change', '.checkbox-multiselect-columns input', function() {
176
+
177
+ var $this = $( this ),
178
+ $parent = $this.parent(),
179
+ $container = $this.closest( '.checkbox-multiselect-columns' ),
180
+ label = $parent.text(),
181
+ itemID = 'check-item-' + $this.val(),
182
+ $item = $container.find( '#' + itemID );
183
+
184
+ if ( $this.prop( 'checked' ) ) {
185
+ $this.parent().addClass( 'checked' );
186
+ if ( ! $item.length ) {
187
+ $container.find('.second-column ul').append( '<li id="'+itemID+'">'+label+'</li>' );
188
+ }
189
+ } else {
190
+ $this.parent().removeClass( 'checked' );
191
+ $container.find( '#' + itemID ).remove();
192
+ }
193
+ });
194
+
195
+ $( document ).on( 'click', '.checkbox-multiselect-columns .all', function( event ) {
196
+
197
+ event.preventDefault();
198
+
199
+ $( this ).closest( '.checkbox-multiselect-columns' ).find( 'input[type=checkbox]' ).prop( 'checked', true ).trigger( 'change' );
200
+ $( this ).remove();
201
+ });
202
+ },
203
+
204
+ //--------------------------------------------------------------------//
205
+ // Forms Overview
206
+ //--------------------------------------------------------------------//
207
+
208
+ /**
209
+ * Element bindings for Form Overview page.
210
+ *
211
+ * @since 1.3.9
212
+ */
213
+ initFormOverview: function() {
214
+
215
+ // Confirm form entry deletion and duplications.
216
+ $( document ).on( 'click', '#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a', function( event ) {
217
+
218
+ event.preventDefault();
219
+
220
+ var url = $( this ).attr( 'href' ),
221
+ msg = $( this ).parent().hasClass( 'delete' ) ? wpforms_admin.form_delete_confirm : wpforms_admin.form_duplicate_confirm;
222
+
223
+ // Trigger alert modal to confirm.
224
+ $.confirm({
225
+ title: false,
226
+ content: msg,
227
+ backgroundDismiss: false,
228
+ closeIcon: false,
229
+ icon: 'fa fa-exclamation-circle',
230
+ type: 'orange',
231
+ buttons: {
232
+ confirm: {
233
+ text: wpforms_admin.ok,
234
+ btnClass: 'btn-confirm',
235
+ keys: [ 'enter' ],
236
+ action: function(){
237
+ window.location = url;
238
+ }
239
+ },
240
+ cancel: {
241
+ text: wpforms_admin.cancel,
242
+ keys: [ 'esc' ]
243
+ }
244
+ }
245
+ });
246
+ });
247
+ },
248
+
249
+ //--------------------------------------------------------------------//
250
+ // Entry Single (Details)
251
+ //--------------------------------------------------------------------//
252
+
253
+ /**
254
+ * Element bindings for Entries Single (Details) page.
255
+ *
256
+ * @since 1.3.9
257
+ */
258
+ initEntriesSingle: function() {
259
+
260
+ // Entry navigation hotkeys.
261
+ // We only want to listen on the applicable admin page.
262
+ if ( 'wpforms-entries' === WPFormsAdmin.getQueryString( 'page' ) && 'details' === WPFormsAdmin.getQueryString( 'view' ) ) {
263
+ WPFormsAdmin.entryHotkeys();
264
+ }
265
+
266
+ // Confirm entry deletion.
267
+ $( document ).on( 'click', '#wpforms-entries-single .submitdelete', function( event ) {
268
+
269
+ event.preventDefault();
270
+
271
+ var url = $( this ).attr( 'href' );
272
+
273
+ // Trigger alert modal to confirm.
274
+ $.confirm({
275
+ title: false,
276
+ content: wpforms_admin.entry_delete_confirm,
277
+ backgroundDismiss: false,
278
+ closeIcon: false,
279
+ icon: 'fa fa-exclamation-circle',
280
+ type: 'orange',
281
+ buttons: {
282
+ confirm: {
283
+ text: wpforms_admin.ok,
284
+ btnClass: 'btn-confirm',
285
+ keys: [ 'enter' ],
286
+ action: function(){
287
+ window.location = url;
288
+ }
289
+ },
290
+ cancel: {
291
+ text: wpforms_admin.cancel,
292
+ keys: [ 'esc' ]
293
+ }
294
+ }
295
+ });
296
+ });
297
+
298
+ // Open Print preview in new window.
299
+ $( document ).on( 'click', '#wpforms-entries-single .wpforms-entry-print a', function( event ) {
300
+
301
+ event.preventDefault();
302
+
303
+ window.open( $( this ).attr( 'href' ) );
304
+ });
305
+
306
+ // Toggle displaying empty fields.
307
+ $( document ).on( 'click', '#wpforms-entries-single .wpforms-empty-field-toggle', function( event ) {
308
+
309
+ event.preventDefault();
310
+
311
+ // Handle cookie.
312
+ if ( wpCookies.get( 'wpforms_entry_hide_empty' ) === 'true') {
313
+
314
+ // User was hiding empty fields, so now display them.
315
+ wpCookies.remove('wpforms_entry_hide_empty');
316
+ $( this ).text( wpforms_admin.entry_empty_fields_hide );
317
+ } else {
318
+
319
+ // User was seeing empty fields, so now hide them.
320
+ wpCookies.set( 'wpforms_entry_hide_empty', 'true', 2592000 ); // 1month.
321
+ $( this ).text( wpforms_admin.entry_empty_fields_show );
322
+ }
323
+
324
+ $( '.wpforms-entry-field.empty' ).toggle();
325
+ });
326
+
327
+ // Display notes editor.
328
+ $( document ).on( 'click', '#wpforms-entries-single .wpforms-entry-notes-new .add', function( event ) {
329
+
330
+ event.preventDefault();
331
+
332
+ $( this ).hide().next( 'form' ).slideToggle();
333
+ });
334
+
335
+ // Cancel note.
336
+ $( document ).on( 'click', '#wpforms-entries-single .wpforms-entry-notes-new .cancel', function( event ) {
337
+
338
+ event.preventDefault();
339
+
340
+ $( this ).closest( 'form' ).slideToggle();
341
+ $('.wpforms-entry-notes-new .add').show();
342
+ });
343
+
344
+ // Delete note.
345
+ $( document ).on( 'click', '#wpforms-entries-single .wpforms-entry-notes-byline .note-delete', function( event ) {
346
+
347
+ event.preventDefault();
348
+
349
+ var url = $( this ).attr( 'href' );
350
+
351
+ // Trigger alert modal to confirm.
352
+ $.confirm({
353
+ title: false,
354
+ content: wpforms_admin.entry_note_delete_confirm,
355
+ backgroundDismiss: false,
356
+ closeIcon: false,
357
+ icon: 'fa fa-exclamation-circle',
358
+ type: 'orange',
359
+ buttons: {
360
+ confirm: {
361
+ text: wpforms_admin.ok,
362
+ btnClass: 'btn-confirm',
363
+ keys: [ 'enter' ],
364
+ action: function(){
365
+ window.location = url;
366
+ }
367
+ },
368
+ cancel: {
369
+ text: wpforms_admin.cancel,
370
+ keys: [ 'esc' ]
371
+ }
372
+ }
373
+ });
374
+ });
375
+ },
376
+
377
+ /**
378
+ * Hotkeys for Entries Single (Details) page.
379
+ *
380
+ * j triggers previous entry, k triggers next entry.
381
+ *
382
+ * @since 1.4.0
383
+ */
384
+ entryHotkeys: function() {
385
+
386
+ $( document ).keydown( function( event ) {
387
+ if ( 74 === event.keyCode && ! WPFormsAdmin.isFormTypeNode( event.target.nodeName ) ) {
388
+ // j key has been pressed outside of a form element, go to
389
+ // the previous entry.
390
+ var prevEntry = $('#wpforms-entry-prev-link').attr( 'href' );
391
+ if ( '#' !== prevEntry ) {
392
+ window.location.href = prevEntry;
393
+ }
394
+ } else if ( 75 === event.keyCode && ! WPFormsAdmin.isFormTypeNode( event.target.nodeName ) ) {
395
+ // k key has been pressed outside of a form element, go to
396
+ // the previous entry.
397
+ var nextEntry = $('#wpforms-entry-next-link').attr( 'href' );
398
+ if ( '#' !== nextEntry ) {
399
+ window.location.href = nextEntry;
400
+ }
401
+ }
402
+ });
403
+ },
404
+
405
+
406
+ //--------------------------------------------------------------------//
407
+ // Entry List
408
+ //--------------------------------------------------------------------//
409
+
410
+ /**
411
+ * Element bindings for Entries List table page.
412
+ *
413
+ * @since 1.3.9
414
+ */
415
+ initEntriesList: function() {
416
+
417
+ $( document ).on( 'click', '#wpforms-entries-table-edit-columns', function( event ) {
418
+
419
+ event.preventDefault();
420
+
421
+ WPFormsAdmin.entriesListFieldColumn();
422
+ });
423
+
424
+ // Toogle form selector dropdown.
425
+ $( document ).on( 'click', '#wpforms-entries-list .form-selector .toggle', function( event ) {
426
+
427
+ event.preventDefault();
428
+
429
+ $( this ).toggleClass( 'active' ).next( '.form-list' ).toggle();
430
+
431
+ });
432
+
433
+ // Confirm entry deletion.
434
+ $( document ).on( 'click', '#wpforms-entries-list .wp-list-table .delete', function( event ) {
435
+
436
+ event.preventDefault();
437
+
438
+ var url = $( this ).attr( 'href' );
439
+
440
+ // Trigger alert modal to confirm.
441
+ $.confirm({
442
+ title: false,
443
+ content: wpforms_admin.entry_delete_confirm,
444
+ backgroundDismiss: false,
445
+ closeIcon: false,
446
+ icon: 'fa fa-exclamation-circle',
447
+ type: 'orange',
448
+ buttons: {
449
+ confirm: {
450
+ text: wpforms_admin.ok,
451
+ btnClass: 'btn-confirm',
452
+ keys: [ 'enter' ],
453
+ action: function(){
454
+ window.location = url;
455
+ }
456
+ },
457
+ cancel: {
458
+ text: wpforms_admin.cancel,
459
+ keys: [ 'esc' ]
460
+ }
461
+ }
462
+ });
463
+ });
464
+
465
+ // Toggle entry stars.
466
+ $( document ).on( 'click', '#wpforms-entries-list .wp-list-table .indicator-star', function( event ) {
467
+
468
+ event.preventDefault();
469
+
470
+ var $this = $( this ),
471
+ task = '',
472
+ total = Number( $( '#wpforms-entries-list .starred-num' ).text() ),
473
+ id = $this.data( 'id' );
474
+
475
+ if ( $this.hasClass( 'star' ) ) {
476
+ task = 'star';
477
+ total++;
478
+ $this.attr( 'title', wpforms_admin.entry_unstar );
479
+ } else {
480
+ task = 'unstar';
481
+ total--;
482
+ $this.attr( 'title', wpforms_admin.entry_star );
483
+ }
484
+ $this.toggleClass( 'star unstar' );
485
+ $( '#wpforms-entries-list .starred-num' ).text( total );
486
+
487
+ var data = {
488
+ task : task,
489
+ action : 'wpforms_entry_list_star',
490
+ nonce : wpforms_admin.nonce,
491
+ entry_id: id
492
+ };
493
+ $.post( wpforms_admin.ajax_url, data );
494
+ });
495
+
496
+ // Toggle entry read state.
497
+ $( document ).on( 'click', '#wpforms-entries-list .wp-list-table .indicator-read', function( event ) {
498
+
499
+ event.preventDefault();
500
+
501
+ var $this = $( this ),
502
+ task = '',
503
+ total = Number( $( '#wpforms-entries-list .unread-num' ).text() ),
504
+ id = $this.data( 'id' );
505
+
506
+ if ( $this.hasClass( 'read' ) ) {
507
+ task = 'read';
508
+ total--;
509
+ $this.attr( 'title', wpforms_admin.entry_unread );
510
+ } else {
511
+ task = 'unread';
512
+ total++;
513
+ $this.attr( 'title', wpforms_admin.entry_read );
514
+ }
515
+ $this.toggleClass( 'read unread' );
516
+ $( '#wpforms-entries-list .unread-num' ).text( total );
517
+
518
+ var data = {
519
+ task : task,
520
+ action : 'wpforms_entry_list_read',
521
+ nonce : wpforms_admin.nonce,
522
+ entry_id: id
523
+ };
524
+ $.post( wpforms_admin.ajax_url, data );
525
+ });
526
+
527
+ // Confirm mass entry deletion - this deletes ALL entries.
528
+ $( document ).on( 'click', '#wpforms-entries-list .form-details-actions-deleteall', function( event ) {
529
+
530
+ event.preventDefault();
531
+
532
+ var url = $( this ).attr( 'href' );
533
+
534
+ // Trigger alert modal to confirm.
535
+ $.confirm({
536
+ title: wpforms_admin.heads_up,
537
+ content: wpforms_admin.entry_delete_all_confirm,
538
+ backgroundDismiss: false,
539
+ closeIcon: false,
540
+ icon: 'fa fa-exclamation-circle',
541
+ type: 'orange',
542
+ buttons: {
543
+ confirm: {
544
+ text: wpforms_admin.ok,
545
+ btnClass: 'btn-confirm',
546
+ keys: [ 'enter' ],
547
+ action: function(){
548
+ window.location = url;
549
+ }
550
+ },
551
+ cancel: {
552
+ text: wpforms_admin.cancel,
553
+ keys: [ 'esc' ]
554
+ }
555
+ }
556
+ });
557
+ });
558
+ },
559
+
560
+ /**
561
+ * Display settings to change the entry list field columns/
562
+ *
563
+ * @since 1.4.0
564
+ */
565
+ entriesListFieldColumn: function() {
566
+
567
+ $.alert({
568
+ title: wpforms_admin.entry_field_columns,
569
+ boxWidth: '500px',
570
+ content: s.iconSpinner + $( '#wpforms-field-column-select' ).html(),
571
+ onContentReady: function() {
572
+
573
+ var $modalContent = this.$content,
574
+ $select = $modalContent.find( 'select' ),
575
+ choices = new Choices( $select[0], {
576
+ maxItemCount: 5,
577
+ placeholderValue: wpforms_admin.fields_select+'...',
578
+ removeItemButton: true,
579
+ shouldSort: false,
580
+ callbackOnInit: function() {
581
+ $modalContent.find( '.fa' ).remove();
582
+ $modalContent.find( 'form' ).show();
583
+ }
584
+ });
585
+
586
+ $( '.jconfirm-content-pane, .jconfirm-box' ).css( 'overflow','visible' );
587
+
588
+ choices.passedElement.addEventListener( 'change', function() {
589
+ choices.hideDropdown();
590
+ }, false );
591
+ },
592
+ buttons: {
593
+ confirm: {
594
+ text: wpforms_admin.save_refresh,
595
+ btnClass: 'btn-confirm',
596
+ keys: ['enter'],
597
+ action: function() {
598
+ this.$content.find( 'form' ).submit();
599
+ }
600
+ },
601
+ cancel: {
602
+ text: wpforms_admin.cancel,
603
+ keys: [ 'esc' ]
604
+ }
605
+ }
606
+ });
607
+ },
608
+
609
+ //--------------------------------------------------------------------//
610
+ // Welcome Activation.
611
+ //--------------------------------------------------------------------//
612
+
613
+ /**
614
+ * Welcome activation page.
615
+ *
616
+ * @since 1.3.9
617
+ */
618
+ initWelcome: function() {
619
+
620
+ // Open modal and play How To video.
621
+ $( document ).on( 'click', '#wpforms-welcome .play-video', function( event ) {
622
+
623
+ event.preventDefault();
624
+
625
+ var video = '<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>';
626
+
627
+ $.dialog({
628
+ title: false,
629
+ content: video,
630
+ closeIcon: true,
631
+ boxWidth: '70%'
632
+ });
633
+ });
634
+ },
635
+
636
+ //--------------------------------------------------------------------//
637
+ // Addons List.
638
+ //--------------------------------------------------------------------//
639
+
640
+ /**
641
+ * Element bindings for Addons List page.
642
+ *
643
+ * @since 1.3.9
644
+ */
645
+ initAddons: function() {
646
+
647
+ // Some actions have to be delayed to document.ready.
648
+ $( document ).on( 'wpformsReady', function() {
649
+
650
+ // Only run on the addons page.
651
+ if ( $( '#wpforms-admin-addons' ).length ) {
652
+
653
+ // Display all addon boxes as the same height.
654
+ $( '.addon-item .details' ).matchHeight( { byrow: false, property: 'height' } );
655
+
656
+ // Addons searching.
657
+ var addonSearch = new List('wpforms-admin-addons-list', {
658
+ valueNames: [ 'addon-name' ]
659
+ });
660
+
661
+ $( '#wpforms-admin-addons-search' ).on( 'keyup', function() {
662
+ addonSearch.search( $( this ).val() );
663
+ });
664
+ }
665
+ });
666
+
667
+ // Display all addon boxes as the same height.
668
+ $( document ).on( 'wpformsReady', function() {
669
+
670
+ // Only run on the addons page because the matchHeight jQuery
671
+ // library is not loaded globally.
672
+ if ( $( '#wpforms-admin-addons' ).length ) {
673
+ $( '.addon-item .details' ).matchHeight( { byrow: false, property: 'min-height' } );
674
+ }
675
+ });
676
+
677
+ // Toogle an addon state.
678
+ $( document ).on( 'click', '#wpforms-admin-addons .addon-item button', function( event ) {
679
+
680
+ event.preventDefault();
681
+
682
+ WPFormsAdmin.addonToggle( $( this ) );
683
+ });
684
+ },
685
+
686
+ /**
687
+ * Toggle addon state.
688
+ *
689
+ * @since 1.3.9
690
+ */
691
+ addonToggle: function( el ) {
692
+
693
+ var $this = $( el ),
694
+ $addon = $this.closest( '.addon-item' ),
695
+ plugin = $this.attr( 'data-plugin' ),
696
+ action,
697
+ cssClass,
698
+ statusText,
699
+ buttonText,
700
+ errorText,
701
+ successText;
702
+
703
+ $this.prop( 'disabled', true ).addClass( 'loading' );
704
+ $this.html( s.iconSpinner );
705
+
706
+ if ( $this.hasClass( 'status-active' ) ) {
707
+ // Deactivate.
708
+ action = 'wpforms_deactivate_addon';
709
+ cssClass = 'status-inactive';
710
+ statusText = wpforms_admin.addon_inactive;
711
+ buttonText = s.iconActivate + wpforms_admin.addon_activate;
712
+ errorText = s.iconDeactivate + wpforms_admin.addon_deactivate;
713
+
714
+ } else if ( $this.hasClass( 'status-inactive' ) ) {
715
+ // Activate.
716
+ action = 'wpforms_activate_addon';
717
+ cssClass = 'status-active';
718
+ statusText = wpforms_admin.addon_active;
719
+ buttonText = s.iconDeactivate + wpforms_admin.addon_deactivate;
720
+ errorText = s.iconActivate + wpforms_admin.addon_activate;
721
+
722
+ } else if ( $this.hasClass( 'status-download' ) ) {
723
+ // Install.
724
+ action = 'wpforms_install_addon';
725
+ cssClass = 'status-inactive';
726
+ statusText = wpforms_admin.addon_inactive;
727
+ buttonText = s.iconActivate + wpforms_admin.addon_activate;
728
+ errorText = s.iconInstall + wpforms_admin.addon_install;
729
+ } else {
730
+ return;
731
+ }
732
+
733
+ var data = {
734
+ action: action,
735
+ nonce : wpforms_admin.nonce,
736
+ plugin: plugin
737
+ };
738
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
739
+
740
+ if ( res.success ){
741
+ if ( 'wpforms_install_addon' === action ) {
742
+ $this.attr( 'data-plugin', res.data.basename );
743
+ successText = res.data.msg;
744
+ } else {
745
+ successText = res.data;
746
+ }
747
+ $addon.find( '.actions' ).append( '<div class="msg success">'+successText+'</div>' );
748
+ $addon.find( 'span.status-label' ).removeClass( 'status-active status-inactive status-download' ).addClass( cssClass ).text( statusText );
749
+ $this.removeClass( 'status-active status-inactive status-download' ).addClass( cssClass ).html( buttonText );
750
+ } else {
751
+ $addon.find( '.actions' ).append( '<div class="msg error">'+res.data+'</div>' );
752
+ $this.html( errorText );
753
+ }
754
+
755
+ $this.prop( 'disabled', false ).removeClass( 'loading' );
756
+
757
+ // Automatically clear addon messages after 3 seconds.
758
+ setTimeout( function() {
759
+ $( '.addon-item .msg' ).remove();
760
+ }, 3000 );
761
+
762
+ }).fail( function( xhr ) {
763
+ console.log( xhr.responseText );
764
+ });
765
+ },
766
+
767
+ //--------------------------------------------------------------------//
768
+ // Settings.
769
+ //--------------------------------------------------------------------//
770
+
771
+ /**
772
+ * Element bindings for Settings page.
773
+ *
774
+ * @since 1.3.9
775
+ */
776
+ initSettings: function() {
777
+
778
+ // Watch for hashes and scroll to if found.
779
+ // Display all addon boxes as the same height.
780
+ $( document ).on( 'wpformsReady', function() {
781
+
782
+ // Only proceed if we're on the settings page.
783
+ if ( ! $( '#wpforms-settings' ).length ) {
784
+ return;
785
+ }
786
+
787
+ var integrationFocus = WPFormsAdmin.getQueryString( 'wpforms-integration' ),
788
+ jumpTo = WPFormsAdmin.getQueryString( 'jump' );
789
+
790
+ if ( integrationFocus ) {
791
+ $( 'body' ).animate({
792
+ scrollTop: $( '#wpforms-integration-'+integrationFocus ).offset().top
793
+ }, 1000 );
794
+ } else if ( jumpTo ) {
795
+ $( 'body' ).animate({
796
+ scrollTop: $( '#'+jumpTo ).offset().top
797
+ }, 1000 );
798
+ }
799
+ });
800
+
801
+ // Image upload fields.
802
+ $( document ).on( 'click', '.wpforms-setting-row-image button', function( event ) {
803
+
804
+ event.preventDefault();
805
+
806
+ WPFormsAdmin.imageUploadModal( $( this ) );
807
+ });
808
+
809
+ // Verify license key.
810
+ $( document ).on( 'click', '#wpforms-setting-license-key-verify', function( event ) {
811
+
812
+ event.preventDefault();
813
+
814
+ WPFormsAdmin.licenseVerify( $( this ) );
815
+ });
816
+
817
+ // Deactivate license key.
818
+ $( document ).on( 'click', '#wpforms-setting-license-key-deactivate', function( event ) {
819
+
820
+ event.preventDefault();
821
+
822
+ WPFormsAdmin.licenseDeactivate( $( this ) );
823
+ });
824
+
825
+ // Refresh license key.
826
+ $( document ).on( 'click', '#wpforms-setting-license-key-refresh', function( event ) {
827
+
828
+ event.preventDefault();
829
+
830
+ WPFormsAdmin.licenseRefresh( $( this ) );
831
+ });
832
+
833
+ /**
834
+ * @todo Refactor providers settings tab. Code below is legacy.
835
+ */
836
+
837
+ // Integration connect.
838
+ $( document ).on( 'click', '.wpforms-settings-provider-connect', function( event ) {
839
+
840
+ event.preventDefault();
841
+
842
+ WPFormsAdmin.integrationConnect( $( this ) );
843
+ });
844
+
845
+ // Integration account disconnect.
846
+ $( document ).on( 'click', '.wpforms-settings-provider-accounts-list a', function( event ) {
847
+
848
+ event.preventDefault();
849
+
850
+ WPFormsAdmin.integrationDisconnect( $( this ) );
851
+ });
852
+
853
+ // Integration individual display toggling.
854
+ $( document ).on( 'click', '.wpforms-settings-provider-header', function( event ) {
855
+
856
+ event.preventDefault();
857
+
858
+ $( this ).parent().find( '.wpforms-settings-provider-accounts' ).slideToggle();
859
+ $( this ).parent().find( '.wpforms-settings-provider-logo i' ).toggleClass( 'fa-chevron-right fa-chevron-down' );
860
+ });
861
+
862
+ // Integration accounts display toggling.
863
+ $( document ).on( 'click', '.wpforms-settings-provider-accounts-toggle a', function( event ) {
864
+
865
+ event.preventDefault();
866
+
867
+ var $connectFields = $( this ).parent().next( '.wpforms-settings-provider-accounts-connect' );
868
+ $connectFields.find( 'input[type=text], input[type=password]' ).val('');
869
+ $connectFields.slideToggle();
870
+ });
871
+ },
872
+
873
+ /**
874
+ * Image upload modal window.
875
+ *
876
+ * @since 1.3.0
877
+ */
878
+ imageUploadModal: function( el ) {
879
+
880
+ if ( s.media_frame ) {
881
+ s.media_frame.open();
882
+ return;
883
+ }
884
+
885
+ var $setting = $( el ).closest( '.wpforms-setting-field' );
886
+
887
+ s.media_frame = wp.media.frames.wpforms_media_frame = wp.media({
888
+ className: 'media-frame wpforms-media-frame',
889
+ frame: 'select',
890
+ multiple: false,
891
+ title: wpforms_admin.upload_image_title,
892
+ library: {
893
+ type: 'image'
894
+ },
895
+ button: {
896
+ text: wpforms_admin.upload_image_button
897
+ }
898
+ });
899
+
900
+ s.media_frame.on( 'select', function(){
901
+ // Grab our attachment selection and construct a JSON representation of the model.
902
+ var media_attachment = s.media_frame.state().get( 'selection' ).first().toJSON();
903
+
904
+ // Send the attachment URL to our custom input field via jQuery.
905
+ $setting.find( 'input[type=text]' ).val( media_attachment.url );
906
+ $setting.find( 'img' ).remove();
907
+ $setting.prepend( '<img src="'+media_attachment.url+'">' );
908
+ });
909
+
910
+ // Now that everything has been set, let's open up the frame.
911
+ s.media_frame.open();
912
+ },
913
+
914
+ /**
915
+ * Verify a license key.
916
+ *
917
+ * @since 1.3.9
918
+ */
919
+ licenseVerify: function( el ) {
920
+
921
+ var $this = $( el ),
922
+ $row = $this.closest( '.wpforms-setting-row' ),
923
+ buttonWidth = $this.outerWidth(),
924
+ buttonLabel = $this.text(),
925
+ data = {
926
+ action: 'wpforms_verify_license',
927
+ nonce: wpforms_admin.nonce,
928
+ license: $('#wpforms-setting-license-key').val()
929
+ };
930
+
931
+ $this.html( s.iconSpinner ).css( 'width', buttonWidth ).prop( 'disabled', true );
932
+
933
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
934
+
935
+ var icon = 'fa fa-check-circle',
936
+ color = 'green',
937
+ msg;
938
+
939
+ if ( res.success ){
940
+ msg = res.data.msg;
941
+ $row.find( '.type, .desc, #wpforms-setting-license-key-deactivate' ).show();
942
+ $row.find( '.type strong' ).text( res.data.type );
943
+ $('.wpforms-license-notice').remove();
944
+ } else {
945
+ icon = 'fa fa-exclamation-circle';
946
+ color = 'orange';
947
+ msg = res.data;
948
+ $row.find( '.type, .desc, #wpforms-setting-license-key-deactivate' ).hide();
949
+ }
950
+
951
+ $.alert({
952
+ title: false,
953
+ content: msg,
954
+ icon: icon,
955
+ type: color,
956
+ buttons: {
957
+ confirm: {
958
+ text: wpforms_admin.ok,
959
+ btnClass: 'btn-confirm',
960
+ keys: [ 'enter' ]
961
+ }
962
+ }
963
+ });
964
+
965
+ $this.html( buttonLabel ).css( 'width', 'auto' ).prop( 'disabled', false );
966
+
967
+ }).fail( function( xhr ) {
968
+ console.log( xhr.responseText );
969
+ });
970
+ },
971
+
972
+ /**
973
+ * Verify a license key.
974
+ *
975
+ * @since 1.3.9
976
+ */
977
+ licenseDeactivate: function( el ) {
978
+
979
+ var $this = $( el ),
980
+ $row = $this.closest( '.wpforms-setting-row' ),
981
+ buttonWidth = $this.outerWidth(),
982
+ buttonLabel = $this.text(),
983
+ data = {
984
+ action: 'wpforms_deactivate_license',
985
+ nonce: wpforms_admin.nonce
986
+ };
987
+
988
+ $this.html( s.iconSpinner ).css( 'width', buttonWidth ).prop( 'disabled', true );
989
+
990
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
991
+
992
+ var icon = 'fa fa-info-circle',
993
+ color = 'blue',
994
+ msg = res.data;
995
+
996
+ if ( res.success ){
997
+ $row.find( '#wpforms-setting-license-key' ).val('');
998
+ $row.find( '.type, .desc, #wpforms-setting-license-key-deactivate' ).hide();
999
+ } else {
1000
+ icon = 'fa fa-exclamation-circle';
1001
+ color = 'orange';
1002
+ }
1003
+
1004
+ $.alert({
1005
+ title: false,
1006
+ content: msg,
1007
+ icon: icon,
1008
+ type: color,
1009
+ buttons: {
1010
+ confirm: {
1011
+ text: wpforms_admin.ok,
1012
+ btnClass: 'btn-confirm',
1013
+ keys: [ 'enter' ]
1014
+ }
1015
+ }
1016
+ });
1017
+
1018
+ $this.html( buttonLabel ).css( 'width', 'auto' ).prop( 'disabled', false );
1019
+
1020
+ }).fail( function( xhr ) {
1021
+ console.log( xhr.responseText );
1022
+ });
1023
+ },
1024
+
1025
+ /**
1026
+ * Refresh a license key.
1027
+ *
1028
+ * @since 1.3.9
1029
+ */
1030
+ licenseRefresh: function( el ) {
1031
+
1032
+ var $this = $( el ),
1033
+ $row = $this.closest( '.wpforms-setting-row' ),
1034
+ data = {
1035
+ action: 'wpforms_refresh_license',
1036
+ nonce: wpforms_admin.nonce,
1037
+ license: $('#wpforms-setting-license-key').val()
1038
+ };
1039
+
1040
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1041
+
1042
+ var icon = 'fa fa-check-circle',
1043
+ color = 'green',
1044
+ msg;
1045
+
1046
+ if ( res.success ){
1047
+ msg = res.data.msg;
1048
+ $row.find( '.type strong' ).text( res.data.type );
1049
+ } else {
1050
+ icon = 'fa fa-exclamation-circle';
1051
+ color = 'orange';
1052
+ msg = res.data;
1053
+ $row.find( '.type, .desc, #wpforms-setting-license-key-deactivate' ).hide();
1054
+ }
1055
+
1056
+ $.alert({
1057
+ title: false,
1058
+ content: msg,
1059
+ icon: icon,
1060
+ type: color,
1061
+ buttons: {
1062
+ confirm: {
1063
+ text: wpforms_admin.ok,
1064
+ btnClass: 'btn-confirm',
1065
+ keys: [ 'enter' ]
1066
+ }
1067
+ }
1068
+ });
1069
+
1070
+ }).fail( function( xhr ) {
1071
+ console.log( xhr.responseText );
1072
+ });
1073
+ },
1074
+
1075
+ /**
1076
+ * Connect integration provider account.
1077
+ *
1078
+ * @since 1.3.9
1079
+ */
1080
+ integrationConnect: function( el ) {
1081
+
1082
+ var $this = $( el ),
1083
+ buttonWidth = $this.outerWidth(),
1084
+ buttonLabel = $this.text(),
1085
+ $provider = $this.closest( '.wpforms-settings-provider' ),
1086
+ data = {
1087
+ action : 'wpforms_settings_provider_add',
1088
+ data : $this.closest( 'form' ).serialize(),
1089
+ provider: $this.data( 'provider' ),
1090
+ nonce : wpforms_admin.nonce
1091
+ };
1092
+
1093
+ $this.html( 'Connecting...' ).css( 'width', buttonWidth ).prop( 'disabled', true );
1094
+
1095
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1096
+
1097
+ if ( res.success ){
1098
+ $provider.find( '.wpforms-settings-provider-accounts-list ul' ).append( res.data.html );
1099
+ $provider.addClass( 'connected' );
1100
+ $this.closest( '.wpforms-settings-provider-accounts-connect' ).slideToggle();
1101
+ } else {
1102
+ var msg = wpforms_admin.provider_auth_error;
1103
+ if ( res.data.error_msg ) {
1104
+ msg += "\n" + res.data.error_msg; // jshint ignore:line
1105
+ }
1106
+ $.alert({
1107
+ title: false,
1108
+ content: msg,
1109
+ icon: 'fa fa-exclamation-circle',
1110
+ type: 'orange',
1111
+ buttons: {
1112
+ confirm: {
1113
+ text: wpforms_admin.ok,
1114
+ btnClass: 'btn-confirm',
1115
+ keys: [ 'enter' ]
1116
+ }
1117
+ }
1118
+ });
1119
+ console.log(res);
1120
+ }
1121
+
1122
+ $this.html( buttonLabel ).css( 'width', 'auto' ).prop( 'disabled', false );
1123
+
1124
+ }).fail( function( xhr ) {
1125
+ console.log( xhr.responseText );
1126
+ });
1127
+ },
1128
+
1129
+ /**
1130
+ * Remove integration provider account.
1131
+ *
1132
+ * @since 1.3.9
1133
+ */
1134
+ integrationDisconnect: function( el ) {
1135
+
1136
+ var $this = $( el ),
1137
+ data = {
1138
+ action : 'wpforms_settings_provider_disconnect',
1139
+ provider: $this.data( 'provider' ),
1140
+ key : $this.data( 'key'),
1141
+ nonce : wpforms_admin.nonce
1142
+ };
1143
+
1144
+ $.confirm({
1145
+ title: wpforms_admin.heads_up,
1146
+ content: wpforms_admin.provider_delete_confirm,
1147
+ backgroundDismiss: false,
1148
+ closeIcon: false,
1149
+ icon: 'fa fa-exclamation-circle',
1150
+ type: 'orange',
1151
+ buttons: {
1152
+ confirm: {
1153
+ text: wpforms_admin.ok,
1154
+ btnClass: 'btn-confirm',
1155
+ keys: [ 'enter' ],
1156
+ action: function(){
1157
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1158
+ if ( res.success ){
1159
+ $this.parent().parent().remove();
1160
+ } else {
1161
+ console.log( res );
1162
+ }
1163
+ }).fail( function( xhr ) {
1164
+ console.log( xhr.responseText );
1165
+ });
1166
+ }
1167
+ },
1168
+ cancel: {
1169
+ text: wpforms_admin.cancel,
1170
+ keys: [ 'esc' ]
1171
+ }
1172
+ }
1173
+ });
1174
+ },
1175
+
1176
+ //--------------------------------------------------------------------//
1177
+ // Tools.
1178
+ //--------------------------------------------------------------------//
1179
+
1180
+ /**
1181
+ * Element bindings for Tools page.
1182
+ *
1183
+ * @since 1.4.2
1184
+ */
1185
+ initTools: function() {
1186
+
1187
+ // Run import for a specific provider.
1188
+ $( document ).on( 'click', '#wpforms-ssl-verify', function( event ) {
1189
+
1190
+ event.preventDefault();
1191
+
1192
+ WPFormsAdmin.verifySSLConnection();
1193
+ });
1194
+
1195
+ // Run import for a specific provider.
1196
+ $( document ).on( 'click', '#wpforms-importer-forms-submit', function( event ) {
1197
+
1198
+ event.preventDefault();
1199
+
1200
+ // Check to confirm user as selected a form.
1201
+ if ( $( '#wpforms-importer-forms input:checked' ).length ) {
1202
+
1203
+ var ids = [];
1204
+ $( '#wpforms-importer-forms input:checked' ).each( function ( i ) {
1205
+ ids[i] = $( this ).val();
1206
+ });
1207
+
1208
+ if ( ! wpforms_admin.isPro ) {
1209
+ // We need to analyze the forms before starting the
1210
+ // actual import.
1211
+ WPFormsAdmin.analyzeForms( ids );
1212
+ } else {
1213
+ // Begin the import process.
1214
+ WPFormsAdmin.importForms( ids );
1215
+ }
1216
+
1217
+ } else {
1218
+
1219
+ // User didn't actually select a form so alert them.
1220
+ $.alert({
1221
+ title: false,
1222
+ content: wpforms_admin.importer_forms_required,
1223
+ icon: 'fa fa-info-circle',
1224
+ type: 'blue',
1225
+ buttons: {
1226
+ confirm: {
1227
+ text: wpforms_admin.ok,
1228
+ btnClass: 'btn-confirm',
1229
+ keys: [ 'enter' ]
1230
+ }
1231
+ }
1232
+ });
1233
+ }
1234
+ });
1235
+
1236
+ // Continue import after analyzing.
1237
+ $( document ).on( 'click', '#wpforms-importer-continue-submit', function( event ) {
1238
+
1239
+ event.preventDefault();
1240
+
1241
+ WPFormsAdmin.importForms( s.formIDs );
1242
+ });
1243
+ },
1244
+
1245
+ /**
1246
+ * Perform test connection to verify that the current web host
1247
+ * can successfully make outbound SSL connections.
1248
+ *
1249
+ * @since 1.4.5
1250
+ */
1251
+ verifySSLConnection: function() {
1252
+
1253
+ var $btn = $( '#wpforms-ssl-verify' ),
1254
+ btnLabel = $btn.text(),
1255
+ btnWidth = $btn.outerWidth(),
1256
+ $settings = $btn.parent(),
1257
+ data = {
1258
+ action: 'wpforms_verify_ssl',
1259
+ nonce: wpforms_admin.nonce
1260
+ };
1261
+
1262
+ $btn.css( 'width', btnWidth ).prop( 'disabled', true ).text( wpforms_admin.testing );
1263
+
1264
+ // Trigger AJAX to test connection
1265
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1266
+
1267
+ console.log( res );
1268
+
1269
+ // Remove any previous alerts.
1270
+ $settings.find( '.wpforms-alert, .wpforms-ssl-error' ).remove();
1271
+
1272
+ if ( res.success ){
1273
+ $btn.before( '<div class="wpforms-alert wpforms-alert-success">' + res.data.msg + '</div>' );
1274
+ } else {
1275
+ $btn.before( '<div class="wpforms-alert wpforms-alert-danger">' + res.data.msg + '</div>' );
1276
+ $btn.before( '<div class="wpforms-ssl-error pre-error">' + res.data.debug + '</div>' );
1277
+ }
1278
+
1279
+ $btn.css( 'width', btnWidth ).prop( 'disabled', false ).text( btnLabel );
1280
+ });
1281
+ },
1282
+
1283
+ /**
1284
+ * Begins the process of analyzing the forms.
1285
+ *
1286
+ * This runs for non-Pro installs to check if any of the forms to be
1287
+ * imported contain fields
1288
+ * not currently available.
1289
+ *
1290
+ * @since 1.4.2
1291
+ */
1292
+ analyzeForms: function( forms ) {
1293
+
1294
+ var $processAnalyze = $( '#wpforms-importer-analyze' );
1295
+
1296
+ // Display total number of forms we have to import.
1297
+ $processAnalyze.find( '.form-total' ).text( forms.length );
1298
+ $processAnalyze.find( '.form-current' ).text( '1' );
1299
+
1300
+ // Hide the form select section.
1301
+ $( '#wpforms-importer-forms' ).hide();
1302
+
1303
+ // Show Analyze status.
1304
+ $processAnalyze.show();
1305
+
1306
+ // Create global analyze queue.
1307
+ s.analyzeQueue = forms;
1308
+ s.analyzed = 0;
1309
+ s.analyzeUpgrade = [];
1310
+ s.formIDs = forms;
1311
+
1312
+ // Analyze the first form in the queue.
1313
+ WPFormsAdmin.analyzeForm();
1314
+ },
1315
+
1316
+ /**
1317
+ * Analyze a single form from the queue.
1318
+ *
1319
+ * @since 1.4.2
1320
+ */
1321
+ analyzeForm: function() {
1322
+
1323
+ var $analyzeSettings = $( '#wpforms-importer-analyze' ),
1324
+ formID = _.first( s.analyzeQueue ),
1325
+ provider = WPFormsAdmin.getQueryString( 'provider' ),
1326
+ data = {
1327
+ action: 'wpforms_import_form_' + provider,
1328
+ analyze: 1,
1329
+ form_id: formID,
1330
+ nonce: wpforms_admin.nonce
1331
+ };
1332
+
1333
+ // Trigger AJAX analyze for this form.
1334
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1335
+
1336
+ if ( res.success ){
1337
+
1338
+ if ( ! _.isEmpty( res.data.upgrade_plain ) || ! _.isEmpty( res.data.upgrade_omit ) ) {
1339
+ s.analyzeUpgrade.push({
1340
+ name: res.data.name,
1341
+ fields: _.union( res.data.upgrade_omit, res.data.upgrade_plain )
1342
+ });
1343
+ }
1344
+
1345
+ // Remove this form ID from the queue.
1346
+ s.analyzeQueue = _.without( s.analyzeQueue, formID );
1347
+ s.analyzed++;
1348
+
1349
+ if ( _.isEmpty( s.analyzeQueue ) ) {
1350
+
1351
+ if ( _.isEmpty( s.analyzeUpgrade ) ) {
1352
+ // Continue to import forms as no Pro fields were
1353
+ // found.
1354
+ WPFormsAdmin.importForms( s.formIDs );
1355
+ } else {
1356
+ // We found Pro fields, so alert the user.
1357
+ var upgradeDetails = wp.template( 'wpforms-importer-upgrade' );
1358
+ $analyzeSettings.find( '.upgrade' ).append( upgradeDetails( s.analyzeUpgrade ) );
1359
+ $analyzeSettings.find( '.upgrade' ).show();
1360
+ $analyzeSettings.find( '.process-analyze' ).hide();
1361
+ }
1362
+
1363
+ } else {
1364
+ // Analyze next form in the queue.
1365
+ $analyzeSettings.find( '.form-current' ).text( s.analyzed+1 );
1366
+ WPFormsAdmin.analyzeForm();
1367
+ }
1368
+ }
1369
+ });
1370
+ },
1371
+
1372
+ /**
1373
+ * Begins the process of importing the forms.
1374
+ *
1375
+ * @since 1.4.2
1376
+ */
1377
+ importForms: function( forms ) {
1378
+
1379
+ var $processSettings = $( '#wpforms-importer-process' );
1380
+
1381
+ // Display total number of forms we have to import.
1382
+ $processSettings.find( '.form-total' ).text( forms.length );
1383
+ $processSettings.find( '.form-current' ).text( '1' );
1384
+
1385
+ // Hide the form select and form analyze sections.
1386
+ $( '#wpforms-importer-forms, #wpforms-importer-analyze' ).hide();
1387
+
1388
+ // Show processing status.
1389
+ $processSettings.show();
1390
+
1391
+ // Create global import queue.
1392
+ s.importQueue = forms;
1393
+ s.imported = 0;
1394
+
1395
+ // Import the first form in the queue.
1396
+ WPFormsAdmin.importForm();
1397
+ },
1398
+
1399
+ /**
1400
+ * Imports a single form from the import queue.
1401
+ *
1402
+ * @since 1.4.2
1403
+ */
1404
+ importForm: function() {
1405
+
1406
+ var $processSettings = $( '#wpforms-importer-process' ),
1407
+ formID = _.first( s.importQueue ),
1408
+ provider = WPFormsAdmin.getQueryString( 'provider' ),
1409
+ data = {
1410
+ action: 'wpforms_import_form_' + provider,
1411
+ form_id: formID,
1412
+ nonce: wpforms_admin.nonce
1413
+ };
1414
+
1415
+ // Trigger AJAX import for this form.
1416
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1417
+
1418
+ if ( res.success ){
1419
+ var statusUpdate;
1420
+
1421
+ if ( res.data.error ) {
1422
+ statusUpdate = wp.template( 'wpforms-importer-status-error' );
1423
+ } else {
1424
+ statusUpdate = wp.template( 'wpforms-importer-status-update' );
1425
+ }
1426
+
1427
+ $processSettings.find( '.status' ).prepend( statusUpdate( res.data ) );
1428
+ $processSettings.find( '.status' ).show();
1429
+
1430
+ // Remove this form ID from the queue.
1431
+ s.importQueue = _.without( s.importQueue, formID );
1432
+ s.imported++;
1433
+
1434
+ if ( _.isEmpty( s.importQueue ) ) {
1435
+ $processSettings.find( '.process-count' ).hide();
1436
+ $processSettings.find( '.forms-completed' ).text( s.imported );
1437
+ $processSettings.find( '.process-completed' ).show();
1438
+ } else {
1439
+ // Import next form in the queue.
1440
+ $processSettings.find( '.form-current' ).text( s.imported+1 );
1441
+ WPFormsAdmin.importForm();
1442
+ }
1443
+ }
1444
+ });
1445
+ },
1446
+
1447
+ //--------------------------------------------------------------------//
1448
+ // Upgrades (Tabs view).
1449
+ //--------------------------------------------------------------------//
1450
+
1451
+ /**
1452
+ * Element bindings for Tools page.
1453
+ *
1454
+ * @since 1.4.3
1455
+ */
1456
+ initUpgrades: function() {
1457
+
1458
+ // Prepare to run the v1.4.3 upgrade routine.
1459
+ $( document ).on( 'click', '#wpforms-upgrade-143 button', function( event ) {
1460
+
1461
+ event.preventDefault();
1462
+
1463
+ var $this = $( this ),
1464
+ buttonWidth = $this.outerWidth(),
1465
+ $status = $( '#wpforms-upgrade-143 .status' ),
1466
+ data = {
1467
+ action: 'wpforms_upgrade_143',
1468
+ nonce: wpforms_admin.nonce,
1469
+ init: true,
1470
+ incomplete: $this.data( 'incomplete' )
1471
+ };
1472
+
1473
+ // Change the button to indicate we are doing initial processing.
1474
+ $this.html( s.iconSpinner ).css( 'width', buttonWidth ).prop( 'disabled', true );
1475
+
1476
+ // Get the total number of entries, then kick off the routine.
1477
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1478
+ if ( res.success ){
1479
+
1480
+ // Set initial values.
1481
+ s.upgraded = Number( res.data.upgraded );
1482
+ s.upgradeTotal = Number( res.data.total );
1483
+ var percent = Math.round( ( Number( s.upgraded ) / Number( s.upgradeTotal ) ) * 100 );
1484
+
1485
+ // Show the status area.
1486
+ $this.remove();
1487
+ $status.find( '.bar' ).css( 'width', percent + '%' );
1488
+ $status.show().find( '.total' ).text( s.upgradeTotal );
1489
+ $status.find( '.current' ).text( s.upgraded );
1490
+ $status.find( '.percent' ).text( percent + '%' );
1491
+
1492
+ // Begin the actual upgrade routine.
1493
+ WPFormsAdmin.upgrade143();
1494
+ }
1495
+ });
1496
+ });
1497
+ },
1498
+
1499
+ /**
1500
+ * The v1.4.3 entry fields upgrade routine.
1501
+ *
1502
+ * @since 1.4.3
1503
+ */
1504
+ upgrade143: function() {
1505
+
1506
+ var $status = $( '#wpforms-upgrade-143 .status' ),
1507
+ data = {
1508
+ action: 'wpforms_upgrade_143',
1509
+ nonce: wpforms_admin.nonce,
1510
+ upgraded: s.upgraded
1511
+ };
1512
+
1513
+ // Get the total number of entries, then kick off the routine.
1514
+ $.post( wpforms_admin.ajax_url, data, function( res ) {
1515
+ if ( res.success ){
1516
+
1517
+ s.upgraded = Number( s.upgraded ) + Number( res.data.count );
1518
+ var percent = Math.round( ( Number( s.upgraded ) / Number( s.upgradeTotal ) ) * 100 );
1519
+
1520
+ // Update progress bar.
1521
+ $status.find( '.bar' ).css( 'width', percent + '%' );
1522
+
1523
+ if ( Number( res.data.count ) < 10 ) {
1524
+ // This batch completed the upgrade routine.
1525
+ $status.find( '.progress-bar' ).addClass( 'complete' );
1526
+ $status.find( '.msg' ).text( wpforms_admin.upgrade_completed );
1527
+ } else {
1528
+
1529
+ $status.find( '.current' ).text( s.upgraded );
1530
+ $status.find( '.percent' ).text( percent + '%' );
1531
+
1532
+ // Batch the next round of entries.
1533
+ WPFormsAdmin.upgrade143();
1534
+ }
1535
+ }
1536
+ });
1537
+ },
1538
+
1539
+ //--------------------------------------------------------------------//
1540
+ // Helper functions.
1541
+ //--------------------------------------------------------------------//
1542
+
1543
+ /**
1544
+ * Return if the target nodeName is a form element.
1545
+ *
1546
+ * @since 1.4.0
1547
+ */
1548
+ isFormTypeNode: function( name ) {
1549
+
1550
+ name = name || false;
1551
+
1552
+ if ( 'TEXTAREA' === name || 'INPUT' === name || 'SELECT' === name ){
1553
+ return true;
1554
+ }
1555
+
1556
+ return false;
1557
+ },
1558
+
1559
+ /**
1560
+ * Get query string in a URL.
1561
+ *
1562
+ * @since 1.3.9
1563
+ */
1564
+ getQueryString: function( name ) {
1565
+
1566
+ var match = new RegExp( '[?&]' + name + '=([^&]*)' ).exec( window.location.search );
1567
+ return match && decodeURIComponent( match[1].replace(/\+/g, ' ') );
1568
+ },
1569
+
1570
+ /**
1571
+ * Debug output helper.
1572
+ *
1573
+ * @since 1.4.4
1574
+ * @param msg
1575
+ */
1576
+ debug: function( msg ) {
1577
+
1578
+ if ( WPFormsAdmin.isDebug() ) {
1579
+ if ( typeof msg === 'object' || msg.constructor === Array ) {
1580
+ console.log( 'WPForms Debug:' );
1581
+ console.log( msg );
1582
+ } else {
1583
+ console.log( 'WPForms Debug: ' + msg );
1584
+ }
1585
+ }
1586
+ },
1587
+
1588
+ /**
1589
+ * Is debug mode.
1590
+ *
1591
+ * @since 1.4.4
1592
+ */
1593
+ isDebug: function() {
1594
+
1595
+ return ( window.location.hash && '#wpformsdebug' === window.location.hash );
1596
+ }
1597
+ };
1598
+
1599
+ WPFormsAdmin.init();
1600
+
1601
+ window.WPFormsAdmin = WPFormsAdmin;
1602
+
1603
+ })( jQuery );
assets/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";var t,n={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){t=this.settings,e(document).ready(n.ready),n.initFormOverview(),n.initEntriesSingle(),n.initEntriesList(),n.initWelcome(),n.initAddons(),n.initSettings(),n.initTools(),n.initUpgrades()},ready:function(){e(".notice").show(),e("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),n.initChoicesJS(),n.initCheckboxMultiselectColumns(),e(".wpforms-color-picker").minicolors(),e(".wpforms-file-upload").each(function(){var t=e(this).find("input[type=file]"),n=e(this).find("label"),o=n.html();t.on("change",function(e){var t="";this.files&&this.files.length>1?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),t.on("focus",function(){t.addClass("has-focus")}).on("blur",function(){t.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px"},e(document).on("click",".wpforms-upgrade-modal",function(){e.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).trigger("wpformsReady")},initChoicesJS:function(){e(".choicesjs-select").each(function(){var t=e(this),n={searchEnabled:!1};t.attr("multiple")&&(n.searchEnabled=!0,n.removeItemButton=!0),t.data("placeholder")&&(n.placeholderValue=t.data("placeholder")),"off"===t.data("sorting")&&(n.shouldSort=!1),t.data("search")&&(n.searchEnabled=!0),new Choices(t[0],n)})},initCheckboxMultiselectColumns:function(){e(document).on("change",".checkbox-multiselect-columns input",function(){var t=e(this),n=t.parent(),o=t.closest(".checkbox-multiselect-columns"),i=n.text(),r="check-item-"+t.val(),a=o.find("#"+r);t.prop("checked")?(t.parent().addClass("checked"),a.length||o.find(".second-column ul").append('<li id="'+r+'">'+i+"</li>")):(t.parent().removeClass("checked"),o.find("#"+r).remove())}),e(document).on("click",".checkbox-multiselect-columns .all",function(t){t.preventDefault(),e(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),e(this).remove()})},initFormOverview:function(){e(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(t){t.preventDefault();var n=e(this).attr("href"),o=e(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;e.confirm({title:!1,content:o,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===n.getQueryString("page")&&"details"===n.getQueryString("view")&&n.entryHotkeys(),e(document).on("click","#wpforms-entries-single .submitdelete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(t){t.preventDefault(),window.open(e(this).attr("href"))}),e(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(t){t.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),e(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),e(this).text(wpforms_admin.entry_empty_fields_show)),e(".wpforms-entry-field.empty").toggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(t){t.preventDefault(),e(this).hide().next("form").slideToggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(t){t.preventDefault(),e(this).closest("form").slideToggle(),e(".wpforms-entry-notes-new .add").show()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){e(document).keydown(function(t){if(74!==t.keyCode||n.isFormTypeNode(t.target.nodeName)){if(75===t.keyCode&&!n.isFormTypeNode(t.target.nodeName)){var o=e("#wpforms-entry-next-link").attr("href");"#"!==o&&(window.location.href=o)}}else{var i=e("#wpforms-entry-prev-link").attr("href");"#"!==i&&(window.location.href=i)}})},initEntriesList:function(){e(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),n.entriesListFieldColumn()}),e(document).on("click","#wpforms-entries-list .form-selector .toggle",function(t){t.preventDefault(),e(this).toggleClass("active").next(".form-list").toggle()}),e(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .starred-num").text()),r=n.data("id");n.hasClass("star")?(o="star",i++,n.attr("title",wpforms_admin.entry_unstar)):(o="unstar",i--,n.attr("title",wpforms_admin.entry_star)),n.toggleClass("star unstar"),e("#wpforms-entries-list .starred-num").text(i);var a={task:o,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,a)}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .unread-num").text()),r=n.data("id");n.hasClass("read")?(o="read",i--,n.attr("title",wpforms_admin.entry_unread)):(o="unread",i++,n.attr("title",wpforms_admin.entry_read)),n.toggleClass("read unread"),e("#wpforms-entries-list .unread-num").text(i);var a={task:o,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,a)}),e(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entriesListFieldColumn:function(){e.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:t.iconSpinner+e("#wpforms-field-column-select").html(),onContentReady:function(){var t=this.$content,n=t.find("select"),o=new Choices(n[0],{maxItemCount:5,placeholderValue:wpforms_admin.fields_select+"...",removeItemButton:!0,shouldSort:!1,callbackOnInit:function(){t.find(".fa").remove(),t.find("form").show()}});e(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),o.passedElement.addEventListener("change",function(){o.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){e(document).on("click","#wpforms-welcome .play-video",function(t){t.preventDefault();e.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){e(document).on("wpformsReady",function(){e("#wpforms-admin-addons").length&&e(".addon-item .details").matchHeight({byrow:!1,property:"min-height"})}),e(document).on("click","#wpforms-admin-addons .addon-item button",function(t){t.preventDefault(),n.addonToggle(e(this))})},addonToggle:function(n){var o,i,r,a,s,c,m=e(n),d=m.closest(".addon-item"),l=m.attr("data-plugin");if(m.prop("disabled",!0).addClass("loading"),m.html(t.iconSpinner),m.hasClass("status-active"))o="wpforms_deactivate_addon",i="status-inactive",r=wpforms_admin.addon_inactive,a=t.iconActivate+wpforms_admin.addon_activate,s=t.iconDeactivate+wpforms_admin.addon_deactivate;else if(m.hasClass("status-inactive"))o="wpforms_activate_addon",i="status-active",r=wpforms_admin.addon_active,a=t.iconDeactivate+wpforms_admin.addon_deactivate,s=t.iconActivate+wpforms_admin.addon_activate;else{if(!m.hasClass("status-download"))return;o="wpforms_install_addon",i="status-inactive",r=wpforms_admin.addon_inactive,a=t.iconActivate+wpforms_admin.addon_activate,s=t.iconInstall+wpforms_admin.addon_install}var f={action:o,nonce:wpforms_admin.nonce,plugin:l};e.post(wpforms_admin.ajax_url,f,function(t){t.success?("wpforms_install_addon"===o?(m.attr("data-plugin",t.data.basename),c=t.data.msg):c=t.data,d.find(".actions").append('<div class="msg success">'+c+"</div>"),d.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(i).text(r),m.removeClass("status-active status-inactive status-download").addClass(i).html(a)):(d.find(".actions").append('<div class="msg error">'+t.data+"</div>"),m.html(s)),m.prop("disabled",!1).removeClass("loading"),setTimeout(function(){e(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})},initSettings:function(){e(document).on("wpformsReady",function(){if(e("#wpforms-settings").length){var t=n.getQueryString("wpforms-integration"),o=n.getQueryString("jump");t?e("body").animate({scrollTop:e("#wpforms-integration-"+t).offset().top},1e3):o&&e("body").animate({scrollTop:e("#"+o).offset().top},1e3)}}),e(document).on("click",".wpforms-setting-row-image button",function(t){t.preventDefault(),n.imageUploadModal(e(this))}),e(document).on("click","#wpforms-setting-license-key-verify",function(t){t.preventDefault(),n.licenseVerify(e(this))}),e(document).on("click","#wpforms-setting-license-key-deactivate",function(t){t.preventDefault(),n.licenseDeactivate(e(this))}),e(document).on("click","#wpforms-setting-license-key-refresh",function(t){t.preventDefault(),n.licenseRefresh(e(this))}),e(document).on("click",".wpforms-settings-provider-connect",function(t){t.preventDefault(),n.integrationConnect(e(this))}),e(document).on("click",".wpforms-settings-provider-accounts-list a",function(t){t.preventDefault(),n.integrationDisconnect(e(this))}),e(document).on("click",".wpforms-settings-provider-header",function(t){t.preventDefault(),e(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),e(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),e(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(t){t.preventDefault();var n=e(this).parent().next(".wpforms-settings-provider-accounts-connect");n.find("input[type=text], input[type=password]").val(""),n.slideToggle()})},imageUploadModal:function(n){if(t.media_frame)t.media_frame.open();else{var o=e(n).closest(".wpforms-setting-field");t.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),t.media_frame.on("select",function(){var e=t.media_frame.state().get("selection").first().toJSON();o.find("input[type=text]").val(e.url),o.find("img").remove(),o.prepend('<img src="'+e.url+'">')}),t.media_frame.open()}},licenseVerify:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),a=o.text(),s={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n,r="fa fa-check-circle",s="green";t.success?(n=t.data.msg,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),i.find(".type strong").text(t.data.type),e(".wpforms-license-notice").remove()):(r="fa fa-exclamation-circle",s="orange",n=t.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:n,icon:r,type:s,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),a=o.text(),s={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n="fa fa-info-circle",r="blue",s=t.data;t.success?(i.find("#wpforms-setting-license-key").val(""),i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(n="fa fa-exclamation-circle",r="orange"),e.alert({title:!1,content:s,icon:n,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(t){var n=e(t).closest(".wpforms-setting-row"),o={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};e.post(wpforms_admin.ajax_url,o,function(t){var o,i="fa fa-check-circle",r="green";t.success?(o=t.data.msg,n.find(".type strong").text(t.data.type)):(i="fa fa-exclamation-circle",r="orange",o=t.data,n.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:o,icon:i,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(t){var n=e(t),o=n.outerWidth(),i=n.text(),r=n.closest(".wpforms-settings-provider"),a={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",o).prop("disabled",!0),e.post(wpforms_admin.ajax_url,a,function(t){if(t.success)r.find(".wpforms-settings-provider-accounts-list ul").append(t.data.html),r.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var o=wpforms_admin.provider_auth_error;t.data.error_msg&&(o+="\n"+t.data.error_msg),e.alert({title:!1,content:o,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),console.log(t)}n.html(i).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(t){var n=e(t),o={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){e.post(wpforms_admin.ajax_url,o,function(e){e.success?n.parent().remove():console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){e(document).on("click","#wpforms-importer-forms-submit",function(t){if(t.preventDefault(),e("#wpforms-importer-forms input:checked").length){var o=[];e("#wpforms-importer-forms input:checked").each(function(t){o[t]=e(this).val()}),wpforms_admin.isPro?n.importForms(o):n.analyzeForms(o)}else e.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),n.importForms(t.formIDs)})},analyzeForms:function(o){var i=e("#wpforms-importer-analyze");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms").hide(),i.show(),t.analyzeQueue=o,t.analyzed=0,t.analyzeUpgrade=[],t.formIDs=o,n.analyzeForm()},analyzeForm:function(){var o=e("#wpforms-importer-analyze"),i=_.first(t.analyzeQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),analyze:1,form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||t.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),t.analyzeQueue=_.without(t.analyzeQueue,i),t.analyzed++,_.isEmpty(t.analyzeQueue))if(_.isEmpty(t.analyzeUpgrade))n.importForms(t.formIDs);else{var r=wp.template("wpforms-importer-upgrade");o.find(".upgrade").append(r(t.analyzeUpgrade)),o.find(".upgrade").show(),o.find(".process-analyze").hide()}else o.find(".form-current").text(t.analyzed+1),n.analyzeForm()})},importForms:function(o){var i=e("#wpforms-importer-process");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),i.show(),t.importQueue=o,t.imported=0,n.importForm()},importForm:function(){var o=e("#wpforms-importer-process"),i=_.first(t.importQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success){var r;r=e.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),o.find(".status").prepend(r(e.data)),o.find(".status").show(),t.importQueue=_.without(t.importQueue,i),t.imported++,_.isEmpty(t.importQueue)?(o.find(".process-count").hide(),o.find(".forms-completed").text(t.imported),o.find(".process-completed").show()):(o.find(".form-current").text(t.imported+1),n.importForm())}})},initUpgrades:function(){e(document).on("click","#wpforms-upgrade-143 button",function(o){o.preventDefault();var i=e(this),r=i.outerWidth(),a=e("#wpforms-upgrade-143 .status"),s={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:i.data("incomplete")};i.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(e){if(e.success){t.upgraded=Number(e.data.upgraded),t.upgradeTotal=Number(e.data.total);var o=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);i.remove(),a.find(".bar").css("width",o+"%"),a.show().find(".total").text(t.upgradeTotal),a.find(".current").text(t.upgraded),a.find(".percent").text(o+"%"),n.upgrade143()}})})},upgrade143:function(){var o=e("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:t.upgraded};e.post(wpforms_admin.ajax_url,i,function(e){if(e.success){t.upgraded=Number(t.upgraded)+Number(e.data.count);var i=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);o.find(".bar").css("width",i+"%"),Number(e.data.count)<10?(o.find(".progress-bar").addClass("complete"),o.find(".msg").text(wpforms_admin.upgrade_completed)):(o.find(".current").text(t.upgraded),o.find(".percent").text(i+"%"),n.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(e){n.isDebug()&&("object"==typeof e||e.constructor===Array?(console.log("WPForms Debug:"),console.log(e)):console.log("WPForms Debug: "+e))},isDebug:function(){return window.location.hash&&"#wpformsdebug"===window.location.hash}};n.init(),window.WPFormsAdmin=n}(jQuery);
1
+ !function(e){"use strict";var t,n={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){t=this.settings,e(document).ready(n.ready),n.initFormOverview(),n.initEntriesSingle(),n.initEntriesList(),n.initWelcome(),n.initAddons(),n.initSettings(),n.initTools(),n.initUpgrades()},ready:function(){e(".notice").show(),e("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),n.initChoicesJS(),n.initCheckboxMultiselectColumns(),e(".wpforms-color-picker").minicolors(),e(".wpforms-file-upload").each(function(){var t=e(this).find("input[type=file]"),n=e(this).find("label"),o=n.html();t.on("change",function(e){var t="";this.files&&this.files.length>1?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),t.on("focus",function(){t.addClass("has-focus")}).on("blur",function(){t.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px",animateFromElement:!1},e(document).on("click",".wpforms-upgrade-modal",function(){e.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).trigger("wpformsReady")},initChoicesJS:function(){e(".choicesjs-select").each(function(){var t=e(this),n={searchEnabled:!1};t.attr("multiple")&&(n.searchEnabled=!0,n.removeItemButton=!0),t.data("placeholder")&&(n.placeholderValue=t.data("placeholder")),"off"===t.data("sorting")&&(n.shouldSort=!1),t.data("search")&&(n.searchEnabled=!0),new Choices(t[0],n)})},initCheckboxMultiselectColumns:function(){e(document).on("change",".checkbox-multiselect-columns input",function(){var t=e(this),n=t.parent(),o=t.closest(".checkbox-multiselect-columns"),i=n.text(),r="check-item-"+t.val(),s=o.find("#"+r);t.prop("checked")?(t.parent().addClass("checked"),s.length||o.find(".second-column ul").append('<li id="'+r+'">'+i+"</li>")):(t.parent().removeClass("checked"),o.find("#"+r).remove())}),e(document).on("click",".checkbox-multiselect-columns .all",function(t){t.preventDefault(),e(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),e(this).remove()})},initFormOverview:function(){e(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(t){t.preventDefault();var n=e(this).attr("href"),o=e(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;e.confirm({title:!1,content:o,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===n.getQueryString("page")&&"details"===n.getQueryString("view")&&n.entryHotkeys(),e(document).on("click","#wpforms-entries-single .submitdelete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(t){t.preventDefault(),window.open(e(this).attr("href"))}),e(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(t){t.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),e(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),e(this).text(wpforms_admin.entry_empty_fields_show)),e(".wpforms-entry-field.empty").toggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(t){t.preventDefault(),e(this).hide().next("form").slideToggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(t){t.preventDefault(),e(this).closest("form").slideToggle(),e(".wpforms-entry-notes-new .add").show()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){e(document).keydown(function(t){if(74!==t.keyCode||n.isFormTypeNode(t.target.nodeName)){if(75===t.keyCode&&!n.isFormTypeNode(t.target.nodeName)){var o=e("#wpforms-entry-next-link").attr("href");"#"!==o&&(window.location.href=o)}}else{var i=e("#wpforms-entry-prev-link").attr("href");"#"!==i&&(window.location.href=i)}})},initEntriesList:function(){e(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),n.entriesListFieldColumn()}),e(document).on("click","#wpforms-entries-list .form-selector .toggle",function(t){t.preventDefault(),e(this).toggleClass("active").next(".form-list").toggle()}),e(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .starred-num").text()),r=n.data("id");n.hasClass("star")?(o="star",i++,n.attr("title",wpforms_admin.entry_unstar)):(o="unstar",i--,n.attr("title",wpforms_admin.entry_star)),n.toggleClass("star unstar"),e("#wpforms-entries-list .starred-num").text(i);var s={task:o,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,s)}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .unread-num").text()),r=n.data("id");n.hasClass("read")?(o="read",i--,n.attr("title",wpforms_admin.entry_unread)):(o="unread",i++,n.attr("title",wpforms_admin.entry_read)),n.toggleClass("read unread"),e("#wpforms-entries-list .unread-num").text(i);var s={task:o,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,s)}),e(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entriesListFieldColumn:function(){e.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:t.iconSpinner+e("#wpforms-field-column-select").html(),onContentReady:function(){var t=this.$content,n=t.find("select"),o=new Choices(n[0],{maxItemCount:5,placeholderValue:wpforms_admin.fields_select+"...",removeItemButton:!0,shouldSort:!1,callbackOnInit:function(){t.find(".fa").remove(),t.find("form").show()}});e(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),o.passedElement.addEventListener("change",function(){o.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){e(document).on("click","#wpforms-welcome .play-video",function(t){t.preventDefault();e.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){e(document).on("wpformsReady",function(){if(e("#wpforms-admin-addons").length){e(".addon-item .details").matchHeight({byrow:!1,property:"height"});var t=new List("wpforms-admin-addons-list",{valueNames:["addon-name"]});e("#wpforms-admin-addons-search").on("keyup",function(){t.search(e(this).val())})}}),e(document).on("wpformsReady",function(){e("#wpforms-admin-addons").length&&e(".addon-item .details").matchHeight({byrow:!1,property:"min-height"})}),e(document).on("click","#wpforms-admin-addons .addon-item button",function(t){t.preventDefault(),n.addonToggle(e(this))})},addonToggle:function(n){var o,i,r,s,a,c,m=e(n),d=m.closest(".addon-item"),l=m.attr("data-plugin");if(m.prop("disabled",!0).addClass("loading"),m.html(t.iconSpinner),m.hasClass("status-active"))o="wpforms_deactivate_addon",i="status-inactive",r=wpforms_admin.addon_inactive,s=t.iconActivate+wpforms_admin.addon_activate,a=t.iconDeactivate+wpforms_admin.addon_deactivate;else if(m.hasClass("status-inactive"))o="wpforms_activate_addon",i="status-active",r=wpforms_admin.addon_active,s=t.iconDeactivate+wpforms_admin.addon_deactivate,a=t.iconActivate+wpforms_admin.addon_activate;else{if(!m.hasClass("status-download"))return;o="wpforms_install_addon",i="status-inactive",r=wpforms_admin.addon_inactive,s=t.iconActivate+wpforms_admin.addon_activate,a=t.iconInstall+wpforms_admin.addon_install}var f={action:o,nonce:wpforms_admin.nonce,plugin:l};e.post(wpforms_admin.ajax_url,f,function(t){t.success?("wpforms_install_addon"===o?(m.attr("data-plugin",t.data.basename),c=t.data.msg):c=t.data,d.find(".actions").append('<div class="msg success">'+c+"</div>"),d.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(i).text(r),m.removeClass("status-active status-inactive status-download").addClass(i).html(s)):(d.find(".actions").append('<div class="msg error">'+t.data+"</div>"),m.html(a)),m.prop("disabled",!1).removeClass("loading"),setTimeout(function(){e(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})},initSettings:function(){e(document).on("wpformsReady",function(){if(e("#wpforms-settings").length){var t=n.getQueryString("wpforms-integration"),o=n.getQueryString("jump");t?e("body").animate({scrollTop:e("#wpforms-integration-"+t).offset().top},1e3):o&&e("body").animate({scrollTop:e("#"+o).offset().top},1e3)}}),e(document).on("click",".wpforms-setting-row-image button",function(t){t.preventDefault(),n.imageUploadModal(e(this))}),e(document).on("click","#wpforms-setting-license-key-verify",function(t){t.preventDefault(),n.licenseVerify(e(this))}),e(document).on("click","#wpforms-setting-license-key-deactivate",function(t){t.preventDefault(),n.licenseDeactivate(e(this))}),e(document).on("click","#wpforms-setting-license-key-refresh",function(t){t.preventDefault(),n.licenseRefresh(e(this))}),e(document).on("click",".wpforms-settings-provider-connect",function(t){t.preventDefault(),n.integrationConnect(e(this))}),e(document).on("click",".wpforms-settings-provider-accounts-list a",function(t){t.preventDefault(),n.integrationDisconnect(e(this))}),e(document).on("click",".wpforms-settings-provider-header",function(t){t.preventDefault(),e(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),e(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),e(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(t){t.preventDefault();var n=e(this).parent().next(".wpforms-settings-provider-accounts-connect");n.find("input[type=text], input[type=password]").val(""),n.slideToggle()})},imageUploadModal:function(n){if(t.media_frame)t.media_frame.open();else{var o=e(n).closest(".wpforms-setting-field");t.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),t.media_frame.on("select",function(){var e=t.media_frame.state().get("selection").first().toJSON();o.find("input[type=text]").val(e.url),o.find("img").remove(),o.prepend('<img src="'+e.url+'">')}),t.media_frame.open()}},licenseVerify:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),s=o.text(),a={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,a,function(t){var n,r="fa fa-check-circle",a="green";t.success?(n=t.data.msg,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),i.find(".type strong").text(t.data.type),e(".wpforms-license-notice").remove()):(r="fa fa-exclamation-circle",a="orange",n=t.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:n,icon:r,type:a,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(s).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),s=o.text(),a={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,a,function(t){var n="fa fa-info-circle",r="blue",a=t.data;t.success?(i.find("#wpforms-setting-license-key").val(""),i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(n="fa fa-exclamation-circle",r="orange"),e.alert({title:!1,content:a,icon:n,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(s).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(t){var n=e(t).closest(".wpforms-setting-row"),o={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};e.post(wpforms_admin.ajax_url,o,function(t){var o,i="fa fa-check-circle",r="green";t.success?(o=t.data.msg,n.find(".type strong").text(t.data.type)):(i="fa fa-exclamation-circle",r="orange",o=t.data,n.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:o,icon:i,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(t){var n=e(t),o=n.outerWidth(),i=n.text(),r=n.closest(".wpforms-settings-provider"),s={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",o).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){if(t.success)r.find(".wpforms-settings-provider-accounts-list ul").append(t.data.html),r.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var o=wpforms_admin.provider_auth_error;t.data.error_msg&&(o+="\n"+t.data.error_msg),e.alert({title:!1,content:o,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),console.log(t)}n.html(i).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(t){var n=e(t),o={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){e.post(wpforms_admin.ajax_url,o,function(e){e.success?n.parent().parent().remove():console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){e(document).on("click","#wpforms-ssl-verify",function(e){e.preventDefault(),n.verifySSLConnection()}),e(document).on("click","#wpforms-importer-forms-submit",function(t){if(t.preventDefault(),e("#wpforms-importer-forms input:checked").length){var o=[];e("#wpforms-importer-forms input:checked").each(function(t){o[t]=e(this).val()}),wpforms_admin.isPro?n.importForms(o):n.analyzeForms(o)}else e.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),n.importForms(t.formIDs)})},verifySSLConnection:function(){var t=e("#wpforms-ssl-verify"),n=t.text(),o=t.outerWidth(),i=t.parent(),r={action:"wpforms_verify_ssl",nonce:wpforms_admin.nonce};t.css("width",o).prop("disabled",!0).text(wpforms_admin.testing),e.post(wpforms_admin.ajax_url,r,function(e){console.log(e),i.find(".wpforms-alert, .wpforms-ssl-error").remove(),e.success?t.before('<div class="wpforms-alert wpforms-alert-success">'+e.data.msg+"</div>"):(t.before('<div class="wpforms-alert wpforms-alert-danger">'+e.data.msg+"</div>"),t.before('<div class="wpforms-ssl-error pre-error">'+e.data.debug+"</div>")),t.css("width",o).prop("disabled",!1).text(n)})},analyzeForms:function(o){var i=e("#wpforms-importer-analyze");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms").hide(),i.show(),t.analyzeQueue=o,t.analyzed=0,t.analyzeUpgrade=[],t.formIDs=o,n.analyzeForm()},analyzeForm:function(){var o=e("#wpforms-importer-analyze"),i=_.first(t.analyzeQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),analyze:1,form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||t.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),t.analyzeQueue=_.without(t.analyzeQueue,i),t.analyzed++,_.isEmpty(t.analyzeQueue))if(_.isEmpty(t.analyzeUpgrade))n.importForms(t.formIDs);else{var r=wp.template("wpforms-importer-upgrade");o.find(".upgrade").append(r(t.analyzeUpgrade)),o.find(".upgrade").show(),o.find(".process-analyze").hide()}else o.find(".form-current").text(t.analyzed+1),n.analyzeForm()})},importForms:function(o){var i=e("#wpforms-importer-process");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),i.show(),t.importQueue=o,t.imported=0,n.importForm()},importForm:function(){var o=e("#wpforms-importer-process"),i=_.first(t.importQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success){var r;r=e.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),o.find(".status").prepend(r(e.data)),o.find(".status").show(),t.importQueue=_.without(t.importQueue,i),t.imported++,_.isEmpty(t.importQueue)?(o.find(".process-count").hide(),o.find(".forms-completed").text(t.imported),o.find(".process-completed").show()):(o.find(".form-current").text(t.imported+1),n.importForm())}})},initUpgrades:function(){e(document).on("click","#wpforms-upgrade-143 button",function(o){o.preventDefault();var i=e(this),r=i.outerWidth(),s=e("#wpforms-upgrade-143 .status"),a={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:i.data("incomplete")};i.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,a,function(e){if(e.success){t.upgraded=Number(e.data.upgraded),t.upgradeTotal=Number(e.data.total);var o=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);i.remove(),s.find(".bar").css("width",o+"%"),s.show().find(".total").text(t.upgradeTotal),s.find(".current").text(t.upgraded),s.find(".percent").text(o+"%"),n.upgrade143()}})})},upgrade143:function(){var o=e("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:t.upgraded};e.post(wpforms_admin.ajax_url,i,function(e){if(e.success){t.upgraded=Number(t.upgraded)+Number(e.data.count);var i=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);o.find(".bar").css("width",i+"%"),Number(e.data.count)<10?(o.find(".progress-bar").addClass("complete"),o.find(".msg").text(wpforms_admin.upgrade_completed)):(o.find(".current").text(t.upgraded),o.find(".percent").text(i+"%"),n.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(e){n.isDebug()&&("object"==typeof e||e.constructor===Array?(console.log("WPForms Debug:"),console.log(e)):console.log("WPForms Debug: "+e))},isDebug:function(){return window.location.hash&&"#wpformsdebug"===window.location.hash}};n.init(),window.WPFormsAdmin=n}(jQuery);
assets/js/jquery.inputmask.bundle.min.js CHANGED
@@ -1,10 +1,9 @@
1
  /*!
2
  * jquery.inputmask.bundle.js
3
- * https://github.com/RobinHerbots/jquery.inputmask
4
- * Copyright (c) 2010 - 2016 Robin Herbots
5
  * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
6
- * Version: 3.2.8-32
7
  */
8
- !function(a){function b(c,d){return this instanceof b?(a.isPlainObject(c)?d=c:(d=d||{},d.alias=c),this.el=void 0,this.opts=a.extend(!0,{},this.defaults,d),this.noMasksCache=d&&void 0!==d.definitions,this.userOptions=d||{},this.events={},void e(this.opts.alias,d,this.opts)):new b(c,d)}function c(a){var b=document.createElement("input"),c="on"+a,d=c in b;return d||(b.setAttribute(c,"return;"),d="function"==typeof b[c]),b=null,d}function d(b,c){var d=b.getAttribute("type"),e="INPUT"===b.tagName&&-1!==a.inArray(d,c.supportsInputType)||b.isContentEditable||"TEXTAREA"===b.tagName;if(!e&&"INPUT"===b.tagName){var f=document.createElement("input");f.setAttribute("type",d),e="text"===f.type,f=null}return e}function e(b,c,d){var f=d.aliases[b];return f?(f.alias&&e(f.alias,void 0,d),a.extend(!0,d,f),a.extend(!0,d,c),!0):(null===d.mask&&(d.mask=b),!1)}function f(b,c,d){function f(a,c){c=void 0!==c?c:b.getAttribute("data-inputmask-"+a),null!==c&&("string"==typeof c&&(0===a.indexOf("on")?c=window[c]:"false"===c?c=!1:"true"===c&&(c=!0)),d[a]=c)}var g,h,i,j,k=b.getAttribute("data-inputmask");if(k&&""!==k&&(k=k.replace(new RegExp("'","g"),'"'),h=JSON.parse("{"+k+"}")),h){i=void 0;for(j in h)if("alias"===j.toLowerCase()){i=h[j];break}}f("alias",i),d.alias&&e(d.alias,d,c);for(g in c){if(h){i=void 0;for(j in h)if(j.toLowerCase()===g.toLowerCase()){i=h[j];break}}f(g,i)}return a.extend(!0,c,d),c}function g(c,d){function e(b){function d(a,b,c,d){this.matches=[],this.isGroup=a||!1,this.isOptional=b||!1,this.isQuantifier=c||!1,this.isAlternator=d||!1,this.quantifier={min:1,max:1}}function e(b,d,e){var f=c.definitions[d];e=void 0!==e?e:b.matches.length;var g=b.matches[e-1];if(f&&!r){f.placeholder=a.isFunction(f.placeholder)?f.placeholder(c):f.placeholder;for(var h=f.prevalidator,i=h?h.length:0,j=1;j<f.cardinality;j++){var k=i>=j?h[j-1]:[],l=k.validator,m=k.cardinality;b.matches.splice(e++,0,{fn:l?"string"==typeof l?new RegExp(l):new function(){this.test=l}:new RegExp("."),cardinality:m?m:1,optionality:b.isOptional,newBlockMarker:void 0===g||g.def!==(f.definitionSymbol||d),casing:f.casing,def:f.definitionSymbol||d,placeholder:f.placeholder,mask:d}),g=b.matches[e-1]}b.matches.splice(e++,0,{fn:f.validator?"string"==typeof f.validator?new RegExp(f.validator):new function(){this.test=f.validator}:new RegExp("."),cardinality:f.cardinality,optionality:b.isOptional,newBlockMarker:void 0===g||g.def!==(f.definitionSymbol||d),casing:f.casing,def:f.definitionSymbol||d,placeholder:f.placeholder,mask:d})}else b.matches.splice(e++,0,{fn:null,cardinality:0,optionality:b.isOptional,newBlockMarker:void 0===g||g.def!==d,casing:null,def:c.staticDefinitionSymbol||d,placeholder:void 0!==c.staticDefinitionSymbol?d:void 0,mask:d}),r=!1}function f(a,b){a.isGroup&&(a.isGroup=!1,e(a,c.groupmarker.start,0),b!==!0&&e(a,c.groupmarker.end))}function g(a,b,c,d){b.matches.length>0&&(void 0===d||d)&&(c=b.matches[b.matches.length-1],f(c)),e(b,a)}function h(){if(t.length>0){if(m=t[t.length-1],g(k,m,o,!m.isAlternator),m.isAlternator){n=t.pop();for(var a=0;a<n.matches.length;a++)n.matches[a].isGroup=!1;t.length>0?(m=t[t.length-1],m.matches.push(n)):s.matches.push(n)}}else g(k,s,o)}function i(a){function b(a){return a===c.optionalmarker.start?a=c.optionalmarker.end:a===c.optionalmarker.end?a=c.optionalmarker.start:a===c.groupmarker.start?a=c.groupmarker.end:a===c.groupmarker.end&&(a=c.groupmarker.start),a}a.matches=a.matches.reverse();for(var d in a.matches){var e=parseInt(d);if(a.matches[d].isQuantifier&&a.matches[e+1]&&a.matches[e+1].isGroup){var f=a.matches[d];a.matches.splice(d,1),a.matches.splice(e+1,0,f)}void 0!==a.matches[d].matches?a.matches[d]=i(a.matches[d]):a.matches[d]=b(a.matches[d])}return a}for(var j,k,l,m,n,o,p,q=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,r=!1,s=new d,t=[],u=[];j=q.exec(b);)if(k=j[0],r)h();else switch(k.charAt(0)){case c.escapeChar:r=!0;break;case c.optionalmarker.end:case c.groupmarker.end:if(l=t.pop(),void 0!==l)if(t.length>0){if(m=t[t.length-1],m.matches.push(l),m.isAlternator){n=t.pop();for(var v=0;v<n.matches.length;v++)n.matches[v].isGroup=!1;t.length>0?(m=t[t.length-1],m.matches.push(n)):s.matches.push(n)}}else s.matches.push(l);else h();break;case c.optionalmarker.start:t.push(new d(!1,!0));break;case c.groupmarker.start:t.push(new d(!0));break;case c.quantifiermarker.start:var w=new d(!1,!1,!0);k=k.replace(/[{}]/g,"");var x=k.split(","),y=isNaN(x[0])?x[0]:parseInt(x[0]),z=1===x.length?y:isNaN(x[1])?x[1]:parseInt(x[1]);if(("*"===z||"+"===z)&&(y="*"===z?0:1),w.quantifier={min:y,max:z},t.length>0){var A=t[t.length-1].matches;j=A.pop(),j.isGroup||(p=new d(!0),p.matches.push(j),j=p),A.push(j),A.push(w)}else j=s.matches.pop(),j.isGroup||(p=new d(!0),p.matches.push(j),j=p),s.matches.push(j),s.matches.push(w);break;case c.alternatormarker:t.length>0?(m=t[t.length-1],o=m.matches.pop()):o=s.matches.pop(),o.isAlternator?t.push(o):(n=new d(!1,!1,!1,!0),n.matches.push(o),t.push(n));break;default:h()}for(;t.length>0;)l=t.pop(),f(l,!0),s.matches.push(l);return s.matches.length>0&&(o=s.matches[s.matches.length-1],f(o),u.push(s)),c.numericInput&&i(u[0]),u}function f(f,g){if(null===f||""===f)return void 0;if(1===f.length&&c.greedy===!1&&0!==c.repeat&&(c.placeholder=""),c.repeat>0||"*"===c.repeat||"+"===c.repeat){var h="*"===c.repeat?0:"+"===c.repeat?1:c.repeat;f=c.groupmarker.start+f+c.groupmarker.end+c.quantifiermarker.start+h+","+c.repeat+c.quantifiermarker.end}var i;return void 0===b.prototype.masksCache[f]||d===!0?(i={mask:f,maskToken:e(f),validPositions:{},_buffer:void 0,buffer:void 0,tests:{},metadata:g},d!==!0&&(b.prototype.masksCache[c.numericInput?f.split("").reverse().join(""):f]=i,i=a.extend(!0,{},b.prototype.masksCache[c.numericInput?f.split("").reverse().join(""):f]))):i=a.extend(!0,{},b.prototype.masksCache[c.numericInput?f.split("").reverse().join(""):f]),i}function g(a){return a=a.toString()}var h;if(a.isFunction(c.mask)&&(c.mask=c.mask(c)),a.isArray(c.mask)){if(c.mask.length>1){c.keepStatic=null===c.keepStatic?!0:c.keepStatic;var i="(";return a.each(c.numericInput?c.mask.reverse():c.mask,function(b,c){i.length>1&&(i+=")|("),i+=g(void 0===c.mask||a.isFunction(c.mask)?c:c.mask)}),i+=")",f(i,c.mask)}c.mask=c.mask.pop()}return c.mask&&(h=void 0===c.mask.mask||a.isFunction(c.mask.mask)?f(g(c.mask),c.mask):f(g(c.mask.mask),c.mask)),h}function h(e,f,g){function i(a,b,c){b=b||0;var d,e,f,h=[],i=0,j=o();do{if(a===!0&&m().validPositions[i]){var k=m().validPositions[i];e=k.match,d=k.locator.slice(),h.push(c===!0?k.input:I(i,e))}else f=r(i,d,i-1),e=f.match,d=f.locator.slice(),(g.jitMasking===!1||j>i||isFinite(g.jitMasking)&&g.jitMasking>i)&&h.push(I(i,e));i++}while((void 0===ha||ha>i-1)&&null!==e.fn||null===e.fn&&""!==e.def||b>=i);return""===h[h.length-1]&&h.pop(),h}function m(){return f}function n(a){var b=m();b.buffer=void 0,a!==!0&&(b.tests={},b._buffer=void 0,b.validPositions={},b.p=0)}function o(a,b){var c=-1,d=-1,e=m().validPositions;void 0===a&&(a=-1);for(var f in e){var g=parseInt(f);e[g]&&(b||null!==e[g].match.fn)&&(a>=g&&(c=g),g>=a&&(d=g))}return-1!==c&&a-c>1||a>d?c:d}function p(b,c,d,e){if(e||g.insertMode&&void 0!==m().validPositions[b]&&void 0===d){var f,h=a.extend(!0,{},m().validPositions),i=o();for(f=b;i>=f;f++)delete m().validPositions[f];m().validPositions[b]=c;var j,k=!0,l=m().validPositions;for(f=j=b;i>=f;f++){var p=h[f];if(void 0!==p)for(var q=j,r=-1;q<D()&&(null==p.match.fn&&l[f]&&(l[f].match.optionalQuantifier===!0||l[f].match.optionality===!0)||null!=p.match.fn);)if(null===p.match.fn||!g.keepStatic&&l[f]&&(void 0!==l[f+1]&&v(f+1,l[f].locator.slice(),f).length>1||void 0!==l[f].alternation)?q++:q=E(j),t(q,p.match.def)){var s=B(q,p.input,!0,!0);if(k=s!==!1,j=s.caret||s.insert?o():q,k)break}else{if(k=null==p.match.fn,r===q)break;r=q}if(!k)break}if(!k)return m().validPositions=a.extend(!0,{},h),n(!0),!1}else m().validPositions[b]=c;return n(!0),!0}function q(a,b,c,d){function e(a){var b=m().validPositions[a];if(void 0!==b&&null===b.match.fn){var c=m().validPositions[a-1],d=m().validPositions[a+1];return void 0!==c&&void 0!==d}return!1}var f,h=a;for(m().p=a,f=b-1;f>=h;f--)void 0!==m().validPositions[f]&&(c===!0||!e(f)&&g.canClearPosition(m(),f,o(),d,g)!==!1)&&delete m().validPositions[f];for(n(!0),f=h+1;f<=o();){for(;void 0!==m().validPositions[h];)h++;var i=m().validPositions[h];if(h>f&&(f=h+1),void 0===m().validPositions[f]&&C(f)||void 0!==i)f++;else{var j=r(f);t(h,j.match.def)?B(h,j.input||I(f),!0)!==!1&&(delete m().validPositions[f],f++):C(f)||(f++,h--),h++}}n(!0)}function r(a,b,c){var d=m().validPositions[a];if(void 0===d)for(var e=v(a,b,c),f=o(),h=m().validPositions[f]||v(0)[0],i=void 0!==h.alternation?h.locator[h.alternation].toString().split(","):[],j=0;j<e.length&&(d=e[j],!(d.match&&(g.greedy&&d.match.optionalQuantifier!==!0||(d.match.optionality===!1||d.match.newBlockMarker===!1)&&d.match.optionalQuantifier!==!0)&&(void 0===h.alternation||h.alternation!==d.alternation||void 0!==d.locator[h.alternation]&&A(d.locator[h.alternation].toString().split(","),i))));j++);return d}function s(a){return m().validPositions[a]?m().validPositions[a].match:v(a)[0].match}function t(a,b){for(var c=!1,d=v(a),e=0;e<d.length;e++)if(d[e].match&&d[e].match.def===b){c=!0;break}return c}function u(b,c){var d,e;return(m().tests[b]||m().validPositions[b])&&a.each(m().tests[b]||[m().validPositions[b]],function(a,b){var f=b.alternation?b.locator[b.alternation].toString().indexOf(c):-1;(void 0===e||e>f)&&-1!==f&&(d=b,e=f)}),d}function v(b,c,d){function e(c,d,f,h){function j(f,h,o){function p(b,c){var d=0===a.inArray(b,c.matches);return d||a.each(c.matches,function(a,e){return e.isQuantifier===!0&&(d=p(b,c.matches[a-1]))?!1:void 0}),d}function q(a,b){var c=u(a,b);return c?c.locator.slice(c.alternation+1):[]}if(i>1e4)throw"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. "+m().mask;if(i===b&&void 0===f.matches)return k.push({match:f,locator:h.reverse(),cd:n}),!0;if(void 0!==f.matches){if(f.isGroup&&o!==f){if(f=j(c.matches[a.inArray(f,c.matches)+1],h))return!0}else if(f.isOptional){var r=f;if(f=e(f,d,h,o)){if(g=k[k.length-1].match,!p(g,r))return!0;l=!0,i=b}}else if(f.isAlternator){var s,t=f,v=[],w=k.slice(),x=h.length,y=d.length>0?d.shift():-1;if(-1===y||"string"==typeof y){var z,A=i,B=d.slice(),C=[];if("string"==typeof y)C=y.split(",");else for(z=0;z<t.matches.length;z++)C.push(z);for(var D=0;D<C.length;D++){if(z=parseInt(C[D]),k=[],d=q(i,z),f=j(t.matches[z]||c.matches[z],[z].concat(h),o)||f,f!==!0&&void 0!==f&&C[C.length-1]<t.matches.length){var E=a.inArray(f,c.matches)+1;c.matches.length>E&&(f=j(c.matches[E],[E].concat(h.slice(1,h.length)),o),f&&(C.push(E.toString()),a.each(k,function(a,b){b.alternation=h.length-1})))}s=k.slice(),i=A,k=[];for(var F=0;F<B.length;F++)d[F]=B[F];for(var G=0;G<s.length;G++){var H=s[G];H.alternation=H.alternation||x;for(var I=0;I<v.length;I++){var J=v[I];if(H.match.def===J.match.def&&("string"!=typeof y||-1!==a.inArray(H.locator[H.alternation].toString(),C))){H.match.mask===J.match.mask&&(s.splice(G,1),G--),-1===J.locator[H.alternation].toString().indexOf(H.locator[H.alternation])&&(J.locator[H.alternation]=J.locator[H.alternation]+","+H.locator[H.alternation],J.alternation=H.alternation);break}}}v=v.concat(s)}"string"==typeof y&&(v=a.map(v,function(b,c){if(isFinite(c)){var d,e=b.alternation,f=b.locator[e].toString().split(",");b.locator[e]=void 0,b.alternation=void 0;for(var g=0;g<f.length;g++)d=-1!==a.inArray(f[g],C),d&&(void 0!==b.locator[e]?(b.locator[e]+=",",b.locator[e]+=f[g]):b.locator[e]=parseInt(f[g]),b.alternation=e);if(void 0!==b.locator[e])return b}})),k=w.concat(v),i=b,l=k.length>0}else f=j(t.matches[y]||c.matches[y],[y].concat(h),o);if(f)return!0}else if(f.isQuantifier&&o!==c.matches[a.inArray(f,c.matches)-1])for(var K=f,L=d.length>0?d.shift():0;L<(isNaN(K.quantifier.max)?L+1:K.quantifier.max)&&b>=i;L++){var M=c.matches[a.inArray(K,c.matches)-1];if(f=j(M,[L].concat(h),M)){if(g=k[k.length-1].match,g.optionalQuantifier=L>K.quantifier.min-1,p(g,M)){if(L>K.quantifier.min-1){l=!0,i=b;break}return!0}return!0}}else if(f=e(f,d,h,o))return!0}else i++}for(var o=d.length>0?d.shift():0;o<c.matches.length;o++)if(c.matches[o].isQuantifier!==!0){var p=j(c.matches[o],[o].concat(f),h);if(p&&i===b)return p;if(i>b)break}}function f(a){var b=a[0]||a;return b.locator.slice()}var g,h=m().maskToken,i=c?d:0,j=c||[0],k=[],l=!1,n=c?c.join(""):"";if(b>-1){if(void 0===c){for(var o,p=b-1;void 0===(o=m().validPositions[p]||m().tests[p])&&p>-1;)p--;void 0!==o&&p>-1&&(j=f(o),n=j.join(""),o=o[0]||o,i=p)}if(m().tests[b]&&m().tests[b][0].cd===n)return m().tests[b];for(var q=j.shift();q<h.length;q++){var r=e(h[q],j,[q]);if(r&&i===b||i>b)break}}return(0===k.length||l)&&k.push({match:{fn:null,cardinality:0,optionality:!0,casing:null,def:""},locator:[]}),m().tests[b]=a.extend(!0,[],k),m().tests[b]}function w(){return void 0===m()._buffer&&(m()._buffer=i(!1,1)),m()._buffer}function x(a){if(void 0===m().buffer||a===!0){if(a===!0)for(var b in m().tests)void 0===m().validPositions[b]&&delete m().tests[b];m().buffer=i(!0,o(),!0)}return m().buffer}function y(a,b,c){var d;if(c=c,a===!0)n(),a=0,b=c.length;else for(d=a;b>d;d++)delete m().validPositions[d],delete m().tests[d];for(d=a;b>d;d++)n(!0),c[d]!==g.skipOptionalPartCharacter&&B(d,c[d],!0,!0)}function z(a,b){switch(b.casing){case"upper":a=a.toUpperCase();break;case"lower":a=a.toLowerCase()}return a}function A(b,c){for(var d=g.greedy?c:c.slice(0,1),e=!1,f=0;f<b.length;f++)if(-1!==a.inArray(b[f],d)){e=!0;break}return e}function B(c,d,e,f){function h(a){return ja?a.begin-a.end>1||a.begin-a.end===1&&g.insertMode:a.end-a.begin>1||a.end-a.begin===1&&g.insertMode}function i(b,d,e,f){var i=!1;return a.each(v(b),function(j,k){for(var l=k.match,r=d?1:0,s="",t=l.cardinality;t>r;t--)s+=G(b-(t-1));if(d&&(s+=d),x(!0),i=null!=l.fn?l.fn.test(s,m(),b,e,g,h(c)):d!==l.def&&d!==g.skipOptionalPartCharacter||""===l.def?!1:{c:l.placeholder||l.def,pos:b},i!==!1){var u=void 0!==i.c?i.c:d;u=u===g.skipOptionalPartCharacter&&null===l.fn?l.placeholder||l.def:u;var v=b,w=x();if(void 0!==i.remove&&(a.isArray(i.remove)||(i.remove=[i.remove]),a.each(i.remove.sort(function(a,b){return b-a}),function(a,b){q(b,b+1,!0)})),void 0!==i.insert&&(a.isArray(i.insert)||(i.insert=[i.insert]),a.each(i.insert.sort(function(a,b){return a-b}),function(a,b){B(b.pos,b.c,!1,f)})),i.refreshFromBuffer){var A=i.refreshFromBuffer;if(e=!0,y(A===!0?A:A.start,A.end,w),void 0===i.pos&&void 0===i.c)return i.pos=o(),!1;if(v=void 0!==i.pos?i.pos:b,v!==b)return i=a.extend(i,B(v,u,!0,f)),!1}else if(i!==!0&&void 0!==i.pos&&i.pos!==b&&(v=i.pos,y(b,v,x().slice()),v!==b))return i=a.extend(i,B(v,u,!0)),!1;return i!==!0&&void 0===i.pos&&void 0===i.c?!1:(j>0&&n(!0),p(v,a.extend({},k,{input:z(u,l)}),f,h(c))||(i=!1),!1)}}),i}function j(b,c,d,e){for(var f,h,i,j,k,l,p=a.extend(!0,{},m().validPositions),q=a.extend(!0,{},m().tests),s=o();s>=0&&(j=m().validPositions[s],!j||void 0===j.alternation||(f=s,h=m().validPositions[f].alternation,r(f).locator[j.alternation]===j.locator[j.alternation]));s--);if(void 0!==h){f=parseInt(f);for(var t in m().validPositions)if(t=parseInt(t),j=m().validPositions[t],t>=f&&void 0!==j.alternation){var v;0===f?(v=[],a.each(m().tests[f],function(a,b){void 0!==b.locator[h]&&(v=v.concat(b.locator[h].toString().split(",")))})):v=m().validPositions[f].locator[h].toString().split(",");var w=void 0!==j.locator[h]?j.locator[h]:v[0];w.length>0&&(w=w.split(",")[0]);for(var x=0;x<v.length;x++){var y=[],z=0,A=0;if(w<v[x]){for(var C,D,E=t;E>=0;E--)if(C=m().validPositions[E],void 0!==C){var F=u(E,v[x]);m().validPositions[E].match.def!==F.match.def&&(y.push(m().validPositions[E].input),m().validPositions[E]=F,m().validPositions[E].input=I(E),null===m().validPositions[E].match.fn&&A++,C=F),D=C.locator[h],C.locator[h]=parseInt(v[x]);break}if(w!==C.locator[h]){for(k=t+1;k<o(void 0,!0)+1;k++)l=m().validPositions[k],l&&null!=l.match.fn?y.push(l.input):b>k&&z++,delete m().validPositions[k],delete m().tests[k];for(n(!0),g.keepStatic=!g.keepStatic,i=!0;y.length>0;){var G=y.shift();if(G!==g.skipOptionalPartCharacter&&!(i=B(o(void 0,!0)+1,G,!1,e)))break}if(C.alternation=h,C.locator[h]=D,i){var H=o(b)+1;for(k=t+1;k<o()+1;k++)l=m().validPositions[k],(void 0===l||null==l.match.fn)&&b>k&&A++;b+=A-z,i=B(b>H?H:b,c,d,e)}if(g.keepStatic=!g.keepStatic,i)return i;n(),m().validPositions=a.extend(!0,{},p),m().tests=a.extend(!0,{},q)}}}break}}return!1}function k(b,c){for(var d=m().validPositions[c],e=d.locator,f=e.length,g=b;c>g;g++)if(void 0===m().validPositions[g]&&!C(g,!0)){var h=v(g),i=h[0],j=-1;a.each(h,function(a,b){for(var c=0;f>c&&(void 0!==b.locator[c]&&A(b.locator[c].toString().split(","),e[c].toString().split(",")));c++)c>j&&(j=c,i=b)}),p(g,a.extend({},i,{input:i.match.placeholder||i.match.def}),!0)}}e=e===!0;var l=c;void 0!==c.begin&&(l=ja&&!h(c)?c.end:c.begin);for(var s=!1,t=a.extend(!0,{},m().validPositions),w=l-1;w>-1&&!m().validPositions[w];w--);var F;for(w++;l>w;w++)void 0===m().validPositions[w]&&((F=r(w)).match.def===g.radixPointDefinitionSymbol||!C(w,!0)||a.inArray(g.radixPoint,x())<w&&F.match.fn&&F.match.fn.test(I(w),m(),w,!1,g))&&i(o()+1,F.match.placeholder||(null==F.match.fn?F.match.def:""!==I(w)?I(w):x()[w]),!0,f);if(h(c)&&(Q(void 0,b.keyCode.DELETE,c),l=m().p),l<D()&&(s=i(l,d,e,f),(!e||f===!0)&&s===!1)){var H=m().validPositions[l];if(!H||null!==H.match.fn||H.match.def!==d&&d!==g.skipOptionalPartCharacter){if((g.insertMode||void 0===m().validPositions[E(l)])&&!C(l,!0)){var J=r(l).match;J=J.placeholder||J.def,i(l,J,e,f);for(var K=l+1,L=E(l);L>=K;K++)if(s=i(K,d,e,f),s!==!1){k(l,K),l=K;break}}}else s={caret:E(l)}}return s===!1&&g.keepStatic&&(s=j(l,d,e,f)),s===!0&&(s={pos:l}),a.isFunction(g.postValidation)&&s!==!1&&!e&&f!==!0&&(s=g.postValidation(x(!0),s,g)?s:!1),void 0===s.pos&&(s.pos=l),s===!1&&(n(!0),m().validPositions=a.extend(!0,{},t)),s}function C(a,b){var c;if(b?(c=r(a).match,""===c.def&&(c=s(a))):c=s(a),null!=c.fn)return c.fn;if(b!==!0&&a>-1&&!g.keepStatic&&void 0===m().validPositions[a]){var d=v(a);return d.length>2}return!1}function D(){var a;ha=void 0!==fa?fa.maxLength:void 0,-1===ha&&(ha=void 0);var b,c=o(),d=m().validPositions[c],e=void 0!==d?d.locator.slice():void 0;for(b=c+1;void 0===d||null!==d.match.fn||null===d.match.fn&&""!==d.match.def;b++)d=r(b,e,b-1),e=d.locator.slice();var f=s(b-1);return a=""!==f.def?b:b-1,void 0===ha||ha>a?a:ha}function E(a,b){var c=D();if(a>=c)return c;for(var d=a;++d<c&&(b===!0&&(s(d).newBlockMarker!==!0||!C(d))||b!==!0&&!C(d)&&(g.nojumps!==!0||g.nojumpsThreshold>d)););return d}function F(a,b){var c=a;if(0>=c)return 0;for(;--c>0&&(b===!0&&s(c).newBlockMarker!==!0||b!==!0&&!C(c)););return c}function G(a){return void 0===m().validPositions[a]?I(a):m().validPositions[a].input}function H(b,c,d,e,f){if(e&&a.isFunction(g.onBeforeWrite)){var h=g.onBeforeWrite(e,c,d,g);if(h){if(h.refreshFromBuffer){var i=h.refreshFromBuffer;y(i===!0?i:i.start,i.end,h.buffer||c),c=x(!0)}void 0!==d&&(d=void 0!==h.caret?h.caret:d)}}b.inputmask._valueSet(c.join("")),void 0===d||void 0!==e&&"blur"===e.type||L(b,d),f===!0&&(la=!0,a(b).trigger("input"))}function I(a,b){if(b=b||s(a),void 0!==b.placeholder)return b.placeholder;if(null===b.fn){if(a>-1&&!g.keepStatic&&void 0===m().validPositions[a]){var c,d=v(a),e=0;if(d.length>2)for(var f=0;f<d.length;f++)if(d[f].match.optionality!==!0&&d[f].match.optionalQuantifier!==!0&&(null===d[f].match.fn||void 0===c||d[f].match.fn.test(c.match.def,m(),a,!0,g)!==!1)&&(e++,null===d[f].match.fn&&(c=d[f]),e>1))return g.placeholder.charAt(a%g.placeholder.length)}return b.def}return g.placeholder.charAt(a%g.placeholder.length)}function J(c,d,e,f){function h(){var a=!1,b=w().slice(l,E(l)).join("").indexOf(k);if(-1!==b&&!C(l)){a=!0;for(var c=w().slice(l,l+b),d=0;d<c.length;d++)if(" "!==c[d]){a=!1;break}}return a}var i,j=f.slice(),k="",l=0;if(n(),m().p=E(-1),!e)if(g.autoUnmask!==!0){var p=w().slice(0,E(-1)).join(""),q=j.join("").match(new RegExp("^"+b.escapeRegex(p),"g"));q&&q.length>0&&(j.splice(0,q.length*p.length),l=E(l))}else l=E(l);a.each(j,function(b,d){if(void 0!==d){var f=new a.Event("keypress");f.which=d.charCodeAt(0),k+=d;var j=o(void 0,!0),p=m().validPositions[j],q=r(j+1,p?p.locator.slice():void 0,j);if(!h()||e||g.autoUnmask){var s=e?b:null==q.match.fn&&q.match.optionality&&j+1<m().p?j+1:m().p;i=S.call(c,f,!0,!1,e,s),l=s+1,k=""}else i=S.call(c,f,!0,!1,!0,j+1);if(!e&&a.isFunction(g.onBeforeWrite)&&(i=g.onBeforeWrite(f,x(),i.forwardPosition,g),i&&i.refreshFromBuffer)){var t=i.refreshFromBuffer;y(t===!0?t:t.start,t.end,i.buffer),n(!0),i.caret&&(m().p=i.caret)}}}),d&&H(c,x(),document.activeElement===c?E(o(0)):void 0,new a.Event("checkval"))}function K(b){if(b&&void 0===b.inputmask)return b.value;var c=[],d=m().validPositions;for(var e in d)d[e].match&&null!=d[e].match.fn&&c.push(d[e].input);var f=0===c.length?null:(ja?c.reverse():c).join("");if(null!==f){var h=(ja?x().slice().reverse():x()).join("");a.isFunction(g.onUnMask)&&(f=g.onUnMask(h,f,g)||f)}return f}function L(a,b,c,d){function e(a){if(d!==!0&&ja&&"number"==typeof a&&(!g.greedy||""!==g.placeholder)){var b=x().join("").length;a=b-a}return a}var f;if("number"!=typeof b)return a.setSelectionRange?(b=a.selectionStart,c=a.selectionEnd):window.getSelection?(f=window.getSelection().getRangeAt(0),(f.commonAncestorContainer.parentNode===a||f.commonAncestorContainer===a)&&(b=f.startOffset,c=f.endOffset)):document.selection&&document.selection.createRange&&(f=document.selection.createRange(),b=0-f.duplicate().moveStart("character",-a.inputmask._valueGet().length),c=b+f.text.length),{begin:e(b),end:e(c)};b=e(b),c=e(c),c="number"==typeof c?c:b;var h=parseInt(((a.ownerDocument.defaultView||window).getComputedStyle?(a.ownerDocument.defaultView||window).getComputedStyle(a,null):a.currentStyle).fontSize)*c;if(a.scrollLeft=h>a.scrollWidth?h:0,j||g.insertMode!==!1||b!==c||c++,a.setSelectionRange)a.selectionStart=b,a.selectionEnd=c;else if(window.getSelection){if(f=document.createRange(),void 0===a.firstChild||null===a.firstChild){var i=document.createTextNode("");a.appendChild(i)}f.setStart(a.firstChild,b<a.inputmask._valueGet().length?b:a.inputmask._valueGet().length),f.setEnd(a.firstChild,c<a.inputmask._valueGet().length?c:a.inputmask._valueGet().length),f.collapse(!0);var k=window.getSelection();k.removeAllRanges(),k.addRange(f)}else a.createTextRange&&(f=a.createTextRange(),f.collapse(!0),f.moveEnd("character",c),f.moveStart("character",b),f.select())}function M(b){var c,d,e=x(),f=e.length,g=o(),h={},i=m().validPositions[g],j=void 0!==i?i.locator.slice():void 0;for(c=g+1;c<e.length;c++)d=r(c,j,c-1),j=d.locator.slice(),h[c]=a.extend(!0,{},d);var k=i&&void 0!==i.alternation?i.locator[i.alternation]:void 0;for(c=f-1;c>g&&(d=h[c],(d.match.optionality||d.match.optionalQuantifier||k&&(k!==h[c].locator[i.alternation]&&null!=d.match.fn||null===d.match.fn&&d.locator[i.alternation]&&A(d.locator[i.alternation].toString().split(","),k.toString().split(","))&&""!==v(c)[0].def))&&e[c]===I(c,d.match));c--)f--;return b?{l:f,def:h[f]?h[f].match:void 0}:f}function N(a){for(var b=M(),c=a.length-1;c>b&&!C(c);c--);return a.splice(b,c+1-b),a}function O(b){if(a.isFunction(g.isComplete))return g.isComplete(b,g);if("*"===g.repeat)return void 0;var c=!1,d=M(!0),e=F(d.l);if(void 0===d.def||d.def.newBlockMarker||d.def.optionality||d.def.optionalQuantifier){c=!0;for(var f=0;e>=f;f++){var h=r(f).match;if(null!==h.fn&&void 0===m().validPositions[f]&&h.optionality!==!0&&h.optionalQuantifier!==!0||null===h.fn&&b[f]!==I(f,h)){c=!1;break}}}return c}function P(b){function c(b){if(a.valHooks&&(void 0===a.valHooks[b]||a.valHooks[b].inputmaskpatch!==!0)){var c=a.valHooks[b]&&a.valHooks[b].get?a.valHooks[b].get:function(a){return a.value},d=a.valHooks[b]&&a.valHooks[b].set?a.valHooks[b].set:function(a,b){return a.value=b,a};a.valHooks[b]={get:function(a){if(a.inputmask){if(a.inputmask.opts.autoUnmask)return a.inputmask.unmaskedvalue();var b=c(a);return-1!==o()||g.nullable!==!0?b:""}return c(a)},set:function(b,c){var e,f=a(b);return e=d(b,c),b.inputmask&&f.trigger("setvalue"),e},inputmaskpatch:!0}}}function d(){return this.inputmask?this.inputmask.opts.autoUnmask?this.inputmask.unmaskedvalue():-1!==o()||g.nullable!==!0?document.activeElement===this&&g.clearMaskOnLostFocus?(ja?N(x().slice()).reverse():N(x().slice())).join(""):h.call(this):"":h.call(this)}function e(b){i.call(this,b),this.inputmask&&a(this).trigger("setvalue")}function f(b){oa.on(b,"mouseenter",function(b){var c=a(this),d=this,e=d.inputmask._valueGet();e!==x().join("")&&c.trigger("setvalue")})}var h,i;if(!b.inputmask.__valueGet){if(Object.getOwnPropertyDescriptor){var j=Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(b),"value"):void 0;j&&j.get&&j.set?(h=j.get,i=j.set,Object.defineProperty(b,"value",{get:d,set:e,configurable:!0})):"INPUT"!==b.tagName&&(h=function(){return this.textContent},i=function(a){this.textContent=a},Object.defineProperty(b,"value",{get:d,set:e,configurable:!0}))}else document.__lookupGetter__&&b.__lookupGetter__("value")&&(h=b.__lookupGetter__("value"),i=b.__lookupSetter__("value"),b.__defineGetter__("value",d),b.__defineSetter__("value",e));void 0===h&&(h=function(){return b.value},i=function(a){b.value=a},c(b.type),f(b)),b.inputmask.__valueGet=h,b.inputmask._valueGet=function(a){return ja&&a!==!0?h.call(this.el).split("").reverse().join(""):h.call(this.el)},b.inputmask.__valueSet=i,b.inputmask._valueSet=function(a,b){i.call(this.el,null===a||void 0===a?"":b!==!0&&ja?a.split("").reverse().join(""):a)}}}function Q(c,d,e,f){function h(){if(g.keepStatic){n(!0);var b,d=[],e=a.extend(!0,{},m().validPositions);for(b=o();b>=0;b--){var f=m().validPositions[b];if(f&&(null!=f.match.fn&&d.push(f.input),delete m().validPositions[b],void 0!==f.alternation&&f.locator[f.alternation]===r(b).locator[f.alternation]))break}if(b>-1)for(;d.length>0;){m().p=E(o());var h=new a.Event("keypress");h.which=d.pop().charCodeAt(0),S.call(c,h,!0,!1,!1,m().p)}else m().validPositions=a.extend(!0,{},e)}}if((g.numericInput||ja)&&(d===b.keyCode.BACKSPACE?d=b.keyCode.DELETE:d===b.keyCode.DELETE&&(d=b.keyCode.BACKSPACE),ja)){var i=e.end;e.end=e.begin,e.begin=i}d===b.keyCode.BACKSPACE&&(e.end-e.begin<1||g.insertMode===!1)?(e.begin=F(e.begin),void 0===m().validPositions[e.begin]||m().validPositions[e.begin].input!==g.groupSeparator&&m().validPositions[e.begin].input!==g.radixPoint||e.begin--):d===b.keyCode.DELETE&&e.begin===e.end&&(e.end=C(e.end)?e.end+1:E(e.end)+1,void 0===m().validPositions[e.begin]||m().validPositions[e.begin].input!==g.groupSeparator&&m().validPositions[e.begin].input!==g.radixPoint||e.end++),q(e.begin,e.end,!1,f),f!==!0&&h();var j=o(e.begin);j<e.begin?(-1===j&&n(),m().p=E(j)):f!==!0&&(m().p=e.begin)}function R(d){var e=this,f=a(e),h=d.keyCode,i=L(e);if(h===b.keyCode.BACKSPACE||h===b.keyCode.DELETE||l&&h===b.keyCode.BACKSPACE_SAFARI||d.ctrlKey&&h===b.keyCode.X&&!c("cut"))d.preventDefault(),Q(e,h,i),H(e,x(),m().p,d,ea!==x().join("")),e.inputmask._valueGet()===w().join("")?f.trigger("cleared"):O(x())===!0&&f.trigger("complete"),g.showTooltip&&(e.title=g.tooltip||m().mask);else if(h===b.keyCode.END||h===b.keyCode.PAGE_DOWN){d.preventDefault();var j=E(o());g.insertMode||j!==D()||d.shiftKey||j--,L(e,d.shiftKey?i.begin:j,j,!0)}else h===b.keyCode.HOME&&!d.shiftKey||h===b.keyCode.PAGE_UP?(d.preventDefault(),L(e,0,d.shiftKey?i.begin:0,!0)):(g.undoOnEscape&&h===b.keyCode.ESCAPE||90===h&&d.ctrlKey)&&d.altKey!==!0?(J(e,!0,!1,ea.split("")),f.trigger("click")):h!==b.keyCode.INSERT||d.shiftKey||d.ctrlKey?g.tabThrough===!0&&h===b.keyCode.TAB?(d.shiftKey===!0?(null===s(i.begin).fn&&(i.begin=E(i.begin)),i.end=F(i.begin,!0),i.begin=F(i.end,!0)):(i.begin=E(i.begin,!0),i.end=E(i.begin,!0),i.end<D()&&i.end--),i.begin<D()&&(d.preventDefault(),L(e,i.begin,i.end))):g.insertMode!==!1||d.shiftKey||(h===b.keyCode.RIGHT?setTimeout(function(){var a=L(e);L(e,a.begin)},0):h===b.keyCode.LEFT&&setTimeout(function(){var a=L(e);L(e,ja?a.begin+1:a.begin-1)},0)):(g.insertMode=!g.insertMode,L(e,g.insertMode||i.begin!==D()?i.begin:i.begin-1));g.onKeyDown.call(this,d,x(),L(e).begin,g),ma=-1!==a.inArray(h,g.ignorables)}function S(c,d,e,f,h){var i=this,j=a(i),k=c.which||c.charCode||c.keyCode;if(!(d===!0||c.ctrlKey&&c.altKey)&&(c.ctrlKey||c.metaKey||ma))return k===b.keyCode.ENTER&&ea!==x().join("")&&(ea=x().join(""),setTimeout(function(){j.trigger("change")},0)),!0;if(k){46===k&&c.shiftKey===!1&&","===g.radixPoint&&(k=44);var l,o=d?{begin:h,end:h}:L(i),p=String.fromCharCode(k);m().writeOutBuffer=!0;var q=B(o,p,f);if(q!==!1){var r=q.pos;if(n(!0),void 0!==q.caret)l=q.caret;else{var s=m().validPositions;l=!g.keepStatic&&(void 0!==s[r+1]&&v(r+1,s[r].locator.slice(),r).length>1||void 0!==s[r].alternation)?r+1:E(r)}m().p=l}if(e!==!1){var t=this;if(setTimeout(function(){g.onKeyValidation.call(t,k,q,g)},0),m().writeOutBuffer&&q!==!1){var u=x();H(i,u,g.numericInput&&void 0===q.caret?F(l):l,c,d!==!0),d!==!0&&setTimeout(function(){O(u)===!0&&j.trigger("complete")},0)}}if(g.showTooltip&&(i.title=g.tooltip||m().mask),c.preventDefault(),d)return q.forwardPosition=l,q}}function T(b){var c,d=this,e=b.originalEvent||b,f=a(d),h=d.inputmask._valueGet(!0),i=L(d);ja&&(c=i.end,i.end=i.begin,i.begin=c);var j=h.substr(0,i.begin),k=h.substr(i.end,h.length);j===(ja?w().reverse():w()).slice(0,i.begin).join("")&&(j=""),k===(ja?w().reverse():w()).slice(i.end).join("")&&(k=""),ja&&(c=j,j=k,k=c),window.clipboardData&&window.clipboardData.getData?h=j+window.clipboardData.getData("Text")+k:e.clipboardData&&e.clipboardData.getData&&(h=j+e.clipboardData.getData("text/plain")+k);var l=h;if(a.isFunction(g.onBeforePaste)){if(l=g.onBeforePaste(h,g),l===!1)return b.preventDefault();l||(l=h)}return J(d,!1,!1,ja?l.split("").reverse():l.toString().split("")),H(d,x(),E(o()),b,!0),O(x())===!0&&f.trigger("complete"),b.preventDefault()}function U(c){var d=this,e=d.inputmask._valueGet();if(x().join("")!==e){var f=L(d);if(e=e.replace(new RegExp("("+b.escapeRegex(w().join(""))+")*"),""),k){var g=e.replace(x().join(""),"");if(1===g.length){var h=new a.Event("keypress");return h.which=g.charCodeAt(0),S.call(d,h,!0,!0,!1,m().validPositions[f.begin-1]?f.begin:f.begin-1),!1}}if(f.begin>e.length&&(L(d,e.length),f=L(d)),x().length-e.length!==1||e.charAt(f.begin)===x()[f.begin]||e.charAt(f.begin+1)===x()[f.begin]||C(f.begin)){for(var i=o()+1,j=x().slice(i).join("");null===e.match(b.escapeRegex(j)+"$");)j=j.slice(1);e=e.replace(j,""),e=e.split(""),J(d,!0,!1,e),O(x())===!0&&a(d).trigger("complete")}else c.keyCode=b.keyCode.BACKSPACE,R.call(d,c);c.preventDefault()}}function V(b){var c=this,d=c.inputmask._valueGet();J(c,!0,!1,(a.isFunction(g.onBeforeMask)?g.onBeforeMask(d,g)||d:d).split("")),ea=x().join(""),(g.clearMaskOnLostFocus||g.clearIncomplete)&&c.inputmask._valueGet()===w().join("")&&c.inputmask._valueSet("")}function W(a){var b=this,c=b.inputmask._valueGet();g.showMaskOnFocus&&(!g.showMaskOnHover||g.showMaskOnHover&&""===c)?b.inputmask._valueGet()!==x().join("")&&H(b,x(),E(o())):na===!1&&L(b,E(o())),g.positionCaretOnTab===!0&&setTimeout(function(){L(b,E(o()))},0),ea=x().join("")}function X(a){var b=this;if(na=!1,g.clearMaskOnLostFocus&&document.activeElement!==b){var c=x().slice(),d=b.inputmask._valueGet();d!==b.getAttribute("placeholder")&&""!==d&&(-1===o()&&d===w().join("")?c=[]:N(c),H(b,c))}}function Y(b){function c(b){if(g.radixFocus&&""!==g.radixPoint){var c=m().validPositions;if(void 0===c[b]||c[b].input===I(b)){if(b<E(-1))return!0;var d=a.inArray(g.radixPoint,x());if(-1!==d){for(var e in c)if(e>d&&c[e].input!==I(e))return!1;return!0}}}return!1}var d=this;setTimeout(function(){if(document.activeElement===d){var b=L(d);if(b.begin===b.end)if(c(b.begin))L(d,g.numericInput?E(a.inArray(g.radixPoint,x())):a.inArray(g.radixPoint,x()));else{var e=b.begin,f=o(e,!0),h=E(f);if(h>e)L(d,C(e)||C(e-1)?e:E(e));else{var i=I(h);(""!==i&&x()[h]!==i||!C(h,!0)&&s(h).def===i)&&(h=E(h)),
9
- L(d,h)}}}},0)}function Z(a){var b=this;setTimeout(function(){L(b,0,E(o()))},0)}function $(c){var d=this,e=a(d),f=L(d),h=c.originalEvent||c,i=window.clipboardData||h.clipboardData,j=ja?x().slice(f.end,f.begin):x().slice(f.begin,f.end);i.setData("text",ja?j.reverse().join(""):j.join("")),document.execCommand&&document.execCommand("copy"),Q(d,b.keyCode.DELETE,f),H(d,x(),m().p,c,ea!==x().join("")),d.inputmask._valueGet()===w().join("")&&e.trigger("cleared"),g.showTooltip&&(d.title=g.tooltip||m().mask)}function _(b){var c=a(this),d=this;if(d.inputmask){var e=d.inputmask._valueGet(),f=x().slice();ea!==f.join("")&&setTimeout(function(){c.trigger("change"),ea=f.join("")},0),""!==e&&(g.clearMaskOnLostFocus&&(-1===o()&&e===w().join("")?f=[]:N(f)),O(f)===!1&&(setTimeout(function(){c.trigger("incomplete")},0),g.clearIncomplete&&(n(),f=g.clearMaskOnLostFocus?[]:w().slice())),H(d,f,void 0,b))}}function aa(a){var b=this;na=!0,document.activeElement!==b&&g.showMaskOnHover&&b.inputmask._valueGet()!==x().join("")&&H(b,x())}function ba(a){ea!==x().join("")&&ga.trigger("change"),g.clearMaskOnLostFocus&&-1===o()&&fa.inputmask._valueGet&&fa.inputmask._valueGet()===w().join("")&&fa.inputmask._valueSet(""),g.removeMaskOnSubmit&&(fa.inputmask._valueSet(fa.inputmask.unmaskedvalue(),!0),setTimeout(function(){H(fa,x())},0))}function ca(a){setTimeout(function(){ga.trigger("setvalue")},0)}function da(b){if(fa=b,ga=a(fa),g.showTooltip&&(fa.title=g.tooltip||m().mask),("rtl"===fa.dir||g.rightAlign)&&(fa.style.textAlign="right"),("rtl"===fa.dir||g.numericInput)&&(fa.dir="ltr",fa.removeAttribute("dir"),fa.inputmask.isRTL=!0,ja=!0),oa.off(fa),P(fa),d(fa,g)&&(oa.on(fa,"submit",ba),oa.on(fa,"reset",ca),oa.on(fa,"mouseenter",aa),oa.on(fa,"blur",_),oa.on(fa,"focus",W),oa.on(fa,"mouseleave",X),oa.on(fa,"click",Y),oa.on(fa,"dblclick",Z),oa.on(fa,"paste",T),oa.on(fa,"dragdrop",T),oa.on(fa,"drop",T),oa.on(fa,"cut",$),oa.on(fa,"complete",g.oncomplete),oa.on(fa,"incomplete",g.onincomplete),oa.on(fa,"cleared",g.oncleared),oa.on(fa,"keydown",R),oa.on(fa,"keypress",S),oa.on(fa,"input",U)),oa.on(fa,"setvalue",V),""!==fa.inputmask._valueGet()||g.clearMaskOnLostFocus===!1||document.activeElement===fa){var c=a.isFunction(g.onBeforeMask)?g.onBeforeMask(fa.inputmask._valueGet(),g)||fa.inputmask._valueGet():fa.inputmask._valueGet();J(fa,!0,!1,c.split(""));var e=x().slice();ea=e.join(""),O(e)===!1&&g.clearIncomplete&&n(),g.clearMaskOnLostFocus&&document.activeElement!==fa&&(-1===o()?e=[]:N(e)),H(fa,e),document.activeElement===fa&&L(fa,E(o()))}}var ea,fa,ga,ha,ia,ja=!1,ka=!1,la=!1,ma=!1,na=!0,oa={on:function(c,d,e){var f=function(c){if(void 0===this.inputmask&&"FORM"!==this.nodeName){var d=a.data(this,"_inputmask_opts");d?new b(d).mask(this):oa.off(this)}else{if("setvalue"===c.type||!(this.disabled||this.readOnly&&!("keydown"===c.type&&c.ctrlKey&&67===c.keyCode||g.tabThrough===!1&&c.keyCode===b.keyCode.TAB))){switch(c.type){case"input":if(la===!0)return la=!1,c.preventDefault();break;case"keydown":ka=!1,la=!1;break;case"keypress":if(ka===!0)return c.preventDefault();ka=!0;break;case"click":if(k){var f=this;return setTimeout(function(){e.apply(f,arguments)},0),!1}}var h=e.apply(this,arguments);return h===!1&&(c.preventDefault(),c.stopPropagation()),h}c.preventDefault()}};c.inputmask.events[d]=c.inputmask.events[d]||[],c.inputmask.events[d].push(f),-1!==a.inArray(d,["submit","reset"])?null!=c.form&&a(c.form).on(d,f):a(c).on(d,f)},off:function(b,c){if(b.inputmask&&b.inputmask.events){var d;c?(d=[],d[c]=b.inputmask.events[c]):d=b.inputmask.events,a.each(d,function(c,d){for(;d.length>0;){var e=d.pop();-1!==a.inArray(c,["submit","reset"])?null!=b.form&&a(b.form).off(c,e):a(b).off(c,e)}delete b.inputmask.events[c]})}}};if(void 0!==e)switch(e.action){case"isComplete":return fa=e.el,O(x());case"unmaskedvalue":return fa=e.el,void 0!==fa&&void 0!==fa.inputmask?(f=fa.inputmask.maskset,g=fa.inputmask.opts,ja=fa.inputmask.isRTL):(ia=e.value,g.numericInput&&(ja=!0),ia=(a.isFunction(g.onBeforeMask)?g.onBeforeMask(ia,g)||ia:ia).split(""),J(void 0,!1,!1,ja?ia.reverse():ia),a.isFunction(g.onBeforeWrite)&&g.onBeforeWrite(void 0,x(),0,g)),K(fa);case"mask":fa=e.el,f=fa.inputmask.maskset,g=fa.inputmask.opts,ja=fa.inputmask.isRTL,ea=x().join(""),da(fa);break;case"format":return g.numericInput&&(ja=!0),ia=(a.isFunction(g.onBeforeMask)?g.onBeforeMask(e.value,g)||e.value:e.value).split(""),J(void 0,!1,!1,ja?ia.reverse():ia),a.isFunction(g.onBeforeWrite)&&g.onBeforeWrite(void 0,x(),0,g),e.metadata?{value:ja?x().slice().reverse().join(""):x().join(""),metadata:h({action:"getmetadata"},f,g)}:ja?x().slice().reverse().join(""):x().join("");case"isValid":g.numericInput&&(ja=!0),e.value?(ia=e.value.split(""),J(void 0,!1,!0,ja?ia.reverse():ia)):e.value=x().join("");for(var pa=x(),qa=M(),ra=pa.length-1;ra>qa&&!C(ra);ra--);return pa.splice(qa,ra+1-qa),O(pa)&&e.value===x().join("");case"getemptymask":return w().join("");case"remove":fa=e.el,ga=a(fa),f=fa.inputmask.maskset,g=fa.inputmask.opts,fa.inputmask._valueSet(K(fa)),oa.off(fa);var sa;Object.getOwnPropertyDescriptor&&Object.getPrototypeOf?(sa=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(fa),"value"),sa&&fa.inputmask.__valueGet&&Object.defineProperty(fa,"value",{get:fa.inputmask.__valueGet,set:fa.inputmask.__valueSet,configurable:!0})):document.__lookupGetter__&&fa.__lookupGetter__("value")&&fa.inputmask.__valueGet&&(fa.__defineGetter__("value",fa.inputmask.__valueGet),fa.__defineSetter__("value",fa.inputmask.__valueSet)),fa.inputmask=void 0;break;case"getmetadata":if(a.isArray(f.metadata)){for(var ta,ua=o(void 0,!0),va=ua;va>=0;va--)if(m().validPositions[va]&&void 0!==m().validPositions[va].alternation){ta=m().validPositions[va].alternation;break}return void 0!==ta?f.metadata[m().validPositions[va].locator[ta]]:[]}return f.metadata}}b.prototype={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",end:")"},alternatormarker:"|",escapeChar:"\\",mask:null,oncomplete:a.noop,onincomplete:a.noop,oncleared:a.noop,repeat:0,greedy:!0,autoUnmask:!1,removeMaskOnSubmit:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,aliases:{},alias:null,onKeyDown:a.noop,onBeforeMask:null,onBeforePaste:function(b,c){return a.isFunction(c.onBeforeMask)?c.onBeforeMask(b,c):b},onBeforeWrite:null,onUnMask:null,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:a.noop,skipOptionalPartCharacter:" ",showTooltip:!1,tooltip:void 0,numericInput:!1,rightAlign:!1,undoOnEscape:!0,radixPoint:"",radixPointDefinitionSymbol:void 0,groupSeparator:"",radixFocus:!1,nojumps:!1,nojumpsThreshold:0,keepStatic:null,positionCaretOnTab:!1,tabThrough:!1,supportsInputType:["text","tel","password"],definitions:{9:{validator:"[0-9]",cardinality:1,definitionSymbol:"*"},a:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",cardinality:1,definitionSymbol:"*"},"*":{validator:"[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",cardinality:1}},ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123],isComplete:null,canClearPosition:a.noop,postValidation:null,staticDefinitionSymbol:void 0,jitMasking:!1,nullable:!0},masksCache:{},mask:function(c){var d=this;return"string"==typeof c&&(c=document.getElementById(c)||document.querySelectorAll(c)),c=c.nodeName?[c]:c,a.each(c,function(c,e){var i=a.extend(!0,{},d.opts);f(e,i,a.extend(!0,{},d.userOptions));var j=g(i,d.noMasksCache);void 0!==j&&(void 0!==e.inputmask&&e.inputmask.remove(),e.inputmask=new b,e.inputmask.opts=i,e.inputmask.noMasksCache=d.noMasksCache,e.inputmask.userOptions=a.extend(!0,{},d.userOptions),e.inputmask.el=e,e.inputmask.maskset=j,e.inputmask.isRTL=!1,a.data(e,"_inputmask_opts",i),h({action:"mask",el:e}))}),c&&c[0]?c[0].inputmask||this:this},option:function(b){return"string"==typeof b?this.opts[b]:"object"==typeof b?(a.extend(this.opts,b),a.extend(this.userOptions,b),this.el&&(void 0!==b.mask||void 0!==b.alias?this.mask(this.el):(a.data(this.el,"_inputmask_opts",this.opts),h({action:"mask",el:this.el}))),this):void 0},unmaskedvalue:function(a){return h({action:"unmaskedvalue",el:this.el,value:a},this.el&&this.el.inputmask?this.el.inputmask.maskset:g(this.opts,this.noMasksCache),this.opts)},remove:function(){return this.el?(h({action:"remove",el:this.el}),this.el.inputmask=void 0,this.el):void 0},getemptymask:function(){return h({action:"getemptymask"},this.maskset||g(this.opts,this.noMasksCache),this.opts)},hasMaskedValue:function(){return!this.opts.autoUnmask},isComplete:function(){return h({action:"isComplete",el:this.el},this.maskset||g(this.opts,this.noMasksCache),this.opts)},getmetadata:function(){return h({action:"getmetadata"},this.maskset||g(this.opts,this.noMasksCache),this.opts)},isValid:function(a){return h({action:"isValid",value:a},this.maskset||g(this.opts,this.noMasksCache),this.opts)},format:function(a,b){return h({action:"format",value:a,metadata:b},this.maskset||g(this.opts,this.noMasksCache),this.opts)}},b.extendDefaults=function(c){a.extend(!0,b.prototype.defaults,c)},b.extendDefinitions=function(c){a.extend(!0,b.prototype.defaults.definitions,c)},b.extendAliases=function(c){a.extend(!0,b.prototype.defaults.aliases,c)},b.format=function(a,c,d){return b(c).format(a,d)},b.unmask=function(a,c){return b(c).unmaskedvalue(a)},b.isValid=function(a,c){return b(c).isValid(a)},b.remove=function(b){a.each(b,function(a,b){b.inputmask&&b.inputmask.remove()})},b.escapeRegex=function(a){var b=["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"];return a.replace(new RegExp("(\\"+b.join("|\\")+")","gim"),"\\$1")},b.keyCode={ALT:18,BACKSPACE:8,BACKSPACE_SAFARI:127,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91,X:88};var i=navigator.userAgent,j=/mobile/i.test(i),k=/iemobile/i.test(i),l=/iphone/i.test(i)&&!k;/android.*safari.*/i.test(i)&&!k;return window.Inputmask=b,b}(jQuery),function(a,b){return void 0===a.fn.inputmask&&(a.fn.inputmask=function(c,d){var e,f=this[0];if(void 0===d&&(d={}),"string"==typeof c)switch(c){case"unmaskedvalue":return f&&f.inputmask?f.inputmask.unmaskedvalue():a(f).val();case"remove":return this.each(function(){this.inputmask&&this.inputmask.remove()});case"getemptymask":return f&&f.inputmask?f.inputmask.getemptymask():"";case"hasMaskedValue":return f&&f.inputmask?f.inputmask.hasMaskedValue():!1;case"isComplete":return f&&f.inputmask?f.inputmask.isComplete():!0;case"getmetadata":return f&&f.inputmask?f.inputmask.getmetadata():void 0;case"setvalue":a(f).val(d),f&&void 0!==f.inputmask&&a(f).triggerHandler("setvalue");break;case"option":if("string"!=typeof d)return this.each(function(){return void 0!==this.inputmask?this.inputmask.option(d):void 0});if(f&&void 0!==f.inputmask)return f.inputmask.option(d);break;default:return d.alias=c,e=new b(d),this.each(function(){e.mask(this)})}else{if("object"==typeof c)return e=new b(c),void 0===c.mask&&void 0===c.alias?this.each(function(){return void 0!==this.inputmask?this.inputmask.option(c):void e.mask(this)}):this.each(function(){e.mask(this)});if(void 0===c)return this.each(function(){e=new b(d),e.mask(this)})}}),a.fn.inputmask}(jQuery,Inputmask),function(a,b){return b.extendDefinitions({h:{validator:"[01][0-9]|2[0-3]",cardinality:2,prevalidator:[{validator:"[0-2]",cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:"[0-5]",cardinality:1}]},d:{validator:"0[1-9]|[12][0-9]|3[01]",cardinality:2,prevalidator:[{validator:"[0-3]",cardinality:1}]},m:{validator:"0[1-9]|1[012]",cardinality:2,prevalidator:[{validator:"[01]",cardinality:1}]},y:{validator:"(19|20)\\d{2}",cardinality:4,prevalidator:[{validator:"[12]",cardinality:1},{validator:"(19|20)",cardinality:2},{validator:"(19|20)\\d",cardinality:3}]}}),b.extendAliases({"dd/mm/yyyy":{mask:"1/2/y",placeholder:"dd/mm/yyyy",regex:{val1pre:new RegExp("[0-3]"),val1:new RegExp("0[1-9]|[12][0-9]|3[01]"),val2pre:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|[12][0-9]|3[01])"+c+"[01])")},val2:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|[12][0-9])"+c+"(0[1-9]|1[012]))|(30"+c+"(0[13-9]|1[012]))|(31"+c+"(0[13578]|1[02]))")}},leapday:"29/02/",separator:"/",yearrange:{minyear:1900,maxyear:2099},isInYearRange:function(a,b,c){if(isNaN(a))return!1;var d=parseInt(a.concat(b.toString().slice(a.length))),e=parseInt(a.concat(c.toString().slice(a.length)));return(isNaN(d)?!1:d>=b&&c>=d)||(isNaN(e)?!1:e>=b&&c>=e)},determinebaseyear:function(a,b,c){var d=(new Date).getFullYear();if(a>d)return a;if(d>b){for(var e=b.toString().slice(0,2),f=b.toString().slice(2,4);e+c>b;)e--;var g=e+f;return a>g?a:g}if(d>=a&&b>=d){for(var h=d.toString().slice(0,2);h+c>b;)h--;var i=h+c;return a>i?a:i}return d},onKeyDown:function(c,d,e,f){var g=a(this);if(c.ctrlKey&&c.keyCode===b.keyCode.RIGHT){var h=new Date;g.val(h.getDate().toString()+(h.getMonth()+1).toString()+h.getFullYear().toString()),g.trigger("setvalue")}},getFrontValue:function(a,b,c){for(var d=0,e=0,f=0;f<a.length&&"2"!==a.charAt(f);f++){var g=c.definitions[a.charAt(f)];g?(d+=e,e=g.cardinality):e++}return b.join("").substr(d,e)},definitions:{1:{validator:function(a,b,c,d,e){var f=e.regex.val1.test(a);return d||f||a.charAt(1)!==e.separator&&-1==="-./".indexOf(a.charAt(1))||!(f=e.regex.val1.test("0"+a.charAt(0)))?f:(b.buffer[c-1]="0",{refreshFromBuffer:{start:c-1,end:c},pos:c,c:a.charAt(0)})},cardinality:2,prevalidator:[{validator:function(a,b,c,d,e){var f=a;isNaN(b.buffer[c+1])||(f+=b.buffer[c+1]);var g=1===f.length?e.regex.val1pre.test(f):e.regex.val1.test(f);if(!d&&!g){if(g=e.regex.val1.test(a+"0"))return b.buffer[c]=a,b.buffer[++c]="0",{pos:c,c:"0"};if(g=e.regex.val1.test("0"+a))return b.buffer[c]="0",c++,{pos:c}}return g},cardinality:1}]},2:{validator:function(a,b,c,d,e){var f=e.getFrontValue(b.mask,b.buffer,e);-1!==f.indexOf(e.placeholder[0])&&(f="01"+e.separator);var g=e.regex.val2(e.separator).test(f+a);if(!d&&!g&&(a.charAt(1)===e.separator||-1!=="-./".indexOf(a.charAt(1)))&&(g=e.regex.val2(e.separator).test(f+"0"+a.charAt(0))))return b.buffer[c-1]="0",{refreshFromBuffer:{start:c-1,end:c},pos:c,c:a.charAt(0)};if(e.mask.indexOf("2")===e.mask.length-1&&g){var h=b.buffer.join("").substr(4,4)+a;if(h!==e.leapday)return!0;var i=parseInt(b.buffer.join("").substr(0,4),10);return i%4===0?i%100===0?i%400===0?!0:!1:!0:!1}return g},cardinality:2,prevalidator:[{validator:function(a,b,c,d,e){isNaN(b.buffer[c+1])||(a+=b.buffer[c+1]);var f=e.getFrontValue(b.mask,b.buffer,e);-1!==f.indexOf(e.placeholder[0])&&(f="01"+e.separator);var g=1===a.length?e.regex.val2pre(e.separator).test(f+a):e.regex.val2(e.separator).test(f+a);return d||g||!(g=e.regex.val2(e.separator).test(f+"0"+a))?g:(b.buffer[c]="0",c++,{pos:c})},cardinality:1}]},y:{validator:function(a,b,c,d,e){if(e.isInYearRange(a,e.yearrange.minyear,e.yearrange.maxyear)){var f=b.buffer.join("").substr(0,6);if(f!==e.leapday)return!0;var g=parseInt(a,10);return g%4===0?g%100===0?g%400===0?!0:!1:!0:!1}return!1},cardinality:4,prevalidator:[{validator:function(a,b,c,d,e){var f=e.isInYearRange(a,e.yearrange.minyear,e.yearrange.maxyear);if(!d&&!f){var g=e.determinebaseyear(e.yearrange.minyear,e.yearrange.maxyear,a+"0").toString().slice(0,1);if(f=e.isInYearRange(g+a,e.yearrange.minyear,e.yearrange.maxyear))return b.buffer[c++]=g.charAt(0),{pos:c};if(g=e.determinebaseyear(e.yearrange.minyear,e.yearrange.maxyear,a+"0").toString().slice(0,2),f=e.isInYearRange(g+a,e.yearrange.minyear,e.yearrange.maxyear))return b.buffer[c++]=g.charAt(0),b.buffer[c++]=g.charAt(1),{pos:c}}return f},cardinality:1},{validator:function(a,b,c,d,e){var f=e.isInYearRange(a,e.yearrange.minyear,e.yearrange.maxyear);if(!d&&!f){var g=e.determinebaseyear(e.yearrange.minyear,e.yearrange.maxyear,a).toString().slice(0,2);if(f=e.isInYearRange(a[0]+g[1]+a[1],e.yearrange.minyear,e.yearrange.maxyear))return b.buffer[c++]=g.charAt(1),{pos:c};if(g=e.determinebaseyear(e.yearrange.minyear,e.yearrange.maxyear,a).toString().slice(0,2),e.isInYearRange(g+a,e.yearrange.minyear,e.yearrange.maxyear)){var h=b.buffer.join("").substr(0,6);if(h!==e.leapday)f=!0;else{var i=parseInt(a,10);f=i%4===0?i%100===0?i%400===0?!0:!1:!0:!1}}else f=!1;if(f)return b.buffer[c-1]=g.charAt(0),b.buffer[c++]=g.charAt(1),b.buffer[c++]=a.charAt(0),{refreshFromBuffer:{start:c-3,end:c},pos:c}}return f},cardinality:2},{validator:function(a,b,c,d,e){return e.isInYearRange(a,e.yearrange.minyear,e.yearrange.maxyear)},cardinality:3}]}},insertMode:!1,autoUnmask:!1},"mm/dd/yyyy":{placeholder:"mm/dd/yyyy",alias:"dd/mm/yyyy",regex:{val2pre:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[13-9]|1[012])"+c+"[0-3])|(02"+c+"[0-2])")},val2:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|1[012])"+c+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+c+"30)|((0[13578]|1[02])"+c+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(c,d,e,f){var g=a(this);if(c.ctrlKey&&c.keyCode===b.keyCode.RIGHT){var h=new Date;g.val((h.getMonth()+1).toString()+h.getDate().toString()+h.getFullYear().toString()),g.trigger("setvalue")}}},"yyyy/mm/dd":{mask:"y/1/2",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",leapday:"/02/29",onKeyDown:function(c,d,e,f){var g=a(this);if(c.ctrlKey&&c.keyCode===b.keyCode.RIGHT){var h=new Date;g.val(h.getFullYear().toString()+(h.getMonth()+1).toString()+h.getDate().toString()),g.trigger("setvalue")}}},"dd.mm.yyyy":{mask:"1.2.y",placeholder:"dd.mm.yyyy",leapday:"29.02.",separator:".",alias:"dd/mm/yyyy"},"dd-mm-yyyy":{mask:"1-2-y",placeholder:"dd-mm-yyyy",leapday:"29-02-",separator:"-",alias:"dd/mm/yyyy"},"mm.dd.yyyy":{mask:"1.2.y",placeholder:"mm.dd.yyyy",leapday:"02.29.",separator:".",alias:"mm/dd/yyyy"},"mm-dd-yyyy":{mask:"1-2-y",placeholder:"mm-dd-yyyy",leapday:"02-29-",separator:"-",alias:"mm/dd/yyyy"},"yyyy.mm.dd":{mask:"y.1.2",placeholder:"yyyy.mm.dd",leapday:".02.29",separator:".",alias:"yyyy/mm/dd"},"yyyy-mm-dd":{mask:"y-1-2",placeholder:"yyyy-mm-dd",leapday:"-02-29",separator:"-",alias:"yyyy/mm/dd"},datetime:{mask:"1/2/y h:s",placeholder:"dd/mm/yyyy hh:mm",alias:"dd/mm/yyyy",regex:{hrspre:new RegExp("[012]"),hrs24:new RegExp("2[0-4]|1[3-9]"),hrs:new RegExp("[01][0-9]|2[0-4]"),ampm:new RegExp("^[a|p|A|P][m|M]"),mspre:new RegExp("[0-5]"),ms:new RegExp("[0-5][0-9]")},timeseparator:":",hourFormat:"24",definitions:{h:{validator:function(a,b,c,d,e){if("24"===e.hourFormat&&24===parseInt(a,10))return b.buffer[c-1]="0",b.buffer[c]="0",{refreshFromBuffer:{start:c-1,end:c},c:"0"};var f=e.regex.hrs.test(a);if(!d&&!f&&(a.charAt(1)===e.timeseparator||-1!=="-.:".indexOf(a.charAt(1)))&&(f=e.regex.hrs.test("0"+a.charAt(0))))return b.buffer[c-1]="0",b.buffer[c]=a.charAt(0),c++,{refreshFromBuffer:{start:c-2,end:c},pos:c,c:e.timeseparator};if(f&&"24"!==e.hourFormat&&e.regex.hrs24.test(a)){var g=parseInt(a,10);return 24===g?(b.buffer[c+5]="a",b.buffer[c+6]="m"):(b.buffer[c+5]="p",b.buffer[c+6]="m"),g-=12,10>g?(b.buffer[c]=g.toString(),b.buffer[c-1]="0"):(b.buffer[c]=g.toString().charAt(1),b.buffer[c-1]=g.toString().charAt(0)),{refreshFromBuffer:{start:c-1,end:c+6},c:b.buffer[c]}}return f},cardinality:2,prevalidator:[{validator:function(a,b,c,d,e){var f=e.regex.hrspre.test(a);return d||f||!(f=e.regex.hrs.test("0"+a))?f:(b.buffer[c]="0",c++,{pos:c})},cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:function(a,b,c,d,e){var f=e.regex.mspre.test(a);return d||f||!(f=e.regex.ms.test("0"+a))?f:(b.buffer[c]="0",c++,{pos:c})},cardinality:1}]},t:{validator:function(a,b,c,d,e){return e.regex.ampm.test(a+"m")},casing:"lower",cardinality:1}},insertMode:!1,autoUnmask:!1},datetime12:{mask:"1/2/y h:s t\\m",placeholder:"dd/mm/yyyy hh:mm xm",alias:"datetime",hourFormat:"12"},"mm/dd/yyyy hh:mm xm":{mask:"1/2/y h:s t\\m",placeholder:"mm/dd/yyyy hh:mm xm",alias:"datetime12",regex:{val2pre:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[13-9]|1[012])"+c+"[0-3])|(02"+c+"[0-2])")},val2:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|1[012])"+c+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+c+"30)|((0[13578]|1[02])"+c+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(c,d,e,f){var g=a(this);if(c.ctrlKey&&c.keyCode===b.keyCode.RIGHT){var h=new Date;g.val((h.getMonth()+1).toString()+h.getDate().toString()+h.getFullYear().toString()),g.trigger("setvalue")}}},"hh:mm t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"h:s t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"hh:mm:ss":{mask:"h:s:s",placeholder:"hh:mm:ss",alias:"datetime",autoUnmask:!1},"hh:mm":{mask:"h:s",placeholder:"hh:mm",alias:"datetime",autoUnmask:!1},date:{alias:"dd/mm/yyyy"},"mm/yyyy":{mask:"1/y",placeholder:"mm/yyyy",leapday:"donotuse",separator:"/",alias:"mm/dd/yyyy"},shamsi:{regex:{val2pre:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|1[012])"+c+"[0-3])")},val2:function(a){var c=b.escapeRegex.call(this,a);return new RegExp("((0[1-9]|1[012])"+c+"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])"+c+"30)|((0[1-6])"+c+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},yearrange:{minyear:1300,maxyear:1499},mask:"y/1/2",leapday:"/12/30",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",clearIncomplete:!0}}),b}(jQuery,Inputmask),function(a,b){return b.extendDefinitions({A:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",cardinality:1,casing:"upper"},"&":{validator:"[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",cardinality:1,casing:"upper"},"#":{validator:"[0-9A-Fa-f]",cardinality:1,casing:"upper"}}),b.extendAliases({url:{definitions:{i:{validator:".",cardinality:1}},mask:"(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",insertMode:!1,autoUnmask:!1},ip:{mask:"i[i[i]].i[i[i]].i[i[i]].i[i[i]]",definitions:{i:{validator:function(a,b,c,d,e){return c-1>-1&&"."!==b.buffer[c-1]?(a=b.buffer[c-1]+a,a=c-2>-1&&"."!==b.buffer[c-2]?b.buffer[c-2]+a:"0"+a):a="00"+a,new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(a)},cardinality:1}},onUnMask:function(a,b,c){return a}},email:{mask:"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}[.-{1,63}][.-{1,63}][.-{1,63}]",greedy:!1,onBeforePaste:function(a,b){return a=a.toLowerCase(),a.replace("mailto:","")},definitions:{"*":{validator:"[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",cardinality:1,casing:"lower"},"-":{validator:"[0-9A-Za-z-]",cardinality:1,casing:"lower"}},onUnMask:function(a,b,c){return a}},mac:{mask:"##:##:##:##:##:##"},vin:{mask:"V{13}9{4}",definitions:{V:{validator:"[A-HJ-NPR-Za-hj-npr-z\\d]",cardinality:1,casing:"upper"}},clearIncomplete:!0,autoUnmask:!0}}),b}(jQuery,Inputmask),function(a,b){return b.extendAliases({numeric:{mask:function(a){function b(b){for(var c="",d=0;d<b.length;d++)c+=a.definitions[b.charAt(d)]||a.optionalmarker.start===b.charAt(d)||a.optionalmarker.end===b.charAt(d)||a.quantifiermarker.start===b.charAt(d)||a.quantifiermarker.end===b.charAt(d)||a.groupmarker.start===b.charAt(d)||a.groupmarker.end===b.charAt(d)||a.alternatormarker===b.charAt(d)?"\\"+b.charAt(d):b.charAt(d);return c}if(0!==a.repeat&&isNaN(a.integerDigits)&&(a.integerDigits=a.repeat),a.repeat=0,a.groupSeparator===a.radixPoint&&("."===a.radixPoint?a.groupSeparator=",":","===a.radixPoint?a.groupSeparator=".":a.groupSeparator="")," "===a.groupSeparator&&(a.skipOptionalPartCharacter=void 0),a.autoGroup=a.autoGroup&&""!==a.groupSeparator,a.autoGroup&&("string"==typeof a.groupSize&&isFinite(a.groupSize)&&(a.groupSize=parseInt(a.groupSize)),isFinite(a.integerDigits))){var c=Math.floor(a.integerDigits/a.groupSize),d=a.integerDigits%a.groupSize;a.integerDigits=parseInt(a.integerDigits)+(0===d?c-1:c),a.integerDigits<1&&(a.integerDigits="*")}a.placeholder.length>1&&(a.placeholder=a.placeholder.charAt(0)),a.radixFocus=a.radixFocus&&""!==a.placeholder&&a.integerOptional===!0,a.definitions[";"]=a.definitions["~"],a.definitions[";"].definitionSymbol="~",a.numericInput===!0&&(a.radixFocus=!1,a.digitsOptional=!1,isNaN(a.digits)&&(a.digits=2),a.decimalProtect=!1);var e=b(a.prefix);return e+="[+]",e+=a.integerOptional===!0?"~{1,"+a.integerDigits+"}":"~{"+a.integerDigits+"}",void 0!==a.digits&&(isNaN(a.digits)||parseInt(a.digits)>0)&&(a.decimalProtect&&(a.radixPointDefinitionSymbol=":"),e+=a.digitsOptional?"["+(a.decimalProtect?":":a.radixPoint)+";{1,"+a.digits+"}]":(a.decimalProtect?":":a.radixPoint)+";{"+a.digits+"}"),e+="[-]",e+=b(a.suffix),a.greedy=!1,e},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,radixPoint:".",radixFocus:!0,groupSize:3,groupSeparator:"",autoGroup:!1,allowPlus:!0,allowMinus:!0,negationSymbol:{front:"-",back:""},integerDigits:"+",integerOptional:!0,prefix:"",suffix:"",rightAlign:!0,decimalProtect:!0,min:null,max:null,step:1,insertMode:!0,autoUnmask:!1,unmaskAsNumber:!1,postFormat:function(c,d,e){e.numericInput===!0&&(c=c.reverse(),isFinite(d)&&(d=c.join("").length-d-1));var f,g,h=!1;c.length>=e.suffix.length&&c.join("").indexOf(e.suffix)===c.length-e.suffix.length&&(c.length=c.length-e.suffix.length,h=!0),d=d>=c.length?c.length-1:d<e.prefix.length?e.prefix.length:d;var i=!1,j=c[d],k=c.slice();j===e.groupSeparator&&(k.splice(d--,1),j=k[d]),j!==e.radixPoint&&j!==e.negationSymbol.front&&j!==e.negationSymbol.back&&(k[d]="?");var l=k.join(""),m=l;if(l.length>0&&e.autoGroup||-1!==l.indexOf(e.groupSeparator)){var n=b.escapeRegex(e.groupSeparator);i=0===l.indexOf(e.groupSeparator),l=l.replace(new RegExp(n,"g"),"");var o=l.split(e.radixPoint);if(l=""===e.radixPoint?l:o[0],l!==e.prefix+"?0"&&l.length>=e.groupSize+e.prefix.length)for(var p=new RegExp("([-+]?[\\d?]+)([\\d?]{"+e.groupSize+"})");p.test(l)&&""!==e.groupSeparator;)l=l.replace(p,"$1"+e.groupSeparator+"$2"),l=l.replace(e.groupSeparator+e.groupSeparator,e.groupSeparator);""!==e.radixPoint&&o.length>1&&(l+=e.radixPoint+o[1])}for(i=m!==l,c.length=l.length,f=0,g=l.length;g>f;f++)c[f]=l.charAt(f);var q=a.inArray("?",c);if(-1===q&&(q=a.inArray(j,c)),c[q]=j,!i&&h)for(f=0,g=e.suffix.length;g>f;f++)c.push(e.suffix.charAt(f));return q=e.numericInput&&isFinite(d)?c.join("").length-q-1:q,e.numericInput&&(c=c.reverse(),a.inArray(e.radixPoint,c)<q&&c.join("").length-e.suffix.length!==q&&(q-=1)),{pos:q,refreshFromBuffer:i,buffer:c}},onBeforeWrite:function(c,d,e,f){var g;if(c&&("blur"===c.type||"checkval"===c.type||"keydown"===c.type)){var h=f.numericInput?d.slice().reverse().join(""):d.join(""),i=h.replace(f.prefix,"");i=i.replace(f.suffix,""),i=i.replace(new RegExp(b.escapeRegex(f.groupSeparator),"g"),""),","===f.radixPoint&&(i=i.replace(f.radixPoint,"."));var j=i.match(new RegExp("[-"+b.escapeRegex(f.negationSymbol.front)+"]","g"));if(j=null!==j&&1===j.length,i=i.replace(new RegExp("[-"+b.escapeRegex(f.negationSymbol.front)+"]","g"),""),i=i.replace(new RegExp(b.escapeRegex(f.negationSymbol.back)+"$"),""),i=i===f.negationSymbol.front?i+"0":i,""!==i&&isFinite(i)){var k=parseFloat(i),l=j?-1*k:k;if(null!==f.min&&isFinite(f.min)&&l<parseFloat(f.min)?(k=Math.abs(f.min),j=f.min<0):null!==f.max&&isFinite(f.max)&&l>parseFloat(f.max)&&(k=Math.abs(f.max),j=f.max<0),i=k.toString().replace(".",f.radixPoint).split(""),isFinite(f.digits)){var m=a.inArray(f.radixPoint,i),n=a.inArray(f.radixPoint,h);-1===m&&(i.push(f.radixPoint),m=i.length-1);for(var o=1;o<=f.digits;o++)f.digitsOptional||void 0!==i[m+o]&&i[m+o]!==f.placeholder.charAt(0)?-1!==n&&void 0!==h[n+o]&&(i[m+o]=i[m+o]||h[n+o]):i[m+o]="0";i[i.length-1]===f.radixPoint&&delete i[i.length-1]}if(k.toString()!==i&&k.toString()+"."!==i||j)return!j||0===k&&"blur"===c.type||(i.unshift(f.negationSymbol.front),i.push(f.negationSymbol.back)),i=(f.prefix+i.join("")).split(""),f.numericInput&&(i=i.reverse()),g=f.postFormat(i,f.numericInput?e:e-1,f),g.buffer&&(g.refreshFromBuffer=g.buffer.join("")!==d.join("")),g}}return f.autoGroup?(g=f.postFormat(d,f.numericInput?e:e-1,f),g.caret=e<=f.prefix.length?g.pos:g.pos+1,g):void 0},regex:{integerPart:function(a){return new RegExp("["+b.escapeRegex(a.negationSymbol.front)+"+]?\\d+")},integerNPart:function(a){return new RegExp("[\\d"+b.escapeRegex(a.groupSeparator)+b.escapeRegex(a.placeholder.charAt(0))+"]+")}},signHandler:function(a,b,c,d,e){if(!d&&e.allowMinus&&"-"===a||e.allowPlus&&"+"===a){var f=b.buffer.join("").match(e.regex.integerPart(e));if(f&&f[0].length>0)return b.buffer[f.index]===("-"===a?"+":e.negationSymbol.front)?"-"===a?""!==e.negationSymbol.back?{pos:f.index,c:e.negationSymbol.front,remove:f.index,caret:c,insert:{pos:b.buffer.length-e.suffix.length-1,c:e.negationSymbol.back}}:{pos:f.index,c:e.negationSymbol.front,remove:f.index,caret:c}:""!==e.negationSymbol.back?{pos:f.index,c:"+",remove:[f.index,b.buffer.length-e.suffix.length-1],caret:c}:{pos:f.index,c:"+",remove:f.index,caret:c}:b.buffer[f.index]===("-"===a?e.negationSymbol.front:"+")?"-"===a&&""!==e.negationSymbol.back?{remove:[f.index,b.buffer.length-e.suffix.length-1],caret:c-1}:{remove:f.index,caret:c-1}:"-"===a?""!==e.negationSymbol.back?{pos:f.index,c:e.negationSymbol.front,caret:c+1,insert:{pos:b.buffer.length-e.suffix.length,c:e.negationSymbol.back}}:{pos:f.index,c:e.negationSymbol.front,caret:c+1}:{pos:f.index,c:a,caret:c+1}}return!1},radixHandler:function(b,c,d,e,f){if(!e&&f.numericInput!==!0&&b===f.radixPoint&&void 0!==f.digits&&(isNaN(f.digits)||parseInt(f.digits)>0)){var g=a.inArray(f.radixPoint,c.buffer),h=c.buffer.join("").match(f.regex.integerPart(f));if(-1!==g&&c.validPositions[g])return c.validPositions[g-1]?{caret:g+1}:{pos:h.index,c:h[0],caret:g+1};if(!h||"0"===h[0]&&h.index+1!==d)return c.buffer[h?h.index:d]="0",{pos:(h?h.index:d)+1,c:f.radixPoint}}return!1},leadingZeroHandler:function(b,c,d,e,f,g){if(!e)if(f.numericInput===!0){var h=c.buffer.slice("").reverse(),i=h[f.prefix.length];if("0"===i)return{pos:d,remove:h.length-f.prefix.length-1}}else{var j=a.inArray(f.radixPoint,c.buffer),k=c.buffer.slice(0,-1!==j?j:void 0).join("").match(f.regex.integerNPart(f));if(k&&(-1===j||j>=d)){var l=-1===j?0:parseInt(c.buffer.slice(j+1).join(""));if(0===k[0].indexOf(""!==f.placeholder?f.placeholder.charAt(0):"0")&&(k.index+1===d||g!==!0&&0===l))return c.buffer.splice(k.index,1),d=k.index,{pos:d,remove:k.index};if("0"===b&&d<=k.index&&k[0]!==f.groupSeparator)return!1}}return!0},definitions:{"~":{validator:function(c,d,e,f,g,h){var i=g.signHandler(c,d,e,f,g);if(!i&&(i=g.radixHandler(c,d,e,f,g),!i&&(i=f?new RegExp("[0-9"+b.escapeRegex(g.groupSeparator)+"]").test(c):new RegExp("[0-9]").test(c),i===!0&&(i=g.leadingZeroHandler(c,d,e,f,g,h),i===!0)))){var j=a.inArray(g.radixPoint,d.buffer);i=-1!==j&&(g.digitsOptional===!1||d.validPositions[e])&&g.numericInput!==!0&&e>j&&!f?{pos:e,remove:e}:{pos:e}}return i},cardinality:1},"+":{validator:function(a,b,c,d,e){var f=e.signHandler(a,b,c,d,e);return!f&&(d&&e.allowMinus&&a===e.negationSymbol.front||e.allowMinus&&"-"===a||e.allowPlus&&"+"===a)&&(f=d||"-"!==a?!0:""!==e.negationSymbol.back?{pos:c,c:"-"===a?e.negationSymbol.front:"+",caret:c+1,insert:{pos:b.buffer.length,c:e.negationSymbol.back}}:{pos:c,c:"-"===a?e.negationSymbol.front:"+",caret:c+1}),f},cardinality:1,placeholder:""},"-":{validator:function(a,b,c,d,e){var f=e.signHandler(a,b,c,d,e);return!f&&d&&e.allowMinus&&a===e.negationSymbol.back&&(f=!0),f},cardinality:1,placeholder:""},":":{validator:function(a,c,d,e,f){var g=f.signHandler(a,c,d,e,f);if(!g){var h="["+b.escapeRegex(f.radixPoint)+"]";g=new RegExp(h).test(a),g&&c.validPositions[d]&&c.validPositions[d].match.placeholder===f.radixPoint&&(g={caret:d+1})}return g?{c:f.radixPoint}:g},cardinality:1,placeholder:function(a){return a.radixPoint}}},onUnMask:function(a,c,d){var e=a.replace(d.prefix,"");return e=e.replace(d.suffix,""),e=e.replace(new RegExp(b.escapeRegex(d.groupSeparator),"g"),""),d.unmaskAsNumber?(""!==d.radixPoint&&-1!==e.indexOf(d.radixPoint)&&(e=e.replace(b.escapeRegex.call(this,d.radixPoint),".")),
10
- Number(e)):e},isComplete:function(a,c){var d=a.join(""),e=a.slice();if(c.postFormat(e,0,c),e.join("")!==d)return!1;var f=d.replace(c.prefix,"");return f=f.replace(c.suffix,""),f=f.replace(new RegExp(b.escapeRegex(c.groupSeparator),"g"),""),","===c.radixPoint&&(f=f.replace(b.escapeRegex(c.radixPoint),".")),isFinite(f)},onBeforeMask:function(a,c){if(""!==c.radixPoint&&isFinite(a))a=a.toString().replace(".",c.radixPoint);else{var d=a.match(/,/g),e=a.match(/\./g);e&&d?e.length>d.length?(a=a.replace(/\./g,""),a=a.replace(",",c.radixPoint)):d.length>e.length?(a=a.replace(/,/g,""),a=a.replace(".",c.radixPoint)):a=a.indexOf(".")<a.indexOf(",")?a.replace(/\./g,""):a=a.replace(/,/g,""):a=a.replace(new RegExp(b.escapeRegex(c.groupSeparator),"g"),"")}if(0===c.digits&&(-1!==a.indexOf(".")?a=a.substring(0,a.indexOf(".")):-1!==a.indexOf(",")&&(a=a.substring(0,a.indexOf(",")))),""!==c.radixPoint&&isFinite(c.digits)&&-1!==a.indexOf(c.radixPoint)){var f=a.split(c.radixPoint),g=f[1].match(new RegExp("\\d*"))[0];if(parseInt(c.digits)<g.toString().length){var h=Math.pow(10,parseInt(c.digits));a=a.replace(b.escapeRegex(c.radixPoint),"."),a=Math.round(parseFloat(a)*h)/h,a=a.toString().replace(".",c.radixPoint)}}return a.toString()},canClearPosition:function(a,b,c,d,e){var f=a.validPositions[b].input,g=f!==e.radixPoint||null!==a.validPositions[b].match.fn&&e.decimalProtect===!1||isFinite(f)||b===c||f===e.groupSeparator||f===e.negationSymbol.front||f===e.negationSymbol.back;return g},onKeyDown:function(c,d,e,f){var g=a(this);if(c.ctrlKey)switch(c.keyCode){case b.keyCode.UP:g.val(parseFloat(this.inputmask.unmaskedvalue())+parseInt(f.step)),g.trigger("setvalue");break;case b.keyCode.DOWN:g.val(parseFloat(this.inputmask.unmaskedvalue())-parseInt(f.step)),g.trigger("setvalue")}}},currency:{prefix:"$ ",groupSeparator:",",alias:"numeric",placeholder:"0",autoGroup:!0,digits:2,digitsOptional:!1,clearMaskOnLostFocus:!1},decimal:{alias:"numeric"},integer:{alias:"numeric",digits:0,radixPoint:""},percentage:{alias:"numeric",digits:2,radixPoint:".",placeholder:"0",autoGroup:!1,min:0,max:100,suffix:" %",allowPlus:!1,allowMinus:!1}}),b}(jQuery,Inputmask),function(a,b){return b.extendAliases({phone:{url:"phone-codes/phone-codes.js",countrycode:"",phoneCodeCache:{},mask:function(b){if(void 0===b.phoneCodeCache[b.url]){var c=[];b.definitions["#"]=b.definitions[9],a.ajax({url:b.url,async:!1,type:"get",dataType:"json",success:function(a){c=a},error:function(a,c,d){alert(d+" - "+b.url)}}),b.phoneCodeCache[b.url]=c.sort(function(a,b){return(a.mask||a)<(b.mask||b)?-1:1})}return b.phoneCodeCache[b.url]},keepStatic:!1,nojumps:!0,nojumpsThreshold:1,onBeforeMask:function(a,b){var c=a.replace(/^0{1,2}/,"").replace(/[\s]/g,"");return(c.indexOf(b.countrycode)>1||-1===c.indexOf(b.countrycode))&&(c="+"+b.countrycode+c),c}},phonebe:{alias:"phone",url:"phone-codes/phone-be.js",countrycode:"32",nojumpsThreshold:4}}),b}(jQuery,Inputmask),function(a,b){return b.extendAliases({Regex:{mask:"r",greedy:!1,repeat:"*",regex:null,regexTokens:null,tokenizer:/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,quantifierFilter:/[0-9]+[^,]/,isComplete:function(a,b){return new RegExp(b.regex).test(a.join(""))},definitions:{r:{validator:function(b,c,d,e,f){function g(a,b){this.matches=[],this.isGroup=a||!1,this.isQuantifier=b||!1,this.quantifier={min:1,max:1},this.repeaterPart=void 0}function h(){var a,b,c=new g,d=[];for(f.regexTokens=[];a=f.tokenizer.exec(f.regex);)switch(b=a[0],b.charAt(0)){case"(":d.push(new g(!0));break;case")":k=d.pop(),d.length>0?d[d.length-1].matches.push(k):c.matches.push(k);break;case"{":case"+":case"*":var e=new g(!1,!0);b=b.replace(/[{}]/g,"");var h=b.split(","),i=isNaN(h[0])?h[0]:parseInt(h[0]),j=1===h.length?i:isNaN(h[1])?h[1]:parseInt(h[1]);if(e.quantifier={min:i,max:j},d.length>0){var l=d[d.length-1].matches;a=l.pop(),a.isGroup||(k=new g(!0),k.matches.push(a),a=k),l.push(a),l.push(e)}else a=c.matches.pop(),a.isGroup||(k=new g(!0),k.matches.push(a),a=k),c.matches.push(a),c.matches.push(e);break;default:d.length>0?d[d.length-1].matches.push(b):c.matches.push(b)}c.matches.length>0&&f.regexTokens.push(c)}function i(b,c){var d=!1;c&&(m+="(",o++);for(var e=0;e<b.matches.length;e++){var f=b.matches[e];if(f.isGroup===!0)d=i(f,!0);else if(f.isQuantifier===!0){var g=a.inArray(f,b.matches),h=b.matches[g-1],k=m;if(isNaN(f.quantifier.max)){for(;f.repeaterPart&&f.repeaterPart!==m&&f.repeaterPart.length>m.length&&!(d=i(h,!0)););d=d||i(h,!0),d&&(f.repeaterPart=m),m=k+f.quantifier.max}else{for(var l=0,n=f.quantifier.max-1;n>l&&!(d=i(h,!0));l++);m=k+"{"+f.quantifier.min+","+f.quantifier.max+"}"}}else if(void 0!==f.matches)for(var p=0;p<f.length&&!(d=i(f[p],c));p++);else{var q;if("["==f.charAt(0)){q=m,q+=f;for(var r=0;o>r;r++)q+=")";var s=new RegExp("^("+q+")$");d=s.test(j)}else for(var t=0,u=f.length;u>t;t++)if("\\"!==f.charAt(t)){q=m,q+=f.substr(0,t+1),q=q.replace(/\|$/,"");for(var r=0;o>r;r++)q+=")";var s=new RegExp("^("+q+")$");if(d=s.test(j))break}m+=f}if(d)break}return c&&(m+=")",o--),d}var j,k,l=c.buffer.slice(),m="",n=!1,o=0;null===f.regexTokens&&h(),l.splice(d,0,b),j=l.join("");for(var p=0;p<f.regexTokens.length;p++){var q=f.regexTokens[p];if(n=i(q,q.isGroup))break}return n},cardinality:1}}}}),b}(jQuery,Inputmask);
1
  /*!
2
  * jquery.inputmask.bundle.js
3
+ * https://github.com/RobinHerbots/Inputmask
4
+ * Copyright (c) 2010 - 2018 Robin Herbots
5
  * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
6
+ * Version: 4.0.0-beta.24
7
  */
8
+
9
+ !function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator;o=function(e){return e},a=[n(2)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};o=function(e,t,n,i){var a=navigator.userAgent,r=f("touchstart"),o=/iemobile/i.test(a),l=/iphone/i.test(a)&&!o;function u(t,n,a){if(!(this instanceof u))return new u(t,n,a);this.el=i,this.events={},this.maskset=i,this.refreshValue=!1,!0!==a&&(e.isPlainObject(t)?n=t:(n=n||{},t&&(n.alias=t)),this.opts=e.extend(!0,{},this.defaults,n),this.noMasksCache=n&&n.definitions!==i,this.userOptions=n||{},this.isRTL=this.opts.numericInput,c(this.opts.alias,n,this.opts))}function c(t,n,a){var r=u.prototype.aliases[t];return r?(r.alias&&c(r.alias,i,a),e.extend(!0,a,r),e.extend(!0,a,n),!0):(null===a.mask&&(a.mask=t),!1)}function p(t,n){function a(t,a,r){var o=!1;if(null!==t&&""!==t||((o=null!==r.regex)?t=(t=r.regex).replace(/^(\^)(.*)(\$)$/,"$2"):(o=!0,t=".*")),1===t.length&&!1===r.greedy&&0!==r.repeat&&(r.placeholder=""),r.repeat>0||"*"===r.repeat||"+"===r.repeat){var s="*"===r.repeat?0:"+"===r.repeat?1:r.repeat;t=r.groupmarker[0]+t+r.groupmarker[1]+r.quantifiermarker[0]+s+","+r.repeat+r.quantifiermarker[1]}var l,c=o?"regex_"+r.regex:r.numericInput?t.split("").reverse().join(""):t;return u.prototype.masksCache[c]===i||!0===n?(l={mask:t,maskToken:u.prototype.analyseMask(t,o,r),validPositions:{},_buffer:i,buffer:i,tests:{},excludes:{},metadata:a,maskLength:i},!0!==n&&(u.prototype.masksCache[c]=l,l=e.extend(!0,{},u.prototype.masksCache[c]))):l=e.extend(!0,{},u.prototype.masksCache[c]),l}if(e.isFunction(t.mask)&&(t.mask=t.mask(t)),e.isArray(t.mask)){if(t.mask.length>1){if(null===t.keepStatic){t.keepStatic="auto";for(var r=0;r<t.mask.length;r++)if(t.mask[r].charAt(0)!==t.mask[0].charAt(0)){t.keepStatic=!0;break}}var o=t.groupmarker[0];return e.each(t.isRTL?t.mask.reverse():t.mask,function(n,a){o.length>1&&(o+=t.groupmarker[1]+t.alternatormarker+t.groupmarker[0]),a.mask===i||e.isFunction(a.mask)?o+=a:o+=a.mask}),a(o+=t.groupmarker[1],t.mask,t)}t.mask=t.mask.pop()}return t.mask&&t.mask.mask!==i&&!e.isFunction(t.mask.mask)?a(t.mask.mask,t.mask,t):a(t.mask,t.mask,t)}function f(e){var t=n.createElement("input"),i="on"+e,a=i in t;return a||(t.setAttribute(i,"return;"),a="function"==typeof t[i]),t=null,a}function m(a,c,p){c=c||this.maskset,p=p||this.opts;var d,h,g,v,k=this,y=this.el,b=this.isRTL,x=!1,P=!1,S=!1,A=!1,C=!1;function E(e,t,n){t=t||0;var a,r,o,s=[],l=0,u=O();do{if(!0===e&&M().validPositions[l])r=(o=M().validPositions[l]).match,a=o.locator.slice(),s.push(!0===n?o.input:!1===n?r.nativeDef:W(l,r));else{r=(o=T(l,a,l-1)).match,a=o.locator.slice();var c=!1!==p.jitMasking?p.jitMasking:r.jit;(!1===c||c===i||l<u||"number"==typeof c&&isFinite(c)&&c>l)&&s.push(!1===n?r.nativeDef:W(l,r))}"auto"===p.keepStatic&&r.newBlockMarker&&null!==r.fn&&(p.keepStatic=l-1),l++}while((g===i||l<g)&&(null!==r.fn||""!==r.def)||t>l);return""===s[s.length-1]&&s.pop(),!1===n&&M().maskLength!==i||(M().maskLength=l-1),s}function M(){return c}function w(e){var t=M();t.buffer=i,!0!==e&&(t.validPositions={},t.p=0)}function O(e,t,n){var a=-1,r=-1,o=n||M().validPositions;for(var s in e===i&&(e=-1),o){var l=parseInt(s);o[l]&&(t||!0!==o[l].generatedInput)&&(l<=e&&(a=l),l>=e&&(r=l))}return-1===a||a==e?r:-1==r?a:e-a<r-e?a:r}function D(t,n,a,r){function o(e){var t=M().validPositions[e];if(t!==i&&null===t.match.fn){var n=M().validPositions[e-1],a=M().validPositions[e+1];return n!==i&&a!==i}return!1}var s,l=t,u=e.extend(!0,{},M().validPositions),c=!1;for(M().p=t,s=n-1;s>=l;s--)M().validPositions[s]!==i&&(!0!==a&&(!M().validPositions[s].match.optionality&&o(s)||!1===p.canClearPosition(M(),s,O(i,!0),r,p))||delete M().validPositions[s]);for(w(!0),s=l+1;s<=O();){for(;M().validPositions[l]!==i;)l++;if(s<l&&(s=l+1),M().validPositions[s]===i&&U(s))s++;else{var f=T(s);!1===c&&u[l]&&u[l].match.def===f.match.def?(M().validPositions[l]=e.extend(!0,{},u[l]),M().validPositions[l].input=f.input,delete M().validPositions[s],s++):R(l,f.match.def)?!1!==K(l,f.input||W(s),!0)&&(delete M().validPositions[s],s++,c=!0):U(s)||(s++,l--),l++}}if(!0!==r)for(s=O(-1,!0);M().validPositions[s]&&!0===M().validPositions[s].generatedInput;)delete M().validPositions[s--];w(!0)}function _(e,t,n){for(var a,r=N(e=e>0?e-1:0,t),o=r.alternation!==i?r.locator[r.alternation].toString().split(","):[],s=0;s<t.length&&(!((a=t[s]).match&&(p.greedy&&!0!==a.match.optionalQuantifier||(!1===a.match.optionality||!1===a.match.newBlockMarker)&&!0!==a.match.optionalQuantifier)&&(r.alternation===i||r.alternation!==a.alternation||a.locator[r.alternation]!==i&&H(a.locator[r.alternation].toString().split(","),o)))||!0===n&&(null!==a.match.fn||/[0-9a-bA-Z]/.test(a.match.def)));s++);return a}function j(e){var t=e.locator[e.alternation];return"string"==typeof t&&t.length>0&&(t=t.split(",")[0]),t!==i?t.toString():""}function F(e,t){for(var n=(e.alternation!=i?e.mloc[j(e)]:e.locator).join("");n.length<t;)n+="0";return n}function T(e,t,n){return M().validPositions[e]||_(e,G(e,t?t.slice():t,n))}function N(e,t){return M().validPositions[e]?M().validPositions[e]:(t||G(e))[0]}function R(e,t){for(var n=!1,i=G(e),a=0;a<i.length;a++)if(i[a].match&&i[a].match.def===t){n=!0;break}return n}function G(t,n,a){var r,o,s,l,u=M().maskToken,c=n?a:0,f=n?n.slice():[0],m=[],d=!1,h=n?n.join(""):"";function g(n,a,o,s){function l(o,s,u){function f(t,n){var i=0===e.inArray(t,n.matches);return i||e.each(n.matches,function(e,a){if(!0===a.isQuantifier?i=f(t,n.matches[e-1]):!0===a.isOptional?i=f(t,a):!0===a.isAlternate&&(i=f(t,a)),i)return!1}),i}function v(t,n,a){var r,o;if((M().tests[t]||M().validPositions[t])&&e.each(M().tests[t]||[M().validPositions[t]],function(e,t){if(t.mloc[n])return r=t,!1;var s=a!==i?a:t.alternation,l=t.locator[s]!==i?t.locator[s].toString().indexOf(n):-1;(o===i||l<o)&&-1!==l&&(r=t,o=l)}),r){var s=r.locator[r.alternation];return(r.mloc[n]||r.mloc[s]||r.locator).slice((a!==i?a:r.alternation)+1)}return a!==i?v(t,n):i}function k(e,t){function n(e){for(var t,n,i=[],a=0,r=e.length;a<r;a++)if("-"===e.charAt(a))for(n=e.charCodeAt(a+1);++t<n;)i.push(String.fromCharCode(t));else t=e.charCodeAt(a),i.push(e.charAt(a));return i.join("")}return p.regex&&null!==e.match.fn&&null!==t.match.fn?-1!==n(t.match.def.replace(/[\[\]]/g,"")).indexOf(n(e.match.def.replace(/[\[\]]/g,""))):e.match.def===t.match.nativeDef}function y(e,t){if(t===i||e.alternation===t.alternation&&-1===e.locator[e.alternation].toString().indexOf(t.locator[t.alternation])){e.mloc=e.mloc||{};var n=e.locator[e.alternation];if(n!==i){if("string"==typeof n&&(n=n.split(",")[0]),e.mloc[n]===i&&(e.mloc[n]=e.locator.slice()),t!==i){for(var a in t.mloc)"string"==typeof a&&(a=a.split(",")[0]),e.mloc[a]===i&&(e.mloc[a]=t.mloc[a]);e.locator[e.alternation]=Object.keys(e.mloc).join(",")}return!0}e.alternation=i}return!1}if(c>5e3)throw"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. "+M().mask;if(c===t&&o.matches===i)return m.push({match:o,locator:s.reverse(),cd:h,mloc:{}}),!0;if(o.matches!==i){if(o.isGroup&&u!==o){if(o=l(n.matches[e.inArray(o,n.matches)+1],s))return!0}else if(o.isOptional){var b=o;if(o=g(o,a,s,u)){if(r=m[m.length-1].match,u!==i||!f(r,b))return!0;d=!0,c=t}}else if(o.isAlternator){var x,P=o,S=[],A=m.slice(),C=s.length,E=a.length>0?a.shift():-1;if(-1===E||"string"==typeof E){var w,O=c,D=a.slice(),_=[];if("string"==typeof E)_=E.split(",");else for(w=0;w<P.matches.length;w++)_.push(w.toString());if(M().excludes[t]){for(var j=_.slice(),F=0,T=M().excludes[t].length;F<T;F++)_.splice(_.indexOf(M().excludes[t][F].toString()),1);0===_.length&&(M().excludes[t]=i,_=j)}(!0===p.keepStatic||isFinite(parseInt(p.keepStatic))&&O>=p.keepStatic)&&(_=_.slice(0,1));for(var N=0;N<_.length;N++){w=parseInt(_[N]),m=[],a=v(c,w,C)||D.slice(),P.matches[w]&&l(P.matches[w],[w].concat(s),u)&&(o=!0),x=m.slice(),c=O,m=[];for(var R=0;R<x.length;R++){var G=x[R],I=!1;G.alternation=G.alternation||C,y(G);for(var B=0;B<S.length;B++){var L=S[B];if("string"!=typeof E||G.alternation!==i&&-1!==e.inArray(G.locator[G.alternation].toString(),_)){if(G.match.nativeDef===L.match.nativeDef){I=!0,y(L,G);break}if(k(G,L)){y(G,L)&&(I=!0,S.splice(S.indexOf(L),0,G));break}if(k(L,G)){y(L,G);break}if(z=L,null===(U=G).match.fn&&null!==z.match.fn&&z.match.fn.test(U.match.def,M(),t,!1,p,!1)){y(G,L)&&(I=!0,S.splice(S.indexOf(L),0,G));break}}}I||S.push(G)}}m=A.concat(S),c=t,d=m.length>0,o=S.length>0,a=D.slice()}else o=l(P.matches[E]||n.matches[E],[E].concat(s),u);if(o)return!0}else if(o.isQuantifier&&u!==n.matches[e.inArray(o,n.matches)-1])for(var H=o,V=a.length>0?a.shift():0;V<(isNaN(H.quantifier.max)?V+1:H.quantifier.max)&&c<=t;V++){var K=n.matches[e.inArray(H,n.matches)-1];if(o=l(K,[V].concat(s),K)){if((r=m[m.length-1].match).optionalQuantifier=V>H.quantifier.min-1,r.jit=V+K.matches.indexOf(r)>=H.quantifier.jit,f(r,K)&&V>H.quantifier.min-1){d=!0,c=t;break}if(H.quantifier.jit!==i&&isNaN(H.quantifier.max)&&r.optionalQuantifier&&M().validPositions[t-1]===i){m.pop(),d=!0,c=t,h=i;break}return!0}}else if(o=g(o,a,s,u))return!0}else c++;var U,z}for(var u=a.length>0?a.shift():0;u<n.matches.length;u++)if(!0!==n.matches[u].isQuantifier){var f=l(n.matches[u],[u].concat(o),s);if(f&&c===t)return f;if(c>t)break}}if(t>-1){if(n===i){for(var v,k=t-1;(v=M().validPositions[k]||M().tests[k])===i&&k>-1;)k--;v!==i&&k>-1&&(o=k,s=v,l=[],e.isArray(s)||(s=[s]),s.length>0&&(s[0].alternation===i?0===(l=_(o,s.slice()).locator.slice()).length&&(l=s[0].locator.slice()):e.each(s,function(e,t){if(""!==t.def)if(0===l.length)l=t.locator.slice();else for(var n=0;n<l.length;n++)t.locator[n]&&-1===l[n].toString().indexOf(t.locator[n])&&(l[n]+=","+t.locator[n])})),h=(f=l).join(""),c=k)}if(M().tests[t]&&M().tests[t][0].cd===h)return M().tests[t];for(var y=f.shift();y<u.length;y++){if(g(u[y],f,[y])&&c===t||c>t)break}}return(0===m.length||d)&&m.push({match:{fn:null,optionality:!0,casing:null,def:"",placeholder:""},locator:[],mloc:{},cd:h}),n!==i&&M().tests[t]?e.extend(!0,[],m):(M().tests[t]=e.extend(!0,[],m),M().tests[t])}function I(){return M()._buffer===i&&(M()._buffer=E(!1,1),M().buffer===i&&(M().buffer=M()._buffer.slice())),M()._buffer}function B(e){return M().buffer!==i&&!0!==e||(M().buffer=E(!0,O(),!0)),M().buffer}function L(e,t,n){var a,r;if(!0===e)w(),e=0,t=n.length;else for(a=e;a<t;a++)delete M().validPositions[a];for(r=e,a=e;a<t;a++)if(w(!0),n[a]!==p.skipOptionalPartCharacter){var o=K(r,n[a],!0,!0);!1!==o&&(w(!0),r=o.caret!==i?o.caret:o.pos+1)}}function H(t,n,a){for(var r,o=p.greedy?n:n.slice(0,1),s=!1,l=a!==i?a.split(","):[],u=0;u<l.length;u++)-1!==(r=t.indexOf(l[u]))&&t.splice(r,1);for(var c=0;c<t.length;c++)if(-1!==e.inArray(t[c],o)){s=!0;break}return s}function V(t,n,a,r,o){var s,l,u,c,f,m,d,h=e.extend(!0,{},M().validPositions),g=!1,v=o!==i?o:O();if(-1===v&&o===i)l=(c=N(s=0)).alternation;else for(;v>=0;v--)if((u=M().validPositions[v])&&u.alternation!==i){if(c&&c.locator[u.alternation]!==u.locator[u.alternation])break;s=v,l=M().validPositions[s].alternation,c=u}if(l!==i){d=parseInt(s),M().excludes[d]=M().excludes[d]||[],!0!==t&&M().excludes[d].push(j(c));var k=[],y=0;for(f=d;f<O(i,!0)+1;f++)(m=M().validPositions[f])&&!0!==m.generatedInput&&/[0-9a-bA-Z]/.test(m.input)?k.push(m.input):f<t&&y++,delete M().validPositions[f];for(;M().excludes[d]&&M().excludes[d].length<10;){var b=-1*y,x=k.slice();for(M().tests[d]=i,w(!0),g=!0;x.length>0;){var P=x.shift();if(P!==p.skipOptionalPartCharacter&&!(g=K(O(i,!0)+1,P,!1,r,!0)))break}if(g&&n!==i){var S=O(t)+1;for(f=d;f<O()+1;f++)((m=M().validPositions[f])===i||null==m.match.fn)&&f<t+b&&b++;g=K((t+=b)>S?S:t,n,a,r,!0)}if(g)break;if(w(),c=N(d),M().validPositions=e.extend(!0,{},h),!M().excludes[d]){g=V(t,n,a,r,d-1);break}var A=j(c);if(-1!==M().excludes[d].indexOf(A)){g=V(t,n,a,r,d-1);break}for(M().excludes[d].push(A),f=d;f<O(i,!0)+1;f++)delete M().validPositions[f]}}return M().excludes[d]=i,g}function K(t,n,a,r,o,s){function l(e){return b?e.begin-e.end>1||e.begin-e.end==1:e.end-e.begin>1||e.end-e.begin==1}a=!0===a;var c=t;function f(n,a,o){var s=!1;return e.each(G(n),function(c,f){var m=f.match;if(B(!0),!1!==(s=null!=m.fn?m.fn.test(a,M(),n,o,p,l(t)):(a===m.def||a===p.skipOptionalPartCharacter)&&""!==m.def&&{c:W(n,m,!0)||m.def,pos:n})){var h=s.c!==i?s.c:a;h=h===p.skipOptionalPartCharacter&&null===m.fn?W(n,m,!0)||m.def:h;var g=n,v=B();if(s.remove!==i&&(e.isArray(s.remove)||(s.remove=[s.remove]),e.each(s.remove.sort(function(e,t){return t-e}),function(e,t){D(t,t+1,!0)})),s.insert!==i&&(e.isArray(s.insert)||(s.insert=[s.insert]),e.each(s.insert.sort(function(e,t){return e-t}),function(e,t){K(t.pos,t.c,!0,r)})),s.refreshFromBuffer){var k=s.refreshFromBuffer;if(L(!0===k?k:k.start,k.end,v),s.pos===i&&s.c===i)return s.pos=O(),!1;if((g=s.pos!==i?s.pos:n)!==n)return s=e.extend(s,K(g,h,!0,r)),!1}else if(!0!==s&&s.pos!==i&&s.pos!==n&&(g=s.pos,L(n,g,B().slice()),g!==n))return s=e.extend(s,K(g,h,!0)),!1;return(!0===s||s.pos!==i||s.c!==i)&&(c>0&&w(!0),d(g,e.extend({},f,{input:function(t,n,i){switch(p.casing||n.casing){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break;case"title":var a=M().validPositions[i-1];t=0===i||a&&a.input===String.fromCharCode(u.keyCode.SPACE)?t.toUpperCase():t.toLowerCase();break;default:if(e.isFunction(p.casing)){var r=Array.prototype.slice.call(arguments);r.push(M().validPositions),t=p.casing.apply(this,r)}}return t}(h,m,g)}),r,l(t))||(s=!1),!1)}}),s}function m(t,n,a){var r;if(t===i)for(t=n-1;t>0&&!M().validPositions[t];t--);for(var o=t;o<n;o++)if(M().validPositions[o]===i&&!U(o,!0)){var s=0==o?N(o):M().validPositions[o-1];if(s){var l,u=F(s),c=G(o).slice(),p=i,f=N(o);if(""===c[c.length-1].match.def&&c.pop(),e.each(c,function(e,t){l=F(t,u.length);var n=Math.abs(l-u);(p===i||n<p)&&null===t.match.fn&&!0!==t.match.optionality&&!0!==t.match.optionalQuantifier&&(p=n,f=t)}),(f=e.extend({},f,{input:W(o,f.match,!0)||f.match.def})).generatedInput=!0,d(o,f,!0),!0!==a){var m=M().validPositions[n].input;M().validPositions[n]=i,r=K(n,m,!0,!0)}}}return r}function d(t,n,a,r){if(r||p.insertMode&&M().validPositions[t]!==i&&a===i){var o,s=e.extend(!0,{},M().validPositions),l=O(i,!0);for(o=t;o<=l;o++)delete M().validPositions[o];M().validPositions[t]=e.extend(!0,{},n);var u,c=!0,f=M().validPositions,d=!1;for(o=u=t;o<=l;o++){var h=s[o];if(h!==i)for(var g=u;""!==N(g).match.def&&(null===h.match.fn&&f[o]&&(!0===f[o].match.optionalQuantifier||!0===f[o].match.optionality)||null!=h.match.fn);){if(g++,!1===d&&s[g]&&s[g].match.def===h.match.def)M().validPositions[g]=e.extend(!0,{},s[g]),M().validPositions[g].input=h.input,m(i,g,!0),u=g,c=!0;else if(R(g,h.match.def)){var v=K(g,h.input,!0,!0);c=!1!==v,u=v.caret||v.insert?O():g,d=!0}else if(!(c=!0===h.generatedInput)&&""===N(g).match.def)break;if(c)break}if(!c)break}if(!c)return M().validPositions=e.extend(!0,{},s),w(!0),!1}else M().validPositions[t]=e.extend(!0,{},n);return w(!0),!0}t.begin!==i&&(c=b&&!l(t)?t.end:t.begin);var h=!0,v=e.extend(!0,{},M().validPositions);if(e.isFunction(p.preValidation)&&!a&&!0!==r&&!0!==s&&(h=p.preValidation(B(),c,n,l(t),p,M())),!0===h){if(m(i,c,!0),l(t)&&(ae(i,u.keyCode.DELETE,t,!0,!0),c=M().p),(g===i||c<g)&&(h=f(c,n,a),(!a||!0===r)&&!1===h&&!0!==s)){var k=M().validPositions[c];if(!k||null!==k.match.fn||k.match.def!==n&&n!==p.skipOptionalPartCharacter){if((p.insertMode||M().validPositions[z(c)]===i)&&!U(c,!0))for(var y=c+1,x=z(c);y<=x;y++)if(!1!==(h=f(y,n,a))){h=m(c,h.pos!==i?h.pos:y)||h,c=y;break}}else h={caret:z(c)}}!1!==h||null===p.keepStatic||!1===p.keepStatic||a||!0===o||(h=V(c,n,a,r)),!0===h&&(h={pos:c})}if(e.isFunction(p.postValidation)&&!1!==h&&!a&&!0!==r&&!0!==s){var P=p.postValidation(B(!0),h,p);if(P!==i){if(P.refreshFromBuffer&&P.buffer){var S=P.refreshFromBuffer;L(!0===S?S:S.start,S.end,P.buffer)}h=!0===P?h:P}}return h&&h.pos===i&&(h.pos=c),!1!==h&&!0!==s||(w(!0),M().validPositions=e.extend(!0,{},v)),h}function U(e,t){var n=T(e).match;if(""===n.def&&(n=N(e).match),null!=n.fn)return n.fn;if(!0!==t&&e>-1){var i=G(e);return i.length>1+(""===i[i.length-1].match.def?1:0)}return!1}function z(e,t){for(var n=e+1;""!==N(n).match.def&&(!0===t&&(!0!==N(n).match.newBlockMarker||!U(n))||!0!==t&&!U(n));)n++;return n}function Q(e,t){var n,i=e;if(i<=0)return 0;for(;--i>0&&(!0===t&&!0!==N(i).match.newBlockMarker||!0!==t&&!U(i)&&((n=G(i)).length<2||2===n.length&&""===n[1].match.def)););return i}function q(t,n,a,r,o){if(r&&e.isFunction(p.onBeforeWrite)){var s=p.onBeforeWrite.call(k,r,n,a,p);if(s){if(s.refreshFromBuffer){var l=s.refreshFromBuffer;L(!0===l?l:l.start,l.end,s.buffer||n),n=B(!0)}a!==i&&(a=s.caret!==i?s.caret:a)}}t!==i&&(t.inputmask._valueSet(n.join("")),a===i||r!==i&&"blur"===r.type?oe(t,a,0===n.length):ee(t,a),!0===o&&(P=!0,e(t).trigger("input")))}function W(t,n,a){if((n=n||N(t).match).placeholder!==i||!0===a)return e.isFunction(n.placeholder)?n.placeholder(p):n.placeholder;if(null===n.fn){if(t>-1&&M().validPositions[t]===i){var r,o=G(t),s=[];if(o.length>1+(""===o[o.length-1].match.def?1:0))for(var l=0;l<o.length;l++)if(!0!==o[l].match.optionality&&!0!==o[l].match.optionalQuantifier&&(null===o[l].match.fn||r===i||!1!==o[l].match.fn.test(r.match.def,M(),t,!0,p))&&(s.push(o[l]),null===o[l].match.fn&&(r=o[l]),s.length>1&&/[0-9a-bA-Z]/.test(s[0].match.def)))return p.placeholder.charAt(t%p.placeholder.length)}return n.def}return p.placeholder.charAt(t%p.placeholder.length)}var $,Z={on:function(t,n,a){var s=function(t){var n=this;if(n.inputmask===i&&"FORM"!==this.nodeName){var s=e.data(n,"_inputmask_opts");s?new u(s).mask(n):Z.off(n)}else{if("setvalue"===t.type||"FORM"===this.nodeName||!(n.disabled||n.readOnly&&!("keydown"===t.type&&t.ctrlKey&&67===t.keyCode||!1===p.tabThrough&&t.keyCode===u.keyCode.TAB))){switch(t.type){case"input":if(!0===P)return P=!1,t.preventDefault();r&&(C=!0);break;case"keydown":x=!1,P=!1;break;case"keypress":if(!0===x)return t.preventDefault();x=!0;break;case"click":if(o||l){var c=arguments;return setTimeout(function(){a.apply(n,c)},0),!1}}var f=a.apply(n,arguments);return C&&(C=!1,setTimeout(function(){ee(n,n.inputmask.caretPos,i,!0)})),!1===f&&(t.preventDefault(),t.stopPropagation()),f}t.preventDefault()}};t.inputmask.events[n]=t.inputmask.events[n]||[],t.inputmask.events[n].push(s),-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).on(n,s):e(t).on(n,s)},off:function(t,n){var i;t.inputmask&&t.inputmask.events&&(n?(i=[])[n]=t.inputmask.events[n]:i=t.inputmask.events,e.each(i,function(n,i){for(;i.length>0;){var a=i.pop();-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).off(n,a):e(t).off(n,a)}delete t.inputmask.events[n]}))}},J={keydownEvent:function(t){var n=this,i=e(n),a=t.keyCode,r=ee(n);if(a===u.keyCode.BACKSPACE||a===u.keyCode.DELETE||l&&a===u.keyCode.BACKSPACE_SAFARI||t.ctrlKey&&a===u.keyCode.X&&!f("cut"))t.preventDefault(),ae(n,a,r),q(n,B(!0),M().p,t,n.inputmask._valueGet()!==B().join("")),n.inputmask._valueGet()===I().join("")?i.trigger("cleared"):!0===ie(B())&&i.trigger("complete");else if(a===u.keyCode.END||a===u.keyCode.PAGE_DOWN){t.preventDefault();var o=z(O());p.insertMode||o!==M().maskLength||t.shiftKey||o--,ee(n,t.shiftKey?r.begin:o,o,!0)}else a===u.keyCode.HOME&&!t.shiftKey||a===u.keyCode.PAGE_UP?(t.preventDefault(),ee(n,0,t.shiftKey?r.begin:0,!0)):(p.undoOnEscape&&a===u.keyCode.ESCAPE||90===a&&t.ctrlKey)&&!0!==t.altKey?(Y(n,!0,!1,d.split("")),i.trigger("click")):a!==u.keyCode.INSERT||t.shiftKey||t.ctrlKey?!0===p.tabThrough&&a===u.keyCode.TAB?(!0===t.shiftKey?(null===N(r.begin).match.fn&&(r.begin=z(r.begin)),r.end=Q(r.begin,!0),r.begin=Q(r.end,!0)):(r.begin=z(r.begin,!0),r.end=z(r.begin,!0),r.end<M().maskLength&&r.end--),r.begin<M().maskLength&&(t.preventDefault(),ee(n,r.begin,r.end))):t.shiftKey||!1===p.insertMode&&(a===u.keyCode.RIGHT?setTimeout(function(){var e=ee(n);ee(n,e.begin)},0):a===u.keyCode.LEFT&&setTimeout(function(){var e=ee(n);ee(n,b?e.begin+1:e.begin-1)},0)):(p.insertMode=!p.insertMode,ee(n,p.insertMode||r.begin!==M().maskLength?r.begin:r.begin-1));p.onKeyDown.call(this,t,B(),ee(n).begin,p),S=-1!==e.inArray(a,p.ignorables)},keypressEvent:function(t,n,a,r,o){var s=this,l=e(s),c=t.which||t.charCode||t.keyCode;if(!(!0===n||t.ctrlKey&&t.altKey)&&(t.ctrlKey||t.metaKey||S))return c===u.keyCode.ENTER&&d!==B().join("")&&(d=B().join(""),setTimeout(function(){l.trigger("change")},0)),!0;if(c){46===c&&!1===t.shiftKey&&""!==p.radixPoint&&(c=p.radixPoint.charCodeAt(0));var f,m=n?{begin:o,end:o}:ee(s),h=String.fromCharCode(c),g=0;if(p._radixDance&&p.numericInput){var v=B().indexOf(p.radixPoint.charAt(0))+1;m.begin<=v&&(c===p.radixPoint.charCodeAt(0)&&(g=1),m.begin-=1,m.end-=1)}M().writeOutBuffer=!0;var k=K(m,h,r);if(!1!==k&&(w(!0),f=k.caret!==i?k.caret:z(k.pos.begin?k.pos.begin:k.pos),M().p=f),f=(p.numericInput&&k.caret===i?Q(f):f)+g,!1!==a&&(setTimeout(function(){p.onKeyValidation.call(s,c,k,p)},0),M().writeOutBuffer&&!1!==k)){var y=B();q(s,y,f,t,!0!==n),!0!==n&&setTimeout(function(){!0===ie(y)&&l.trigger("complete")},0)}if(t.preventDefault(),n)return!1!==k&&(k.forwardPosition=f),k}},pasteEvent:function(n){var i,a=this,r=n.originalEvent||n,o=e(a),s=a.inputmask._valueGet(!0),l=ee(a);b&&(i=l.end,l.end=l.begin,l.begin=i);var u=s.substr(0,l.begin),c=s.substr(l.end,s.length);if(u===(b?I().reverse():I()).slice(0,l.begin).join("")&&(u=""),c===(b?I().reverse():I()).slice(l.end).join("")&&(c=""),b&&(i=u,u=c,c=i),t.clipboardData&&t.clipboardData.getData)s=u+t.clipboardData.getData("Text")+c;else{if(!r.clipboardData||!r.clipboardData.getData)return!0;s=u+r.clipboardData.getData("text/plain")+c}var f=s;if(e.isFunction(p.onBeforePaste)){if(!1===(f=p.onBeforePaste.call(k,s,p)))return n.preventDefault();f||(f=s)}return Y(a,!1,!1,b?f.split("").reverse():f.toString().split("")),q(a,B(),z(O()),n,d!==B().join("")),!0===ie(B())&&o.trigger("complete"),n.preventDefault()},inputFallBackEvent:function(t){var n,i,a=this,r=a.inputmask._valueGet();if(B().join("")!==r){var s=ee(a);if(i=s,"."===(n=r).charAt(i.begin-1)&&""!==p.radixPoint&&((n=n.split(""))[i.begin-1]=p.radixPoint.charAt(0),n=n.join("")),r=function(e,t,n){if(o){var i=t.replace(B().join(""),"");if(1===i.length){var a=t.split("");a.splice(n.begin,0,i),t=a.join("")}}return t}(0,r=n,s),B().join("")!==r){var l=B().join(""),c=!p.numericInput&&r.length>l.length?-1:0,f=r.substr(0,s.begin),m=r.substr(s.begin),d=l.substr(0,s.begin+c),h=l.substr(s.begin+c),g=s,v="",k=!1;if(f!==d){for(var y=(k=f.length>=d.length)?f.length:d.length,b=0;f.charAt(b)===d.charAt(b)&&b<y;b++);k&&(0===c&&(g.begin=b),v+=f.slice(b,g.end))}if(m!==h&&(m.length>h.length?v+=m.slice(0,1):m.length<h.length&&(g.end+=h.length-m.length,k||""===p.radixPoint||""!==m||f.charAt(g.begin+c-1)!==p.radixPoint||(g.begin--,v=p.radixPoint))),q(a,B(),{begin:g.begin+c,end:g.end+c}),v.length>0)e.each(v.split(""),function(t,n){var i=new e.Event("keypress");i.which=n.charCodeAt(0),S=!1,J.keypressEvent.call(a,i)});else{g.begin===g.end-1&&(g.begin=Q(g.begin+1),g.begin===g.end-1?ee(a,g.begin):ee(a,g.begin,g.end));var x=new e.Event("keydown");x.keyCode=p.numericInput?u.keyCode.BACKSPACE:u.keyCode.DELETE,J.keydownEvent.call(a,x),!1===p.insertMode&&ee(a,ee(a).begin-1)}t.preventDefault()}}},setValueEvent:function(t){this.inputmask.refreshValue=!1;var n=(n=t&&t.detail?t.detail[0]:arguments[1])||this.inputmask._valueGet(!0);e.isFunction(p.onBeforeMask)&&(n=p.onBeforeMask.call(k,n,p)||n),n=n.split(""),Y(this,!0,!1,b?n.reverse():n),d=B().join(""),(p.clearMaskOnLostFocus||p.clearIncomplete)&&this.inputmask._valueGet()===I().join("")&&this.inputmask._valueSet("")},focusEvent:function(e){var t=this,n=t.inputmask._valueGet();p.showMaskOnFocus&&(!p.showMaskOnHover||p.showMaskOnHover&&""===n)&&(t.inputmask._valueGet()!==B().join("")?q(t,B(),z(O())):!1===A&&ee(t,z(O()))),!0===p.positionCaretOnTab&&!1===A&&J.clickEvent.apply(t,[e,!0]),d=B().join("")},mouseleaveEvent:function(e){if(A=!1,p.clearMaskOnLostFocus&&n.activeElement!==this){var t=B().slice(),i=this.inputmask._valueGet();i!==this.getAttribute("placeholder")&&""!==i&&(-1===O()&&i===I().join("")?t=[]:ne(t),q(this,t))}},clickEvent:function(t,a){var r=this;setTimeout(function(){if(n.activeElement===r){var t=ee(r);if(a&&(b?t.end=t.begin:t.begin=t.end),t.begin===t.end)switch(p.positionCaretOnClick){case"none":break;case"select":ee(r,0,B().length);break;case"radixFocus":if(function(t){if(""!==p.radixPoint){var n=M().validPositions;if(n[t]===i||n[t].input===W(t)){if(t<z(-1))return!0;var a=e.inArray(p.radixPoint,B());if(-1!==a){for(var r in n)if(a<r&&n[r].input!==W(r))return!1;return!0}}}return!1}(t.begin)){var o=B().join("").indexOf(p.radixPoint);ee(r,p.numericInput?z(o):o);break}default:var s=t.begin,l=O(s,!0),u=z(l);if(s<u)ee(r,U(s,!0)||U(s-1,!0)?s:z(s));else{var c=M().validPositions[l],f=T(u,c?c.match.locator:i,c),m=W(u,f.match);if(""!==m&&B()[u]!==m&&!0!==f.match.optionalQuantifier&&!0!==f.match.newBlockMarker||!U(u,!0)&&f.match.def===m){var d=z(u);(s>=d||s===u)&&(u=d)}ee(r,u)}}}},0)},dblclickEvent:function(e){var t=this;setTimeout(function(){ee(t,0,z(O()))},0)},cutEvent:function(i){var a=this,r=e(a),o=ee(a),s=i.originalEvent||i,l=t.clipboardData||s.clipboardData,c=b?B().slice(o.end,o.begin):B().slice(o.begin,o.end);l.setData("text",b?c.reverse().join(""):c.join("")),n.execCommand&&n.execCommand("copy"),ae(a,u.keyCode.DELETE,o),q(a,B(),M().p,i,d!==B().join("")),a.inputmask._valueGet()===I().join("")&&r.trigger("cleared")},blurEvent:function(t){var n=e(this);if(this.inputmask){var a=this.inputmask._valueGet(),r=B().slice();""===a&&v===i||(p.clearMaskOnLostFocus&&(-1===O()&&a===I().join("")?r=[]:ne(r)),!1===ie(r)&&(setTimeout(function(){n.trigger("incomplete")},0),p.clearIncomplete&&(w(),r=p.clearMaskOnLostFocus?[]:I().slice())),q(this,r,i,t)),d!==B().join("")&&(d=r.join(""),n.trigger("change"))}},mouseenterEvent:function(e){A=!0,n.activeElement!==this&&p.showMaskOnHover&&this.inputmask._valueGet()!==B().join("")&&q(this,B())},submitEvent:function(e){d!==B().join("")&&h.trigger("change"),p.clearMaskOnLostFocus&&-1===O()&&y.inputmask._valueGet&&y.inputmask._valueGet()===I().join("")&&y.inputmask._valueSet(""),p.removeMaskOnSubmit&&(y.inputmask._valueSet(y.inputmask.unmaskedvalue(),!0),setTimeout(function(){q(y,B())},0))},resetEvent:function(e){y.inputmask.refreshValue=!0,setTimeout(function(){h.trigger("setvalue")},0)}};function Y(t,n,a,r,o){var s=r.slice(),l="",c=-1,f=i;if(w(),a||!0===p.autoUnmask)c=z(c);else{var m=I().slice(0,z(-1)).join(""),d=s.join("").match(new RegExp("^"+u.escapeRegex(m),"g"));d&&d.length>0&&(s.splice(0,d.length*m.length),c=z(c))}-1===c?(M().p=z(c),c=0):M().p=c,e.each(s,function(n,r){if(r!==i)if(M().validPositions[n]===i&&s[n]===W(n)&&U(n,!0)&&!1===K(n,s[n],!0,i,i,!0))M().p++;else{var o=new e.Event("_checkval");o.which=r.charCodeAt(0),l+=r;var u=O(i,!0),m=N(u),d=T(u+1,m?m.locator.slice():i,u);if(g=c,v=l,-1===E(!0,0,!1).slice(g,z(g)).join("").indexOf(v)||U(g)||N(g).match.nativeDef!==v.charAt(0)&&(" "!==N(g).match.nativeDef||N(g+1).match.nativeDef!==v.charAt(0))||a||p.autoUnmask){var h=a?n:null==d.match.fn&&d.match.optionality&&u+1<M().p?u+1:M().p;(f=J.keypressEvent.call(t,o,!0,!1,a,h))&&(c=h+1,l="")}else f=J.keypressEvent.call(t,o,!0,!1,!0,u+1);q(i,B(),f.forwardPosition,o,!1)}var g,v}),n&&q(t,B(),f?f.forwardPosition:i,o||new e.Event("checkval"),o&&"input"===o.type)}function X(t){if(t){if(t.inputmask===i)return t.value;t.inputmask&&t.inputmask.refreshValue&&J.setValueEvent.call(t)}var n=[],a=M().validPositions;for(var r in a)a[r].match&&null!=a[r].match.fn&&n.push(a[r].input);var o=0===n.length?"":(b?n.reverse():n).join("");if(e.isFunction(p.onUnMask)){var s=(b?B().slice().reverse():B()).join("");o=p.onUnMask.call(k,s,o,p)}return o}function ee(a,r,o,s){function u(e){return!0===s||!b||"number"!=typeof e||p.greedy&&""===p.placeholder||(e=a.inputmask._valueGet().length-e),e}var c;if(r===i)return a.setSelectionRange?(r=a.selectionStart,o=a.selectionEnd):t.getSelection?(c=t.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode!==a&&c.commonAncestorContainer!==a||(r=c.startOffset,o=c.endOffset):n.selection&&n.selection.createRange&&(o=(r=0-(c=n.selection.createRange()).duplicate().moveStart("character",-a.inputmask._valueGet().length))+c.text.length),{begin:u(r),end:u(o)};if(e.isArray(r)&&(o=b?r[0]:r[1],r=b?r[1]:r[0]),r.begin!==i&&(o=b?r.begin:r.end,r=b?r.end:r.begin),"number"==typeof r){r=u(r),o="number"==typeof(o=u(o))?o:r;var f=parseInt(((a.ownerDocument.defaultView||t).getComputedStyle?(a.ownerDocument.defaultView||t).getComputedStyle(a,null):a.currentStyle).fontSize)*o;if(a.scrollLeft=f>a.scrollWidth?f:0,l||!1!==p.insertMode||r!==o||o++,a.inputmask.caretPos={begin:r,end:o},a.setSelectionRange)a.selectionStart=r,a.selectionEnd=o;else if(t.getSelection){if(c=n.createRange(),a.firstChild===i||null===a.firstChild){var m=n.createTextNode("");a.appendChild(m)}c.setStart(a.firstChild,r<a.inputmask._valueGet().length?r:a.inputmask._valueGet().length),c.setEnd(a.firstChild,o<a.inputmask._valueGet().length?o:a.inputmask._valueGet().length),c.collapse(!0);var d=t.getSelection();d.removeAllRanges(),d.addRange(c)}else a.createTextRange&&((c=a.createTextRange()).collapse(!0),c.moveEnd("character",o),c.moveStart("character",r),c.select());oe(a,{begin:r,end:o})}}function te(t){var n,a,r=B(),o=r.length,s=O(),l={},u=M().validPositions[s],c=u!==i?u.locator.slice():i;for(n=s+1;n<r.length;n++)c=(a=T(n,c,n-1)).locator.slice(),l[n]=e.extend(!0,{},a);var p=u&&u.alternation!==i?u.locator[u.alternation]:i;for(n=o-1;n>s&&(((a=l[n]).match.optionality||a.match.optionalQuantifier&&a.match.newBlockMarker||p&&(p!==l[n].locator[u.alternation]&&null!=a.match.fn||null===a.match.fn&&a.locator[u.alternation]&&H(a.locator[u.alternation].toString().split(","),p.toString().split(","))&&""!==G(n)[0].def))&&r[n]===W(n,a.match));n--)o--;return t?{l:o,def:l[o]?l[o].match:i}:o}function ne(e){for(var t,n=te(),a=e.length,r=M().validPositions[O()];n<a&&!U(n,!0)&&(t=r!==i?T(n,r.locator.slice(""),r):N(n))&&!0!==t.match.optionality&&(!0!==t.match.optionalQuantifier&&!0!==t.match.newBlockMarker||n+1===a&&""===(r!==i?T(n+1,r.locator.slice(""),r):N(n+1)).match.def);)n++;for(;(t=M().validPositions[n-1])&&t&&t.match.optionality&&t.input===p.skipOptionalPartCharacter;)n--;return e.splice(n),e}function ie(t){if(e.isFunction(p.isComplete))return p.isComplete(t,p);if("*"===p.repeat)return i;var n=!1,a=te(!0),r=Q(a.l);if(a.def===i||a.def.newBlockMarker||a.def.optionality||a.def.optionalQuantifier){n=!0;for(var o=0;o<=r;o++){var s=T(o).match;if(null!==s.fn&&M().validPositions[o]===i&&!0!==s.optionality&&!0!==s.optionalQuantifier||null===s.fn&&t[o]!==W(o,s)){n=!1;break}}}return n}function ae(e,t,n,a,r){if((p.numericInput||b)&&(t===u.keyCode.BACKSPACE?t=u.keyCode.DELETE:t===u.keyCode.DELETE&&(t=u.keyCode.BACKSPACE),b)){var o=n.end;n.end=n.begin,n.begin=o}if(t===u.keyCode.BACKSPACE&&(n.end-n.begin<1||!1===p.insertMode)?(n.begin=Q(n.begin),M().validPositions[n.begin]!==i&&M().validPositions[n.begin].input===p.groupSeparator&&n.begin--,!1===p.insertMode&&n.end!==M().maskLength&&n.end--):t===u.keyCode.DELETE&&n.begin===n.end&&(n.end=U(n.end,!0)&&M().validPositions[n.end]&&M().validPositions[n.end].input!==p.radixPoint?n.end+1:z(n.end)+1,M().validPositions[n.begin]!==i&&M().validPositions[n.begin].input===p.groupSeparator&&n.end++),D(n.begin,n.end,!1,a),!0!==a&&null!==p.keepStatic&&!1!==p.keepStatic){var s=V(!0);s&&(n.begin=s.caret!==i?s.caret:s.pos?z(s.pos.begin?s.pos.begin:s.pos):O(-1,!0))}var l=O(n.begin,!0);if(l<n.begin||-1===n.begin)M().p=z(l);else if(!0!==a&&(M().p=n.begin,!0!==r))for(;M().p<l&&M().validPositions[M().p]===i;)M().p++}function re(i){var a=(i.ownerDocument.defaultView||t).getComputedStyle(i,null);var r=n.createElement("div");r.style.width=a.width,r.style.textAlign=a.textAlign,v=n.createElement("div"),i.inputmask.colorMask=v,v.className="im-colormask",i.parentNode.insertBefore(v,i),i.parentNode.removeChild(i),v.appendChild(i),v.appendChild(r),i.style.left=r.offsetLeft+"px",e(v).on("mouseleave",function(e){return J.mouseleaveEvent.call(i,[e])}),e(v).on("mouseenter",function(e){return J.mouseenterEvent.call(i,[e])}),e(v).on("click",function(e){return ee(i,function(e){var t,r=n.createElement("span");for(var o in a)isNaN(o)&&-1!==o.indexOf("font")&&(r.style[o]=a[o]);r.style.textTransform=a.textTransform,r.style.letterSpacing=a.letterSpacing,r.style.position="absolute",r.style.height="auto",r.style.width="auto",r.style.visibility="hidden",r.style.whiteSpace="nowrap",n.body.appendChild(r);var s,l=i.inputmask._valueGet(),u=0;for(t=0,s=l.length;t<=s;t++){if(r.innerHTML+=l.charAt(t)||"_",r.offsetWidth>=e){var c=e-u,p=r.offsetWidth-e;r.innerHTML=l.charAt(t),t=(c-=r.offsetWidth/3)<p?t-1:t;break}u=r.offsetWidth}return n.body.removeChild(r),t}(e.clientX)),J.clickEvent.call(i,[e])}),e(i).on("keydown",function(e){e.shiftKey||!1===p.insertMode||setTimeout(function(){oe(i)},0)})}function oe(e,t,a){var r,o,s,l=[],u=!1,c=0;function f(e){if(e===i&&(e=""),u||null!==r.fn&&o.input!==i)if(u&&(null!==r.fn&&o.input!==i||""===r.def)){u=!1;var t=l.length;l[t-1]=l[t-1]+"</span>",l.push(e)}else l.push(e);else u=!0,l.push("<span class='im-static'>"+e)}if(v!==i){var m=B();if(t===i?t=ee(e):t.begin===i&&(t={begin:t,end:t}),!0!==a){var d=O();do{M().validPositions[c]?(o=M().validPositions[c],r=o.match,s=o.locator.slice(),f(m[c])):(o=T(c,s,c-1),r=o.match,s=o.locator.slice(),(!1===p.jitMasking||c<d||"number"==typeof p.jitMasking&&isFinite(p.jitMasking)&&p.jitMasking>c)&&f(W(c,r))),c++}while((g===i||c<g)&&(null!==r.fn||""!==r.def)||d>c||u);u&&f(),n.activeElement===e&&(l.splice(t.begin,0,t.begin===t.end||t.end>M().maskLength?'<mark class="im-caret" style="border-right-width: 1px;border-right-style: solid;">':'<mark class="im-caret-select">'),l.splice(t.end+1,0,"</mark>"))}var h=v.getElementsByTagName("div")[0];h.innerHTML=l.join(""),e.inputmask.positionColorMask(e,h)}}if(u.prototype.positionColorMask=function(e,t){e.style.left=t.offsetLeft+"px"},a!==i)switch(a.action){case"isComplete":return y=a.el,ie(B());case"unmaskedvalue":return y!==i&&a.value===i||($=a.value,$=(e.isFunction(p.onBeforeMask)&&p.onBeforeMask.call(k,$,p)||$).split(""),Y(i,!1,!1,b?$.reverse():$),e.isFunction(p.onBeforeWrite)&&p.onBeforeWrite.call(k,i,B(),0,p)),X(y);case"mask":!function(t){Z.off(t);var a=function(t,a){var r=t.getAttribute("type"),o="INPUT"===t.tagName&&-1!==e.inArray(r,a.supportsInputType)||t.isContentEditable||"TEXTAREA"===t.tagName;if(!o)if("INPUT"===t.tagName){var l=n.createElement("input");l.setAttribute("type",r),o="text"===l.type,l=null}else o="partial";return!1!==o?function(t){var r,o,l;function u(){return this.inputmask?this.inputmask.opts.autoUnmask?this.inputmask.unmaskedvalue():-1!==O()||!0!==a.nullable?n.activeElement===this&&a.clearMaskOnLostFocus?(b?ne(B().slice()).reverse():ne(B().slice())).join(""):r.call(this):"":r.call(this)}function c(t){o.call(this,t),this.inputmask&&e(this).trigger("setvalue",[t])}if(!t.inputmask.__valueGet){if(!0!==a.noValuePatching){if(Object.getOwnPropertyDescriptor){"function"!=typeof Object.getPrototypeOf&&(Object.getPrototypeOf="object"===s("test".__proto__)?function(e){return e.__proto__}:function(e){return e.constructor.prototype});var p=Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value"):i;p&&p.get&&p.set?(r=p.get,o=p.set,Object.defineProperty(t,"value",{get:u,set:c,configurable:!0})):"INPUT"!==t.tagName&&(r=function(){return this.textContent},o=function(e){this.textContent=e},Object.defineProperty(t,"value",{get:u,set:c,configurable:!0}))}else n.__lookupGetter__&&t.__lookupGetter__("value")&&(r=t.__lookupGetter__("value"),o=t.__lookupSetter__("value"),t.__defineGetter__("value",u),t.__defineSetter__("value",c));t.inputmask.__valueGet=r,t.inputmask.__valueSet=o}t.inputmask._valueGet=function(e){return b&&!0!==e?r.call(this.el).split("").reverse().join(""):r.call(this.el)},t.inputmask._valueSet=function(e,t){o.call(this.el,null===e||e===i?"":!0!==t&&b?e.split("").reverse().join(""):e)},r===i&&(r=function(){return this.value},o=function(e){this.value=e},function(t){if(e.valHooks&&(e.valHooks[t]===i||!0!==e.valHooks[t].inputmaskpatch)){var n=e.valHooks[t]&&e.valHooks[t].get?e.valHooks[t].get:function(e){return e.value},r=e.valHooks[t]&&e.valHooks[t].set?e.valHooks[t].set:function(e,t){return e.value=t,e};e.valHooks[t]={get:function(e){if(e.inputmask){if(e.inputmask.opts.autoUnmask)return e.inputmask.unmaskedvalue();var t=n(e);return-1!==O(i,i,e.inputmask.maskset.validPositions)||!0!==a.nullable?t:""}return n(e)},set:function(t,n){var i,a=e(t);return i=r(t,n),t.inputmask&&a.trigger("setvalue",[n]),i},inputmaskpatch:!0}}}(t.type),l=t,Z.on(l,"mouseenter",function(t){var n=e(this);this.inputmask._valueGet()!==B().join("")&&n.trigger("setvalue")}))}}(t):t.inputmask=i,o}(t,p);if(!1!==a&&(h=e(y=t),-1===(g=y!==i?y.maxLength:i)&&(g=i),!0===p.colorMask&&re(y),r&&("inputmode"in y&&(y.inputmode=p.inputmode,y.setAttribute("inputmode",p.inputmode)),!0===p.disablePredictiveText&&("autocorrect"in y?y.autocorrect=!1:(!0!==p.colorMask&&re(y),y.type="password"))),!0===a&&(Z.on(y,"submit",J.submitEvent),Z.on(y,"reset",J.resetEvent),Z.on(y,"blur",J.blurEvent),Z.on(y,"focus",J.focusEvent),!0!==p.colorMask&&(Z.on(y,"click",J.clickEvent),Z.on(y,"mouseleave",J.mouseleaveEvent),Z.on(y,"mouseenter",J.mouseenterEvent)),Z.on(y,"dblclick",J.dblclickEvent),Z.on(y,"paste",J.pasteEvent),Z.on(y,"dragdrop",J.pasteEvent),Z.on(y,"drop",J.pasteEvent),Z.on(y,"cut",J.cutEvent),Z.on(y,"complete",p.oncomplete),Z.on(y,"incomplete",p.onincomplete),Z.on(y,"cleared",p.oncleared),r||!0===p.inputEventOnly?y.removeAttribute("maxLength"):(Z.on(y,"keydown",J.keydownEvent),Z.on(y,"keypress",J.keypressEvent)),Z.on(y,"compositionstart",e.noop),Z.on(y,"compositionupdate",e.noop),Z.on(y,"compositionend",e.noop),Z.on(y,"keyup",e.noop),Z.on(y,"input",J.inputFallBackEvent),Z.on(y,"beforeinput",e.noop)),Z.on(y,"setvalue",J.setValueEvent),d=I().join(""),""!==y.inputmask._valueGet(!0)||!1===p.clearMaskOnLostFocus||n.activeElement===y)){var o=e.isFunction(p.onBeforeMask)&&p.onBeforeMask.call(k,y.inputmask._valueGet(!0),p)||y.inputmask._valueGet(!0);""!==o&&Y(y,!0,!1,b?o.split("").reverse():o.split(""));var l=B().slice();d=l.join(""),!1===ie(l)&&p.clearIncomplete&&w(),p.clearMaskOnLostFocus&&n.activeElement!==y&&(-1===O()?l=[]:ne(l)),q(y,l),n.activeElement===y&&ee(y,z(O()))}}(y);break;case"format":return $=(e.isFunction(p.onBeforeMask)&&p.onBeforeMask.call(k,a.value,p)||a.value).split(""),Y(i,!0,!1,b?$.reverse():$),a.metadata?{value:b?B().slice().reverse().join(""):B().join(""),metadata:m.call(this,{action:"getmetadata"},c,p)}:b?B().slice().reverse().join(""):B().join("");case"isValid":a.value?($=a.value.split(""),Y(i,!0,!0,b?$.reverse():$)):a.value=B().join("");for(var se=B(),le=te(),ue=se.length-1;ue>le&&!U(ue);ue--);return se.splice(le,ue+1-le),ie(se)&&a.value===B().join("");case"getemptymask":return I().join("");case"remove":if(y&&y.inputmask)e.data(y,"_inputmask_opts",null),h=e(y),y.inputmask._valueSet(p.autoUnmask?X(y):y.inputmask._valueGet(!0)),Z.off(y),y.inputmask.colorMask&&((v=y.inputmask.colorMask).removeChild(y),v.parentNode.insertBefore(y,v),v.parentNode.removeChild(v)),Object.getOwnPropertyDescriptor&&Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(y),"value")&&y.inputmask.__valueGet&&Object.defineProperty(y,"value",{get:y.inputmask.__valueGet,set:y.inputmask.__valueSet,configurable:!0}):n.__lookupGetter__&&y.__lookupGetter__("value")&&y.inputmask.__valueGet&&(y.__defineGetter__("value",y.inputmask.__valueGet),y.__defineSetter__("value",y.inputmask.__valueSet)),y.inputmask=i;return y;case"getmetadata":if(e.isArray(c.metadata)){var ce=E(!0,0,!1).join("");return e.each(c.metadata,function(e,t){if(t.mask===ce)return ce=t,!1}),ce}return c.metadata}}return u.prototype={dataAttribute:"data-inputmask",defaults:{placeholder:"_",optionalmarker:["[","]"],quantifiermarker:["{","}"],groupmarker:["(",")"],alternatormarker:"|",escapeChar:"\\",mask:null,regex:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,removeMaskOnSubmit:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,alias:null,onKeyDown:e.noop,onBeforeMask:null,onBeforePaste:function(t,n){return e.isFunction(n.onBeforeMask)?n.onBeforeMask.call(this,t,n):t},onBeforeWrite:null,onUnMask:null,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",numericInput:!1,rightAlign:!1,undoOnEscape:!0,radixPoint:"",_radixDance:!1,groupSeparator:"",keepStatic:null,positionCaretOnTab:!0,tabThrough:!1,supportsInputType:["text","tel","password","search"],ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123,0,229],isComplete:null,canClearPosition:e.noop,preValidation:null,postValidation:null,staticDefinitionSymbol:i,jitMasking:!1,nullable:!0,inputEventOnly:!1,noValuePatching:!1,positionCaretOnClick:"lvp",casing:null,inputmode:"verbatim",colorMask:!1,disablePredictiveText:!1,importDataAttributes:!0},definitions:{9:{validator:"[0-91-9]",definitionSymbol:"*"},a:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",definitionSymbol:"*"},"*":{validator:"[0-91-9A-Za-zА-яЁёÀ-ÿµ]"}},aliases:{},masksCache:{},mask:function(a){var r=this;return"string"==typeof a&&(a=n.getElementById(a)||n.querySelectorAll(a)),a=a.nodeName?[a]:a,e.each(a,function(n,a){var o=e.extend(!0,{},r.opts);if(function(n,a,r,o){if(!0===a.importDataAttributes){var s,l,u,p,f=function(e,a){null!==(a=a!==i?a:n.getAttribute(o+"-"+e))&&("string"==typeof a&&(0===e.indexOf("on")?a=t[a]:"false"===a?a=!1:"true"===a&&(a=!0)),r[e]=a)},m=n.getAttribute(o);if(m&&""!==m&&(m=m.replace(/'/g,'"'),l=JSON.parse("{"+m+"}")),l)for(p in u=i,l)if("alias"===p.toLowerCase()){u=l[p];break}for(s in f("alias",u),r.alias&&c(r.alias,r,a),a){if(l)for(p in u=i,l)if(p.toLowerCase()===s.toLowerCase()){u=l[p];break}f(s,u)}}return e.extend(!0,a,r),("rtl"===n.dir||a.rightAlign)&&(n.style.textAlign="right"),("rtl"===n.dir||a.numericInput)&&(n.dir="ltr",n.removeAttribute("dir"),a.isRTL=!0),Object.keys(r).length}(a,o,e.extend(!0,{},r.userOptions),r.dataAttribute)){var s=p(o,r.noMasksCache);s!==i&&(a.inputmask!==i&&(a.inputmask.opts.autoUnmask=!0,a.inputmask.remove()),a.inputmask=new u(i,i,!0),a.inputmask.opts=o,a.inputmask.noMasksCache=r.noMasksCache,a.inputmask.userOptions=e.extend(!0,{},r.userOptions),a.inputmask.isRTL=o.isRTL||o.numericInput,a.inputmask.el=a,a.inputmask.maskset=s,e.data(a,"_inputmask_opts",o),m.call(a.inputmask,{action:"mask"}))}}),a&&a[0]&&a[0].inputmask||this},option:function(t,n){return"string"==typeof t?this.opts[t]:"object"===(void 0===t?"undefined":s(t))?(e.extend(this.userOptions,t),this.el&&!0!==n&&this.mask(this.el),this):void 0},unmaskedvalue:function(e){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"unmaskedvalue",value:e})},remove:function(){return m.call(this,{action:"remove"})},getemptymask:function(){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"getemptymask"})},hasMaskedValue:function(){return!this.opts.autoUnmask},isComplete:function(){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"isComplete"})},getmetadata:function(){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"getmetadata"})},isValid:function(e){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"isValid",value:e})},format:function(e,t){return this.maskset=this.maskset||p(this.opts,this.noMasksCache),m.call(this,{action:"format",value:e,metadata:t})},setValue:function(t){this.el&&e(this.el).trigger("setvalue",[t])},analyseMask:function(t,n,a){var r,o,s,l,c,p,f,m=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?(?:\|[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,d=/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,h=!1,g=new y,v=[],k=[];function y(e,t,n,i){this.matches=[],this.openGroup=e||!1,this.alternatorGroup=!1,this.isGroup=e||!1,this.isOptional=t||!1,this.isQuantifier=n||!1,this.isAlternator=i||!1,this.quantifier={min:1,max:1}}function b(t,r,o){o=o!==i?o:t.matches.length;var s=t.matches[o-1];if(n)0===r.indexOf("[")||h&&/\\d|\\s|\\w]/i.test(r)||"."===r?t.matches.splice(o++,0,{fn:new RegExp(r,a.casing?"i":""),optionality:t.isOptional,newBlockMarker:s===i||s.def!==r,casing:null,def:r,placeholder:i,nativeDef:r}):(h&&(r=r[r.length-1]),e.each(r.split(""),function(e,n){s=t.matches[o-1],t.matches.splice(o++,0,{fn:null,optionality:t.isOptional,newBlockMarker:s===i||s.def!==n&&null!==s.fn,casing:null,def:a.staticDefinitionSymbol||n,placeholder:a.staticDefinitionSymbol!==i?n:i,nativeDef:n})})),h=!1;else{var l=(a.definitions?a.definitions[r]:i)||u.prototype.definitions[r];l&&!h?t.matches.splice(o++,0,{fn:l.validator?"string"==typeof l.validator?new RegExp(l.validator,a.casing?"i":""):new function(){this.test=l.validator}:new RegExp("."),optionality:t.isOptional,newBlockMarker:s===i||s.def!==(l.definitionSymbol||r),casing:l.casing,def:l.definitionSymbol||r,placeholder:l.placeholder,nativeDef:r}):(t.matches.splice(o++,0,{fn:null,optionality:t.isOptional,newBlockMarker:s===i||s.def!==r&&null!==s.fn,casing:null,def:a.staticDefinitionSymbol||r,placeholder:a.staticDefinitionSymbol!==i?r:i,nativeDef:r}),h=!1)}}function x(){if(v.length>0){if(b(l=v[v.length-1],o),l.isAlternator){c=v.pop();for(var e=0;e<c.matches.length;e++)c.matches[e].isGroup=!1;v.length>0?(l=v[v.length-1]).matches.push(c):g.matches.push(c)}}else b(g,o)}for(n&&(a.optionalmarker[0]=i,a.optionalmarker[1]=i);r=n?d.exec(t):m.exec(t);){if(o=r[0],n)switch(o.charAt(0)){case"?":o="{0,1}";break;case"+":case"*":o="{"+o+"}"}if(h)x();else switch(o.charAt(0)){case a.escapeChar:h=!0,n&&x();break;case a.optionalmarker[1]:case a.groupmarker[1]:if((s=v.pop()).openGroup=!1,s!==i)if(v.length>0){if((l=v[v.length-1]).matches.push(s),l.isAlternator){c=v.pop();for(var P=0;P<c.matches.length;P++)c.matches[P].isGroup=!1,c.matches[P].alternatorGroup=!1;v.length>0?(l=v[v.length-1]).matches.push(c):g.matches.push(c)}}else g.matches.push(s);else x();break;case a.optionalmarker[0]:v.push(new y(!1,!0));break;case a.groupmarker[0]:v.push(new y(!0));break;case a.quantifiermarker[0]:var S=new y(!1,!1,!0),A=(o=o.replace(/[{}]/g,"")).split("|"),C=A[0].split(","),E=isNaN(C[0])?C[0]:parseInt(C[0]),M=1===C.length?E:isNaN(C[1])?C[1]:parseInt(C[1]);if("*"!==M&&"+"!==M||(E="*"===M?0:1),S.quantifier={min:E,max:M,jit:A[1]},v.length>0){var w=v[v.length-1].matches;(r=w.pop()).isGroup||((f=new y(!0)).matches.push(r),r=f),w.push(r),w.push(S)}else(r=g.matches.pop()).isGroup||(n&&null===r.fn&&"."===r.def&&(r.fn=new RegExp(r.def,a.casing?"i":"")),(f=new y(!0)).matches.push(r),r=f),g.matches.push(r),g.matches.push(S);break;case a.alternatormarker:if(v.length>0){var O=(l=v[v.length-1]).matches[l.matches.length-1];p=l.openGroup&&(O.matches===i||!1===O.isGroup&&!1===O.isAlternator)?v.pop():l.matches.pop()}else p=g.matches.pop();if(p.isAlternator)v.push(p);else if(p.alternatorGroup?(c=v.pop(),p.alternatorGroup=!1):c=new y(!1,!1,!1,!0),c.matches.push(p),v.push(c),p.openGroup){p.openGroup=!1;var D=new y(!0);D.alternatorGroup=!0,v.push(D)}break;default:x()}}for(;v.length>0;)s=v.pop(),g.matches.push(s);return g.matches.length>0&&(!function t(r){r&&r.matches&&e.each(r.matches,function(e,o){var s=r.matches[e+1];(s===i||s.matches===i||!1===s.isQuantifier)&&o&&o.isGroup&&(o.isGroup=!1,n||(b(o,a.groupmarker[0],0),!0!==o.openGroup&&b(o,a.groupmarker[1]))),t(o)})}(g),k.push(g)),(a.numericInput||a.isRTL)&&function e(t){for(var n in t.matches=t.matches.reverse(),t.matches)if(t.matches.hasOwnProperty(n)){var r=parseInt(n);if(t.matches[n].isQuantifier&&t.matches[r+1]&&t.matches[r+1].isGroup){var o=t.matches[n];t.matches.splice(n,1),t.matches.splice(r+1,0,o)}t.matches[n].matches!==i?t.matches[n]=e(t.matches[n]):t.matches[n]=((s=t.matches[n])===a.optionalmarker[0]?s=a.optionalmarker[1]:s===a.optionalmarker[1]?s=a.optionalmarker[0]:s===a.groupmarker[0]?s=a.groupmarker[1]:s===a.groupmarker[1]&&(s=a.groupmarker[0]),s)}var s;return t}(k[0]),k}},u.extendDefaults=function(t){e.extend(!0,u.prototype.defaults,t)},u.extendDefinitions=function(t){e.extend(!0,u.prototype.definitions,t)},u.extendAliases=function(t){e.extend(!0,u.prototype.aliases,t)},u.format=function(e,t,n){return u(t).format(e,n)},u.unmask=function(e,t){return u(t).unmaskedvalue(e)},u.isValid=function(e,t){return u(t).isValid(e)},u.remove=function(t){"string"==typeof t&&(t=n.getElementById(t)||n.querySelectorAll(t)),t=t.nodeName?[t]:t,e.each(t,function(e,t){t.inputmask&&t.inputmask.remove()})},u.setValue=function(t,i){"string"==typeof t&&(t=n.getElementById(t)||n.querySelectorAll(t)),t=t.nodeName?[t]:t,e.each(t,function(t,n){n.inputmask?n.inputmask.setValue(i):e(n).trigger("setvalue",[i])})},u.escapeRegex=function(e){return e.replace(new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"].join("|\\")+")","gim"),"\\$1")},u.keyCode={BACKSPACE:8,BACKSPACE_SAFARI:127,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,RIGHT:39,SPACE:32,TAB:9,UP:38,X:88,CONTROL:17},u},a=[n(0),n(5),n(6)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t){e.exports=jQuery},function(e,t,n){"use strict";n(4),n(7),n(8),n(9);var i=o(n(1)),a=o(n(0)),r=o(n(2));function o(e){return e&&e.__esModule?e:{default:e}}a.default===r.default&&n(10),window.Inputmask=i.default},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator;o=function(e,t){var n={d:["[1-9]|[12][0-9]|3[01]",Date.prototype.setDate,"day",Date.prototype.getDate],dd:["0[1-9]|[12][0-9]|3[01]",Date.prototype.setDate,"day",function(){return o(Date.prototype.getDate.call(this),2)}],ddd:[""],dddd:[""],m:["[1-9]|1[012]",Date.prototype.setMonth,"month",function(){return Date.prototype.getMonth.call(this)+1}],mm:["0[1-9]|1[012]",Date.prototype.setMonth,"month",function(){return o(Date.prototype.getMonth.call(this)+1,2)}],mmm:[""],mmmm:[""],yy:["[0-9]{2}",Date.prototype.setFullYear,"year",function(){return o(Date.prototype.getFullYear.call(this),2)}],yyyy:["[0-9]{4}",Date.prototype.setFullYear,"year",function(){return o(Date.prototype.getFullYear.call(this),4)}],h:["[1-9]|1[0-2]",Date.prototype.setHours,"hours",Date.prototype.getHours],hh:["0[1-9]|1[0-2]",Date.prototype.setHours,"hours",function(){return o(Date.prototype.getHours.call(this),2)}],hhh:["[0-9]+",Date.prototype.setHours,"hours",Date.prototype.getHours],H:["1?[0-9]|2[0-3]",Date.prototype.setHours,"hours",Date.prototype.getHours],HH:["[01][0-9]|2[0-3]",Date.prototype.setHours,"hours",function(){return o(Date.prototype.getHours.call(this),2)}],HHH:["[0-9]+",Date.prototype.setHours,"hours",Date.prototype.getHours],M:["[1-5]?[0-9]",Date.prototype.setMinutes,"minutes",Date.prototype.getMinutes],MM:["[0-5][0-9]",Date.prototype.setMinutes,"minutes",function(){return o(Date.prototype.getMinutes.call(this),2)}],s:["[1-5]?[0-9]",Date.prototype.setSeconds,"seconds",Date.prototype.getSeconds],ss:["[0-5][0-9]",Date.prototype.setSeconds,"seconds",function(){return o(Date.prototype.getSeconds.call(this),2)}],l:["[0-9]{3}",Date.prototype.setMilliseconds,"milliseconds",function(){return o(Date.prototype.getMilliseconds.call(this),3)}],L:["[0-9]{2}",Date.prototype.setMilliseconds,"milliseconds",function(){return o(Date.prototype.getMilliseconds.call(this),2)}],t:["[ap]"],tt:["[ap]m"],T:["[AP]"],TT:["[AP]M"],Z:[""],o:[""],S:[""]},i={isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};function a(e){if(!e.tokenizer){var t=[];for(var i in n)-1===t.indexOf(i[0])&&t.push(i[0]);e.tokenizer="("+t.join("+|")+")+?|.",e.tokenizer=new RegExp(e.tokenizer,"g")}return e.tokenizer}function r(e,i,r){for(var o,s="";o=a(r).exec(e);){if(void 0===i)s+=n[o[0]]?"("+n[o[0]][0]+")":t.escapeRegex(o[0]);else if(n[o[0]])s+=n[o[0]][3].call(i.date);else s+=o[0]}return s}function o(e,t){for(e=String(e),t=t||2;e.length<t;)e="0"+e;return e}function s(e,t,i){var r,o,s,l={date:new Date(1,0,1)},u=e;function c(e,t,n){var a,o;"year"===r?(e[r]=(o=4===(a=t).length?a:(new Date).getFullYear().toString().substr(0,4-a.length)+a,i.min&&i.min.year&&i.max&&i.max.year?(o=o.replace(/[^0-9]/g,""),o+=i.min.year==i.max.year?i.min.year.substr(o.length):(""!==o&&0==i.max.year.indexOf(o)?parseInt(i.max.year)-1:parseInt(i.min.year)+1).toString().substr(o.length)):o=o.replace(/[^0-9]/g,"0"),o),e["raw"+r]=t):e[r]=n.min&&t.match(/[^0-9]/)?n.min[r]:t,void 0!==s&&s.call(e.date,"month"==r?parseInt(e[r])-1:e[r])}if("string"==typeof u){for(;o=a(i).exec(t);){var p=u.slice(0,o[0].length);n.hasOwnProperty(o[0])&&(r=n[o[0]][2],s=n[o[0]][1],c(l,p,i)),u=u.slice(p.length)}return l}}return t.extendAliases({datetime:{mask:function(e){return n.S=e.i18n.ordinalSuffix.join("|"),e.inputFormat=i[e.inputFormat]||e.inputFormat,e.displayFormat=i[e.displayFormat]||e.displayFormat||e.inputFormat,e.outputFormat=i[e.outputFormat]||e.outputFormat||e.inputFormat,e.placeholder=""!==e.placeholder?e.placeholder:e.inputFormat,e.min=s(e.min,e.inputFormat,e),e.max=s(e.max,e.inputFormat,e),e.regex=r(e.inputFormat,void 0,e),null},placeholder:"",inputFormat:"isoDateTime",displayFormat:void 0,outputFormat:void 0,min:null,max:null,i18n:{dayNames:["Mon","Tue","Wed","Thu","Fri","Sat","Sun","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],ordinalSuffix:["st","nd","rd","th"]},postValidation:function(e,t,n){var i,a,r,o,l,u=t,c=s(e.join(""),n.inputFormat,n);return u&&c.date.getTime()==c.date.getTime()&&(o=c,l=u,u=(u=(!isFinite(o.day)||"29"==o.day&&!isFinite(o.rawyear)||new Date(o.date.getFullYear(),isFinite(o.month)?o.month:o.date.getMonth()+1,0).getDate()>=o.day)&&l)&&(i=c,r=!0,(a=n).min&&a.min.date.getTime()==a.min.date.getTime()&&(r=a.min.date.getTime()<=i.date.getTime()),r&&a.max&&a.max.date.getTime()==a.max.date.getTime()&&(r=a.max.date.getTime()>=i.date.getTime()),r)),u},onKeyDown:function(n,i,r,s){if(n.ctrlKey&&n.keyCode===t.keyCode.RIGHT){for(var l,u=new Date,c="";l=a(s).exec(s.inputFormat);)"d"===l[0].charAt(0)?c+=o(u.getDate(),l[0].length):"m"===l[0].charAt(0)?c+=o(u.getMonth()+1,l[0].length):"yyyy"===l[0]?c+=u.getFullYear().toString():"y"===l[0].charAt(0)&&(c+=o(u.getYear(),l[0].length));this.inputmask._valueSet(c),e(this).trigger("setvalue")}},onUnMask:function(e,t,n){return r(n.outputFormat,s(e,n.inputFormat,n),n)},casing:function(e,t,n,i){return 0==t.nativeDef.indexOf("[ap]")?e.toLowerCase():0==t.nativeDef.indexOf("[AP]")?e.toUpperCase():e},insertMode:!1}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i;"function"==typeof Symbol&&Symbol.iterator;void 0===(i=function(){return window}.call(t,n,t,e))||(e.exports=i)},function(e,t,n){"use strict";var i;"function"==typeof Symbol&&Symbol.iterator;void 0===(i=function(){return document}.call(t,n,t,e))||(e.exports=i)},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator;o=function(e,t){return t.extendDefinitions({A:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",casing:"upper"},"&":{validator:"[0-9A-Za-zА-яЁёÀ-ÿµ]",casing:"upper"},"#":{validator:"[0-9A-Fa-f]",casing:"upper"}}),t.extendAliases({url:{definitions:{i:{validator:"."}},mask:"(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",insertMode:!1,autoUnmask:!1,inputmode:"url"},ip:{mask:"i[i[i]].i[i[i]].i[i[i]].i[i[i]]",definitions:{i:{validator:function(e,t,n,i,a){return n-1>-1&&"."!==t.buffer[n-1]?(e=t.buffer[n-1]+e,e=n-2>-1&&"."!==t.buffer[n-2]?t.buffer[n-2]+e:"0"+e):e="00"+e,new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(e)}}},onUnMask:function(e,t,n){return e},inputmode:"numeric"},email:{mask:"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",greedy:!1,onBeforePaste:function(e,t){return(e=e.toLowerCase()).replace("mailto:","")},definitions:{"*":{validator:"[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",casing:"lower"},"-":{validator:"[0-9A-Za-z-]",casing:"lower"}},onUnMask:function(e,t,n){return e},inputmode:"email"},mac:{mask:"##:##:##:##:##:##"},vin:{mask:"V{13}9{4}",definitions:{V:{validator:"[A-HJ-NPR-Za-hj-npr-z\\d]",casing:"upper"}},clearIncomplete:!0,autoUnmask:!0}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator;o=function(e,t,n){function i(e,n){for(var i="",a=0;a<e.length;a++)t.prototype.definitions[e.charAt(a)]||n.definitions[e.charAt(a)]||n.optionalmarker.start===e.charAt(a)||n.optionalmarker.end===e.charAt(a)||n.quantifiermarker.start===e.charAt(a)||n.quantifiermarker.end===e.charAt(a)||n.groupmarker.start===e.charAt(a)||n.groupmarker.end===e.charAt(a)||n.alternatormarker===e.charAt(a)?i+="\\"+e.charAt(a):i+=e.charAt(a);return i}return t.extendAliases({numeric:{mask:function(e){if(0!==e.repeat&&isNaN(e.integerDigits)&&(e.integerDigits=e.repeat),e.repeat=0,e.groupSeparator===e.radixPoint&&e.digits&&"0"!==e.digits&&("."===e.radixPoint?e.groupSeparator=",":","===e.radixPoint?e.groupSeparator=".":e.groupSeparator="")," "===e.groupSeparator&&(e.skipOptionalPartCharacter=n),e.autoGroup=e.autoGroup&&""!==e.groupSeparator,e.autoGroup&&("string"==typeof e.groupSize&&isFinite(e.groupSize)&&(e.groupSize=parseInt(e.groupSize)),isFinite(e.integerDigits))){var t=Math.floor(e.integerDigits/e.groupSize),a=e.integerDigits%e.groupSize;e.integerDigits=parseInt(e.integerDigits)+(0===a?t-1:t),e.integerDigits<1&&(e.integerDigits="*")}e.placeholder.length>1&&(e.placeholder=e.placeholder.charAt(0)),"radixFocus"===e.positionCaretOnClick&&""===e.placeholder&&!1===e.integerOptional&&(e.positionCaretOnClick="lvp"),e.definitions[";"]=e.definitions["~"],e.definitions[";"].definitionSymbol="~",!0===e.numericInput&&(e.positionCaretOnClick="radixFocus"===e.positionCaretOnClick?"lvp":e.positionCaretOnClick,e.digitsOptional=!1,isNaN(e.digits)&&(e.digits=2),e.decimalProtect=!1);var r="[+]";if(r+=i(e.prefix,e),!0===e.integerOptional?r+="~{1,"+e.integerDigits+"}":r+="~{"+e.integerDigits+"}",e.digits!==n){var o=e.decimalProtect?":":e.radixPoint,s=e.digits.toString().split(",");isFinite(s[0]&&s[1]&&isFinite(s[1]))?r+=o+";{"+e.digits+"}":(isNaN(e.digits)||parseInt(e.digits)>0)&&(e.digitsOptional?r+="["+o+";{1,"+e.digits+"}]":r+=o+";{"+e.digits+"}")}return r+=i(e.suffix,e),r+="[-]",e.greedy=!1,r},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,enforceDigitsOnBlur:!1,radixPoint:".",positionCaretOnClick:"radixFocus",groupSize:3,groupSeparator:"",autoGroup:!1,allowMinus:!0,negationSymbol:{front:"-",back:""},integerDigits:"+",integerOptional:!0,prefix:"",suffix:"",rightAlign:!0,decimalProtect:!0,min:null,max:null,step:1,insertMode:!0,autoUnmask:!1,unmaskAsNumber:!1,inputmode:"numeric",preValidation:function(t,i,a,r,o,s){if("-"===a||a===o.negationSymbol.front)return!0===o.allowMinus&&(o.isNegative=o.isNegative===n||!o.isNegative,""===t.join("")||{caret:i,dopost:!0});if(!1===r&&a===o.radixPoint&&o.digits!==n&&(isNaN(o.digits)||parseInt(o.digits)>0)){var l=e.inArray(o.radixPoint,t);if(-1!==l&&s.validPositions[l]!==n)return!0===o.numericInput?i===l:{caret:l+1}}return!0},postValidation:function(i,a,r){var o=r.suffix.split(""),s=r.prefix.split("");if(a.pos===n&&a.caret!==n&&!0!==a.dopost)return a;var l=a.caret!==n?a.caret:a.pos,u=i.slice();r.numericInput&&(l=u.length-l-1,u=u.reverse());var c=u[l];if(c===r.groupSeparator&&(c=u[l+=1]),l===u.length-r.suffix.length-1&&c===r.radixPoint)return a;c!==n&&c!==r.radixPoint&&c!==r.negationSymbol.front&&c!==r.negationSymbol.back&&(u[l]="?",r.prefix.length>0&&l>=(!1===r.isNegative?1:0)&&l<r.prefix.length-1+(!1===r.isNegative?1:0)?s[l-(!1===r.isNegative?1:0)]="?":r.suffix.length>0&&l>=u.length-r.suffix.length-(!1===r.isNegative?1:0)&&(o[l-(u.length-r.suffix.length-(!1===r.isNegative?1:0))]="?")),s=s.join(""),o=o.join("");var p=u.join("").replace(s,"");if(p=(p=(p=(p=p.replace(o,"")).replace(new RegExp(t.escapeRegex(r.groupSeparator),"g"),"")).replace(new RegExp("[-"+t.escapeRegex(r.negationSymbol.front)+"]","g"),"")).replace(new RegExp(t.escapeRegex(r.negationSymbol.back)+"$"),""),isNaN(r.placeholder)&&(p=p.replace(new RegExp(t.escapeRegex(r.placeholder),"g"),"")),p.length>1&&1!==p.indexOf(r.radixPoint)&&("0"===c&&(p=p.replace(/^\?/g,"")),p=p.replace(/^0/g,"")),p.charAt(0)===r.radixPoint&&""!==r.radixPoint&&!0!==r.numericInput&&(p="0"+p),""!==p){if(p=p.split(""),(!r.digitsOptional||r.enforceDigitsOnBlur&&"blur"===a.event)&&isFinite(r.digits)){var f=e.inArray(r.radixPoint,p),m=e.inArray(r.radixPoint,u);-1===f&&(p.push(r.radixPoint),f=p.length-1);for(var d=1;d<=r.digits;d++)r.digitsOptional&&(!r.enforceDigitsOnBlur||"blur"!==a.event)||p[f+d]!==n&&p[f+d]!==r.placeholder.charAt(0)?-1!==m&&u[m+d]!==n&&(p[f+d]=p[f+d]||u[m+d]):p[f+d]=a.placeholder||r.placeholder.charAt(0)}if(!0!==r.autoGroup||""===r.groupSeparator||c===r.radixPoint&&a.pos===n&&!a.dopost)p=p.join("");else{var h=p[p.length-1]===r.radixPoint&&a.c===r.radixPoint;p=t(function(e,t){var n="";if(n+="("+t.groupSeparator+"*{"+t.groupSize+"}){*}",""!==t.radixPoint){var i=e.join("").split(t.radixPoint);i[1]&&(n+=t.radixPoint+"*{"+i[1].match(/^\d*\??\d*/)[0].length+"}")}return n}(p,r),{numericInput:!0,jitMasking:!0,definitions:{"*":{validator:"[0-9?]",cardinality:1}}}).format(p.join("")),h&&(p+=r.radixPoint),p.charAt(0)===r.groupSeparator&&p.substr(1)}}if(r.isNegative&&"blur"===a.event&&(r.isNegative="0"!==p),p=s+p,p+=o,r.isNegative&&(p=r.negationSymbol.front+p,p+=r.negationSymbol.back),p=p.split(""),c!==n)if(c!==r.radixPoint&&c!==r.negationSymbol.front&&c!==r.negationSymbol.back)(l=e.inArray("?",p))>-1?p[l]=c:l=a.caret||0;else if(c===r.radixPoint||c===r.negationSymbol.front||c===r.negationSymbol.back){var g=e.inArray(c,p);-1!==g&&(l=g)}r.numericInput&&(l=p.length-l-1,p=p.reverse());var v={caret:c===n||a.pos!==n?l+(r.numericInput?-1:1):l,buffer:p,refreshFromBuffer:a.dopost||i.join("")!==p.join("")};return v.refreshFromBuffer?v:a},onBeforeWrite:function(i,a,r,o){if(i)switch(i.type){case"keydown":return o.postValidation(a,{caret:r,dopost:!0},o);case"blur":case"checkval":var s;if((l=o).parseMinMaxOptions===n&&(null!==l.min&&(l.min=l.min.toString().replace(new RegExp(t.escapeRegex(l.groupSeparator),"g"),""),","===l.radixPoint&&(l.min=l.min.replace(l.radixPoint,".")),l.min=isFinite(l.min)?parseFloat(l.min):NaN,isNaN(l.min)&&(l.min=Number.MIN_VALUE)),null!==l.max&&(l.max=l.max.toString().replace(new RegExp(t.escapeRegex(l.groupSeparator),"g"),""),","===l.radixPoint&&(l.max=l.max.replace(l.radixPoint,".")),l.max=isFinite(l.max)?parseFloat(l.max):NaN,isNaN(l.max)&&(l.max=Number.MAX_VALUE)),l.parseMinMaxOptions="done"),null!==o.min||null!==o.max){if(s=o.onUnMask(a.join(""),n,e.extend({},o,{unmaskAsNumber:!0})),null!==o.min&&s<o.min)return o.isNegative=o.min<0,o.postValidation(o.min.toString().replace(".",o.radixPoint).split(""),{caret:r,dopost:!0,placeholder:"0"},o);if(null!==o.max&&s>o.max)return o.isNegative=o.max<0,o.postValidation(o.max.toString().replace(".",o.radixPoint).split(""),{caret:r,dopost:!0,placeholder:"0"},o)}return o.postValidation(a,{caret:r,placeholder:"0",event:"blur"},o);case"_checkval":return{caret:r}}var l},regex:{integerPart:function(e,n){return n?new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?"):new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?\\d+")},integerNPart:function(e){return new RegExp("[\\d"+t.escapeRegex(e.groupSeparator)+t.escapeRegex(e.placeholder.charAt(0))+"]+")}},definitions:{"~":{validator:function(e,i,a,r,o,s){var l=r?new RegExp("[0-9"+t.escapeRegex(o.groupSeparator)+"]").test(e):new RegExp("[0-9]").test(e);if(!0===l){if(!0!==o.numericInput&&i.validPositions[a]!==n&&"~"===i.validPositions[a].match.def&&!s){var u=i.buffer.join(""),c=(u=(u=u.replace(new RegExp("[-"+t.escapeRegex(o.negationSymbol.front)+"]","g"),"")).replace(new RegExp(t.escapeRegex(o.negationSymbol.back)+"$"),"")).split(o.radixPoint);c.length>1&&(c[1]=c[1].replace(/0/g,o.placeholder.charAt(0))),"0"===c[0]&&(c[0]=c[0].replace(/0/g,o.placeholder.charAt(0))),u=c[0]+o.radixPoint+c[1]||"";var p=i._buffer.join("");for(u===o.radixPoint&&(u=p);null===u.match(t.escapeRegex(p)+"$");)p=p.slice(1);l=(u=(u=u.replace(p,"")).split(""))[a]===n?{pos:a,remove:a}:{pos:a}}}else r||e!==o.radixPoint||i.validPositions[a-1]!==n||(i.buffer[a]="0",l={pos:a+1});return l},cardinality:1},"+":{validator:function(e,t,n,i,a){return a.allowMinus&&("-"===e||e===a.negationSymbol.front)},cardinality:1,placeholder:""},"-":{validator:function(e,t,n,i,a){return a.allowMinus&&e===a.negationSymbol.back},cardinality:1,placeholder:""},":":{validator:function(e,n,i,a,r){var o="["+t.escapeRegex(r.radixPoint)+"]",s=new RegExp(o).test(e);return s&&n.validPositions[i]&&n.validPositions[i].match.placeholder===r.radixPoint&&(s={caret:i+1}),s},cardinality:1,placeholder:function(e){return e.radixPoint}}},onUnMask:function(e,n,i){if(""===n&&!0===i.nullable)return n;var a=e.replace(i.prefix,"");return a=(a=a.replace(i.suffix,"")).replace(new RegExp(t.escapeRegex(i.groupSeparator),"g"),""),""!==i.placeholder.charAt(0)&&(a=a.replace(new RegExp(i.placeholder.charAt(0),"g"),"0")),i.unmaskAsNumber?(""!==i.radixPoint&&-1!==a.indexOf(i.radixPoint)&&(a=a.replace(t.escapeRegex.call(this,i.radixPoint),".")),a=(a=a.replace(new RegExp("^"+t.escapeRegex(i.negationSymbol.front)),"-")).replace(new RegExp(t.escapeRegex(i.negationSymbol.back)+"$"),""),Number(a)):a},isComplete:function(e,n){var i=e.join("");if(e.slice().join("")!==i)return!1;var a=i.replace(n.prefix,"");return a=(a=a.replace(n.suffix,"")).replace(new RegExp(t.escapeRegex(n.groupSeparator)+"([0-9]{3})","g"),"$1"),","===n.radixPoint&&(a=a.replace(t.escapeRegex(n.radixPoint),".")),isFinite(a)},onBeforeMask:function(e,i){if(i.isNegative=n,"number"==typeof e&&""!==i.radixPoint&&(e=e.toString().replace(".",i.radixPoint)),e=e.toString().charAt(e.length-1)===i.radixPoint?e.toString().substr(0,e.length-1):e.toString(),""!==i.radixPoint&&isFinite(e)){var a=e.split("."),r=""!==i.groupSeparator?parseInt(i.groupSize):0;2===a.length&&(a[0].length>r||a[1].length>r||a[0].length<=r&&a[1].length<r)&&(e=e.replace(".",i.radixPoint))}var o=e.match(/,/g),s=e.match(/\./g);if(e=s&&o?s.length>o.length?(e=e.replace(/\./g,"")).replace(",",i.radixPoint):o.length>s.length?(e=e.replace(/,/g,"")).replace(".",i.radixPoint):e.indexOf(".")<e.indexOf(",")?e.replace(/\./g,""):e.replace(/,/g,""):e.replace(new RegExp(t.escapeRegex(i.groupSeparator),"g"),""),0===i.digits&&(-1!==e.indexOf(".")?e=e.substring(0,e.indexOf(".")):-1!==e.indexOf(",")&&(e=e.substring(0,e.indexOf(",")))),""!==i.radixPoint&&isFinite(i.digits)&&-1!==e.indexOf(i.radixPoint)){var l=e.split(i.radixPoint)[1].match(new RegExp("\\d*"))[0];if(parseInt(i.digits)<l.toString().length){var u=Math.pow(10,parseInt(i.digits));e=e.replace(t.escapeRegex(i.radixPoint),"."),e=(e=Math.round(parseFloat(e)*u)/u).toString().replace(".",i.radixPoint)}}return e},canClearPosition:function(e,t,n,i,a){var r=e.validPositions[t],o=r.input!==a.radixPoint||null!==e.validPositions[t].match.fn&&!1===a.decimalProtect||r.input===a.radixPoint&&e.validPositions[t+1]&&null===e.validPositions[t+1].match.fn||isFinite(r.input)||t===n||r.input===a.groupSeparator||r.input===a.negationSymbol.front||r.input===a.negationSymbol.back;return!o||"+"!==r.match.nativeDef&&"-"!==r.match.nativeDef||(a.isNegative=!1),o},onKeyDown:function(n,i,a,r){var o=e(this);if(n.ctrlKey)switch(n.keyCode){case t.keyCode.UP:o.val(parseFloat(this.inputmask.unmaskedvalue())+parseInt(r.step)),o.trigger("setvalue");break;case t.keyCode.DOWN:o.val(parseFloat(this.inputmask.unmaskedvalue())-parseInt(r.step)),o.trigger("setvalue")}}},currency:{prefix:"$ ",groupSeparator:",",alias:"numeric",placeholder:"0",autoGroup:!0,digits:2,digitsOptional:!1,clearMaskOnLostFocus:!1},decimal:{alias:"numeric"},integer:{alias:"numeric",digits:0,radixPoint:""},percentage:{alias:"numeric",digits:2,digitsOptional:!0,radixPoint:".",placeholder:"0",autoGroup:!1,min:0,max:100,suffix:" %",allowMinus:!1}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator;o=function(e,t){function n(e,t){var n=(e.mask||e).replace(/#/g,"0").replace(/\)/,"0").replace(/[+()#-]/g,""),i=(t.mask||t).replace(/#/g,"0").replace(/\)/,"0").replace(/[+()#-]/g,"");return n.localeCompare(i)}var i=t.prototype.analyseMask;return t.prototype.analyseMask=function(t,n,a){var r={};return a.phoneCodes&&(a.phoneCodes&&a.phoneCodes.length>1e3&&(function e(n,i,a){i=i||"",a=a||r,""!==i&&(a[i]={});for(var o="",s=a[i]||a,l=n.length-1;l>=0;l--)s[o=(t=n[l].mask||n[l]).substr(0,1)]=s[o]||[],s[o].unshift(t.substr(1)),n.splice(l,1);for(var u in s)s[u].length>500&&e(s[u].slice(),u,s)}((t=t.substr(1,t.length-2)).split(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])),t=function t(n){var i="",r=[];for(var o in n)e.isArray(n[o])?1===n[o].length?r.push(o+n[o]):r.push(o+a.groupmarker[0]+n[o].join(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])+a.groupmarker[1]):r.push(o+t(n[o]));return 1===r.length?i+=r[0]:i+=a.groupmarker[0]+r.join(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])+a.groupmarker[1],i}(r)),t=t.replace(/9/g,"\\9")),i.call(this,t,n,a)},t.extendAliases({abstractphone:{groupmarker:["<",">"],countrycode:"",phoneCodes:[],keepStatic:"auto",mask:function(e){return e.definitions={"#":t.prototype.definitions[9]},e.phoneCodes.sort(n)},onBeforeMask:function(e,t){var n=e.replace(/^0{1,2}/,"").replace(/[\s]/g,"");return(n.indexOf(t.countrycode)>1||-1===n.indexOf(t.countrycode))&&(n="+"+t.countrycode+n),n},onUnMask:function(e,t,n){return e.replace(/[()#-]/g,"")},inputmode:"tel"}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};o=function(e,t){return void 0===e.fn.inputmask&&(e.fn.inputmask=function(n,i){var a,r=this[0];if(void 0===i&&(i={}),"string"==typeof n)switch(n){case"unmaskedvalue":return r&&r.inputmask?r.inputmask.unmaskedvalue():e(r).val();case"remove":return this.each(function(){this.inputmask&&this.inputmask.remove()});case"getemptymask":return r&&r.inputmask?r.inputmask.getemptymask():"";case"hasMaskedValue":return!(!r||!r.inputmask)&&r.inputmask.hasMaskedValue();case"isComplete":return!r||!r.inputmask||r.inputmask.isComplete();case"getmetadata":return r&&r.inputmask?r.inputmask.getmetadata():void 0;case"setvalue":t.setValue(r,i);break;case"option":if("string"!=typeof i)return this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(i)});if(r&&void 0!==r.inputmask)return r.inputmask.option(i);break;default:return i.alias=n,a=new t(i),this.each(function(){a.mask(this)})}else{if("object"==(void 0===n?"undefined":s(n)))return a=new t(n),void 0===n.mask&&void 0===n.alias?this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(n);a.mask(this)}):this.each(function(){a.mask(this)});if(void 0===n)return this.each(function(){(a=new t(i)).mask(this)})}}),e.fn.inputmask},a=[n(2),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)}]);
 
assets/js/wpforms.js CHANGED
@@ -397,6 +397,19 @@
397
  $this.parent().prevAll().andSelf().addClass( 'selected' );
398
  });
399
 
 
 
 
 
 
 
 
 
 
 
 
 
 
400
  // OptinMonster: initialize again after OM is finished.
401
  // This is to accommodate moving the form in the DOM.
402
  $(document).on('OptinMonsterAfterInject', function() {
397
  $this.parent().prevAll().andSelf().addClass( 'selected' );
398
  });
399
 
400
+ // Checkbox/Radio/Payment checkbox: toggle selected state class.
401
+ $( document ).on( 'change', '.wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input', function() {
402
+
403
+ var $this = $( this );
404
+
405
+ if ( 'radio' === $this.attr( 'type' ) ) {
406
+ $( this ).closest( 'ul' ).find( 'li' ).removeClass( 'wpforms-selected' );
407
+ $( this ).closest( 'li' ).addClass( 'wpforms-selected' );
408
+ } else {
409
+ $( this ).closest( 'li' ).toggleClass( 'wpforms-selected' );
410
+ }
411
+ })
412
+
413
  // OptinMonster: initialize again after OM is finished.
414
  // This is to accommodate moving the form in the DOM.
415
  $(document).on('OptinMonsterAfterInject', function() {
changelog.txt CHANGED
@@ -1,5 +1,22 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  = 1.4.4.1 =
4
  - Changed: Textdomain loading to a later priority.
5
  - Changed: Allow the `WPForms_Builder` class to be accessible.
1
  == Changelog ==
2
 
3
+ = 1.4.5 =
4
+ - Added: Image choices feature with Checkbox and Multiple Choice fields; Images can now be uploaded and displayed with your choices!
5
+ - Added: Custom input masks for Single Line Text fields (Advanced Options).
6
+ - Added: No-Conflict Mode for Google reCAPTCHA (Settings > reCAPTCHA). Removes other reCAPTCHA occurrences, to prevent conflicts.
7
+ - Added: SSL Connection Test (Tools > System Info). Quicky verify that your web host correct supports SSL connections.
8
+ - Added: `{user_full_name}` Smart Tag, displays users first and last name.
9
+ - Added: Discalimer / Terms of Service Display formatting option for Checkbox fields (Advanced Options).
10
+ - Added: Basic CSS styling for `disabled` fields.
11
+ - Added: Uninstall routine, available from Settings > Misc.
12
+ - Added: Form builder performance improvements. Editing a form with hundreds of fields is now 500%+ faster!
13
+ - Changed: New Settings tab: Misc, moved Hide Annoucements option to new tab.
14
+ - Changed: `{user_display}` Smart Tag diplays user's display name (in most cases, this is the user's name).
15
+ - Changed: All `<form>` attributes can now be changed via `wpforms_frontend_form_atts` filter.
16
+ - Fixed: Form builder tab icon alignment conflicts with third party plugin CSS.
17
+ - Fixed: Smart Tag dropdown display issues in the form builder.
18
+ - Fixed: Form builder drag and drop area disappearing if all fields are removed from a form.
19
+
20
  = 1.4.4.1 =
21
  - Changed: Textdomain loading to a later priority.
22
  - Changed: Allow the `WPForms_Builder` class to be accessible.
includes/admin/admin.php CHANGED
@@ -118,7 +118,7 @@ function wpforms_admin_scripts() {
118
  // Main admin script.
119
  wp_enqueue_script(
120
  'wpforms-admin',
121
- WPFORMS_PLUGIN_URL . "assets/js{$dir}/admin{$suffix}.js",
122
  array( 'jquery' ),
123
  WPFORMS_VERSION,
124
  false
@@ -158,6 +158,7 @@ function wpforms_admin_scripts() {
158
  'provider_delete_confirm' => esc_html__( 'Are you sure you want to disconnect this account?', 'wpforms' ),
159
  'provider_auth_error' => esc_html__( 'Could not authenticate with the provider.', 'wpforms' ),
160
  'save_refresh' => esc_html__( 'Save and Refresh', 'wpforms' ),
 
161
  'upgrade_completed' => esc_html__( 'Upgrade was successfully completed!', 'wpforms' ),
162
  'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms' ),
163
  'upload_image_button' => esc_html__( 'Use Image', 'wpforms' ),
118
  // Main admin script.
119
  wp_enqueue_script(
120
  'wpforms-admin',
121
+ WPFORMS_PLUGIN_URL . "assets/js/admin{$suffix}.js",
122
  array( 'jquery' ),
123
  WPFORMS_VERSION,
124
  false
158
  'provider_delete_confirm' => esc_html__( 'Are you sure you want to disconnect this account?', 'wpforms' ),
159
  'provider_auth_error' => esc_html__( 'Could not authenticate with the provider.', 'wpforms' ),
160
  'save_refresh' => esc_html__( 'Save and Refresh', 'wpforms' ),
161
+ 'testing' => esc_html__( 'Testing', 'wpforms' ),
162
  'upgrade_completed' => esc_html__( 'Upgrade was successfully completed!', 'wpforms' ),
163
  'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms' ),
164
  'upload_image_button' => esc_html__( 'Use Image', 'wpforms' ),
includes/admin/ajax-actions.php CHANGED
@@ -346,11 +346,12 @@ function wpforms_builder_dynamic_source() {
346
  add_action( 'wp_ajax_wpforms_builder_dynamic_source', 'wpforms_builder_dynamic_source' );
347
 
348
  /**
349
- * Install or activate a plugin to be used for importing.
 
350
  *
351
- * @since 1.4.2
352
  */
353
- function wpforms_tools_import_form() {
354
 
355
  // Run a security check.
356
  check_ajax_referer( 'wpforms-admin', 'nonce' );
@@ -359,6 +360,19 @@ function wpforms_tools_import_form() {
359
  if ( ! wpforms_current_user_can() ) {
360
  wp_send_json_error();
361
  }
362
- }
363
 
364
- add_action( 'wp_ajax_wpforms_tools_import_form', 'wpforms_tools_import_form' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  add_action( 'wp_ajax_wpforms_builder_dynamic_source', 'wpforms_builder_dynamic_source' );
347
 
348
  /**
349
+ * Perform test connection to verify that the current web host can successfully
350
+ * make outbound SSL connections.
351
  *
352
+ * @since 1.4.5
353
  */
354
+ function wpforms_verify_ssl() {
355
 
356
  // Run a security check.
357
  check_ajax_referer( 'wpforms-admin', 'nonce' );
360
  if ( ! wpforms_current_user_can() ) {
361
  wp_send_json_error();
362
  }
 
363
 
364
+ $response = wp_remote_post( 'https://wpforms.com/connection-test.php' );
365
+ $response_code = wp_remote_retrieve_response_code( $response );
366
+
367
+ if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
368
+ wp_send_json_success( array(
369
+ 'msg' => esc_html__( 'Success! Your server can make SSL connections.', 'wpforms' ),
370
+ ) );
371
+ } else {
372
+ wp_send_json_error( array(
373
+ 'msg' => esc_html__( 'There was an error and the connection failed. Please contact your web host with the technical details below.', 'wpforms' ),
374
+ 'debug' => '<pre>'. print_r( map_deep( $response, 'wp_strip_all_tags' ), true ) . '</pre>',
375
+ ) );
376
+ }
377
+ }
378
+ add_action( 'wp_ajax_wpforms_verify_ssl', 'wpforms_verify_ssl' );
includes/admin/builder/class-builder.php CHANGED
@@ -184,6 +184,8 @@ class WPForms_Builder {
184
 
185
  do_action( 'wpforms_builder_enqueues_before', $this->view );
186
 
 
 
187
  /*
188
  * CSS.
189
  */
@@ -216,12 +218,19 @@ class WPForms_Builder {
216
  );
217
 
218
  wp_enqueue_style(
219
- 'wpforms-builder',
220
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder.css',
221
  null,
222
  WPFORMS_VERSION
223
  );
224
 
 
 
 
 
 
 
 
225
  /*
226
  * JavaScript.
227
  */
@@ -230,13 +239,6 @@ class WPForms_Builder {
230
  wp_enqueue_script( 'jquery-ui-draggable' );
231
  wp_enqueue_script( 'wp-util' );
232
 
233
- wp_enqueue_script(
234
- 'serialize-object',
235
- WPFORMS_PLUGIN_URL . 'assets/js/jquery.serialize-object.min.js',
236
- array( 'jquery' ),
237
- '2.5.0'
238
- );
239
-
240
  wp_enqueue_script(
241
  'tooltipster',
242
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.tooltipster.min.js',
@@ -289,7 +291,7 @@ class WPForms_Builder {
289
  wp_enqueue_script(
290
  'wpforms-utils',
291
  WPFORMS_PLUGIN_URL . 'assets/js/admin-utils.js',
292
- array( 'serialize-object' ),
293
  WPFORMS_VERSION
294
  );
295
 
@@ -325,6 +327,7 @@ class WPForms_Builder {
325
  'fields_available' => esc_html__( 'Available Fields', 'wpforms' ),
326
  'fields_unavailable' => esc_html__( 'No fields available', 'wpforms' ),
327
  'heads_up' => esc_html__( 'Heads up!', 'wpforms' ),
 
328
  'nonce' => wp_create_nonce( 'wpforms-builder' ),
329
  'no_email_fields' => esc_html__( 'No email fields', 'wpforms' ),
330
  'notification_delete' => esc_html__( 'Are you sure you want to delete this notification?', 'wpforms' ),
@@ -374,6 +377,7 @@ class WPForms_Builder {
374
  'operator_ends' => esc_html__( 'ends with', 'wpforms' ),
375
  'payments_entries_off' => esc_html__( 'Form entries must be stored to accept payments. Please enable saving form entries in the General settings first.', 'wpforms' ),
376
  'previous' => esc_html__( 'Previous', 'wpforms' ),
 
377
  'rule_create' => esc_html__( 'Create new rule', 'wpforms' ),
378
  'rule_create_group' => esc_html__( 'Add new group', 'wpforms' ),
379
  'rule_delete' => esc_html__( 'Delete rule', 'wpforms' ),
@@ -382,6 +386,9 @@ class WPForms_Builder {
382
  'smart_tags_hide' => esc_html__( 'Hide Smart Tags', 'wpforms' ),
383
  'select_field' => esc_html__( '-- Select Field --', 'wpforms' ),
384
  'select_choice' => esc_html__( '-- Select Choice --', 'wpforms' ),
 
 
 
385
  );
386
  $strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
387
 
@@ -455,7 +462,7 @@ class WPForms_Builder {
455
  $form_id = $this->form ? absint( $this->form->ID ) : '';
456
  ?>
457
 
458
- <div id="wpforms-builder">
459
 
460
  <div id="wpforms-builder-overlay">
461
 
@@ -537,5 +544,4 @@ class WPForms_Builder {
537
  <?php
538
  }
539
  }
540
-
541
  WPForms_Builder::instance();
184
 
185
  do_action( 'wpforms_builder_enqueues_before', $this->view );
186
 
187
+ $min = wpforms_get_min_suffix();
188
+
189
  /*
190
  * CSS.
191
  */
218
  );
219
 
220
  wp_enqueue_style(
221
+ 'wpforms-builder-legacy',
222
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder.css',
223
  null,
224
  WPFORMS_VERSION
225
  );
226
 
227
+ wp_enqueue_style(
228
+ 'wpforms-builder',
229
+ WPFORMS_PLUGIN_URL . "assets/css/builder{$min}.css",
230
+ null,
231
+ WPFORMS_VERSION
232
+ );
233
+
234
  /*
235
  * JavaScript.
236
  */
239
  wp_enqueue_script( 'jquery-ui-draggable' );
240
  wp_enqueue_script( 'wp-util' );
241
 
 
 
 
 
 
 
 
242
  wp_enqueue_script(
243
  'tooltipster',
244
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.tooltipster.min.js',
291
  wp_enqueue_script(
292
  'wpforms-utils',
293
  WPFORMS_PLUGIN_URL . 'assets/js/admin-utils.js',
294
+ array(),
295
  WPFORMS_VERSION
296
  );
297
 
327
  'fields_available' => esc_html__( 'Available Fields', 'wpforms' ),
328
  'fields_unavailable' => esc_html__( 'No fields available', 'wpforms' ),
329
  'heads_up' => esc_html__( 'Heads up!', 'wpforms' ),
330
+ 'image_placeholder' => WPFORMS_PLUGIN_URL . 'assets/images/placeholder-200x125.png',
331
  'nonce' => wp_create_nonce( 'wpforms-builder' ),
332
  'no_email_fields' => esc_html__( 'No email fields', 'wpforms' ),
333
  'notification_delete' => esc_html__( 'Are you sure you want to delete this notification?', 'wpforms' ),
377
  'operator_ends' => esc_html__( 'ends with', 'wpforms' ),
378
  'payments_entries_off' => esc_html__( 'Form entries must be stored to accept payments. Please enable saving form entries in the General settings first.', 'wpforms' ),
379
  'previous' => esc_html__( 'Previous', 'wpforms' ),
380
+ 'provider_required_flds' => esc_html__( 'Your form contains required {provider} settings that have not been configured. Please double-check and configure these settings to complete the connection setup.' ),
381
  'rule_create' => esc_html__( 'Create new rule', 'wpforms' ),
382
  'rule_create_group' => esc_html__( 'Add new group', 'wpforms' ),
383
  'rule_delete' => esc_html__( 'Delete rule', 'wpforms' ),
386
  'smart_tags_hide' => esc_html__( 'Hide Smart Tags', 'wpforms' ),
387
  'select_field' => esc_html__( '-- Select Field --', 'wpforms' ),
388
  'select_choice' => esc_html__( '-- Select Choice --', 'wpforms' ),
389
+ 'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms' ),
390
+ 'upload_image_button' => esc_html__( 'Use Image', 'wpforms' ),
391
+ 'upload_image_remove' => esc_html__( 'Remove Image', 'wpforms' ),
392
  );
393
  $strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
394
 
462
  $form_id = $this->form ? absint( $this->form->ID ) : '';
463
  ?>
464
 
465
+ <div id="wpforms-builder" class="wpforms-admin-page">
466
 
467
  <div id="wpforms-builder-overlay">
468
 
544
  <?php
545
  }
546
  }
 
547
  WPForms_Builder::instance();
includes/admin/builder/panels/class-fields.php CHANGED
@@ -29,6 +29,9 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
29
  add_action( 'wpforms_builder_fields', array( $this, 'fields' ) );
30
  add_action( 'wpforms_builder_fields_options', array( $this, 'fields_options' ) );
31
  add_action( 'wpforms_builder_preview', array( $this, 'preview' ) );
 
 
 
32
  }
33
  }
34
 
@@ -82,7 +85,7 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
82
  <?php do_action( 'wpforms_builder_fields', $this->form ); ?>
83
  </div>
84
 
85
- <div class="wpforms-field-options wpforms-tab-content">
86
  <?php do_action( 'wpforms_builder_fields_options', $this->form ); ?>
87
  </div>
88
  <?php
@@ -258,6 +261,7 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
258
  $css .= ! empty( $field['required'] ) && $field['required'] == '1' ? ' required' : '';
259
  $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '2' ? ' wpforms-list-2-columns' : '';
260
  $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '3' ? ' wpforms-list-3-columns' : '';
 
261
  $css .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : '';
262
 
263
  $css = apply_filters( 'wpforms_field_preview_class', $css, $field );
@@ -289,6 +293,53 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
289
  public function field_order( $a, $b ) {
290
  return $a['order'] - $b['order'];
291
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  }
293
 
294
  new WPForms_Builder_Panel_Fields;
29
  add_action( 'wpforms_builder_fields', array( $this, 'fields' ) );
30
  add_action( 'wpforms_builder_fields_options', array( $this, 'fields_options' ) );
31
  add_action( 'wpforms_builder_preview', array( $this, 'preview' ) );
32
+
33
+ // Template for form builder previews.
34
+ add_action( 'wpforms_builder_print_footer_scripts', array( $this, 'field_preview_templates' ) );
35
  }
36
  }
37
 
85
  <?php do_action( 'wpforms_builder_fields', $this->form ); ?>
86
  </div>
87
 
88
+ <div id="wpforms-field-options" class="wpforms-field-options wpforms-tab-content">
89
  <?php do_action( 'wpforms_builder_fields_options', $this->form ); ?>
90
  </div>
91
  <?php
261
  $css .= ! empty( $field['required'] ) && $field['required'] == '1' ? ' required' : '';
262
  $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '2' ? ' wpforms-list-2-columns' : '';
263
  $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '3' ? ' wpforms-list-3-columns' : '';
264
+ $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === 'inline' ? ' wpforms-list-inline' : '';
265
  $css .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : '';
266
 
267
  $css = apply_filters( 'wpforms_field_preview_class', $css, $field );
293
  public function field_order( $a, $b ) {
294
  return $a['order'] - $b['order'];
295
  }
296
+
297
+ /**
298
+ * Template for form builder preview.
299
+ *
300
+ * @since 1.4.5
301
+ */
302
+ public function field_preview_templates() {
303
+
304
+ // Checkbox, Radio, and Payment Multiple field choices.
305
+ ?>
306
+ <script type="text/html" id="tmpl-wpforms-field-preview-checkbox-radio-payment-multiple">
307
+ <# if ( data.settings.choices_images ) { #>
308
+ <ul class="primary-input wpforms-image-choices wpforms-image-choices-{{ data.settings.choices_images_style }}">
309
+ <# _.each( data.order, function( choiceID, key ) { #>
310
+ <li class="wpforms-image-choices-item<# if ( 1 === data.settings.choices[choiceID].default ) { print( ' wpforms-selected' ); } #>">
311
+ <label>
312
+ <span class="wpforms-image-choices-image">
313
+ <# if ( ! _.isEmpty( data.settings.choices[choiceID].image ) ) { #>
314
+ <img src="{{ data.settings.choices[choiceID].image }}">
315
+ <# } else { #>
316
+ <img src="{{ wpforms_builder.image_placeholder }}">
317
+ <# } #>
318
+ </span>
319
+ <# if ( 'none' === data.settings.choices_images_style ) { #>
320
+ <br>
321
+ <input type="{{ data.type }}" disabled<# if ( 1 === data.settings.choices[choiceID].default ) { print( ' checked' ); } #>>
322
+ <# } else { #>
323
+ <input class="wpforms-screen-reader-element" type="{{ data.type }}" disabled<# if ( 1 === data.settings.choices[choiceID].default ) { print( ' checked' ); } #>>
324
+ <# } #>
325
+ <span class="wpforms-image-choices-label">{{ data.settings.choices[choiceID].label }}</span>
326
+ </label>
327
+ </li>
328
+ <# }) #>
329
+ </ul>
330
+ <# } else { #>
331
+ <ul class="primary-input">
332
+ <# _.each( data.order, function( choiceID, key ) { #>
333
+ <li>
334
+ <input type="{{ data.type }}" disabled<# if ( 1 === data.settings.choices[choiceID].default ) { print( ' checked' ); } #>>{{ data.settings.choices[choiceID].label }}
335
+ </li>
336
+ <# }) #>
337
+ </ul>
338
+ <# } #>
339
+ </script>
340
+ <?php
341
+ }
342
+
343
  }
344
 
345
  new WPForms_Builder_Panel_Fields;
includes/admin/builder/panels/class-settings.php CHANGED
@@ -26,22 +26,6 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
26
  $this->sidebar = true;
27
  }
28
 
29
- /**
30
- * Enqueue assets for the Setting panel.
31
- *
32
- * @since 1.0.0
33
- */
34
- public function enqueues() {
35
-
36
- // CSS.
37
- wp_enqueue_style(
38
- 'wpforms-builder-settings',
39
- WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-settings.css',
40
- null,
41
- WPFORMS_VERSION
42
- );
43
- }
44
-
45
  /**
46
  * Outputs the Settings panel sidebar.
47
  *
26
  $this->sidebar = true;
27
  }
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  /**
30
  * Outputs the Settings panel sidebar.
31
  *
includes/admin/class-settings.php CHANGED
@@ -186,6 +186,11 @@ class WPForms_Settings {
186
  'form' => false,
187
  'submit' => false,
188
  ),
 
 
 
 
 
189
  );
190
 
191
  return apply_filters( 'wpforms_settings_tabs', $tabs );
@@ -265,7 +270,7 @@ class WPForms_Settings {
265
  $defaults = array(
266
  // General Settings tab.
267
  'general' => array(
268
- 'license-heading' => array(
269
  'id' => 'license-heading',
270
  'content' => '<h4>' . esc_html__( 'License', 'wpforms' ) . '</h4><p>' . esc_html__( 'Your license key provides access to updates and addons.', 'wpforms' ) . '</p>',
271
  'type' => 'content',
@@ -277,14 +282,14 @@ class WPForms_Settings {
277
  'name' => esc_html__( 'License Key', 'wpforms' ),
278
  'type' => 'license',
279
  ),
280
- 'general-heading' => array(
281
  'id' => 'general-heading',
282
  'content' => '<h4>' . esc_html__( 'General', 'wpforms' ) . '</h4>',
283
  'type' => 'content',
284
  'no_label' => true,
285
  'class' => array( 'section-heading', 'no-desc' ),
286
  ),
287
- 'disable-css' => array(
288
  'id' => 'disable-css',
289
  'name' => esc_html__( 'Include Form Styling', 'wpforms' ),
290
  'desc' => esc_html__( 'Determines which CSS files to load for the site.', 'wpforms' ),
@@ -297,18 +302,12 @@ class WPForms_Settings {
297
  3 => esc_html__( 'No styling', 'wpforms' ),
298
  ),
299
  ),
300
- 'global-assets' => array(
301
  'id' => 'global-assets',
302
  'name' => esc_html__( 'Load Assets Globally', 'wpforms' ),
303
  'desc' => esc_html__( 'Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms' ),
304
  'type' => 'checkbox',
305
  ),
306
- 'hide-announcements' => array(
307
- 'id' => 'hide-announcements',
308
- 'name' => esc_html__( 'Hide Announcements', 'wpforms' ),
309
- 'desc' => esc_html__( 'Check this if you would like to hide plugin announcements and update details.', 'wpforms' ),
310
- 'type' => 'checkbox',
311
- ),
312
  ),
313
  // Email settings tab.
314
  'email' => array(
@@ -379,6 +378,12 @@ class WPForms_Settings {
379
  'name' => esc_html__( 'Secret Key', 'wpforms' ),
380
  'type' => 'text',
381
  ),
 
 
 
 
 
 
382
  ),
383
  // Validation messages settings tab.
384
  'validation' => array(
@@ -436,6 +441,28 @@ class WPForms_Settings {
436
  'wrap' => 'none',
437
  ),
438
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  );
440
  $defaults = apply_filters( 'wpforms_settings_defaults', $defaults );
441
 
186
  'form' => false,
187
  'submit' => false,
188
  ),
189
+ 'misc' => array(
190
+ 'name' => esc_html__( 'Misc', 'wpforms' ),
191
+ 'form' => true,
192
+ 'submit' => esc_html__( 'Save Settings', 'wpforms' ),
193
+ ),
194
  );
195
 
196
  return apply_filters( 'wpforms_settings_tabs', $tabs );
270
  $defaults = array(
271
  // General Settings tab.
272
  'general' => array(
273
+ 'license-heading' => array(
274
  'id' => 'license-heading',
275
  'content' => '<h4>' . esc_html__( 'License', 'wpforms' ) . '</h4><p>' . esc_html__( 'Your license key provides access to updates and addons.', 'wpforms' ) . '</p>',
276
  'type' => 'content',
282
  'name' => esc_html__( 'License Key', 'wpforms' ),
283
  'type' => 'license',
284
  ),
285
+ 'general-heading' => array(
286
  'id' => 'general-heading',
287
  'content' => '<h4>' . esc_html__( 'General', 'wpforms' ) . '</h4>',
288
  'type' => 'content',
289
  'no_label' => true,
290
  'class' => array( 'section-heading', 'no-desc' ),
291
  ),
292
+ 'disable-css' => array(
293
  'id' => 'disable-css',
294
  'name' => esc_html__( 'Include Form Styling', 'wpforms' ),
295
  'desc' => esc_html__( 'Determines which CSS files to load for the site.', 'wpforms' ),
302
  3 => esc_html__( 'No styling', 'wpforms' ),
303
  ),
304
  ),
305
+ 'global-assets' => array(
306
  'id' => 'global-assets',
307
  'name' => esc_html__( 'Load Assets Globally', 'wpforms' ),
308
  'desc' => esc_html__( 'Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms' ),
309
  'type' => 'checkbox',
310
  ),
 
 
 
 
 
 
311
  ),
312
  // Email settings tab.
313
  'email' => array(
378
  'name' => esc_html__( 'Secret Key', 'wpforms' ),
379
  'type' => 'text',
380
  ),
381
+ 'recaptcha-noconflict' => array(
382
+ 'id' => 'recaptcha-noconflict',
383
+ 'name' => esc_html__( 'No-Conflict Mode', 'wpforms' ),
384
+ 'desc' => esc_html__( 'When checked, other reCAPTCHA occurrences are forcefully removed, to prevent conflicts. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms' ),
385
+ 'type' => 'checkbox',
386
+ ),
387
  ),
388
  // Validation messages settings tab.
389
  'validation' => array(
441
  'wrap' => 'none',
442
  ),
443
  ),
444
+ // Misc. settings tab.
445
+ 'misc' => array(
446
+ 'misc-heading' => array(
447
+ 'id' => 'misc-heading',
448
+ 'content' => '<h4>' . esc_html__( 'Misc', 'wpforms' ) . '</h4>',
449
+ 'type' => 'content',
450
+ 'no_label' => true,
451
+ 'class' => array( 'section-heading', 'no-desc' ),
452
+ ),
453
+ 'hide-announcements' => array(
454
+ 'id' => 'hide-announcements',
455
+ 'name' => esc_html__( 'Hide Announcements', 'wpforms' ),
456
+ 'desc' => esc_html__( 'Check this if you would like to hide plugin announcements and update details.', 'wpforms' ),
457
+ 'type' => 'checkbox',
458
+ ),
459
+ 'uninstall-data' => array(
460
+ 'id' => 'uninstall-data',
461
+ 'name' => esc_html__( 'Uninstall WPForms', 'wpforms' ),
462
+ 'desc' => esc_html__( 'Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms, entries, and uploaded files will be unrecoverable.', 'wpforms' ),
463
+ 'type' => 'checkbox',
464
+ ),
465
+ ),
466
  );
467
  $defaults = apply_filters( 'wpforms_settings_defaults', $defaults );
468
 
includes/admin/class-tools.php CHANGED
@@ -608,6 +608,12 @@ class WPForms_Tools {
608
  <textarea readonly="readonly" class="info-area"><?php echo $this->get_system_info(); ?></textarea>
609
  </div>
610
 
 
 
 
 
 
 
611
  <?php
612
  }
613
 
608
  <textarea readonly="readonly" class="info-area"><?php echo $this->get_system_info(); ?></textarea>
609
  </div>
610
 
611
+ <div class="wpforms-setting-row tools">
612
+ <h3 id="ssl-verify"><?php esc_html_e( 'Test SSL Connections', 'wpforms' ); ?></h3>
613
+ <p><?php esc_html_e( 'Click the button below to verify your web server can perform SSL connections successfully.', 'wpforms' ); ?></p>
614
+ <button type="button" id="wpforms-ssl-verify" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php esc_html_e( 'Test Connection', 'wpforms' ); ?></button>
615
+ </div>
616
+
617
  <?php
618
  }
619
 
includes/class-conditional-logic-core.php CHANGED
@@ -73,7 +73,7 @@ class WPForms_Conditional_Logic_Core {
73
  wp_enqueue_script(
74
  'wpforms-builder-conditionals',
75
  WPFORMS_PLUGIN_URL . 'assets/js/admin-builder-conditional-logic-core.js',
76
- array( 'jquery', 'serialize-object' ),
77
  WPFORMS_VERSION,
78
  false
79
  );
73
  wp_enqueue_script(
74
  'wpforms-builder-conditionals',
75
  WPFORMS_PLUGIN_URL . 'assets/js/admin-builder-conditional-logic-core.js',
76
+ array( 'jquery', 'wpforms-utils', 'wpforms-builder' ),
77
  WPFORMS_VERSION,
78
  false
79
  );
includes/class-form.php CHANGED
@@ -283,8 +283,10 @@ class WPForms_Form_Handler {
283
  }
284
 
285
  // Sanitize - don't allow tags for users who do not have appropriate cap.
 
 
286
  if ( ! current_user_can( 'unfiltered_html' ) ) {
287
- array_walk_recursive( $data, 'wp_strip_all_tags' );
288
  }
289
 
290
  // Sanitize notification names.
283
  }
284
 
285
  // Sanitize - don't allow tags for users who do not have appropriate cap.
286
+ // If we don't do this, forms for these users can get corrupt due to
287
+ // conflicts with wp_kses.
288
  if ( ! current_user_can( 'unfiltered_html' ) ) {
289
+ $data = map_deep( $data, 'wp_strip_all_tags' );
290
  }
291
 
292
  // Sanitize notification names.
includes/class-frontend.php CHANGED
@@ -41,21 +41,23 @@ class WPForms_Frontend {
41
  $this->forms = array();
42
 
43
  // Actions.
44
- add_action( 'wpforms_frontend_output_success', array( $this, 'confirmation' ), 10, 2 );
45
- add_action( 'wpforms_frontend_output', array( $this, 'head' ), 5, 5 );
46
- add_action( 'wpforms_frontend_output', array( $this, 'fields' ), 10, 5 );
47
- add_action( 'wpforms_display_field_before', array( $this, 'field_container_open' ), 5, 2 );
48
- add_action( 'wpforms_display_field_before', array( $this, 'field_label' ), 15, 2 );
49
- add_action( 'wpforms_display_field_before', array( $this, 'field_description' ), 20, 2 );
50
- add_action( 'wpforms_display_field_after', array( $this, 'field_error' ), 3, 2 );
51
- add_action( 'wpforms_display_field_after', array( $this, 'field_description' ), 5, 2 );
52
- add_action( 'wpforms_display_field_after', array( $this, 'field_container_close' ), 15, 2 );
53
- add_action( 'wpforms_frontend_output', array( $this, 'honeypot' ), 15, 5 );
54
- add_action( 'wpforms_frontend_output', array( $this, 'recaptcha' ), 20, 5 );
55
- add_action( 'wpforms_frontend_output', array( $this, 'foot' ), 25, 5 );
56
- add_action( 'wp_enqueue_scripts', array( $this, 'assets_header' ) );
57
- add_action( 'wp_footer', array( $this, 'assets_footer' ), 15 );
58
- add_action( 'wp_footer', array( $this, 'footer_end' ), 99 );
 
 
59
 
60
  // Register shortcode.
61
  add_shortcode( 'wpforms', array( $this, 'shortcode' ) );
@@ -103,25 +105,16 @@ class WPForms_Frontend {
103
  // Before output hook.
104
  do_action( 'wpforms_frontend_output_before', $form_data, $form );
105
 
106
- // Check for return hash _or_ error free completed form.
107
- if ( ! empty( $_GET['wpforms_return'] ) ) {
108
- // Return hash check.
109
- $success = wpforms()->process->validate_return_hash( $_GET['wpforms_return'] );
110
- if ( $success ) {
111
- $args = array(
112
- 'content_only' => true,
113
- );
114
- $form_data = wpforms()->form->get( $success, $args );
115
- }
116
- } elseif ( ! empty( $_POST['wpforms']['id'] ) && absint( $_POST['wpforms']['id'] ) === $form_id && empty( $errors ) ) {
117
- // Completed form check.
118
- $success = true;
119
  }
120
 
121
- // Detect successful form submit, if found provide hook for
122
- // confirmation messages/actions and then stop.
123
- if ( $success && ! empty( $form_data ) ) {
124
- do_action( 'wpforms_frontend_output_success', $form_data );
125
  wpforms_debug_data( $_POST );
126
  return;
127
  }
@@ -154,19 +147,26 @@ class WPForms_Frontend {
154
  }
155
  $classes = wpforms_sanitize_classes( $classes, true );
156
 
157
- // Begin to build the output
158
  printf(
159
  '<div class="wpforms-container %s" id="wpforms-%d">',
160
  $classes,
161
  $form_id
162
  );
163
 
164
- printf(
165
- '<form method="post" enctype="multipart/form-data" id="wpforms-form-%d" action="%s" class="wpforms-validate wpforms-form" data-formid="%d">',
166
- $form_id,
167
- $action,
168
- $form_id
169
- );
 
 
 
 
 
 
 
170
 
171
  do_action( 'wpforms_frontend_output', $form_data, null, $title, $description, $errors );
172
 
@@ -174,7 +174,7 @@ class WPForms_Frontend {
174
 
175
  echo '</div>';
176
 
177
- // After output hook
178
  do_action( 'wpforms_frontend_output_after', $form_data, $form );
179
 
180
  // Add form to class property that tracks all forms in a page.
@@ -189,9 +189,11 @@ class WPForms_Frontend {
189
  *
190
  * @since 1.0.0
191
  *
192
- * @param array $form_data
 
 
193
  */
194
- function confirmation( $form_data ) {
195
 
196
  $settings = $form_data['settings'];
197
 
@@ -203,17 +205,22 @@ class WPForms_Frontend {
203
  // Load confirmation specific assets.
204
  $this->assets_confirmation();
205
 
206
- $form_id = absint( $form_data['id'] );
207
- $complete = ! empty( $_POST['wpforms']['complete'] ) ? $_POST['wpforms']['complete'] : array();
208
- $entry_id = ! empty( $_POST['wpforms']['entry_id'] ) ? $_POST['wpforms']['entry_id'] : 0;
209
- $message = apply_filters( 'wpforms_process_smart_tags', $settings['confirmation_message'], $form_data, $complete, $entry_id );
210
- $message = apply_filters( 'wpforms_frontend_confirmation_message', wpautop( $message ), $form_data );
 
 
 
 
 
211
  $class = wpforms_setting( 'disable-css', '1' ) == '1' ? 'wpforms-confirmation-container-full' : 'wpforms-confirmation-container';
212
 
213
  printf(
214
  '<div class="%s" id="wpforms-confirmation-%d">%s</div>',
215
  $class,
216
- $form_id,
217
  $message
218
  );
219
  }
@@ -369,14 +376,16 @@ class WPForms_Frontend {
369
 
370
  // Check user field defined classes.
371
  if ( ! empty( $field['css'] ) ) {
372
- $attributes['field_class'] = array_merge( $attributes['field_class'] , wpforms_sanitize_classes( $field['css'], true ) );
373
  }
374
  // Check for input column layouts.
375
  if ( ! empty( $field['input_columns'] ) ) {
376
- if ( '2' == $field['input_columns'] ) {
377
  $attributes['field_class'][] = 'wpforms-list-2-columns';
378
- } elseif ( '3' == $field['input_columns'] ) {
379
  $attributes['field_class'][] = 'wpforms-list-3-columns';
 
 
380
  }
381
  }
382
  // Check label visibility.
@@ -414,20 +423,22 @@ class WPForms_Frontend {
414
  *
415
  * @return array
416
  */
417
- function get_field_properties( $field, $form_data, $attributes = array() ) {
418
 
419
  // This filter is for backwards compatibility purposes.
420
- $types = array( 'text', 'textarea', 'number', 'email', 'hidden', 'url', 'html', 'divider', 'password', 'phone', 'address' );
421
  if ( in_array( $field['type'], $types, true ) ) {
422
  $field = apply_filters( "wpforms_{$field['type']}_field_display", $field, $attributes, $form_data );
423
  } elseif ( 'credit-card' === $field['type'] ) {
424
  $field = apply_filters( 'wpforms_creditcard_field_display', $field, $attributes, $form_data );
 
 
425
  }
426
 
427
  $form_id = absint( $form_data['id'] );
428
  $field_id = absint( $field['id'] );
429
  $properties = array(
430
- 'container' => array(
431
  'attr' => array(
432
  'style' => $attributes['field_style'],
433
  ),
@@ -435,7 +446,7 @@ class WPForms_Frontend {
435
  'data' => array(),
436
  'id' => implode( '', array_slice( $attributes['field_id'], 0 ) ),
437
  ),
438
- 'label' => array(
439
  'attr' => array(
440
  'for' => sprintf( 'wpforms-%d-field_%d', $form_id, $field_id ),
441
  ),
@@ -447,20 +458,20 @@ class WPForms_Frontend {
447
  'required' => ! empty( $field['required'] ) ? true : false,
448
  'value' => ! empty( $field['label'] ) ? $field['label'] : '',
449
  ),
450
- 'inputs' => array(
451
  'primary' => array(
452
- 'attr' => array(
453
  'name' => "wpforms[fields][{$field_id}]",
454
  'value' => isset( $field['default_value'] ) ? apply_filters( 'wpforms_process_smart_tags', $field['default_value'], $form_data ) : '',
455
  'placeholder' => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
456
  ),
457
- 'class' => $attributes['input_class'],
458
- 'data' => $attributes['input_data'],
459
- 'id' => implode( array_slice( $attributes['input_id'], 0 ) ),
460
- 'required' => ! empty( $field['required'] ) ? 'required' : '',
461
  ),
462
  ),
463
- 'error' => array(
464
  'attr' => array(
465
  'for' => sprintf( 'wpforms-%d-field_%d', $form_id, $field_id ),
466
  ),
@@ -502,7 +513,7 @@ class WPForms_Frontend {
502
  */
503
  public function field_container_open( $field, $form_data ) {
504
 
505
- $container = $field['properties']['container'];
506
  $container['data']['field-id'] = absint( $field['id'] );
507
 
508
  printf(
@@ -589,7 +600,7 @@ class WPForms_Frontend {
589
  }
590
 
591
  if ( 'before' === $description['position'] ) {
592
- $description['class'][] = 'wpforms-field-description-before';
593
  }
594
 
595
  printf( '<div %s>%s</div>',
@@ -767,7 +778,7 @@ class WPForms_Frontend {
767
  */
768
  public function assets_global() {
769
 
770
- return apply_filters( 'wpforms_global_assets', wpforms_setting( 'global-assets', false ) );
771
  }
772
 
773
  /**
@@ -881,13 +892,14 @@ class WPForms_Frontend {
881
  // Load jQuery input mask library - https://github.com/RobinHerbots/jquery.inputmask.
882
  if (
883
  $this->assets_global() ||
884
- true === wpforms_has_field_type( array( 'phone', 'address' ), $this->forms, true )
 
885
  ) {
886
  wp_enqueue_script(
887
  'wpforms-maskedinput',
888
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.inputmask.bundle.min.js',
889
  array( 'jquery' ),
890
- '3.2.8',
891
  true
892
  );
893
  }
@@ -999,7 +1011,6 @@ class WPForms_Frontend {
999
  // Below we do our own implementation of wp_localize_script in an effort
1000
  // to be better compatible with caching plugins which were causing
1001
  // conflicts.
1002
-
1003
  // Define base strings.
1004
  $strings = array(
1005
  'val_required' => wpforms_setting( 'validation-required', esc_html__( 'This field is required.', 'wpforms' ) ),
@@ -1016,8 +1027,8 @@ class WPForms_Frontend {
1016
  );
1017
  // Include payment related strings if needed.
1018
  if ( function_exists( 'wpforms_get_currencies' ) ) {
1019
- $currency = wpforms_setting( 'currency', 'USD' );
1020
- $currencies = wpforms_get_currencies();
1021
  $strings['currency_code'] = $currency;
1022
  $strings['currency_thousands'] = $currencies[ $currency ]['thousands_separator'];
1023
  $strings['currency_decimal'] = $currencies[ $currency ]['decimal_separator'];
@@ -1042,6 +1053,47 @@ class WPForms_Frontend {
1042
  do_action( 'wpforms_wp_footer_end', $this->forms );
1043
  }
1044
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1045
  /**
1046
  * Shortcode wrapper for the outputting a form.
1047
  *
41
  $this->forms = array();
42
 
43
  // Actions.
44
+ add_action( 'wpforms_frontend_output_success', array( $this, 'confirmation' ), 10, 3 );
45
+ add_action( 'wpforms_frontend_output', array( $this, 'head' ), 5, 5 );
46
+ add_action( 'wpforms_frontend_output', array( $this, 'fields' ), 10, 5 );
47
+ add_action( 'wpforms_display_field_before', array( $this, 'field_container_open' ), 5, 2 );
48
+ add_action( 'wpforms_display_field_before', array( $this, 'field_label' ), 15, 2 );
49
+ add_action( 'wpforms_display_field_before', array( $this, 'field_description' ), 20, 2 );
50
+ add_action( 'wpforms_display_field_after', array( $this, 'field_error' ), 3, 2 );
51
+ add_action( 'wpforms_display_field_after', array( $this, 'field_description' ), 5, 2 );
52
+ add_action( 'wpforms_display_field_after', array( $this, 'field_container_close' ), 15, 2 );
53
+ add_action( 'wpforms_frontend_output', array( $this, 'honeypot' ), 15, 5 );
54
+ add_action( 'wpforms_frontend_output', array( $this, 'recaptcha' ), 20, 5 );
55
+ add_action( 'wpforms_frontend_output', array( $this, 'foot' ), 25, 5 );
56
+ add_action( 'wp_enqueue_scripts', array( $this, 'assets_header' ) );
57
+ add_action( 'wp_enqueue_scripts', array( $this, 'recaptcha_noconflict' ), 9999 );
58
+ add_action( 'wp_footer', array( $this, 'assets_footer' ), 15 );
59
+ add_action( 'wp_footer', array( $this, 'recaptcha_noconflict' ), 19 );
60
+ add_action( 'wp_footer', array( $this, 'footer_end' ), 99 );
61
 
62
  // Register shortcode.
63
  add_shortcode( 'wpforms', array( $this, 'shortcode' ) );
105
  // Before output hook.
106
  do_action( 'wpforms_frontend_output_before', $form_data, $form );
107
 
108
+ // Check for return hash.
109
+ if ( ! empty( $_GET['wpforms_return'] ) && absint( wpforms()->process->form_data['id'] ) === $form_id && wpforms()->process->valid_hash ) {
110
+ do_action( 'wpforms_frontend_output_success', wpforms()->process->form_data, wpforms()->process->fields, wpforms()->process->entry_id );
111
+ wpforms_debug_data( $_POST );
112
+ return;
 
 
 
 
 
 
 
 
113
  }
114
 
115
+ // Check for error free completed form.
116
+ if ( ! empty( $_POST['wpforms']['id'] ) && absint( $_POST['wpforms']['id'] ) === $form_id && empty( $errors ) && ! empty( $form_data ) ) {
117
+ do_action( 'wpforms_frontend_output_success', $form_data, false, false );
 
118
  wpforms_debug_data( $_POST );
119
  return;
120
  }
147
  }
148
  $classes = wpforms_sanitize_classes( $classes, true );
149
 
150
+ // Begin to build the output.
151
  printf(
152
  '<div class="wpforms-container %s" id="wpforms-%d">',
153
  $classes,
154
  $form_id
155
  );
156
 
157
+ $form_atts = apply_filters( 'wpforms_frontend_form_atts', array(
158
+ 'id' => sprintf( 'wpforms-form-%d', absint( $form_id ) ),
159
+ 'class' => array( 'wpforms-validate', 'wpforms-form' ),
160
+ 'data' => array(
161
+ 'formid' => absint( $form_id ),
162
+ ),
163
+ 'atts' => array(
164
+ 'method' => 'post',
165
+ 'enctype' => 'multipart/form-data',
166
+ 'action' => esc_url( $action ),
167
+ ),
168
+ ), $form_data );
169
+ echo '<form ' . wpforms_html_attributes( $form_atts['id'], $form_atts['class'], $form_atts['data'], $form_atts['atts'] ) . '>';
170
 
171
  do_action( 'wpforms_frontend_output', $form_data, null, $title, $description, $errors );
172
 
174
 
175
  echo '</div>';
176
 
177
+ // After output hook.
178
  do_action( 'wpforms_frontend_output_after', $form_data, $form );
179
 
180
  // Add form to class property that tracks all forms in a page.
189
  *
190
  * @since 1.0.0
191
  *
192
+ * @param array $form_data Form data.
193
+ * @param array $fields Sanitized field data.
194
+ * @param array $entry_id Entry id.
195
  */
196
+ public function confirmation( $form_data, $fields = array(), $entry_id = 0 ) {
197
 
198
  $settings = $form_data['settings'];
199
 
205
  // Load confirmation specific assets.
206
  $this->assets_confirmation();
207
 
208
+ if ( empty( $fields ) ) {
209
+ $fields = ! empty( $_POST['wpforms']['complete'] ) ? $_POST['wpforms']['complete'] : array();
210
+ }
211
+
212
+ if ( empty( $entry_id ) ) {
213
+ $entry_id = ! empty( $_POST['wpforms']['entry_id'] ) ? $_POST['wpforms']['entry_id'] : 0;
214
+ }
215
+
216
+ $message = apply_filters( 'wpforms_process_smart_tags', $settings['confirmation_message'], $form_data, $fields, $entry_id );
217
+ $message = apply_filters( 'wpforms_frontend_confirmation_message', wpautop( $message ), $form_data, $fields, $entry_id );
218
  $class = wpforms_setting( 'disable-css', '1' ) == '1' ? 'wpforms-confirmation-container-full' : 'wpforms-confirmation-container';
219
 
220
  printf(
221
  '<div class="%s" id="wpforms-confirmation-%d">%s</div>',
222
  $class,
223
+ absint( $form_data['id'] ),
224
  $message
225
  );
226
  }
376
 
377
  // Check user field defined classes.
378
  if ( ! empty( $field['css'] ) ) {
379
+ $attributes['field_class'] = array_merge( $attributes['field_class'], wpforms_sanitize_classes( $field['css'], true ) );
380
  }
381
  // Check for input column layouts.
382
  if ( ! empty( $field['input_columns'] ) ) {
383
+ if ( '2' === $field['input_columns'] ) {
384
  $attributes['field_class'][] = 'wpforms-list-2-columns';
385
+ } elseif ( '3' === $field['input_columns'] ) {
386
  $attributes['field_class'][] = 'wpforms-list-3-columns';
387
+ } elseif ( 'inline' === $field['input_columns'] ) {
388
+ $attributes['field_class'][] = 'wpforms-list-inline';
389
  }
390
  }
391
  // Check label visibility.
423
  *
424
  * @return array
425
  */
426
+ public function get_field_properties( $field, $form_data, $attributes = array() ) {
427
 
428
  // This filter is for backwards compatibility purposes.
429
+ $types = array( 'text', 'textarea', 'number', 'email', 'hidden', 'url', 'html', 'divider', 'password', 'phone', 'address', 'checkbox', 'radio' );
430
  if ( in_array( $field['type'], $types, true ) ) {
431
  $field = apply_filters( "wpforms_{$field['type']}_field_display", $field, $attributes, $form_data );
432
  } elseif ( 'credit-card' === $field['type'] ) {
433
  $field = apply_filters( 'wpforms_creditcard_field_display', $field, $attributes, $form_data );
434
+ } elseif ( 'payment-multiple' === $field['type'] ) {
435
+ $field = apply_filters( 'wpforms_payment_multiple_field_display', $field, $attributes, $form_data );
436
  }
437
 
438
  $form_id = absint( $form_data['id'] );
439
  $field_id = absint( $field['id'] );
440
  $properties = array(
441
+ 'container' => array(
442
  'attr' => array(
443
  'style' => $attributes['field_style'],
444
  ),
446
  'data' => array(),
447
  'id' => implode( '', array_slice( $attributes['field_id'], 0 ) ),
448
  ),
449
+ 'label' => array(
450
  'attr' => array(
451
  'for' => sprintf( 'wpforms-%d-field_%d', $form_id, $field_id ),
452
  ),
458
  'required' => ! empty( $field['required'] ) ? true : false,
459
  'value' => ! empty( $field['label'] ) ? $field['label'] : '',
460
  ),
461
+ 'inputs' => array(
462
  'primary' => array(
463
+ 'attr' => array(
464
  'name' => "wpforms[fields][{$field_id}]",
465
  'value' => isset( $field['default_value'] ) ? apply_filters( 'wpforms_process_smart_tags', $field['default_value'], $form_data ) : '',
466
  'placeholder' => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
467
  ),
468
+ 'class' => $attributes['input_class'],
469
+ 'data' => $attributes['input_data'],
470
+ 'id' => implode( array_slice( $attributes['input_id'], 0 ) ),
471
+ 'required' => ! empty( $field['required'] ) ? 'required' : '',
472
  ),
473
  ),
474
+ 'error' => array(
475
  'attr' => array(
476
  'for' => sprintf( 'wpforms-%d-field_%d', $form_id, $field_id ),
477
  ),
513
  */
514
  public function field_container_open( $field, $form_data ) {
515
 
516
+ $container = $field['properties']['container'];
517
  $container['data']['field-id'] = absint( $field['id'] );
518
 
519
  printf(
600
  }
601
 
602
  if ( 'before' === $description['position'] ) {
603
+ $description['class'][] = 'before';
604
  }
605
 
606
  printf( '<div %s>%s</div>',
778
  */
779
  public function assets_global() {
780
 
781
+ return apply_filters( 'wpforms_global_assets', wpforms_setting( 'global-assets', false ) );
782
  }
783
 
784
  /**
892
  // Load jQuery input mask library - https://github.com/RobinHerbots/jquery.inputmask.
893
  if (
894
  $this->assets_global() ||
895
+ true === wpforms_has_field_type( array( 'phone', 'address' ), $this->forms, true ) ||
896
+ true === wpforms_has_field_setting( 'input_mask', $this->forms, true )
897
  ) {
898
  wp_enqueue_script(
899
  'wpforms-maskedinput',
900
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.inputmask.bundle.min.js',
901
  array( 'jquery' ),
902
+ '4.0.0-beta.24',
903
  true
904
  );
905
  }
1011
  // Below we do our own implementation of wp_localize_script in an effort
1012
  // to be better compatible with caching plugins which were causing
1013
  // conflicts.
 
1014
  // Define base strings.
1015
  $strings = array(
1016
  'val_required' => wpforms_setting( 'validation-required', esc_html__( 'This field is required.', 'wpforms' ) ),
1027
  );
1028
  // Include payment related strings if needed.
1029
  if ( function_exists( 'wpforms_get_currencies' ) ) {
1030
+ $currency = wpforms_setting( 'currency', 'USD' );
1031
+ $currencies = wpforms_get_currencies();
1032
  $strings['currency_code'] = $currency;
1033
  $strings['currency_thousands'] = $currencies[ $currency ]['thousands_separator'];
1034
  $strings['currency_decimal'] = $currencies[ $currency ]['decimal_separator'];
1053
  do_action( 'wpforms_wp_footer_end', $this->forms );
1054
  }
1055
 
1056
+ /**
1057
+ * Google reCAPTCHA no-conflict mode.
1058
+ *
1059
+ * When enabled in the WPForms settings, forcefully remove all other
1060
+ * reCAPTCHA enqueues to prevent conflicts. Filter can be used to target
1061
+ * specific pages, etc.
1062
+ *
1063
+ * @since 1.4.5
1064
+ */
1065
+ public function recaptcha_noconflict() {
1066
+
1067
+ $noconflict = wpforms_setting( 'recaptcha-noconflict' );
1068
+
1069
+ if ( empty( $noconflict ) ) {
1070
+ return;
1071
+ }
1072
+
1073
+ if ( ! apply_filters( 'wpforms_frontend_recaptcha_noconflict', true ) ) {
1074
+ return;
1075
+ }
1076
+
1077
+ global $wp_scripts;
1078
+
1079
+ $urls = array( 'google.com/recaptcha', 'gstatic.com/recaptcha' );
1080
+
1081
+ foreach ( $wp_scripts->queue as $handle ) {
1082
+
1083
+ if ( false !== strpos( $wp_scripts->registered[ $handle ]->handle, 'wpforms' ) ) {
1084
+ return;
1085
+ }
1086
+
1087
+ foreach ( $urls as $url ) {
1088
+ if ( false !== strpos( $wp_scripts->registered[ $handle ]->src, $url ) ) {
1089
+ wp_dequeue_script( $handle );
1090
+ wp_deregister_script( $handle );
1091
+ break;
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+
1097
  /**
1098
  * Shortcode wrapper for the outputting a form.
1099
  *
includes/class-process.php CHANGED
@@ -14,6 +14,7 @@ class WPForms_Process {
14
  * Holds errors.
15
  *
16
  * @since 1.0.0
 
17
  * @var array
18
  */
19
  public $errors;
@@ -22,6 +23,7 @@ class WPForms_Process {
22
  * Holds formatted fields.
23
  *
24
  * @since 1.0.0
 
25
  * @var array
26
  */
27
  public $fields;
@@ -30,10 +32,29 @@ class WPForms_Process {
30
  * Holds the ID of a successful entry.
31
  *
32
  * @since 1.2.3
 
33
  * @var int
34
  */
35
  public $entry_id = 0;
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Primary class constructor.
39
  *
@@ -238,21 +259,26 @@ class WPForms_Process {
238
  public function validate_return_hash( $hash = '' ) {
239
 
240
  $query_args = base64_decode( $hash );
241
- parse_str( $query_args );
 
242
 
243
  // Verify hash matches.
244
- if ( wp_hash( $form_id . ',' . $entry_id ) !== $hash ) {
245
  return false;
246
  }
247
 
248
  // Get lead and verify it is attached to the form we received with it.
249
- $entry = wpforms()->entry->get( $entry_id );
250
 
251
- if ( $form_id != $entry->form_id ) {
252
  return false;
253
  }
254
 
255
- return $form_id;
 
 
 
 
256
  }
257
 
258
  /**
@@ -263,20 +289,23 @@ class WPForms_Process {
263
  * @param array|string $form_data
264
  * @param string $hash
265
  */
266
- public function entry_confirmation_redirect( $form_data = '', $hash = '' ) {
267
 
268
- $url = '';
269
 
 
270
  if ( ! empty( $hash ) ) {
271
 
272
- $form_id = $this->validate_return_hash( $hash );
273
 
274
- if ( ! $form_id ) {
275
  return;
276
  }
277
 
278
- // Get form
279
- $form_data = wpforms()->form->get( $form_id, array(
 
 
280
  'content_only' => true,
281
  ) );
282
  }
@@ -293,17 +322,11 @@ class WPForms_Process {
293
  }
294
  }
295
 
296
- if ( ! empty( $form_data['id'] ) ) {
297
- $form_id = $form_data['id'];
298
- } else {
299
- return;
300
- }
301
-
302
  if ( ! empty( $url ) ) {
303
- $url = apply_filters( 'wpforms_process_redirect_url', $url, $form_id, $this->fields );
304
  wp_redirect( esc_url_raw( $url ) );
305
- do_action( 'wpforms_process_redirect', $form_id );
306
- do_action( "wpforms_process_redirect_{$form_id}", $form_id );
307
  exit;
308
  }
309
  }
14
  * Holds errors.
15
  *
16
  * @since 1.0.0
17
+ *
18
  * @var array
19
  */
20
  public $errors;
23
  * Holds formatted fields.
24
  *
25
  * @since 1.0.0
26
+ *
27
  * @var array
28
  */
29
  public $fields;
32
  * Holds the ID of a successful entry.
33
  *
34
  * @since 1.2.3
35
+ *
36
  * @var int
37
  */
38
  public $entry_id = 0;
39
 
40
+ /**
41
+ * Holds form data.
42
+ *
43
+ * @since 1.4.5
44
+ *
45
+ * @var array
46
+ */
47
+ public $form_data;
48
+
49
+ /**
50
+ * If a valid return has was processed.
51
+ *
52
+ * @since 1.4.5
53
+ *
54
+ * @var bool
55
+ */
56
+ public $valid_hash = false;
57
+
58
  /**
59
  * Primary class constructor.
60
  *
259
  public function validate_return_hash( $hash = '' ) {
260
 
261
  $query_args = base64_decode( $hash );
262
+
263
+ parse_str( $query_args, $output );
264
 
265
  // Verify hash matches.
266
+ if ( wp_hash( $output['form_id'] . ',' . $output['entry_id'] ) !== $output['hash'] ) {
267
  return false;
268
  }
269
 
270
  // Get lead and verify it is attached to the form we received with it.
271
+ $entry = wpforms()->entry->get( $output['entry_id'] );
272
 
273
+ if ( $output['form_id'] != $entry->form_id ) {
274
  return false;
275
  }
276
 
277
+ return array(
278
+ 'form_id' => absint( $output['form_id'] ),
279
+ 'entry_id' => absint( $output['form_id'] ),
280
+ 'fields' => $entry->fields,
281
+ );
282
  }
283
 
284
  /**
289
  * @param array|string $form_data
290
  * @param string $hash
291
  */
292
+ public function entry_confirmation_redirect( $form_data = array(), $hash = '' ) {
293
 
294
+ $url = false;
295
 
296
+ // Maybe process return hash.
297
  if ( ! empty( $hash ) ) {
298
 
299
+ $hash_data = $this->validate_return_hash( $hash );
300
 
301
+ if ( ! $hash_data || ! is_array( $hash_data ) ) {
302
  return;
303
  }
304
 
305
+ $this->valid_hash = true;
306
+ $this->entry_id = absint( $hash_data['entry_id'] );
307
+ $this->fields = json_decode( $hash_data['fields'], true );
308
+ $this->form_data = wpforms()->form->get( absint( $hash_data['form_id'] ), array(
309
  'content_only' => true,
310
  ) );
311
  }
322
  }
323
  }
324
 
 
 
 
 
 
 
325
  if ( ! empty( $url ) ) {
326
+ $url = apply_filters( 'wpforms_process_redirect_url', $url, $form_data['id'], $this->fields );
327
  wp_redirect( esc_url_raw( $url ) );
328
+ do_action( 'wpforms_process_redirect', $form_data['id'] );
329
+ do_action( "wpforms_process_redirect_{$form_data['id']}", $form_data['id'] );
330
  exit;
331
  }
332
  }
includes/class-smart-tags.php CHANGED
@@ -43,7 +43,8 @@ class WPForms_Smart_Tags {
43
  'query_var key=""' => esc_html__( 'Query String Variable', 'wpforms' ),
44
  'user_ip' => esc_html__( 'User IP Address', 'wpforms' ),
45
  'user_id' => esc_html__( 'User ID', 'wpforms' ),
46
- 'user_display' => esc_html__( 'User Name', 'wpforms' ),
 
47
  'user_email' => esc_html__( 'User Email', 'wpforms' ),
48
  'author_id' => esc_html__( 'Author ID', 'wpforms' ),
49
  'author_display' => esc_html__( 'Author Name', 'wpforms' ),
@@ -145,6 +146,16 @@ class WPForms_Smart_Tags {
145
  break;
146
 
147
  case 'user_display':
 
 
 
 
 
 
 
 
 
 
148
  if ( is_user_logged_in() ) {
149
  $user = wp_get_current_user();
150
  $name = sanitize_text_field( $user->user_firstname . ' ' . $user->user_lastname );
43
  'query_var key=""' => esc_html__( 'Query String Variable', 'wpforms' ),
44
  'user_ip' => esc_html__( 'User IP Address', 'wpforms' ),
45
  'user_id' => esc_html__( 'User ID', 'wpforms' ),
46
+ 'user_display' => esc_html__( 'User Display Name', 'wpforms' ),
47
+ 'user_full_name' => esc_html__( 'User Full Name', 'wpforms' ),
48
  'user_email' => esc_html__( 'User Email', 'wpforms' ),
49
  'author_id' => esc_html__( 'Author ID', 'wpforms' ),
50
  'author_display' => esc_html__( 'Author Name', 'wpforms' ),
146
  break;
147
 
148
  case 'user_display':
149
+ if ( is_user_logged_in() ) {
150
+ $user = wp_get_current_user();
151
+ $name = sanitize_text_field( $user->display_name );
152
+ } else {
153
+ $name = '';
154
+ }
155
+ $content = str_replace( '{' . $tag . '}', $name, $content );
156
+ break;
157
+
158
+ case 'user_full_name':
159
  if ( is_user_logged_in() ) {
160
  $user = wp_get_current_user();
161
  $name = sanitize_text_field( $user->user_firstname . ' ' . $user->user_lastname );
includes/fields/class-base.php CHANGED
@@ -356,131 +356,293 @@ abstract class WPForms_Field {
356
  $output = $this->field_element( 'row', $field, array( 'slug' => 'code', 'content' => $output ), false );
357
  break;
358
 
359
- // Choices. -------------------------------------------------------//
360
 
361
  case 'choices':
362
- $tooltip = esc_html__( 'Add choices for the form field.', 'wpforms' );
363
- $toggle = '<a href="#" class="toggle-bulk-add-display"><i class="fa fa-download"></i> <span>' . esc_html__( 'Bulk Add', 'wpforms' ) . '</span></a>';
364
- $dynamic = ! empty( $field['dynamic_choices'] ) ? esc_html( $field['dynamic_choices'] ) : '';
365
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
366
- $class = ! empty( $field['show_values'] ) && $field['show_values'] == '1' ? 'show-values' : '';
367
- $class .= ! empty( $dynamic ) ? ' wpforms-hidden' : '';
 
 
 
 
 
 
 
 
 
368
 
369
- // Field option label and type.
370
- $option_label = $this->field_element(
371
  'label',
372
  $field,
373
  array(
374
  'slug' => 'choices',
375
  'value' => esc_html__( 'Choices', 'wpforms' ),
376
- 'tooltip' => $tooltip,
377
- 'after_tooltip' => $toggle,
378
  ),
379
  false
380
  );
381
- $option_type = 'checkbox' === $this->type ? 'checkbox' : 'radio';
382
 
383
- // Field option choices inputs
384
- $option_choices = sprintf( '<ul data-next-id="%s" class="choices-list %s" data-field-id="%d" data-field-type="%s">', max( array_keys( $values ) ) + 1, $class, $field['id'], $this->type );
385
- foreach ( $values as $key => $value ) {
386
- $default = ! empty( $value['default'] ) ? $value['default'] : '';
387
- $option_choices .= sprintf( '<li data-key="%d">', $key );
388
- $option_choices .= sprintf( '<input type="%s" name="fields[%s][choices][%s][default]" class="default" value="1" %s>', $option_type, $field['id'], $key, checked( '1', $default, false ) );
389
- $option_choices .= '<span class="move"><i class="fa fa-bars"></i></span>';
390
- $option_choices .= sprintf( '<input type="text" name="fields[%s][choices][%s][label]" value="%s" class="label">', $field['id'], $key, esc_attr( $value['label'] ) );
391
- $option_choices .= '<a class="add" href="#"><i class="fa fa-plus-circle"></i></a>';
392
- $option_choices .= '<a class="remove" href="#"><i class="fa fa-minus-circle"></i></a>';
393
- $option_choices .= sprintf( '<input type="text" name="fields[%s][choices][%s][value]" value="%s" class="value">', $field['id'], $key, esc_attr( $value['value'] ) );
394
- $option_choices .= '</li>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
  }
396
- $option_choices .= '</ul>';
 
 
 
 
 
 
 
 
 
 
 
 
397
 
398
- // Field option dynamic status.
399
- $source_name = '';
400
- $type_name = '';
401
- $status_visibility = ! empty( $dynamic ) && ! empty( $field[ 'dynamic_' . $dynamic ] ) ? '' : 'wpforms-hidden';
402
 
403
  if ( 'post_type' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
404
-
405
- $type_name = esc_html__( 'post type', 'wpforms' );
406
- $source = $field[ 'dynamic_' . $dynamic ];
407
- $pt = get_post_type_object( $source );
408
- $source_name = $pt->labels->name;
409
-
410
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
411
-
412
- $type_name = esc_html__( 'taxonomy', 'wpforms' );
413
- $source = $field[ 'dynamic_' . $dynamic ];
414
- $tax = get_taxonomy( $source );
415
- $source_name = $tax->labels->name;
416
  }
417
 
418
- $option_status = sprintf( '<div class="wpforms-alert-warning wpforms-alert %s">', $status_visibility );
419
- /* translators: %1$s - source name; %2$s - type name. */
420
- $option_status .= sprintf(
421
- esc_html__(
422
- 'Choices are dynamically populated from the %1$s %2$s',
423
- 'wpforms'
424
- ),
425
- '<span class="dynamic-name">' . $source_name . '</span>',
426
- '<span class="dynamic-type">' . $type_name . '</span>'
427
- );
428
- $option_status .= '</div>';
 
 
429
 
430
- // Field option row (markup) including label and input.
431
  $output = $this->field_element(
432
  'row',
433
  $field,
434
  array(
435
  'slug' => 'choices',
436
- 'content' => $option_label . $option_choices . $option_status,
437
- )
 
438
  );
439
  break;
440
 
441
- // Choices for payments. ------------------------------------------//
442
 
443
  case 'choices_payments':
444
- $tooltip = esc_html__( 'Add choices for the form field.', 'wpforms' );
445
- $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
446
 
447
- // Field option label.
448
- $option_label = $this->field_element(
 
 
 
 
449
  'label',
450
  $field,
451
  array(
452
  'slug' => 'choices',
453
  'value' => esc_html__( 'Items', 'wpforms' ),
454
- 'tooltip' => $tooltip,
455
  ),
456
  false
457
  );
458
 
459
- // Field option choices inputs.
460
- $option_choices = sprintf( '<ul class="choices-list" data-next-id="%s" data-field-id="%d" data-field-type="%s">', max( array_keys( $values ) ) + 1, $field['id'], $this->type );
461
- foreach ( $values as $key => $value ) {
462
- $default = ! empty( $value['default'] ) ? $value['default'] : '';
463
- $placeholder = wpforms_format_amount( 0 );
464
- $amount = ! empty( $value['value'] ) ? wpforms_format_amount( wpforms_sanitize_amount( $value['value'] ) ) : $placeholder;
465
- $option_choices .= sprintf( '<li data-key="%d">', $key );
466
- $option_choices .= sprintf( '<input type="radio" name="fields[%s][choices][%s][default]" class="default" value="1" %s>', $field['id'], $key, checked( '1', $default, false ) );
467
- $option_choices .= '<span class="move"><i class="fa fa-bars"></i></span>';
468
- $option_choices .= sprintf( '<input type="text" name="fields[%s][choices][%s][label]" value="%s" class="label">', $field['id'], $key, esc_attr( $value['label'] ) );
469
- $option_choices .= sprintf( '<input type="text" name="fields[%s][choices][%s][value]" value="%s" class="value wpforms-money-input" placeholder="%s">', $field['id'], $key, $amount, $placeholder );
470
- $option_choices .= '<a class="add" href="#"><i class="fa fa-plus-circle"></i></a>';
471
- $option_choices .= '<a class="remove" href="#"><i class="fa fa-minus-circle"></i></a>';
472
- $option_choices .= '</li>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
473
  }
474
- $option_choices .= '</ul>';
 
 
 
 
 
 
 
 
 
 
 
 
475
 
476
- // Field option row (markup) including label and input.
477
  $output = $this->field_element(
478
  'row',
479
  $field,
480
  array(
481
  'slug' => 'choices',
482
- 'content' => $option_label . $option_choices,
483
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
484
  );
485
  break;
486
 
@@ -581,9 +743,10 @@ abstract class WPForms_Field {
581
  $value = ! empty( $field['input_columns'] ) ? esc_attr( $field['input_columns'] ) : '';
582
  $tooltip = esc_html__( 'Select the layout for displaying field choices.', 'wpforms' );
583
  $options = array(
584
- '' => esc_html__( 'One Column', 'wpforms' ),
585
- '2' => esc_html__( 'Two Columns', 'wpforms' ),
586
- '3' => esc_html__( 'Three Columns', 'wpforms' ),
 
587
  );
588
  $output = $this->field_element( 'label', $field, array( 'slug' => 'input_columns', 'value' => esc_html__( 'Choice Layout', 'wpforms' ), 'tooltip' => $tooltip ), false );
589
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'input_columns', 'value' => $value, 'options' => $options ), false );
@@ -732,16 +895,180 @@ abstract class WPForms_Field {
732
  */
733
  public function field_preview_option( $option, $field, $args = array(), $echo = true ) {
734
 
 
 
735
  switch ( $option ) {
736
 
737
  case 'label':
738
  $label = isset( $field['label'] ) && ! empty( $field['label'] ) ? esc_html( $field['label'] ) : '';
739
- $output = sprintf( '<label class="label-title"><span class="text">%s</span><span class="required">*</span></label>', $label );
740
  break;
741
 
742
  case 'description':
743
  $description = isset( $field['description'] ) && ! empty( $field['description'] ) ? $field['description'] : '';
744
- $output = sprintf( '<div class="description">%s</div>', $description );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
745
  break;
746
  }
747
 
356
  $output = $this->field_element( 'row', $field, array( 'slug' => 'code', 'content' => $output ), false );
357
  break;
358
 
359
+ // Choices. ------------------------------------------------------//
360
 
361
  case 'choices':
 
 
 
362
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
363
+ $class = array();
364
+
365
+ if ( ! empty( $field['show_values'] ) ) {
366
+ $class[] = 'show-values';
367
+ }
368
+ if ( ! empty( $field['dynamic_choices'] ) ) {
369
+ $class[] = 'wpforms-hidden';
370
+ }
371
+ if ( ! empty( $field['choices_images'] ) ) {
372
+ $class[] = 'show-images';
373
+ }
374
 
375
+ // Field label.
376
+ $lbl = $this->field_element(
377
  'label',
378
  $field,
379
  array(
380
  'slug' => 'choices',
381
  'value' => esc_html__( 'Choices', 'wpforms' ),
382
+ 'tooltip' => esc_html__( 'Add choices for the form field.', 'wpforms' ),
383
+ 'after_tooltip' => '<a href="#" class="toggle-bulk-add-display"><i class="fa fa-download"></i> <span>' . esc_html__( 'Bulk Add', 'wpforms' ) . '</span></a>',
384
  ),
385
  false
386
  );
 
387
 
388
+ // Field contents.
389
+ $fld = sprintf( '<ul data-next-id="%s" class="choices-list %s" data-field-id="%d" data-field-type="%s">',
390
+ max( array_keys( $values ) ) + 1,
391
+ wpforms_sanitize_classes( $class, true ),
392
+ $field['id'],
393
+ $this->type
394
+ );
395
+ foreach ( $values as $key => $value ) {
396
+ $default = ! empty( $value['default'] ) ? $value['default'] : '' ;
397
+ $base = sprintf( 'fields[%s][choices][%s]', $field['id'], $key );
398
+ $image = ! empty( $value['image'] ) ? $value['image'] : '';
399
+ $image_btn = '';
400
+
401
+ $fld .= '<li data-key="' . absint( $key ) . '">';
402
+ $fld .= sprintf( '<input type="%s" name="%s[default]" class="default" value="1" %s>',
403
+ 'checkbox' === $this->type ? 'checkbox' : 'radio',
404
+ $base,
405
+ checked( '1', $default, false )
406
+ );
407
+ $fld .= '<span class="move"><i class="fa fa-bars"></i></span>';
408
+ $fld .= sprintf( '<input type="text" name="%s[label]" value="%s" class="label">',
409
+ $base,
410
+ esc_attr( $value['label'] )
411
+ );
412
+ $fld .= '<a class="add" href="#"><i class="fa fa-plus-circle"></i></a><a class="remove" href="#"><i class="fa fa-minus-circle"></i></a>';
413
+ $fld .= sprintf( '<input type="text" name="%s[value]" value="%s" class="value">',
414
+ $base,
415
+ esc_attr( $value['value'] )
416
+ );
417
+ $fld .= '<div class="wpforms-image-upload">';
418
+ $fld .= '<div class="preview">';
419
+ if ( ! empty( $image ) ) {
420
+ $fld .= sprintf( '<a href="#" title="%s" class="wpforms-image-upload-remove"><img src="%s"></a>',
421
+ esc_attr__( 'Remove Image', 'wpforms' ),
422
+ esc_url_raw( $image )
423
+ );
424
+ $image_btn = ' style="display:none;"';
425
  }
426
+ $fld .= '</div>';
427
+ $fld .= sprintf( '<button class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey wpforms-btn-block wpforms-image-upload-add" data-after-upload="hide"%s>%s</button>',
428
+ $image_btn,
429
+ esc_html__( 'Upload Image', 'wpforms' )
430
+ );
431
+ $fld .= sprintf( '<input type="hidden" name="%s[image]" value="%s" class="source">',
432
+ $base,
433
+ esc_url_raw( $image )
434
+ );
435
+ $fld .= '</div>';
436
+ $fld .= '</li>';
437
+ }
438
+ $fld .= '</ul>';
439
 
440
+ // Field note: dynamic status.
441
+ $source = '';
442
+ $type = '';
443
+ $dynamic = ! empty( $field['dynamic_choices'] ) ? esc_html( $field['dynamic_choices'] ) : '';
444
 
445
  if ( 'post_type' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
446
+ $type = esc_html__( 'post type', 'wpforms' );
447
+ $pt = get_post_type_object( $field[ 'dynamic_' . $dynamic ] );
448
+ $source = $pt->labels->name;
 
 
 
449
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
450
+ $type = esc_html__( 'taxonomy', 'wpforms' );
451
+ $tax = get_taxonomy( $field[ 'dynamic_' . $dynamic ] );
452
+ $source = $tax->labels->name;
 
 
453
  }
454
 
455
+ $note = sprintf( '<div class="wpforms-alert-warning wpforms-alert-small wpforms-alert %s">',
456
+ empty( $dynamic ) && ! empty( $field[ 'dynamic_' . $dynamic ] ) ? '' : 'wpforms-hidden'
457
+ );
458
+ /* translators: %1$s - source name; %2$s - type name. */
459
+ $note .= sprintf(
460
+ esc_html__(
461
+ 'Choices are dynamically populated from the %1$s %2$s.',
462
+ 'wpforms'
463
+ ),
464
+ '<span class="dynamic-name">' . $source . '</span>',
465
+ '<span class="dynamic-type">' . $type . '</span>'
466
+ );
467
+ $note .= '</div>';
468
 
469
+ // Final field output.
470
  $output = $this->field_element(
471
  'row',
472
  $field,
473
  array(
474
  'slug' => 'choices',
475
+ 'content' => $lbl . $fld . $note,
476
+ ),
477
+ false
478
  );
479
  break;
480
 
481
+ // Choices for payments. -----------------------------------------//
482
 
483
  case 'choices_payments':
484
+ $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
485
+ $class = array();
486
 
487
+ if ( ! empty( $field['choices_images'] ) ) {
488
+ $class[] = 'show-images';
489
+ }
490
+
491
+ // Field label.
492
+ $lbl = $this->field_element(
493
  'label',
494
  $field,
495
  array(
496
  'slug' => 'choices',
497
  'value' => esc_html__( 'Items', 'wpforms' ),
498
+ 'tooltip' => esc_html__( 'Add choices for the form field.', 'wpforms' ),
499
  ),
500
  false
501
  );
502
 
503
+ // Field contents.
504
+ $fld = sprintf( '<ul data-next-id="%s" class="choices-list %s" data-field-id="%d" data-field-type="%s">',
505
+ max( array_keys( $values ) ) + 1,
506
+ wpforms_sanitize_classes( $class, true ),
507
+ $field['id'],
508
+ $this->type
509
+ );
510
+ foreach ( $values as $key => $value ) {
511
+ $default = ! empty( $value['default'] ) ? $value['default'] : '' ;
512
+ $base = sprintf( 'fields[%s][choices][%s]', $field['id'], $key );
513
+ $image = ! empty( $value['image'] ) ? $value['image'] : '';
514
+ $image_btn = '';
515
+
516
+ $fld .= '<li data-key="' . absint( $key ) . '">';
517
+ $fld .= sprintf( '<input type="radio" name="%s[default]" class="default" value="1" %s>',
518
+ $base,
519
+ checked( '1', $default, false )
520
+ );
521
+ $fld .= '<span class="move"><i class="fa fa-bars"></i></span>';
522
+ $fld .= sprintf( '<input type="text" name="%s[label]" value="%s" class="label">',
523
+ $base,
524
+ esc_attr( $value['label'] )
525
+ );
526
+ $fld .= sprintf( '<input type="text" name="%s[value]" value="%s" class="value value wpforms-money-input" placeholder="%s">',
527
+ $base,
528
+ esc_attr( $value['value'] ),
529
+ wpforms_format_amount( 0 )
530
+ );
531
+ $fld .= '<a class="add" href="#"><i class="fa fa-plus-circle"></i></a><a class="remove" href="#"><i class="fa fa-minus-circle"></i></a>';
532
+ $fld .= '<div class="wpforms-image-upload">';
533
+ $fld .= '<div class="preview">';
534
+ if ( ! empty( $image ) ) {
535
+ $fld .= sprintf( '<a href="#" title="%s" class="wpforms-image-upload-remove"><img src="%s"></a>',
536
+ esc_attr__( 'Remove Image', 'wpforms' ),
537
+ esc_url_raw( $image )
538
+ );
539
+ $image_btn = ' style="display:none;"';
540
  }
541
+ $fld .= '</div>';
542
+ $fld .= sprintf( '<button class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey wpforms-btn-block wpforms-image-upload-add" data-after-upload="hide"%s>%s</button>',
543
+ $image_btn,
544
+ esc_html__( 'Upload Image', 'wpforms' )
545
+ );
546
+ $fld .= sprintf( '<input type="hidden" name="%s[image]" value="%s" class="source">',
547
+ $base,
548
+ esc_url_raw( $image )
549
+ );
550
+ $fld .= '</div>';
551
+ $fld .= '</li>';
552
+ }
553
+ $fld .= '</ul>';
554
 
555
+ // Final field output.
556
  $output = $this->field_element(
557
  'row',
558
  $field,
559
  array(
560
  'slug' => 'choices',
561
+ 'content' => $lbl . $fld,
562
+ ),
563
+ false
564
+ );
565
+ break;
566
+
567
+ // Choices Images ------------------------------------------------//
568
+
569
+ case 'choices_images':
570
+
571
+ // Field note: Image tips.
572
+ $note = sprintf( '<div class="wpforms-alert-warning wpforms-alert-small wpforms-alert %s">',
573
+ ! empty( $field['choices_images'] ) ? '' : 'wpforms-hidden'
574
+ );
575
+ $note .= esc_html__( 'Images are not cropped or resized. For best result, they should be the same size and 250x250 pixels or smaller.', 'wpforms' );
576
+ $note .= '</div>';
577
+
578
+ // Field contents.
579
+ $fld = $this->field_element(
580
+ 'checkbox',
581
+ $field,
582
+ array(
583
+ 'slug' => 'choices_images',
584
+ 'value' => isset( $field['choices_images'] ) ? '1' : '0',
585
+ 'desc' => esc_html__( 'Use image choices', 'wpforms' ),
586
+ 'tooltip' => esc_html__( 'Check this option to enable using images with the choices.', 'wpforms' ),
587
+ ),
588
+ false
589
+ );
590
+
591
+ // Final field output.
592
+ $output = $this->field_element(
593
+ 'row',
594
+ $field,
595
+ array(
596
+ 'slug' => 'choices_images',
597
+ 'class' => ! empty( $field['dynamic_choices'] ) ? 'wpforms-hidden' : '',
598
+ 'content' => $note . $fld,
599
+ ),
600
+ false
601
+ );
602
+ break;
603
+
604
+ // Choices Images Style ------------------------------------------//
605
+
606
+ case 'choices_images_style':
607
+
608
+ // Field label.
609
+ $lbl = $this->field_element(
610
+ 'label',
611
+ $field,
612
+ array(
613
+ 'slug' => 'choices_images_style',
614
+ 'value' => esc_html__( 'Image Choice Style', 'wpforms' ),
615
+ 'tooltip' => esc_html__( 'Select the style for the image choices.', 'wpforms' ),
616
+ ),
617
+ false
618
+ );
619
+
620
+ // Field contents.
621
+ $fld = $this->field_element(
622
+ 'select',
623
+ $field,
624
+ array(
625
+ 'slug' => 'choices_images_style',
626
+ 'value' => ! empty( $field['choices_images_style'] ) ? esc_attr( $field['choices_images_style'] ) : 'modern',
627
+ 'options' => array(
628
+ 'modern' => esc_html__( 'Modern', 'wpforms' ),
629
+ 'classic' => esc_html__( 'Classic', 'wpforms' ),
630
+ 'none' => esc_html__( 'None', 'wpforms' ),
631
+ ),
632
+ ),
633
+ false
634
+ );
635
+
636
+ // Final field output.
637
+ $output = $this->field_element(
638
+ 'row',
639
+ $field,
640
+ array(
641
+ 'slug' => 'choices_images_style',
642
+ 'content' => $lbl . $fld,
643
+ 'class' => ! empty( $field['choices_images'] ) ? '' : 'wpforms-hidden',
644
+ ),
645
+ false
646
  );
647
  break;
648
 
743
  $value = ! empty( $field['input_columns'] ) ? esc_attr( $field['input_columns'] ) : '';
744
  $tooltip = esc_html__( 'Select the layout for displaying field choices.', 'wpforms' );
745
  $options = array(
746
+ '' => esc_html__( 'One Column', 'wpforms' ),
747
+ '2' => esc_html__( 'Two Columns', 'wpforms' ),
748
+ '3' => esc_html__( 'Three Columns', 'wpforms' ),
749
+ 'inline' => esc_html__( 'Inline', 'wpforms' ),
750
  );
751
  $output = $this->field_element( 'label', $field, array( 'slug' => 'input_columns', 'value' => esc_html__( 'Choice Layout', 'wpforms' ), 'tooltip' => $tooltip ), false );
752
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'input_columns', 'value' => $value, 'options' => $options ), false );
895
  */
896
  public function field_preview_option( $option, $field, $args = array(), $echo = true ) {
897
 
898
+ $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : '';
899
+
900
  switch ( $option ) {
901
 
902
  case 'label':
903
  $label = isset( $field['label'] ) && ! empty( $field['label'] ) ? esc_html( $field['label'] ) : '';
904
+ $output = sprintf( '<label class="label-title %s"><span class="text">%s</span><span class="required">*</span></label>', $class, $label );
905
  break;
906
 
907
  case 'description':
908
  $description = isset( $field['description'] ) && ! empty( $field['description'] ) ? $field['description'] : '';
909
+ $description = strpos( $class, 'nl2br' ) !== false ? nl2br( $description ) : $description;
910
+ $output = sprintf( '<div class="description %s">%s</div>', $class, $description );
911
+ break;
912
+
913
+ case 'choices':
914
+ $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
915
+ $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
916
+ $total = false;
917
+
918
+ // Check to see if this field is configured for Dynamic Choices,
919
+ // either auto populating from a post type or a taxonomy.
920
+ if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
921
+
922
+ // Post type dynamic populating.
923
+ $total = wp_count_posts( $field['dynamic_post_type'] );
924
+ $total = $total->publish;
925
+ $values = array();
926
+ $posts = wpforms_get_hierarchical_object(
927
+ apply_filters( 'wpforms_dynamic_choice_post_type_args',
928
+ array(
929
+ 'post_type' => $field['dynamic_post_type'],
930
+ 'posts_per_page' => -1,
931
+ 'orderby' => 'title',
932
+ 'order' => 'ASC',
933
+ ),
934
+ $field,
935
+ $this->form_id
936
+ ),
937
+ true
938
+ );
939
+
940
+ foreach ( $posts as $post ) {
941
+ $values[] = array(
942
+ 'label' => $post->post_title,
943
+ );
944
+ }
945
+ } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
946
+
947
+ // Taxonomy dynamic populating.
948
+ $total = wp_count_terms( $field['dynamic_taxonomy'] );
949
+ $values = array();
950
+ $terms = wpforms_get_hierarchical_object(
951
+ apply_filters( 'wpforms_dynamic_choice_taxonomy_args',
952
+ array(
953
+ 'taxonomy' => $field['dynamic_taxonomy'],
954
+ 'hide_empty' => false,
955
+ ),
956
+ $field,
957
+ $this->form_id
958
+ ),
959
+ true
960
+ );
961
+
962
+ foreach ( $terms as $term ) {
963
+ $values[] = array(
964
+ 'label' => $term->name,
965
+ );
966
+ }
967
+ }
968
+
969
+ // Notify if currently empty.
970
+ if ( empty( $values ) ) {
971
+ $values = array(
972
+ 'label' => esc_html__( '(empty)', 'wpforms' ),
973
+ );
974
+ }
975
+
976
+ // Build output.
977
+ if ( in_array( $field['type'], array( 'checkbox', 'payment-multiple', 'radio' ), true ) ) {
978
+
979
+ if ( 'checkbox' === $field['type'] ) {
980
+ $type = 'checkbox';
981
+ } else {
982
+ $type = 'radio';
983
+ }
984
+
985
+ $list_class = array( 'primary-input' );
986
+ $images = empty( $field['dyanmic_choices'] ) && ! empty( $field['choices_images'] );
987
+
988
+ if ( $images ) {
989
+ $list_class[] = 'wpforms-image-choices';
990
+ $list_class[] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] );
991
+ }
992
+
993
+ $output = sprintf( '<ul class="%s">',
994
+ wpforms_sanitize_classes( $list_class, true )
995
+ );
996
+
997
+ foreach ( $values as $key => $value ) {
998
+
999
+ $default = isset( $value['default'] ) ? $value['default'] : '';
1000
+ $selected = checked( '1', $default, false );
1001
+ $input_class = array();
1002
+ $item_class = array();
1003
+
1004
+ if ( ! empty( $value['default'] ) ) {
1005
+ $item_class[] = 'wpforms-selected';
1006
+ }
1007
+
1008
+ if ( $images ) {
1009
+ $item_class[] = 'wpforms-image-choices-item';
1010
+ }
1011
+
1012
+ $output .= sprintf( '<li class="%s">',
1013
+ wpforms_sanitize_classes( $item_class, true )
1014
+ );
1015
+
1016
+ if ( $images ) {
1017
+
1018
+ if ( in_array( $field['choices_images_style'], array( 'modern', 'classic' ), true ) ) {
1019
+ $input_class[] = 'wpforms-screen-reader-element';
1020
+ }
1021
+
1022
+ $output .= '<label>';
1023
+
1024
+ $output .= sprintf( '<span class="wpforms-image-choices-image"><img src="%s"></span>',
1025
+ ! empty( $value['image'] ) ? esc_url( $value['image'] ) : WPFORMS_PLUGIN_URL . 'assets/images/placeholder-200x125.png'
1026
+ );
1027
+
1028
+ if ( 'none' === $field['choices_images_style'] ) {
1029
+ $output .= '<br>';
1030
+ }
1031
+
1032
+ $output .= sprintf( '<input type="%s" class="%s" %s disabled>',
1033
+ $type,
1034
+ wpforms_sanitize_classes( $input_class, true ),
1035
+ $selected
1036
+ );
1037
+
1038
+ $output .= '<span class="wpforms-image-choices-label">' . wp_kses_post( $value['label'] ) . '</span>';
1039
+
1040
+ $output .= '</label>';
1041
+
1042
+ } else {
1043
+ $output .= sprintf( '<input type="%s" %s disabled>%s</li>',
1044
+ $type,
1045
+ $selected,
1046
+ $value['label']
1047
+ );
1048
+ }
1049
+
1050
+ $output .= '</li>';
1051
+ }
1052
+
1053
+ $output .= '</ul>';
1054
+ }
1055
+
1056
+ // Dynamic population is enabled and contains more than 20 items,
1057
+ // include a note about results displayed.
1058
+ if ( $total && $total > 20 ) {
1059
+ $output .= '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
1060
+ /* translators: %d - total amount of choices. */
1061
+ $output .= sprintf(
1062
+ wp_kses(
1063
+ __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ),
1064
+ array(
1065
+ 'br' => array()
1066
+ )
1067
+ ),
1068
+ absint( $total )
1069
+ );
1070
+ $output .= '</div>';
1071
+ }
1072
  break;
1073
  }
1074
 
includes/fields/class-checkbox.php CHANGED
@@ -17,7 +17,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
17
  */
18
  public function init() {
19
 
20
- // Define field type information
21
  $this->name = esc_html__( 'Checkboxes', 'wpforms' );
22
  $this->type = 'checkbox';
23
  $this->icon = 'fa-check-square-o';
@@ -26,19 +26,174 @@ class WPForms_Field_Checkbox extends WPForms_Field {
26
  1 => array(
27
  'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
 
29
  'default' => '',
30
  ),
31
  2 => array(
32
  'label' => esc_html__( 'Second Choice', 'wpforms' ),
33
  'value' => '',
 
34
  'default' => '',
35
  ),
36
  3 => array(
37
  'label' => esc_html__( 'Third Choice', 'wpforms' ),
38
  'value' => '',
 
39
  'default' => '',
40
  ),
41
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
 
44
  /**
@@ -46,41 +201,44 @@ class WPForms_Field_Checkbox extends WPForms_Field {
46
  *
47
  * @since 1.0.0
48
  *
49
- * @param array $field
50
  */
51
  public function field_options( $field ) {
52
 
53
- // --------------------------------------------------------------------//
54
  // Basic field options
55
- // --------------------------------------------------------------------//
56
 
57
- // Options open markup
58
  $this->field_option( 'basic-options', $field, array(
59
  'markup' => 'open',
60
  ) );
61
 
62
- // Label
63
  $this->field_option( 'label', $field );
64
 
65
- // Choices
66
  $this->field_option( 'choices', $field );
67
 
68
- // Description
69
- $this->field_option( 'description', $field );
 
 
 
70
 
71
- // Required toggle
72
  $this->field_option( 'required', $field );
73
 
74
- // Options close markup
75
  $this->field_option( 'basic-options', $field, array(
76
  'markup' => 'close',
77
  ) );
78
 
79
- // --------------------------------------------------------------------//
80
  // Advanced field options
81
- // --------------------------------------------------------------------//
82
 
83
- // Options open markup
84
  $this->field_option( 'advanced-options', $field, array(
85
  'markup' => 'open',
86
  ) );
@@ -108,39 +266,61 @@ class WPForms_Field_Checkbox extends WPForms_Field {
108
  // Show Values toggle option. This option will only show if already used
109
  // or if manually enabled by a filter.
110
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
111
- $show_values = $this->field_element(
112
- 'checkbox',
113
- $field,
114
- array(
115
- 'slug' => 'show_values',
116
- 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
117
- 'desc' => esc_html__( 'Show Values', 'wpforms' ),
118
- 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
119
- ),
120
- false
121
- );
122
  $this->field_element( 'row', $field, array(
123
  'slug' => 'show_values',
124
- 'content' => $show_values,
 
 
 
 
 
 
 
 
 
 
125
  ) );
126
  }
127
 
128
- // Input columns
 
 
 
129
  $this->field_option( 'input_columns', $field );
130
 
131
- // Hide label
132
  $this->field_option( 'label_hide', $field );
133
 
134
- // Custom CSS classes
135
  $this->field_option( 'css', $field );
136
 
137
- // Dynamic choice auto-populating toggle
138
  $this->field_option( 'dynamic_choices', $field );
139
 
140
- // Dynamic choice source
141
  $this->field_option( 'dynamic_choices_source', $field );
142
 
143
- // Options close markup
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  $this->field_option( 'advanced-options', $field, array(
145
  'markup' => 'close',
146
  ) );
@@ -151,91 +331,20 @@ class WPForms_Field_Checkbox extends WPForms_Field {
151
  *
152
  * @since 1.0.0
153
  *
154
- * @param array $field
155
  */
156
  public function field_preview( $field ) {
157
 
158
- $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
159
- $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
160
-
161
- // Label
162
  $this->field_preview_option( 'label', $field );
163
 
164
- // Field checkbox elements
165
- echo '<ul class="primary-input">';
166
-
167
- // Check to see if this field is configured for Dynamic Choices,
168
- // either auto populating from a post type or a taxonomy.
169
- if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
170
-
171
- // Post type dynamic populating
172
- $source = $field['dynamic_post_type'];
173
- $total = wp_count_posts( $source );
174
- $total = $total->publish;
175
- $args = array(
176
- 'post_type' => $source,
177
- 'posts_per_page' => -1,
178
- 'orderby' => 'title',
179
- 'order' => 'ASC',
180
- );
181
- $posts = wpforms_get_hierarchical_object( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $this->form_id ), true );
182
- $values = array();
183
-
184
- foreach ( $posts as $post ) {
185
- $values[] = array(
186
- 'label' => $post->post_title,
187
- );
188
- }
189
- } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
190
-
191
- // Taxonomy dynamic populating
192
- $source = $field['dynamic_taxonomy'];
193
- $total = wp_count_terms( $source );
194
- $args = array(
195
- 'taxonomy' => $source,
196
- 'hide_empty' => false,
197
- );
198
- $terms = wpforms_get_hierarchical_object(
199
- apply_filters( 'wpforms_dynamic_choice_taxonomy_args', $args, $field, $this->form_id ),
200
- true
201
- );
202
- $values = array();
203
-
204
- foreach ( $terms as $term ) {
205
- $values[] = array(
206
- 'label' => $term->name,
207
- );
208
- }
209
- }
210
 
211
- // Notify if currently empty
212
- if ( empty( $values ) ) {
213
- $values = array(
214
- 'label' => esc_html__( '(empty)', 'wpforms' ),
215
- );
216
- }
217
-
218
- // Individual checkbox options
219
- foreach ( $values as $key => $value ) {
220
-
221
- $default = isset( $value['default'] ) ? $value['default'] : '';
222
- $selected = checked( '1', $default, false );
223
-
224
- printf( '<li><input type="checkbox" %s disabled>%s</li>', $selected, $value['label'] );
225
- }
226
-
227
- echo '</ul>';
228
-
229
- // Dynamic population is enabled and contains more than 20 items
230
- if ( isset( $total ) && $total > 20 ) {
231
- echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
232
- /* translators: %d - total amount of choices. */
233
- printf( wp_kses( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), array( 'br' => array() ) ), absint( $total ) );
234
- echo '</div>';
235
- }
236
-
237
- // Description
238
- $this->field_preview_option( 'description', $field );
239
  }
240
 
241
  /**
@@ -243,103 +352,74 @@ class WPForms_Field_Checkbox extends WPForms_Field {
243
  *
244
  * @since 1.0.0
245
  *
246
- * @param array $field
247
- * @param array $field_atts
248
- * @param array $form_data
249
  */
250
- public function field_display( $field, $field_atts, $form_data ) {
251
-
252
- // Setup and sanitize the necessary data
253
- $field = apply_filters( 'wpforms_checkbox_field_display', $field, $field_atts, $form_data );
254
- $field_required = ! empty( $field['required'] ) ? ' required' : '';
255
- $field_class = implode( ' ', array_map( 'sanitize_html_class', $field_atts['input_class'] ) );
256
- $field_id = implode( ' ', array_map( 'sanitize_html_class', $field_atts['input_id'] ) );
257
- $field_data = '';
258
- $form_id = $form_data['id'];
259
- $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
260
- $choices = $field['choices'];
261
- $randomize = ! empty( $field['random'] ) ? 'wpforms-randomize' : '';
262
-
263
- if ( ! empty( $field_atts['input_data'] ) ) {
264
- foreach ( $field_atts['input_data'] as $key => $val ) {
265
- $field_data .= ' data-' . $key . '="' . $val . '"';
266
- }
267
- }
268
 
269
- // Check to see if this field is configured for Dynamic Choices,
270
- // either auto populating from a post type or a taxonomy.
271
- if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
272
 
273
- // Post type dynamic populating
274
- $source = $field['dynamic_post_type'];
275
- $args = array(
276
- 'post_type' => $source,
277
- 'posts_per_page' => -1,
278
- 'orderby' => 'title',
279
- 'order' => 'ASC',
280
- );
281
 
282
- $posts = wpforms_get_hierarchical_object( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] ), true );
283
- $choices = array();
284
 
285
- foreach ( $posts as $post ) {
286
- $choices[] = array(
287
- 'value' => $post->ID,
288
- 'label' => $post->post_title,
289
- 'depth' => isset( $post->depth ) ? absint( $post->depth ) : 1,
 
 
 
 
 
290
  );
291
- }
292
 
293
- $field['show_values'] = true;
294
 
295
- } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
 
 
 
296
 
297
- // Taxonomy dynamic populating
298
- $source = $field['dynamic_taxonomy'];
299
- $args = array(
300
- 'taxonomy' => $source,
301
- 'hide_empty' => false,
302
- );
303
- $terms = wpforms_get_hierarchical_object(
304
- apply_filters( 'wpforms_dynamic_choice_taxonomy_args', $args, $field, $form_data['id'] ),
305
- true
306
- );
307
- $choices = array();
308
 
309
- foreach ( $terms as $term ) {
310
- $choices[] = array(
311
- 'value' => $term->term_id,
312
- 'label' => $term->name,
313
- 'depth' => isset( $term->depth ) ? absint( $term->depth ) : 1,
314
- );
315
- }
316
 
317
- $field['show_values'] = true;
318
- }
 
 
 
319
 
320
- // List.
321
- printf( '<ul id="%s" class="%s %s" %s>', $field_id, $field_class, $randomize, $field_data );
322
 
323
- foreach ( $choices as $key => $choice ) {
324
 
325
- $selected = isset( $choice['default'] ) ? '1' : '0' ;
326
- $val = isset( $field['show_values'] ) ? esc_attr( $choice['value'] ) : esc_attr( $choice['label'] );
327
- $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1;
328
-
329
- printf( '<li class="choice-%d depth-%d">', $key, $depth );
330
-
331
- // Checkbox elements
332
- printf( '<input type="checkbox" id="wpforms-%d-field_%d_%d" name="wpforms[fields][%d][]" value="%s" %s %s>',
333
- $form_id,
334
- $field['id'],
335
- $key,
336
- $field['id'],
337
- $val,
338
- checked( '1', $selected, false ),
339
- $field_required
340
- );
341
 
342
- printf( '<label class="wpforms-field-label-inline" for="wpforms-%d-field_%d_%d">%s</label>', $form_id, $field['id'], $key, wp_kses_post( $choice['label'] ) );
 
 
 
 
 
 
 
 
 
 
 
 
343
 
344
  echo '</li>';
345
  }
@@ -352,9 +432,9 @@ class WPForms_Field_Checkbox extends WPForms_Field {
352
  *
353
  * @since 1.0.2
354
  *
355
- * @param int $field_id
356
- * @param array $field_submit
357
- * @param array $form_data
358
  */
359
  public function format( $field_id, $field_submit, $form_data ) {
360
 
@@ -374,7 +454,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
374
 
375
  if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
376
 
377
- // Dynamic population is enabled using post type
378
  $value_raw = implode( ',', array_map( 'absint', $field_submit ) );
379
  $data['value_raw'] = $value_raw;
380
  $data['dynamic'] = 'post_type';
@@ -394,13 +474,13 @@ class WPForms_Field_Checkbox extends WPForms_Field {
394
 
395
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
396
 
397
- // Dynamic population is enabled using taxonomy
398
- $value_raw = implode( ',', array_map( 'absint', $field_submit ) );
399
- $data['value_raw'] = $value_raw;
400
- $data['dynamic'] = 'taxonomy';
401
- $data['dynamic_items'] = $value_raw;
402
- $data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
403
- $terms = array();
404
 
405
  foreach ( $field_submit as $id ) {
406
  $term = get_term( $id, $field['dynamic_taxonomy'] );
@@ -414,33 +494,56 @@ class WPForms_Field_Checkbox extends WPForms_Field {
414
 
415
  } else {
416
 
417
- // Normal processing, dynamic population is off
 
418
 
419
  // If show_values is true, that means values posted are the raw values
420
- // and not the labels. So we need to get the label values.
 
421
  if ( ! empty( $field['show_values'] ) && '1' == $field['show_values'] ) {
422
 
423
- $value = array();
424
 
425
- foreach ( $field_submit as $field_submit_single ) {
426
- foreach ( $field['choices'] as $choice ) {
427
- if ( $choice['value'] == $field_submit_single ) {
428
- $value[] = $choice['label'];
 
429
  break;
430
  }
431
  }
432
  }
433
 
434
- $data['value'] = ! empty( $value ) ? wpforms_sanitize_array_combine( $value ) : '';
435
 
436
  } else {
 
437
  $data['value'] = $value_raw;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
  }
439
  }
440
 
441
- // Push field details to be saved
442
  wpforms()->process->fields[ $field_id ] = $data;
443
  }
444
  }
445
-
446
- new WPForms_Field_Checkbox;
17
  */
18
  public function init() {
19
 
20
+ // Define field type information.
21
  $this->name = esc_html__( 'Checkboxes', 'wpforms' );
22
  $this->type = 'checkbox';
23
  $this->icon = 'fa-check-square-o';
26
  1 => array(
27
  'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
+ 'image' => '',
30
  'default' => '',
31
  ),
32
  2 => array(
33
  'label' => esc_html__( 'Second Choice', 'wpforms' ),
34
  'value' => '',
35
+ 'image' => '',
36
  'default' => '',
37
  ),
38
  3 => array(
39
  'label' => esc_html__( 'Third Choice', 'wpforms' ),
40
  'value' => '',
41
+ 'image' => '',
42
  'default' => '',
43
  ),
44
  );
45
+
46
+ // Customize HTML field values.
47
+ add_filter( 'wpforms_html_field_value', array( $this, 'field_html_value' ), 10, 4 );
48
+
49
+ // Define additional field properties.
50
+ add_filter( 'wpforms_field_properties_checkbox', array( $this, 'field_properties' ), 5, 3 );
51
+ }
52
+
53
+ /**
54
+ * Return images, if any, for HTML supported values.
55
+ *
56
+ * @since 1.4.5
57
+ *
58
+ * @param string $value Field value.
59
+ * @param array $field Field settings.
60
+ * @param array $form_data Form data.
61
+ * @param string $context Value display context.
62
+ *
63
+ * @return string
64
+ */
65
+ public function field_html_value( $value, $field, $form_data = array(), $context = '' ) {
66
+
67
+ // Only use HTML formatting for checkbox fields, with image choices
68
+ // enabled, and exclude the entry table display. Lastly, provides a
69
+ // filter to disable fancy display.
70
+ if (
71
+ ! empty( $field['value'] ) &&
72
+ 'checkbox' === $field['type'] &&
73
+ ! empty( $field['images'] ) &&
74
+ 'entry-table' !== $context &&
75
+ apply_filters( 'wpforms_checkbox_field_html_value_images', true, $context )
76
+ ) {
77
+
78
+ $items = array();
79
+ $values = explode( "\n", $field['value'] );
80
+
81
+ foreach ( $values as $key => $val ) {
82
+
83
+ if ( ! empty( $field['images'][ $key ] ) ) {
84
+ $items[] = sprintf( '<span style="max-width:200px;display:block;margin:0 0 5px 0;"><img src="%s" style="max-width:100%%;display:block;margin:0;"></span>%s',
85
+ esc_url( $field['images'][ $key ] ),
86
+ $val
87
+ );
88
+ } else {
89
+ $items[] = $val;
90
+ }
91
+ }
92
+
93
+ return implode( '<br><br>', $items );
94
+ }
95
+
96
+ return $value;
97
+ }
98
+
99
+ /**
100
+ * Define additional field properties.
101
+ *
102
+ * @since 1.4.5
103
+ *
104
+ * @param array $properties Field properties.
105
+ * @param array $field Field settings.
106
+ * @param array $form_data Form data.
107
+ *
108
+ * @return array
109
+ */
110
+ public function field_properties( $properties, $field, $form_data ) {
111
+
112
+ // Define data.
113
+ $form_id = absint( $form_data['id'] );
114
+ $field_id = absint( $field['id'] );
115
+ $choices = $field['choices'];
116
+ $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id );
117
+
118
+ if ( $dynamic ) {
119
+ $choices = $dynamic;
120
+ $field['show_values'] = true;
121
+ }
122
+
123
+ // Remove primary input.
124
+ unset( $properties['inputs']['primary'] );
125
+
126
+ // Set input container (ul) properties.
127
+ $properties['input_container'] = array(
128
+ 'class' => array( ! empty( $field['random'] ) ? 'wpforms-randomize' : '' ),
129
+ 'data' => array(),
130
+ 'id' => "wpforms-{$form_id}-field_{$field_id}",
131
+ );
132
+
133
+ // Set input properties.
134
+ foreach ( $choices as $key => $choice ) {
135
+
136
+ $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1;
137
+
138
+ $properties['inputs'][ $key ] = array(
139
+ 'container' => array(
140
+ 'attr' => array(),
141
+ 'class' => array( "choice-{$key}", "depth-{$depth}" ),
142
+ 'data' => array(),
143
+ 'id' => '',
144
+ ),
145
+ 'label' => array(
146
+ 'attr' => array(
147
+ 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}",
148
+ ),
149
+ 'class' => array( 'wpforms-field-label-inline' ),
150
+ 'data' => array(),
151
+ 'id' => '',
152
+ 'text' => $choice['label'],
153
+ ),
154
+ 'attr' => array(
155
+ 'name' => "wpforms[fields][{$field_id}][]",
156
+ 'value' => isset( $field['show_values'] ) ? $choice['value'] : $choice['label'],
157
+ ),
158
+ 'class' => array(),
159
+ 'data' => array(),
160
+ 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}",
161
+ 'image' => isset( $choice['image'] ) ? $choice['image'] : '',
162
+ 'required' => ! empty( $field['required'] ) ? 'required' : '',
163
+ 'default' => isset( $choice['default'] ),
164
+ );
165
+ }
166
+
167
+ // Custom properties if image choices is enabled.
168
+ if ( ! $dynamic && ! empty( $field['choices_images'] ) ) {
169
+
170
+ $properties['input_container']['class'][] = 'wpforms-image-choices';
171
+ $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] );
172
+
173
+ foreach ( $properties['inputs'] as $key => $inputs ) {
174
+ $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item';
175
+
176
+ if ( in_array( $field['choices_images_style'], array( 'modern', 'classic' ), true ) ) {
177
+ $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element';
178
+ }
179
+ }
180
+ }
181
+
182
+ // Custom properties for disclaimer format display.
183
+ if ( ! empty( $field['disclaimer_format'] ) ) {
184
+
185
+ $properties['description']['class'][] = 'wpforms-disclaimer-description';
186
+ $properties['description']['value'] = nl2br( $properties['description']['value'] );
187
+ }
188
+
189
+ // Add selected class for choices with defaults.
190
+ foreach ( $properties['inputs'] as $key => $inputs ) {
191
+ if ( ! empty( $inputs['default'] ) ) {
192
+ $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected';
193
+ }
194
+ }
195
+
196
+ return $properties;
197
  }
198
 
199
  /**
201
  *
202
  * @since 1.0.0
203
  *
204
+ * @param array $field Field settings.
205
  */
206
  public function field_options( $field ) {
207
 
208
+ // -------------------------------------------------------------------//
209
  // Basic field options
210
+ // -------------------------------------------------------------------//
211
 
212
+ // Options open markup.
213
  $this->field_option( 'basic-options', $field, array(
214
  'markup' => 'open',
215
  ) );
216
 
217
+ // Label.
218
  $this->field_option( 'label', $field );
219
 
220
+ // Choices.
221
  $this->field_option( 'choices', $field );
222
 
223
+ // Choices Images.
224
+ $this->field_option( 'choices_images', $field );
225
+
226
+ // Description.
227
+ $this->field_option( 'description', $field );
228
 
229
+ // Required toggle.
230
  $this->field_option( 'required', $field );
231
 
232
+ // Options close markup.
233
  $this->field_option( 'basic-options', $field, array(
234
  'markup' => 'close',
235
  ) );
236
 
237
+ // -------------------------------------------------------------------//
238
  // Advanced field options
239
+ // -------------------------------------------------------------------//
240
 
241
+ // Options open markup.
242
  $this->field_option( 'advanced-options', $field, array(
243
  'markup' => 'open',
244
  ) );
266
  // Show Values toggle option. This option will only show if already used
267
  // or if manually enabled by a filter.
268
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
 
 
 
 
 
 
 
 
 
 
 
269
  $this->field_element( 'row', $field, array(
270
  'slug' => 'show_values',
271
+ 'content' => $this->field_element(
272
+ 'checkbox',
273
+ $field,
274
+ array(
275
+ 'slug' => 'show_values',
276
+ 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
277
+ 'desc' => esc_html__( 'Show Values', 'wpforms' ),
278
+ 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
279
+ ),
280
+ false
281
+ ),
282
  ) );
283
  }
284
 
285
+ // Choices Images Style (theme).
286
+ $this->field_option( 'choices_images_style', $field );
287
+
288
+ // Display format.
289
  $this->field_option( 'input_columns', $field );
290
 
291
+ // Hide label.
292
  $this->field_option( 'label_hide', $field );
293
 
294
+ // Custom CSS classes.
295
  $this->field_option( 'css', $field );
296
 
297
+ // Dynamic choice auto-populating toggle.
298
  $this->field_option( 'dynamic_choices', $field );
299
 
300
+ // Dynamic choice source.
301
  $this->field_option( 'dynamic_choices_source', $field );
302
 
303
+ // Enable Disclaimer formating.
304
+ $this->field_element(
305
+ 'row',
306
+ $field,
307
+ array(
308
+ 'slug' => 'disclaimer_format',
309
+ 'content' => $this->field_element(
310
+ 'checkbox',
311
+ $field,
312
+ array(
313
+ 'slug' => 'disclaimer_format',
314
+ 'value' => isset( $field['disclaimer_format'] ) ? '1' : '0',
315
+ 'desc' => esc_html__( 'Enable Disclaimer / Terms of Service Display', 'wpforms' ),
316
+ 'tooltip' => esc_html__( 'Check this option apply adjust the field styling to support Disclaimers and Terms of Serice type agreements.', 'wpforms' ),
317
+ ),
318
+ false
319
+ ),
320
+ )
321
+ );
322
+
323
+ // Options close markup.
324
  $this->field_option( 'advanced-options', $field, array(
325
  'markup' => 'close',
326
  ) );
331
  *
332
  * @since 1.0.0
333
  *
334
+ * @param array $field Field settings.
335
  */
336
  public function field_preview( $field ) {
337
 
338
+ // Label.
 
 
 
339
  $this->field_preview_option( 'label', $field );
340
 
341
+ // Choices.
342
+ $this->field_preview_option( 'choices', $field );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
 
344
+ // Description.
345
+ $this->field_preview_option( 'description', $field, array(
346
+ 'class' => ! empty( $field['disclaimer_format'] ) ? 'disclaimer nl2br' : false,
347
+ ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
348
  }
349
 
350
  /**
352
  *
353
  * @since 1.0.0
354
  *
355
+ * @param array $field Field settings.
356
+ * @param array $deprecated Deprecated array.
357
+ * @param array $form_data Form data.
358
  */
359
+ public function field_display( $field, $deprecated, $form_data ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
 
361
+ // Define data.
362
+ $container = $field['properties']['input_container'];
363
+ $choices = $field['properties']['inputs'];
364
 
365
+ printf( '<ul %s>',
366
+ wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
367
+ );
 
 
 
 
 
368
 
369
+ foreach ( $choices as $key => $choice ) {
 
370
 
371
+ // If the field is required, has the label hidden, and has
372
+ // disclaimer mode enabled, so the required status in choice
373
+ // label.
374
+ $required = '';
375
+ if ( ! empty( $field['disclaimer_format'] ) && ! empty( $choice['required'] ) && ! empty( $field['label_hide'] ) ) {
376
+ $required = apply_filters( 'wpforms_field_required_label', ' <span class="wpforms-required-label">*</span>' );
377
+ }
378
+
379
+ printf( '<li %s>',
380
+ wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
381
  );
 
382
 
383
+ if ( empty( $field['dyanmic_choices'] ) && ! empty( $field['choices_images'] ) ) {
384
 
385
+ // Image choices.
386
+ printf( '<label %s>',
387
+ wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] )
388
+ );
389
 
390
+ if ( ! empty( $choice['image'] ) ) {
391
+ echo '<span class="wpforms-image-choices-image"><img src="' . esc_url( $choice['image'] ) . '"></span>';
392
+ }
 
 
 
 
 
 
 
 
393
 
394
+ if ( 'none' === $field['choices_images_style'] ) {
395
+ echo '<br>';
396
+ }
 
 
 
 
397
 
398
+ printf( '<input type="checkbox" %s %s %s>',
399
+ wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
400
+ esc_attr( $choice['required'] ),
401
+ checked( '1', $choice['default'], false )
402
+ );
403
 
404
+ echo '<span class="wpforms-image-choices-label">' . wp_kses_post( $choice['label']['text'] ) . '</span>';
 
405
 
406
+ echo '</label>';
407
 
408
+ } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
 
410
+ // Normal display.
411
+ printf( '<input type="checkbox" %s %s %s>',
412
+ wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
413
+ esc_attr( $choice['required'] ),
414
+ checked( '1', $choice['default'], false )
415
+ );
416
+
417
+ printf( '<label %s>%s%s</label>',
418
+ wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ),
419
+ wp_kses_post( $choice['label']['text'] ),
420
+ $required
421
+ ); // WPCS: XSS ok.
422
+ }
423
 
424
  echo '</li>';
425
  }
432
  *
433
  * @since 1.0.2
434
  *
435
+ * @param int $field_id Field ID.
436
+ * @param array $field_submit Submitted form data.
437
+ * @param array $form_data Form data.
438
  */
439
  public function format( $field_id, $field_submit, $form_data ) {
440
 
454
 
455
  if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
456
 
457
+ // Dynamic population is enabled using post type.
458
  $value_raw = implode( ',', array_map( 'absint', $field_submit ) );
459
  $data['value_raw'] = $value_raw;
460
  $data['dynamic'] = 'post_type';
474
 
475
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
476
 
477
+ // Dynamic population is enabled using taxonomy.
478
+ $value_raw = implode( ',', array_map( 'absint', $field_submit ) );
479
+ $data['value_raw'] = $value_raw;
480
+ $data['dynamic'] = 'taxonomy';
481
+ $data['dynamic_items'] = $value_raw;
482
+ $data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
483
+ $terms = array();
484
 
485
  foreach ( $field_submit as $id ) {
486
  $term = get_term( $id, $field['dynamic_taxonomy'] );
494
 
495
  } else {
496
 
497
+ // Normal processing, dynamic population is off.
498
+ $choice_keys = array();
499
 
500
  // If show_values is true, that means values posted are the raw values
501
+ // and not the labels. So we need to set label values. Also store
502
+ // the choice keys.
503
  if ( ! empty( $field['show_values'] ) && '1' == $field['show_values'] ) {
504
 
505
+ $labels = array();
506
 
507
+ foreach ( $field_submit as $item ) {
508
+ foreach ( $field['choices'] as $key => $choice ) {
509
+ if ( $item == $choice['value'] ) {
510
+ $value[] = $choice['label'];
511
+ $choice_keys[] = $key;
512
  break;
513
  }
514
  }
515
  }
516
 
517
+ $data['value'] = ! empty( $labels ) ? wpforms_sanitize_array_combine( $labels ) : '';
518
 
519
  } else {
520
+
521
  $data['value'] = $value_raw;
522
+
523
+ // Determine choices keys, this is needed for image choices.
524
+ foreach ( $field_submit as $item ) {
525
+ foreach ( $field['choices'] as $key => $choice ) {
526
+ if ( $item == $choice['label'] ) {
527
+ $choice_keys[] = $key;
528
+ break;
529
+ }
530
+ }
531
+ }
532
+ }
533
+
534
+ // Images choices are enabled, lookup and store image URLs.
535
+ if ( ! empty( $field['choices_images'] ) && ! empty( $choice_keys ) ) {
536
+
537
+ $data['images'] = array();
538
+
539
+ foreach ( $choice_keys as $key ) {
540
+ $data['images'][] = ! empty( $field['choices'][ $key ]['image'] ) ? esc_url_raw( $field['choices'][ $key ]['image'] ) : '';
541
+ }
542
  }
543
  }
544
 
545
+ // Push field details to be saved.
546
  wpforms()->process->fields[ $field_id ] = $data;
547
  }
548
  }
549
+ new WPForms_Field_Checkbox();
 
includes/fields/class-radio.php CHANGED
@@ -26,19 +26,157 @@ class WPForms_Field_Radio extends WPForms_Field {
26
  1 => array(
27
  'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
 
29
  'default' => '',
30
  ),
31
  2 => array(
32
  'label' => esc_html__( 'Second Choice', 'wpforms' ),
33
  'value' => '',
 
34
  'default' => '',
35
  ),
36
  3 => array(
37
  'label' => esc_html__( 'Third Choice', 'wpforms' ),
38
  'value' => '',
 
39
  'default' => '',
40
  ),
41
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
 
44
  /**
@@ -46,13 +184,13 @@ class WPForms_Field_Radio extends WPForms_Field {
46
  *
47
  * @since 1.0.0
48
  *
49
- * @param array $field
50
  */
51
  public function field_options( $field ) {
52
 
53
- // --------------------------------------------------------------------//
54
  // Basic field options.
55
- // --------------------------------------------------------------------//
56
 
57
  // Options open markup.
58
  $this->field_option( 'basic-options', $field, array(
@@ -65,6 +203,9 @@ class WPForms_Field_Radio extends WPForms_Field {
65
  // Choices.
66
  $this->field_option( 'choices', $field );
67
 
 
 
 
68
  // Description.
69
  $this->field_option( 'description', $field );
70
 
@@ -76,9 +217,9 @@ class WPForms_Field_Radio extends WPForms_Field {
76
  'markup' => 'close',
77
  ) );
78
 
79
- // --------------------------------------------------------------------//
80
  // Advanced field options.
81
- // --------------------------------------------------------------------//
82
 
83
  // Options open markup.
84
  $this->field_option( 'advanced-options', $field, array(
@@ -108,24 +249,26 @@ class WPForms_Field_Radio extends WPForms_Field {
108
  // Show Values toggle option. This option will only show if already used
109
  // or if manually enabled by a filter.
110
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
111
- $show_values = $this->field_element(
112
- 'checkbox',
113
- $field,
114
- array(
115
- 'slug' => 'show_values',
116
- 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
117
- 'desc' => esc_html__( 'Show Values', 'wpforms' ),
118
- 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
119
- ),
120
- false
121
- );
122
  $this->field_element( 'row', $field, array(
123
  'slug' => 'show_values',
124
- 'content' => $show_values,
 
 
 
 
 
 
 
 
 
 
125
  ) );
126
  }
127
 
128
- // Input columns.
 
 
 
129
  $this->field_option( 'input_columns', $field );
130
 
131
  // Hide label.
@@ -151,88 +294,15 @@ class WPForms_Field_Radio extends WPForms_Field {
151
  *
152
  * @since 1.0.0
153
  *
154
- * @param array $field
155
  */
156
  public function field_preview( $field ) {
157
 
158
- $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
159
- $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
160
-
161
  // Label.
162
  $this->field_preview_option( 'label', $field );
163
 
164
- // Field radio elements.
165
- echo '<ul class="primary-input">';
166
-
167
- // Check to see if this field is configured for Dynamic Choices,
168
- // either auto populating from a post type or a taxonomy.
169
- if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
170
-
171
- // Post type dynamic populating
172
- $source = $field['dynamic_post_type'];
173
- $total = wp_count_posts( $source );
174
- $total = $total->publish;
175
- $args = array(
176
- 'post_type' => $source,
177
- 'posts_per_page' => -1,
178
- 'orderby' => 'title',
179
- 'order' => 'ASC',
180
- );
181
- $posts = wpforms_get_hierarchical_object( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $this->form_id ), true );
182
- $values = array();
183
-
184
- foreach ( $posts as $post ) {
185
- $values[] = array(
186
- 'label' => $post->post_title,
187
- );
188
- }
189
- } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
190
-
191
- // Taxonomy dynamic populating.
192
- $source = $field['dynamic_taxonomy'];
193
- $total = wp_count_terms( $source );
194
- $args = array(
195
- 'taxonomy' => $source,
196
- 'hide_empty' => false,
197
- );
198
- $terms = wpforms_get_hierarchical_object(
199
- apply_filters( 'wpforms_dynamic_choice_taxonomy_args', $args, $field, $this->form_id ),
200
- true
201
- );
202
- $values = array();
203
-
204
- foreach ( $terms as $term ) {
205
- $values[] = array(
206
- 'label' => $term->name,
207
- );
208
- }
209
- }
210
-
211
- // Notify if currently empty.
212
- if ( empty( $values ) ) {
213
- $values = array(
214
- 'label' => esc_html__( '(empty)', 'wpforms' ),
215
- );
216
- }
217
-
218
- // Individual radio options
219
- foreach ( $values as $key => $value ) {
220
-
221
- $default = isset( $value['default'] ) ? $value['default'] : '';
222
- $selected = checked( '1', $default, false );
223
-
224
- printf( '<li><input type="radio" %s disabled>%s</li>', $selected, $value['label'] );
225
- }
226
-
227
- echo '</ul>';
228
-
229
- // Dynamic population is enabled and contains more than 20 items.
230
- if ( isset( $total ) && $total > 20 ) {
231
- echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
232
- /* translators: %d - total number of choices. */
233
- printf( wp_kses( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), array( 'br' => array() ) ), absint( $total ) );
234
- echo '</div>';
235
- }
236
 
237
  // Description.
238
  $this->field_preview_option( 'description', $field );
@@ -243,102 +313,65 @@ class WPForms_Field_Radio extends WPForms_Field {
243
  *
244
  * @since 1.0.0
245
  *
246
- * @param array $field
247
- * @param array $field_atts
248
- * @param array $form_data
249
  */
250
- public function field_display( $field, $field_atts, $form_data ) {
251
-
252
- // Setup and sanitize the necessary data.
253
- $field = apply_filters( 'wpforms_radio_field_display', $field, $field_atts, $form_data );
254
- $field_required = ! empty( $field['required'] ) ? ' required' : '';
255
- $field_class = implode( ' ', array_map( 'sanitize_html_class', $field_atts['input_class'] ) );
256
- $field_id = implode( ' ', array_map( 'sanitize_html_class', $field_atts['input_id'] ) );
257
- $field_data = '';
258
- $form_id = absint( $form_data['id'] );
259
- $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
260
- $choices = $field['choices'];
261
- $randomize = ! empty( $field['random'] ) ? 'wpforms-randomize' : '';
262
-
263
- if ( ! empty( $field_atts['input_data'] ) ) {
264
- foreach ( $field_atts['input_data'] as $key => $val ) {
265
- $field_data .= ' data-' . $key . '="' . $val . '"';
266
- }
267
- }
268
 
269
- // Check to see if this field is configured for Dynamic Choices,
270
- // either auto populating from a post type or a taxonomy.
271
- if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
272
 
273
- // Post type dynamic populating.
274
- $source = $field['dynamic_post_type'];
275
- $args = array(
276
- 'post_type' => $source,
277
- 'posts_per_page' => -1,
278
- 'orderby' => 'title',
279
- 'order' => 'ASC',
280
- );
281
- $posts = wpforms_get_hierarchical_object( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] ), true );
282
- $choices = array();
283
-
284
- foreach ( $posts as $post ) {
285
- $choices[] = array(
286
- 'value' => $post->ID,
287
- 'label' => $post->post_title,
288
- 'depth' => isset( $post->depth ) ? absint( $post->depth ) : 1,
289
- );
290
- }
291
 
292
- $field['show_values'] = true;
293
 
294
- } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
 
 
295
 
296
- // Taxonomy dynamic populating.
297
- $source = $field['dynamic_taxonomy'];
298
- $args = array(
299
- 'taxonomy' => $source,
300
- 'hide_empty' => false,
301
- );
302
- $terms = wpforms_get_hierarchical_object(
303
- apply_filters( 'wpforms_dynamic_choice_taxonomy_args', $args, $field, $form_data['id'] ),
304
- true
305
- );
306
- $choices = array();
307
 
308
- foreach ( $terms as $term ) {
309
- $choices[] = array(
310
- 'value' => $term->term_id,
311
- 'label' => $term->name,
312
- 'depth' => isset( $term->depth ) ? absint( $term->depth ) : 1,
313
- );
314
- }
315
 
316
- $field['show_values'] = true;
317
- }
 
318
 
319
- // List.
320
- printf( '<ul id="%s" class="%s %s" %s>', $field_id, $field_class, $randomize, $field_data );
 
321
 
322
- foreach ( $choices as $key => $choice ) {
 
 
 
 
323
 
324
- $selected = isset( $choice['default'] ) ? '1' : '0';
325
- $val = isset( $field['show_values'] ) ? esc_attr( $choice['value'] ) : esc_attr( $choice['label'] );
326
- $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1;
327
 
328
- printf( '<li class="choice-%d depth-%d">', $key, $depth );
329
 
330
- // Radio elements.
331
- printf( '<input type="radio" id="wpforms-%s-field_%d_%d" name="wpforms[fields][%d]" value="%s" %s %s>',
332
- $form_id,
333
- $field['id'],
334
- $key,
335
- $field['id'],
336
- $val,
337
- checked( '1', $selected, false ),
338
- $field_required
339
- );
340
 
341
- printf( '<label class="wpforms-field-label-inline" for="wpforms-%d-field_%d_%d">%s</label>', $form_id, $field['id'], $key, wp_kses_post( $choice['label'] ) );
 
 
 
 
 
 
 
 
 
 
 
342
 
343
  echo '</li>';
344
  }
@@ -351,9 +384,9 @@ class WPForms_Field_Radio extends WPForms_Field {
351
  *
352
  * @since 1.0.2
353
  *
354
- * @param int $field_id
355
- * @param string $field_submit
356
- * @param array $form_data
357
  */
358
  public function format( $field_id, $field_submit, $form_data ) {
359
 
@@ -361,7 +394,6 @@ class WPForms_Field_Radio extends WPForms_Field {
361
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
362
  $name = sanitize_text_field( $field['label'] );
363
  $value_raw = sanitize_text_field( $field_submit );
364
- $value = '';
365
 
366
  $data = array(
367
  'name' => $name,
@@ -394,25 +426,39 @@ class WPForms_Field_Radio extends WPForms_Field {
394
  $data['value'] = esc_html( $term->name );
395
  }
396
  } else {
397
- /*
398
- * Normal processing, dynamic population is off.
399
- */
400
 
401
- // If show_values is true, that means values posted are the raw values
402
- // and not the labels. So we need to get the label values.
 
 
 
 
403
  if ( ! empty( $field['show_values'] ) && '1' == $field['show_values'] ) {
404
 
405
- foreach ( $field['choices'] as $choice ) {
406
  if ( $choice['value'] === $field_submit ) {
407
- $value = $choice['label'];
 
408
  break;
409
  }
410
  }
411
-
412
- $data['value'] = sanitize_text_field( $value );
413
-
414
  } else {
 
415
  $data['value'] = $value_raw;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  }
417
  }
418
 
@@ -420,5 +466,4 @@ class WPForms_Field_Radio extends WPForms_Field {
420
  wpforms()->process->fields[ $field_id ] = $data;
421
  }
422
  }
423
-
424
- new WPForms_Field_Radio;
26
  1 => array(
27
  'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
+ 'image' => '',
30
  'default' => '',
31
  ),
32
  2 => array(
33
  'label' => esc_html__( 'Second Choice', 'wpforms' ),
34
  'value' => '',
35
+ 'image' => '',
36
  'default' => '',
37
  ),
38
  3 => array(
39
  'label' => esc_html__( 'Third Choice', 'wpforms' ),
40
  'value' => '',
41
+ 'image' => '',
42
  'default' => '',
43
  ),
44
  );
45
+
46
+ // Customize HTML field values.
47
+ add_filter( 'wpforms_html_field_value', array( $this, 'field_html_value' ), 10, 4 );
48
+
49
+ // Define additional field properties.
50
+ add_filter( 'wpforms_field_properties_radio', array( $this, 'field_properties' ), 5, 3 );
51
+ }
52
+
53
+ /**
54
+ * Return images, if any, for HTML supported values.
55
+ *
56
+ * @since 1.4.5
57
+ *
58
+ * @param string $value Field value.
59
+ * @param array $field Field settings.
60
+ * @param array $form_data Form data.
61
+ * @param string $context Value display context.
62
+ *
63
+ * @return string
64
+ */
65
+ public function field_html_value( $value, $field, $form_data = array(), $context = '' ) {
66
+
67
+ // Only use HTML formatting for radio fields, with image choices
68
+ // enabled, and exclude the entry table display. Lastly, provides a
69
+ // filter to disable fancy display.
70
+ if (
71
+ ! empty( $field['value'] ) &&
72
+ 'radio' === $field['type'] &&
73
+ ! empty( $field['image'] ) &&
74
+ 'entry-table' !== $context &&
75
+ apply_filters( 'wpforms_radio_field_html_value_images', true, $context )
76
+ ) {
77
+
78
+ if ( ! empty( $field['image'] ) ) {
79
+ return sprintf( '<span style="max-width:200px;display:block;margin:0 0 5px 0;"><img src="%s" style="max-width:100%%;display:block;margin:0;"></span>%s',
80
+ esc_url( $field['image'] ),
81
+ $value
82
+ );
83
+ }
84
+ }
85
+
86
+ return $value;
87
+ }
88
+
89
+ /**
90
+ * Define additional field properties.
91
+ *
92
+ * @since 1.4.5
93
+ *
94
+ * @param array $properties Field properties.
95
+ * @param array $field Field settings.
96
+ * @param array $form_data Form data.
97
+ *
98
+ * @return array
99
+ */
100
+ public function field_properties( $properties, $field, $form_data ) {
101
+
102
+ // Define data.
103
+ $form_id = absint( $form_data['id'] );
104
+ $field_id = absint( $field['id'] );
105
+ $choices = $field['choices'];
106
+ $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id );
107
+
108
+ if ( $dynamic ) {
109
+ $choices = $dynamic;
110
+ $field['show_values'] = true;
111
+ }
112
+
113
+ // Remove primary input.
114
+ unset( $properties['inputs']['primary'] );
115
+
116
+ // Set input container (ul) properties.
117
+ $properties['input_container'] = array(
118
+ 'class' => array( ! empty( $field['random'] ) ? 'wpforms-randomize' : '' ),
119
+ 'data' => array(),
120
+ 'id' => "wpforms-{$form_id}-field_{$field_id}",
121
+ );
122
+
123
+ // Set input properties.
124
+ foreach ( $choices as $key => $choice ) {
125
+
126
+ $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1;
127
+
128
+ $properties['inputs'][ $key ] = array(
129
+ 'container' => array(
130
+ 'attr' => array(),
131
+ 'class' => array( "choice-{$key}", "depth-{$depth}" ),
132
+ 'data' => array(),
133
+ 'id' => '',
134
+ ),
135
+ 'label' => array(
136
+ 'attr' => array(
137
+ 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}",
138
+ ),
139
+ 'class' => array( 'wpforms-field-label-inline' ),
140
+ 'data' => array(),
141
+ 'id' => '',
142
+ 'text' => $choice['label'],
143
+ ),
144
+ 'attr' => array(
145
+ 'name' => "wpforms[fields][{$field_id}]",
146
+ 'value' => isset( $field['show_values'] ) ? $choice['value'] : $choice['label'],
147
+ ),
148
+ 'class' => array(),
149
+ 'data' => array(),
150
+ 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}",
151
+ 'image' => isset( $choice['image'] ) ? $choice['image'] : '',
152
+ 'required' => ! empty( $field['required'] ) ? 'required' : '',
153
+ 'default' => isset( $choice['default'] ),
154
+ );
155
+ }
156
+
157
+ // Custom properties if image choices is enabled.
158
+ if ( ! $dynamic && ! empty( $field['choices_images'] ) ) {
159
+
160
+ $properties['input_container']['class'][] = 'wpforms-image-choices';
161
+ $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] );
162
+
163
+ foreach ( $properties['inputs'] as $key => $inputs ) {
164
+ $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item';
165
+
166
+ if ( in_array( $field['choices_images_style'], array( 'modern', 'classic' ), true ) ) {
167
+ $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element';
168
+ }
169
+ }
170
+ }
171
+
172
+ // Add selected class for choices with defaults.
173
+ foreach ( $properties['inputs'] as $key => $inputs ) {
174
+ if ( ! empty( $inputs['default'] ) ) {
175
+ $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected';
176
+ }
177
+ }
178
+
179
+ return $properties;
180
  }
181
 
182
  /**
184
  *
185
  * @since 1.0.0
186
  *
187
+ * @param array $field Field settings.
188
  */
189
  public function field_options( $field ) {
190
 
191
+ // -------------------------------------------------------------------//
192
  // Basic field options.
193
+ // -------------------------------------------------------------------//
194
 
195
  // Options open markup.
196
  $this->field_option( 'basic-options', $field, array(
203
  // Choices.
204
  $this->field_option( 'choices', $field );
205
 
206
+ // Choices Images.
207
+ $this->field_option( 'choices_images', $field );
208
+
209
  // Description.
210
  $this->field_option( 'description', $field );
211
 
217
  'markup' => 'close',
218
  ) );
219
 
220
+ // -------------------------------------------------------------------//
221
  // Advanced field options.
222
+ // -------------------------------------------------------------------//
223
 
224
  // Options open markup.
225
  $this->field_option( 'advanced-options', $field, array(
249
  // Show Values toggle option. This option will only show if already used
250
  // or if manually enabled by a filter.
251
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
 
 
 
 
 
 
 
 
 
 
 
252
  $this->field_element( 'row', $field, array(
253
  'slug' => 'show_values',
254
+ 'content' => $this->field_element(
255
+ 'checkbox',
256
+ $field,
257
+ array(
258
+ 'slug' => 'show_values',
259
+ 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
260
+ 'desc' => esc_html__( 'Show Values', 'wpforms' ),
261
+ 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
262
+ ),
263
+ false
264
+ ),
265
  ) );
266
  }
267
 
268
+ // Choices Images Style (theme).
269
+ $this->field_option( 'choices_images_style', $field );
270
+
271
+ // Display format.
272
  $this->field_option( 'input_columns', $field );
273
 
274
  // Hide label.
294
  *
295
  * @since 1.0.0
296
  *
297
+ * @param array $field Field settings.
298
  */
299
  public function field_preview( $field ) {
300
 
 
 
 
301
  // Label.
302
  $this->field_preview_option( 'label', $field );
303
 
304
+ // Choices.
305
+ $this->field_preview_option( 'choices', $field );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
 
307
  // Description.
308
  $this->field_preview_option( 'description', $field );
313
  *
314
  * @since 1.0.0
315
  *
316
+ * @param array $field Field settings.
317
+ * @param array $deprecated Deprecated array.
318
+ * @param array $form_data Form data.
319
  */
320
+ public function field_display( $field, $deprecated, $form_data ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
 
322
+ // Define data.
323
+ $container = $field['properties']['input_container'];
324
+ $choices = $field['properties']['inputs'];
325
 
326
+ printf( '<ul %s>',
327
+ wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
328
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
 
330
+ foreach ( $choices as $key => $choice ) {
331
 
332
+ printf( '<li %s>',
333
+ wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
334
+ );
335
 
336
+ if ( empty( $field['dyanmic_choices'] ) && ! empty( $field['choices_images'] ) ) {
 
 
 
 
 
 
 
 
 
 
337
 
338
+ // Image choices.
339
+ printf( '<label %s>',
340
+ wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] )
341
+ );
 
 
 
342
 
343
+ if ( ! empty( $choice['image'] ) ) {
344
+ echo '<span class="wpforms-image-choices-image"><img src="' . esc_url( $choice['image'] ) . '"></span>';
345
+ }
346
 
347
+ if ( 'none' === $field['choices_images_style'] ) {
348
+ echo '<br>';
349
+ }
350
 
351
+ printf( '<input type="radio" %s %s %s>',
352
+ wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
353
+ esc_attr( $choice['required'] ),
354
+ checked( '1', $choice['default'], false )
355
+ );
356
 
357
+ echo '<span class="wpforms-image-choices-label">' . wp_kses_post( $choice['label']['text'] ) . '</span>';
 
 
358
 
359
+ echo '</label>';
360
 
361
+ } else {
 
 
 
 
 
 
 
 
 
362
 
363
+ // Normal display.
364
+ printf( '<input type="radio" %s %s %s>',
365
+ wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
366
+ esc_attr( $choice['required'] ),
367
+ checked( '1', $choice['default'], false )
368
+ );
369
+
370
+ printf( '<label %s>%s</label>',
371
+ wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ),
372
+ wp_kses_post( $choice['label']['text'] )
373
+ ); // WPCS: XSS ok.
374
+ }
375
 
376
  echo '</li>';
377
  }
384
  *
385
  * @since 1.0.2
386
  *
387
+ * @param int $field_id Field ID.
388
+ * @param array $field_submit Submitted form data.
389
+ * @param array $form_data Form data.
390
  */
391
  public function format( $field_id, $field_submit, $form_data ) {
392
 
394
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
395
  $name = sanitize_text_field( $field['label'] );
396
  $value_raw = sanitize_text_field( $field_submit );
 
397
 
398
  $data = array(
399
  'name' => $name,
426
  $data['value'] = esc_html( $term->name );
427
  }
428
  } else {
 
 
 
429
 
430
+ // Normal processing, dynamic population is off.
431
+ $choice_key = '';
432
+
433
+ // If show_values is true, that means value posted is the raw value
434
+ // and not the label. So we need to set label value. Also store
435
+ // the choice key.
436
  if ( ! empty( $field['show_values'] ) && '1' == $field['show_values'] ) {
437
 
438
+ foreach ( $field['choices'] as $key => $choice ) {
439
  if ( $choice['value'] === $field_submit ) {
440
+ $data['value'] = sanitize_text_field( $choice['label'] );
441
+ $choice_key = $key;
442
  break;
443
  }
444
  }
 
 
 
445
  } else {
446
+
447
  $data['value'] = $value_raw;
448
+
449
+ // Determine choice key, this is needed for image choices.
450
+ foreach ( $field['choices'] as $key => $choice ) {
451
+ if ( $choice['label'] === $field_submit ) {
452
+ $choice_key = $key;
453
+ break;
454
+ }
455
+ }
456
+ }
457
+
458
+ // Images choices are enabled, lookup and store image URL.
459
+ if ( ! empty( $field['choices_images'] ) && ! empty( $choice_key ) ) {
460
+
461
+ $data['image'] = ! empty( $field['choices'][ $choice_key ]['image'] ) ? esc_url_raw( $field['choices'][ $choice_key ]['image'] ) : '';
462
  }
463
  }
464
 
466
  wpforms()->process->fields[ $field_id ] = $data;
467
  }
468
  }
469
+ new WPForms_Field_Radio();
 
includes/fields/class-text.php CHANGED
@@ -22,13 +22,55 @@ class WPForms_Field_Text extends WPForms_Field {
22
  $this->type = 'text';
23
  $this->icon = 'fa-text-width';
24
  $this->order = 3;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  }
26
 
27
  /**
28
  * Field options panel inside the builder.
29
  *
30
  * @since 1.0.0
31
- * @param array $field
 
32
  */
33
  public function field_options( $field ) {
34
 
@@ -37,10 +79,9 @@ class WPForms_Field_Text extends WPForms_Field {
37
  // -------------------------------------------------------------------//
38
 
39
  // Options open markup.
40
- $args = array(
41
  'markup' => 'open',
42
- );
43
- $this->field_option( 'basic-options', $field, $args );
44
 
45
  // Label.
46
  $this->field_option( 'label', $field );
@@ -52,20 +93,18 @@ class WPForms_Field_Text extends WPForms_Field {
52
  $this->field_option( 'required', $field );
53
 
54
  // Options close markup.
55
- $args = array(
56
  'markup' => 'close',
57
- );
58
- $this->field_option( 'basic-options', $field, $args );
59
 
60
  // --------------------------------------------------------------------//
61
  // Advanced field options.
62
  // --------------------------------------------------------------------//
63
 
64
  // Options open markup.
65
- $args = array(
66
  'markup' => 'open',
67
- );
68
- $this->field_option( 'advanced-options', $field, $args );
69
 
70
  // Size.
71
  $this->field_option( 'size', $field );
@@ -82,18 +121,44 @@ class WPForms_Field_Text extends WPForms_Field {
82
  // Custom CSS classes.
83
  $this->field_option( 'css', $field );
84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  // Options close markup.
86
- $args = array(
87
  'markup' => 'close',
88
- );
89
- $this->field_option( 'advanced-options', $field, $args );
90
  }
91
 
92
  /**
93
  * Field preview inside the builder.
94
  *
95
  * @since 1.0.0
96
- * @param array $field
 
97
  */
98
  public function field_preview( $field ) {
99
 
@@ -104,7 +169,7 @@ class WPForms_Field_Text extends WPForms_Field {
104
  $this->field_preview_option( 'label', $field );
105
 
106
  // Primary input.
107
- echo '<input type="text" placeholder="' . $placeholder . '" class="primary-input" disabled>';
108
 
109
  // Description.
110
  $this->field_preview_option( 'description', $field );
@@ -114,9 +179,10 @@ class WPForms_Field_Text extends WPForms_Field {
114
  * Field display on the form front-end.
115
  *
116
  * @since 1.0.0
117
- * @param array $field
118
- * @param array $deprecated
119
- * @param array $form_data
 
120
  */
121
  public function field_display( $field, $deprecated, $form_data ) {
122
 
@@ -127,7 +193,7 @@ class WPForms_Field_Text extends WPForms_Field {
127
  printf( '<input type="text" %s %s>',
128
  wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ),
129
  $primary['required']
130
- );
131
  }
132
  }
133
- new WPForms_Field_Text;
22
  $this->type = 'text';
23
  $this->icon = 'fa-text-width';
24
  $this->order = 3;
25
+
26
+ // Define additional field properties.
27
+ add_filter( 'wpforms_field_properties_text', array( $this, 'field_properties' ), 5, 3 );
28
+ }
29
+
30
+ /**
31
+ * Define additional field properties.
32
+ *
33
+ * @since 1.4.5
34
+ *
35
+ * @param array $properties Field properties.
36
+ * @param array $field Field settings.
37
+ * @param array $form_data Form data.
38
+ *
39
+ * @return array
40
+ */
41
+ public function field_properties( $properties, $field, $form_data ) {
42
+
43
+ // Input primary: Detect custom input mask.
44
+ if ( ! empty( $field['input_mask'] ) ) {
45
+
46
+ // Add class that will trigger custom mask.
47
+ $properties['inputs']['primary']['class'][] = 'wpforms-masked-input';
48
+
49
+ if ( false !== strpos( $field['input_mask'], 'alias:' ) ) {
50
+ $mask = str_replace( 'alias:', '', $field['input_mask'] );
51
+ $properties['inputs']['primary']['data']['inputmask-alias'] = $mask;
52
+ } elseif ( false !== strpos( $field['input_mask'], 'regex:' ) ) {
53
+ $mask = str_replace( 'regex:', '', $field['input_mask'] );
54
+ $properties['inputs']['primary']['data']['inputmask-regex'] = $mask;
55
+ } elseif ( false !== strpos( $field['input_mask'], 'date:' ) ) {
56
+ $mask = str_replace( 'date:', '', $field['input_mask'] );
57
+ $properties['inputs']['primary']['data']['inputmask-alias'] = 'datetime';
58
+ $properties['inputs']['primary']['data']['inputmask-inputformat'] = $mask;
59
+
60
+ } else {
61
+ $properties['inputs']['primary']['data']['inputmask-mask'] = $field['input_mask'];
62
+ }
63
+ }
64
+
65
+ return $properties;
66
  }
67
 
68
  /**
69
  * Field options panel inside the builder.
70
  *
71
  * @since 1.0.0
72
+ *
73
+ * @param array $field Field settings.
74
  */
75
  public function field_options( $field ) {
76
 
79
  // -------------------------------------------------------------------//
80
 
81
  // Options open markup.
82
+ $this->field_option( 'basic-options', $field, array(
83
  'markup' => 'open',
84
+ ) );
 
85
 
86
  // Label.
87
  $this->field_option( 'label', $field );
93
  $this->field_option( 'required', $field );
94
 
95
  // Options close markup.
96
+ $this->field_option( 'basic-options', $field, array(
97
  'markup' => 'close',
98
+ ) );
 
99
 
100
  // --------------------------------------------------------------------//
101
  // Advanced field options.
102
  // --------------------------------------------------------------------//
103
 
104
  // Options open markup.
105
+ $this->field_option( 'advanced-options', $field, array(
106
  'markup' => 'open',
107
+ ) );
 
108
 
109
  // Size.
110
  $this->field_option( 'size', $field );
121
  // Custom CSS classes.
122
  $this->field_option( 'css', $field );
123
 
124
+ // Input Mask.
125
+ $lbl = $this->field_element(
126
+ 'label',
127
+ $field,
128
+ array(
129
+ 'slug' => 'input_mask',
130
+ 'value' => esc_html__( 'Input Mask', 'wpforms' ),
131
+ 'tooltip' => esc_html__( 'Enter your custom input mask.', 'wpforms' ),
132
+ 'after_tooltip' => '<a href="https://wpforms.com/docs/" class="after-label-description">' . esc_html__( 'See Examples & Docs', 'wpforms' ) . '</a>',
133
+ ),
134
+ false
135
+ );
136
+ $fld = $this->field_element(
137
+ 'text',
138
+ $field,
139
+ array(
140
+ 'slug' => 'input_mask',
141
+ 'value' => ! empty( $field['mast'] ) ? esc_attr( $field['mast'] ) : '',
142
+ ),
143
+ false
144
+ );
145
+ $this->field_element( 'row', $field, array(
146
+ 'slug' => 'input_mask',
147
+ 'content' => $lbl . $fld,
148
+ ) );
149
+
150
  // Options close markup.
151
+ $this->field_option( 'advanced-options', $field, array(
152
  'markup' => 'close',
153
+ ) );
 
154
  }
155
 
156
  /**
157
  * Field preview inside the builder.
158
  *
159
  * @since 1.0.0
160
+ *
161
+ * @param array $field Field settings.
162
  */
163
  public function field_preview( $field ) {
164
 
169
  $this->field_preview_option( 'label', $field );
170
 
171
  // Primary input.
172
+ echo '<input type="text" placeholder="' . esc_attr( $placeholder ) . '" class="primary-input" disabled>';
173
 
174
  // Description.
175
  $this->field_preview_option( 'description', $field );
179
  * Field display on the form front-end.
180
  *
181
  * @since 1.0.0
182
+ *
183
+ * @param array $field Field settings.
184
+ * @param array $deprecated Deprecated.
185
+ * @param array $form_data Form data.
186
  */
187
  public function field_display( $field, $deprecated, $form_data ) {
188
 
193
  printf( '<input type="text" %s %s>',
194
  wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ),
195
  $primary['required']
196
+ ); // WPCS: XSS ok.
197
  }
198
  }
199
+ new WPForms_Field_Text();
includes/functions.php CHANGED
@@ -197,6 +197,55 @@ function wpforms_has_field_type( $type, $form, $multiple = false ) {
197
  }
198
  }
199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  /**
201
  * Checks if form provided contains page breaks, if so give details.
202
  *
@@ -353,31 +402,39 @@ function wpforms_get_pagebreak_details( $form = false ) {
353
  */
354
  function wpforms_html_attributes( $id = '', $class = array(), $datas = array(), $atts = array(), $echo = false ) {
355
 
356
- $output = '';
357
- $id = trim( $id );
358
 
359
  if ( ! empty( $id ) ) {
360
- $output = 'id="' . sanitize_html_class( $id ) . '" ';
 
 
 
361
  }
362
 
363
  if ( ! empty( $class ) ) {
364
- $output .= 'class="' . wpforms_sanitize_classes( $class, true ) . '" ';
 
 
 
365
  }
366
 
367
  if ( ! empty( $datas ) ) {
368
  foreach ( $datas as $data => $val ) {
369
- $output .= 'data-' . sanitize_html_class( $data ) . '="' . esc_attr( $val ) . '" ';
370
  }
371
  }
372
 
373
  if ( ! empty( $atts ) ) {
374
  foreach ( $atts as $att => $val ) {
375
  if ( '0' == $val || ! empty( $val ) ) {
376
- $output .= sanitize_html_class( $att ) . '="' . esc_attr( $val ) . '" ';
377
  }
378
  }
379
  }
380
 
 
 
381
  if ( $echo ) {
382
  echo trim( $output );
383
  } else {
@@ -405,7 +462,9 @@ function wpforms_sanitize_classes( $classes, $convert = false ) {
405
  $classes = explode( ' ', trim( $classes ) );
406
  }
407
  foreach ( $classes as $class ) {
408
- $css[] = sanitize_html_class( $class );
 
 
409
  }
410
  }
411
  if ( $array ) {
@@ -1272,6 +1331,84 @@ function _wpforms_get_hierarchical_object_flatten( $array, &$output, $ref_name =
1272
  }
1273
  }
1274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1275
  /**
1276
  * Insert an array into another array before/after a certain key.
1277
  *
197
  }
198
  }
199
 
200
+ /**
201
+ * Check if form provided contains a field which a specific setting.
202
+ *
203
+ * @since 1.4.5
204
+ *
205
+ * @param string $setting
206
+ * @param array $form
207
+ * @param bool $multiple
208
+ *
209
+ * @return bool
210
+ */
211
+ function wpforms_has_field_setting( $setting, $form, $multiple = false ) {
212
+
213
+ $form_data = '';
214
+ $field = false;
215
+
216
+ if ( $multiple ) {
217
+ foreach ( $form as $single_form ) {
218
+ $field = wpforms_has_field_setting( $setting, $single_form );
219
+ if ( $field ) {
220
+ break;
221
+ }
222
+ }
223
+
224
+ return $field;
225
+ } else {
226
+
227
+ if ( is_object( $form ) && ! empty( $form->post_content ) ) {
228
+ $form_data = wpforms_decode( $form->post_content );
229
+ } elseif ( is_array( $form ) ) {
230
+ $form_data = $form;
231
+ }
232
+
233
+ if ( empty( $form_data['fields'] ) ) {
234
+ return false;
235
+ }
236
+
237
+ foreach ( $form_data['fields'] as $single_field ) {
238
+
239
+ if ( ! empty( $single_field[ $setting ] ) ) {
240
+ $field = true;
241
+ break;
242
+ }
243
+ }
244
+
245
+ return $field;
246
+ }
247
+ }
248
+
249
  /**
250
  * Checks if form provided contains page breaks, if so give details.
251
  *
402
  */
403
  function wpforms_html_attributes( $id = '', $class = array(), $datas = array(), $atts = array(), $echo = false ) {
404
 
405
+ $id = trim( $id );
406
+ $parts = array();
407
 
408
  if ( ! empty( $id ) ) {
409
+ $id = sanitize_html_class( $id );
410
+ if ( ! empty( $id ) ) {
411
+ $parts[] = 'id="' . $id . '"';
412
+ }
413
  }
414
 
415
  if ( ! empty( $class ) ) {
416
+ $class = wpforms_sanitize_classes( $class, true );
417
+ if ( ! empty( $class ) ) {
418
+ $parts[] = 'class="' . $class . '"';
419
+ }
420
  }
421
 
422
  if ( ! empty( $datas ) ) {
423
  foreach ( $datas as $data => $val ) {
424
+ $parts[] = 'data-' . sanitize_html_class( $data ) . '="' . esc_attr( $val ) . '"';
425
  }
426
  }
427
 
428
  if ( ! empty( $atts ) ) {
429
  foreach ( $atts as $att => $val ) {
430
  if ( '0' == $val || ! empty( $val ) ) {
431
+ $parts[] = sanitize_html_class( $att ) . '="' . esc_attr( $val ) . '"';
432
  }
433
  }
434
  }
435
 
436
+ $output = implode( ' ', $parts );
437
+
438
  if ( $echo ) {
439
  echo trim( $output );
440
  } else {
462
  $classes = explode( ' ', trim( $classes ) );
463
  }
464
  foreach ( $classes as $class ) {
465
+ if ( ! empty( $class ) ) {
466
+ $css[] = sanitize_html_class( $class );
467
+ }
468
  }
469
  }
470
  if ( $array ) {
1331
  }
1332
  }
1333
 
1334
+ /**
1335
+ * Returns field choice properties for field configured with dynamic choices.
1336
+ *
1337
+ * @since 1.4.5
1338
+ *
1339
+ * @param array $field Field settings.
1340
+ * @param int $form_id Form ID.
1341
+ *
1342
+ * @return false|array
1343
+ */
1344
+ function wpforms_get_field_dynamic_choices( $field, $form_id ) {
1345
+
1346
+ if ( empty( $field['dyanmic_choices'] ) ) {
1347
+ return false;
1348
+ }
1349
+
1350
+ $choices = array();
1351
+
1352
+ if ( 'post_type' === $field['dyanmic_choices'] ) {
1353
+
1354
+ if ( empty( $field['dynamic_post_type'] ) ) {
1355
+ return false;
1356
+ }
1357
+
1358
+ $posts = wpforms_get_hierarchical_object(
1359
+ apply_filters(
1360
+ 'wpforms_dynamic_choice_post_type_args',
1361
+ array(
1362
+ 'post_type' => $field['dynamic_post_type'],
1363
+ 'posts_per_page' => -1,
1364
+ 'orderby' => 'title',
1365
+ 'order' => 'ASC',
1366
+ ),
1367
+ $field,
1368
+ $form_id
1369
+ ),
1370
+ true
1371
+ );
1372
+
1373
+ foreach ( $posts as $post ) {
1374
+ $choices[] = array(
1375
+ 'value' => $post->ID,
1376
+ 'label' => $post->post_title,
1377
+ 'depth' => isset( $post->depth ) ? absint( $post->depth ) : 1,
1378
+ );
1379
+ }
1380
+
1381
+ } elseif ( 'taxonomy' === $field['dyanmic_choices'] ) {
1382
+
1383
+ if ( empty( $field['dynamic_taxonomy'] ) ) {
1384
+ return false;
1385
+ }
1386
+
1387
+ $terms = wpforms_get_hierarchical_object(
1388
+ apply_filters(
1389
+ 'wpforms_dynamic_choice_taxonomy_args',
1390
+ array(
1391
+ 'taxonomy' => $field['dynamic_taxonomy'],
1392
+ 'hide_empty' => false,
1393
+ ),
1394
+ $field,
1395
+ $form_data
1396
+ ),
1397
+ true
1398
+ );
1399
+
1400
+ foreach ( $terms as $term ) {
1401
+ $choices[] = array(
1402
+ 'value' => $term->term_id,
1403
+ 'label' => $term->name,
1404
+ 'depth' => isset( $term->depth ) ? absint( $term->depth ) : 1,
1405
+ );
1406
+ }
1407
+ }
1408
+
1409
+ return $choices;
1410
+ }
1411
+
1412
  /**
1413
  * Insert an array into another array before/after a certain key.
1414
  *
languages/wpforms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the WPForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WPForms 1.4.4.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
7
- "POT-Creation-Date: 2018-02-13 17:23:27+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -13,33 +13,33 @@ msgstr ""
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
  #: includes/admin/admin.php:128 includes/admin/admin.php:156
16
- #: pro/includes/admin/class-addons.php:272
17
  msgid "Activate"
18
  msgstr ""
19
 
20
- #: includes/admin/admin.php:129 pro/includes/admin/class-addons.php:229
21
  msgid "Active"
22
  msgstr ""
23
 
24
- #: includes/admin/admin.php:130 pro/includes/admin/class-addons.php:267
25
  msgid "Deactivate"
26
  msgstr ""
27
 
28
- #: includes/admin/admin.php:131 pro/includes/admin/class-addons.php:235
29
  msgid "Inactive"
30
  msgstr ""
31
 
32
- #: includes/admin/admin.php:132 pro/includes/admin/class-addons.php:277
33
  msgid "Install Addon"
34
  msgstr ""
35
 
36
- #: includes/admin/admin.php:134 includes/admin/builder/class-builder.php:317
37
  #: includes/admin/class-editor.php:109
38
  #: pro/includes/admin/entries/class-entries-single.php:608
39
  msgid "Cancel"
40
  msgstr ""
41
 
42
- #: includes/admin/admin.php:135 includes/admin/builder/class-builder.php:319
43
  #: includes/admin/class-editor.php:72 includes/class-preview.php:161
44
  msgid "Close"
45
  msgstr ""
@@ -71,22 +71,22 @@ msgid "Are you sure you want to delete this note?"
71
  msgstr ""
72
 
73
  #: includes/admin/admin.php:142
74
- #: pro/includes/admin/entries/class-entries-list-table.php:371
75
  msgid "Unstar entry"
76
  msgstr ""
77
 
78
  #: includes/admin/admin.php:143
79
- #: pro/includes/admin/entries/class-entries-list-table.php:371
80
  msgid "Star entry"
81
  msgstr ""
82
 
83
  #: includes/admin/admin.php:144
84
- #: pro/includes/admin/entries/class-entries-list-table.php:376
85
  msgid "Mark entry read"
86
  msgstr ""
87
 
88
  #: includes/admin/admin.php:145
89
- #: pro/includes/admin/entries/class-entries-list-table.php:376
90
  msgid "Mark entry unread"
91
  msgstr ""
92
 
@@ -102,7 +102,7 @@ msgstr ""
102
  msgid "Are you sure you want to duplicate this form?"
103
  msgstr ""
104
 
105
- #: includes/admin/admin.php:149 includes/admin/builder/class-builder.php:327
106
  msgid "Heads up!"
107
  msgstr ""
108
 
@@ -110,7 +110,7 @@ msgstr ""
110
  msgid "Please select at least one form to import."
111
  msgstr ""
112
 
113
- #: includes/admin/admin.php:153 includes/admin/builder/class-builder.php:318
114
  msgid "OK"
115
  msgstr ""
116
 
@@ -143,62 +143,66 @@ msgid "Save and Refresh"
143
  msgstr ""
144
 
145
  #: includes/admin/admin.php:161
146
- msgid "Upgrade was successfully completed!"
147
  msgstr ""
148
 
149
  #: includes/admin/admin.php:162
 
 
 
 
150
  msgid "Upload or Choose Your Image"
151
  msgstr ""
152
 
153
- #: includes/admin/admin.php:163
154
  msgid "Use Image"
155
  msgstr ""
156
 
157
  #. translators: %1$s - WPForms plugin name; %2$s - WPForms.com URL to a related
158
  #. doc.
159
- #: includes/admin/admin.php:360
160
  msgid ""
161
  "Your site is running an outdated version of PHP that is no longer supported "
162
  "and may cause issues with %1$s. <a href=\"%2$s\" target=\"_blank\" rel="
163
  "\"noopener noreferrer\">Read more</a> for additional information."
164
  msgstr ""
165
 
166
- #: includes/admin/admin.php:374
167
  msgid ""
168
  "<em><strong>Please Note:</strong> After April 2018, WPForms will be "
169
  "deactivated if not further action is taken.</em>"
170
  msgstr ""
171
 
172
- #: includes/admin/admin.php:396
173
  msgid "Thanks for your interest in WPForms Pro!"
174
  msgstr ""
175
 
176
  #. translators: %s - WPForms.com contact page URL.
177
- #: includes/admin/admin.php:400
178
  msgid ""
179
  "If you have any questions or issues just <a href=\"%s\" target=\"_blank\" "
180
  "rel=\"noopener noreferrer\">let us know</a>."
181
  msgstr ""
182
 
183
- #: includes/admin/admin.php:414
184
  msgid ""
185
  "After purchasing WPForms Pro, you'll need to <strong>download and install "
186
  "the Pro version of the plugin</strong>, and then <strong>remove the free "
187
  "plugin</strong>."
188
  msgstr ""
189
 
190
- #: includes/admin/admin.php:419
191
  msgid "(Don't worry, all your forms and settings will be preserved.)"
192
  msgstr ""
193
 
194
  #. translators: %s - WPForms.com upgrade from Lite to paid docs page URL.
195
- #: includes/admin/admin.php:425
196
  msgid ""
197
  "Check out <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">our "
198
  "documentation</a> for step-by-step instructions."
199
  msgstr ""
200
 
201
- #: includes/admin/ajax-actions.php:24 includes/fields/class-base.php:767
202
  msgid "You do not have permission."
203
  msgstr ""
204
 
@@ -226,365 +230,387 @@ msgstr ""
226
  msgid "Error updating form template"
227
  msgstr ""
228
 
229
- #: includes/admin/ajax-actions.php:281 includes/fields/class-base.php:405
230
  msgid "post type"
231
  msgstr ""
232
 
233
- #: includes/admin/ajax-actions.php:309 includes/fields/class-base.php:412
234
  msgid "taxonomy"
235
  msgstr ""
236
 
237
- #: includes/admin/builder/class-builder.php:304
 
 
 
 
 
 
 
 
 
 
238
  #: includes/class-conditional-logic-core.php:449
239
  msgid "AND"
240
  msgstr ""
241
 
242
- #: includes/admin/builder/class-builder.php:306
243
  msgid "Add New Choices"
244
  msgstr ""
245
 
246
- #: includes/admin/builder/class-builder.php:307
247
- #: includes/fields/class-base.php:363
248
  msgid "Bulk Add"
249
  msgstr ""
250
 
251
- #: includes/admin/builder/class-builder.php:308
252
  msgid "Hide Bulk Add"
253
  msgstr ""
254
 
255
- #: includes/admin/builder/class-builder.php:309
256
  msgid "Add Choices (one per line)"
257
  msgstr ""
258
 
259
- #: includes/admin/builder/class-builder.php:310
260
  msgid ""
261
  "Blue\n"
262
  "Red\n"
263
  "Green"
264
  msgstr ""
265
 
266
- #: includes/admin/builder/class-builder.php:311
267
  msgid "Show presets"
268
  msgstr ""
269
 
270
- #: includes/admin/builder/class-builder.php:312
271
  msgid "Hide presets"
272
  msgstr ""
273
 
274
- #: includes/admin/builder/class-builder.php:316
275
  msgid ""
276
  "The {source} {type} contains over {limit} items ({total}). This may make the "
277
  "field difficult for your visitors to use and/or cause the form to be slow."
278
  msgstr ""
279
 
280
- #: includes/admin/builder/class-builder.php:320
281
  msgid ""
282
  "Due to form changes, conditional logic rules have been removed or updated:"
283
  msgstr ""
284
 
285
- #: includes/admin/builder/class-builder.php:321
286
  msgid ""
287
  "Are you sure you want to disable conditional logic? This will remove the "
288
  "rules for this field or setting."
289
  msgstr ""
290
 
291
- #: includes/admin/builder/class-builder.php:322
292
- #: pro/includes/admin/entries/class-entries-list-table.php:221
293
- #: pro/includes/admin/entries/class-entries-list-table.php:232
294
- #: pro/includes/admin/entries/class-entries-list-table.php:709
295
  #: pro/includes/admin/entries/class-entries-list.php:614
296
  #: pro/includes/admin/entries/class-entries-list.php:627
297
  msgid "Field"
298
  msgstr ""
299
 
300
- #: includes/admin/builder/class-builder.php:323
301
  msgid "Field Locked"
302
  msgstr ""
303
 
304
- #: includes/admin/builder/class-builder.php:324
305
  msgid "This field cannot be deleted or duplicated."
306
  msgstr ""
307
 
308
- #: includes/admin/builder/class-builder.php:325
309
  msgid "Available Fields"
310
  msgstr ""
311
 
312
- #: includes/admin/builder/class-builder.php:326
313
  msgid "No fields available"
314
  msgstr ""
315
 
316
- #: includes/admin/builder/class-builder.php:329
317
  msgid "No email fields"
318
  msgstr ""
319
 
320
- #: includes/admin/builder/class-builder.php:330
321
  msgid "Are you sure you want to delete this notification?"
322
  msgstr ""
323
 
324
- #: includes/admin/builder/class-builder.php:331
325
  msgid "Enter a notification name"
326
  msgstr ""
327
 
328
- #: includes/admin/builder/class-builder.php:332
329
  msgid "Eg: User Confirmation"
330
  msgstr ""
331
 
332
- #: includes/admin/builder/class-builder.php:333
333
  msgid "You must provide a notification name"
334
  msgstr ""
335
 
336
- #: includes/admin/builder/class-builder.php:334
337
  msgid ""
338
  "Form must contain one notification. To disable all notifications use the "
339
  "Notifications dropdown setting."
340
  msgstr ""
341
 
342
- #: includes/admin/builder/class-builder.php:335 lite/wpforms-lite.php:110
343
  #: pro/wpforms-pro.php:435
344
  msgid "Default Notification"
345
  msgstr ""
346
 
347
- #: includes/admin/builder/class-builder.php:336
348
- #: includes/admin/builder/class-builder.php:507
349
  msgid "Save"
350
  msgstr ""
351
 
352
- #: includes/admin/builder/class-builder.php:337
353
  msgid "Saving ..."
354
  msgstr ""
355
 
356
- #: includes/admin/builder/class-builder.php:338
357
  msgid "Saved!"
358
  msgstr ""
359
 
360
- #: includes/admin/builder/class-builder.php:339
361
  msgid "Save and Exit"
362
  msgstr ""
363
 
364
- #: includes/admin/builder/class-builder.php:341
365
- #: includes/fields/class-base.php:550
366
  msgid "Show Layouts"
367
  msgstr ""
368
 
369
- #: includes/admin/builder/class-builder.php:342
370
  msgid "Hide Layouts"
371
  msgstr ""
372
 
373
- #: includes/admin/builder/class-builder.php:343
374
  msgid "Select your layout"
375
  msgstr ""
376
 
377
- #: includes/admin/builder/class-builder.php:344
378
  msgid "Select your column"
379
  msgstr ""
380
 
381
- #: includes/admin/builder/class-builder.php:345
382
- #: includes/admin/builder/class-builder.php:466
383
  msgid "Loading"
384
  msgstr ""
385
 
386
- #: includes/admin/builder/class-builder.php:351
387
  msgid "Use Template"
388
  msgstr ""
389
 
390
- #: includes/admin/builder/class-builder.php:352
391
  msgid ""
392
  "Changing templates on an existing form will DELETE existing form fields. Are "
393
  "you sure you want apply the new template?"
394
  msgstr ""
395
 
396
- #: includes/admin/builder/class-builder.php:353
397
  msgid ""
398
  "You are almost done. To embed this form on your site, please paste the "
399
  "following shortcode inside a post or page."
400
  msgstr ""
401
 
402
- #: includes/admin/builder/class-builder.php:354
403
  msgid "Or you can follow the instructions in this video."
404
  msgstr ""
405
 
406
- #: includes/admin/builder/class-builder.php:355
407
- #: includes/admin/builder/class-builder.php:512
408
  msgid "Exit"
409
  msgstr ""
410
 
411
- #: includes/admin/builder/class-builder.php:357
412
  msgid "If you exit without saving, your changes will be lost."
413
  msgstr ""
414
 
415
- #: includes/admin/builder/class-builder.php:358
416
  msgid "Are you sure you want to delete this field?"
417
  msgstr ""
418
 
419
- #: includes/admin/builder/class-builder.php:359
420
  msgid "Are you sure you want to duplicate this field?"
421
  msgstr ""
422
 
423
- #: includes/admin/builder/class-builder.php:360
424
  msgid "(copy)"
425
  msgstr ""
426
 
427
- #: includes/admin/builder/class-builder.php:361
428
  msgid "Please enter a form name."
429
  msgstr ""
430
 
431
- #: includes/admin/builder/class-builder.php:362
432
  msgid "This item must contain at least one choice."
433
  msgstr ""
434
 
435
- #: includes/admin/builder/class-builder.php:363
436
- #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
437
  #: lite/wpforms-lite.php:101 pro/wpforms-pro.php:428
438
  msgid "Off"
439
  msgstr ""
440
 
441
- #: includes/admin/builder/class-builder.php:364
442
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:100
443
  #: pro/wpforms-pro.php:427
444
  msgid "On"
445
  msgstr ""
446
 
447
- #: includes/admin/builder/class-builder.php:365
448
  msgid "or"
449
  msgstr ""
450
 
451
- #: includes/admin/builder/class-builder.php:366
452
  #: includes/admin/class-am-deactivation-survey.php:307
453
  #: includes/templates/class-suggestion.php:61
454
  msgid "Other"
455
  msgstr ""
456
 
457
- #: includes/admin/builder/class-builder.php:367
458
  #: includes/class-conditional-logic-core.php:372
459
- #: pro/includes/admin/entries/class-entries-list-table.php:727
460
  msgid "is"
461
  msgstr ""
462
 
463
- #: includes/admin/builder/class-builder.php:368
464
  #: includes/class-conditional-logic-core.php:373
465
- #: pro/includes/admin/entries/class-entries-list-table.php:728
466
  msgid "is not"
467
  msgstr ""
468
 
469
- #: includes/admin/builder/class-builder.php:369
470
  #: includes/class-conditional-logic-core.php:374
471
  msgid "empty"
472
  msgstr ""
473
 
474
- #: includes/admin/builder/class-builder.php:370
475
  #: includes/class-conditional-logic-core.php:375
476
  msgid "not empty"
477
  msgstr ""
478
 
479
- #: includes/admin/builder/class-builder.php:371
480
  #: includes/class-conditional-logic-core.php:380
481
- #: pro/includes/admin/entries/class-entries-list-table.php:725
482
  msgid "contains"
483
  msgstr ""
484
 
485
- #: includes/admin/builder/class-builder.php:372
486
  #: includes/class-conditional-logic-core.php:381
487
- #: pro/includes/admin/entries/class-entries-list-table.php:726
488
  msgid "does not contain"
489
  msgstr ""
490
 
491
- #: includes/admin/builder/class-builder.php:373
492
  #: includes/class-conditional-logic-core.php:382
493
  msgid "starts with"
494
  msgstr ""
495
 
496
- #: includes/admin/builder/class-builder.php:374
497
  #: includes/class-conditional-logic-core.php:383
498
  msgid "ends with"
499
  msgstr ""
500
 
501
- #: includes/admin/builder/class-builder.php:375
502
  msgid ""
503
  "Form entries must be stored to accept payments. Please enable saving form "
504
  "entries in the General settings first."
505
  msgstr ""
506
 
507
- #: includes/admin/builder/class-builder.php:376
508
  #: pro/includes/fields/class-page-break.php:199
509
  #: pro/includes/fields/class-page-break.php:521
510
  msgid "Previous"
511
  msgstr ""
512
 
513
- #: includes/admin/builder/class-builder.php:377
 
 
 
 
 
 
 
514
  #: includes/class-conditional-logic-core.php:449
515
  msgid "Create new rule"
516
  msgstr ""
517
 
518
- #: includes/admin/builder/class-builder.php:378
519
  msgid "Add new group"
520
  msgstr ""
521
 
522
- #: includes/admin/builder/class-builder.php:379
523
  #: includes/class-conditional-logic-core.php:450
524
  msgid "Delete rule"
525
  msgstr ""
526
 
527
- #: includes/admin/builder/class-builder.php:381
528
- #: includes/admin/builder/functions.php:255 includes/fields/class-base.php:496
529
  msgid "Show Smart Tags"
530
  msgstr ""
531
 
532
- #: includes/admin/builder/class-builder.php:382
533
  msgid "Hide Smart Tags"
534
  msgstr ""
535
 
536
- #: includes/admin/builder/class-builder.php:383
537
  #: includes/class-conditional-logic-core.php:331
538
  msgid "-- Select Field --"
539
  msgstr ""
540
 
541
- #: includes/admin/builder/class-builder.php:384
542
  #: includes/class-conditional-logic-core.php:429
543
  msgid "-- Select Choice --"
544
  msgstr ""
545
 
546
- #: includes/admin/builder/class-builder.php:417
 
 
 
 
 
547
  msgid "Countries"
548
  msgstr ""
549
 
550
- #: includes/admin/builder/class-builder.php:421
551
  msgid "Countries Postal Code"
552
  msgstr ""
553
 
554
- #: includes/admin/builder/class-builder.php:425
555
  msgid "States"
556
  msgstr ""
557
 
558
- #: includes/admin/builder/class-builder.php:429
559
  msgid "States Postal Code"
560
  msgstr ""
561
 
562
- #: includes/admin/builder/class-builder.php:433
563
  msgid "Months"
564
  msgstr ""
565
 
566
- #: includes/admin/builder/class-builder.php:437
567
  msgid "Days"
568
  msgstr ""
569
 
570
- #: includes/admin/builder/class-builder.php:481
571
  #: includes/admin/class-welcome.php:114
572
  msgid "Sullie the WPForms mascot"
573
  msgstr ""
574
 
575
- #: includes/admin/builder/class-builder.php:489
576
  msgid "Now editing"
577
  msgstr ""
578
 
579
- #: includes/admin/builder/class-builder.php:500
580
  msgid "Embed Form"
581
  msgstr ""
582
 
583
- #: includes/admin/builder/class-builder.php:502
584
  msgid "Embed"
585
  msgstr ""
586
 
587
- #: includes/admin/builder/class-builder.php:505
588
  msgid "Save Form"
589
  msgstr ""
590
 
@@ -592,63 +618,130 @@ msgstr ""
592
  msgid "Field #"
593
  msgstr ""
594
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
  #: includes/admin/builder/panels/class-fields.php:22
596
  msgid "Fields"
597
  msgstr ""
598
 
599
- #: includes/admin/builder/panels/class-fields.php:67
600
  msgid "Add Fields"
601
  msgstr ""
602
 
603
- #: includes/admin/builder/panels/class-fields.php:74
604
  msgid "Field Options"
605
  msgstr ""
606
 
607
- #: includes/admin/builder/panels/class-fields.php:102
608
  msgid ""
609
  "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
610
  "\">setup your form</a> before you can manage the fields."
611
  msgstr ""
612
 
613
- #: includes/admin/builder/panels/class-fields.php:135
614
- #: includes/admin/builder/panels/class-settings.php:134
615
  #: includes/admin/importers/class-contact-form-7.php:106
616
  #: includes/admin/importers/class-ninja-forms.php:123
617
  msgid "Submit"
618
  msgstr ""
619
 
620
- #: includes/admin/builder/panels/class-fields.php:156
621
  msgid "Standard Fields"
622
  msgstr ""
623
 
624
- #: includes/admin/builder/panels/class-fields.php:160
625
  msgid "Fancy Fields"
626
  msgstr ""
627
 
628
- #: includes/admin/builder/panels/class-fields.php:164
629
  msgid "Payment Fields"
630
  msgstr ""
631
 
632
- #: includes/admin/builder/panels/class-fields.php:214
633
  msgid "You don't have any fields yet."
634
  msgstr ""
635
 
636
- #: includes/admin/builder/panels/class-fields.php:246
637
  msgid "You don't have any fields yet. Add some!"
638
  msgstr ""
639
 
640
- #: includes/admin/builder/panels/class-fields.php:267
641
- #: includes/fields/class-base.php:806
642
  msgid "Duplicate Field"
643
  msgstr ""
644
 
645
- #: includes/admin/builder/panels/class-fields.php:269
646
- #: includes/fields/class-base.php:807
647
  msgid "Delete Field"
648
  msgstr ""
649
 
650
- #: includes/admin/builder/panels/class-fields.php:271
651
- #: includes/fields/class-base.php:808
652
  msgid "Click to edit. Drag to reorder."
653
  msgstr ""
654
 
@@ -656,38 +749,6 @@ msgstr ""
656
  msgid "Marketing"
657
  msgstr ""
658
 
659
- #: includes/admin/builder/panels/class-providers.php:56
660
- msgid ""
661
- "We need to save your progress to continue to the Marketing panel. Is that OK?"
662
- msgstr ""
663
-
664
- #: includes/admin/builder/panels/class-providers.php:57
665
- msgid "Are you sure you want to delete this connection?"
666
- msgstr ""
667
-
668
- #: includes/admin/builder/panels/class-providers.php:58
669
- msgid "Enter a %type% nickname"
670
- msgstr ""
671
-
672
- #: includes/admin/builder/panels/class-providers.php:59
673
- msgid "Eg: Newsletter Optin"
674
- msgstr ""
675
-
676
- #: includes/admin/builder/panels/class-providers.php:60
677
- msgid "You must provide a connection nickname"
678
- msgstr ""
679
-
680
- #: includes/admin/builder/panels/class-providers.php:61
681
- msgid "Field required"
682
- msgstr ""
683
-
684
- #: includes/admin/builder/panels/class-providers.php:99
685
- #: pro/includes/admin/builder/panels/class-payments.php:62
686
- msgid ""
687
- "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
688
- "\">setup your form</a> before you can manage these settings."
689
- msgstr ""
690
-
691
  #: includes/admin/builder/panels/class-providers.php:119
692
  msgid "Install Your Marketing Integration"
693
  msgstr ""
@@ -716,121 +777,121 @@ msgstr ""
716
  msgid "Settings"
717
  msgstr ""
718
 
719
- #: includes/admin/builder/panels/class-settings.php:58
720
- #: includes/admin/builder/panels/class-settings.php:98
721
- #: includes/admin/class-settings.php:165 includes/admin/class-settings.php:282
722
  msgid "General"
723
  msgstr ""
724
 
725
- #: includes/admin/builder/panels/class-settings.php:59 lite/wpforms-lite.php:63
726
  #: lite/wpforms-lite.php:96 pro/wpforms-pro.php:414 pro/wpforms-pro.php:423
727
  msgid "Notifications"
728
  msgstr ""
729
 
730
- #: includes/admin/builder/panels/class-settings.php:60
731
- #: includes/admin/builder/panels/class-settings.php:191
732
  msgid "Confirmation"
733
  msgstr ""
734
 
735
- #: includes/admin/builder/panels/class-settings.php:79
736
  msgid ""
737
  "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
738
  "\">setup your form</a> before you can manage the settings."
739
  msgstr ""
740
 
741
- #: includes/admin/builder/panels/class-settings.php:105
742
  #: includes/admin/builder/panels/class-setup.php:56
743
  #: includes/class-smart-tags.php:38
744
  msgid "Form Name"
745
  msgstr ""
746
 
747
- #: includes/admin/builder/panels/class-settings.php:115
748
  msgid "Form Description"
749
  msgstr ""
750
 
751
- #: includes/admin/builder/panels/class-settings.php:122
752
  msgid "Form CSS Class"
753
  msgstr ""
754
 
755
- #: includes/admin/builder/panels/class-settings.php:124
756
  msgid ""
757
  "Enter CSS class names for the form wrapper. Multiple class names should be "
758
  "separated with spaces."
759
  msgstr ""
760
 
761
- #: includes/admin/builder/panels/class-settings.php:132
762
  msgid "Submit Button Text"
763
  msgstr ""
764
 
765
- #: includes/admin/builder/panels/class-settings.php:142
766
  msgid "Submit Button Processing Text"
767
  msgstr ""
768
 
769
- #: includes/admin/builder/panels/class-settings.php:144
770
  msgid ""
771
  "Enter the submit button text you would like the button display while the "
772
  "form submit is processing."
773
  msgstr ""
774
 
775
- #: includes/admin/builder/panels/class-settings.php:152
776
  msgid "Submit Button CSS Class"
777
  msgstr ""
778
 
779
- #: includes/admin/builder/panels/class-settings.php:154
780
  msgid ""
781
  "Enter CSS class names for the form submit button. Multiple names should be "
782
  "separated with spaces."
783
  msgstr ""
784
 
785
- #: includes/admin/builder/panels/class-settings.php:162
786
  msgid "Enable anti-spam honeypot"
787
  msgstr ""
788
 
789
- #: includes/admin/builder/panels/class-settings.php:173
790
  msgid "Enable Google invisible reCAPTCHA"
791
  msgstr ""
792
 
793
- #: includes/admin/builder/panels/class-settings.php:173
794
  msgid "Enable Google reCAPTCHA (v2)"
795
  msgstr ""
796
 
797
- #: includes/admin/builder/panels/class-settings.php:198
798
  msgid "Confirmation Type"
799
  msgstr ""
800
 
801
- #: includes/admin/builder/panels/class-settings.php:202
802
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:217
803
  #: pro/wpforms-pro.php:572
804
  msgid "Message"
805
  msgstr ""
806
 
807
- #: includes/admin/builder/panels/class-settings.php:203
808
  msgid "Show Page"
809
  msgstr ""
810
 
811
- #: includes/admin/builder/panels/class-settings.php:204
812
  msgid "Go to URL (Redirect)"
813
  msgstr ""
814
 
815
- #: includes/admin/builder/panels/class-settings.php:213
816
  msgid "Confirmation Message"
817
  msgstr ""
818
 
819
- #: includes/admin/builder/panels/class-settings.php:215
820
  #: includes/admin/importers/class-contact-form-7.php:123
821
  #: includes/admin/importers/class-ninja-forms.php:140
822
  msgid "Thanks for contacting us! We will be in touch with you shortly."
823
  msgstr ""
824
 
825
- #: includes/admin/builder/panels/class-settings.php:226
826
  msgid "Automatically scroll to the confirmation message"
827
  msgstr ""
828
 
829
- #: includes/admin/builder/panels/class-settings.php:239
830
  msgid "Confirmation Page"
831
  msgstr ""
832
 
833
- #: includes/admin/builder/panels/class-settings.php:249
834
  msgid "Confirmation Redirect URL"
835
  msgstr ""
836
 
@@ -970,9 +1031,9 @@ msgid ""
970
  "a>?"
971
  msgstr ""
972
 
973
- #. #-#-#-#-# wpforms.pot (WPForms 1.4.4.1) #-#-#-#-#
974
  #. Plugin Name of the plugin/theme
975
- #. #-#-#-#-# wpforms.pot (WPForms 1.4.4.1) #-#-#-#-#
976
  #. Author of the plugin/theme
977
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
978
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
@@ -1020,8 +1081,8 @@ msgstr ""
1020
  msgid "Info"
1021
  msgstr ""
1022
 
1023
- #: includes/admin/class-menu.php:113 lite/wpforms-lite.php:1041
1024
- #: pro/includes/admin/class-addons.php:84
1025
  msgid "WPForms Addons"
1026
  msgstr ""
1027
 
@@ -1075,12 +1136,12 @@ msgstr ""
1075
 
1076
  #: includes/admin/class-settings.php:167 includes/admin/class-settings.php:172
1077
  #: includes/admin/class-settings.php:177 includes/admin/class-settings.php:182
1078
- #: pro/wpforms-pro.php:158
1079
  msgid "Save Settings"
1080
  msgstr ""
1081
 
1082
- #: includes/admin/class-settings.php:170 includes/admin/class-settings.php:317
1083
- #: includes/admin/class-settings.php:406 includes/fields/class-email.php:21
1084
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1085
  #: includes/templates/class-contact.php:41
1086
  #: includes/templates/class-subscribe.php:44
@@ -1091,7 +1152,7 @@ msgstr ""
1091
  msgid "Email"
1092
  msgstr ""
1093
 
1094
- #: includes/admin/class-settings.php:175 includes/admin/class-settings.php:357
1095
  msgid "reCAPTCHA"
1096
  msgstr ""
1097
 
@@ -1099,12 +1160,16 @@ msgstr ""
1099
  msgid "Validation"
1100
  msgstr ""
1101
 
1102
- #: includes/admin/class-settings.php:185 includes/admin/class-settings.php:427
1103
- #: includes/admin/class-settings.php:434
1104
  msgid "Integrations"
1105
  msgstr ""
1106
 
1107
- #: includes/admin/class-settings.php:227
 
 
 
 
1108
  msgid ""
1109
  "reCAPTCHA is a free anti-spam service from Google which helps to protect "
1110
  "your website from spam and abuse while letting real people pass through with "
@@ -1113,7 +1178,7 @@ msgstr ""
1113
 
1114
  #. translators: %1$s - Google reCAPTCHA Intro URL, %2$s - Google Invisible
1115
  #. reCAPTCHA Intro URL.
1116
- #: includes/admin/class-settings.php:233
1117
  msgid ""
1118
  "Google's original <a href=\"%1$s\" target=\"_blank\" rel=\"noopener "
1119
  "noreferrer\">v2 reCAPTCHA</a> prompts users to check a box to prove they're "
@@ -1122,198 +1187,219 @@ msgid ""
1122
  "without requiring any input."
1123
  msgstr ""
1124
 
1125
- #: includes/admin/class-settings.php:246
1126
  msgid ""
1127
  "Sites already using v2 reCAPTCHA will need to create new site keys before "
1128
  "switching to the Invisible reCAPTCHA."
1129
  msgstr ""
1130
 
1131
  #. translators: %s = WPForms.com Setup Captcha URL.
1132
- #: includes/admin/class-settings.php:252
1133
  msgid ""
1134
  "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our walk "
1135
  "through</a> to learn more and for step-by-step directions."
1136
  msgstr ""
1137
 
1138
- #: includes/admin/class-settings.php:270
1139
  msgid "License"
1140
  msgstr ""
1141
 
1142
- #: includes/admin/class-settings.php:270
1143
  msgid "Your license key provides access to updates and addons."
1144
  msgstr ""
1145
 
1146
- #: includes/admin/class-settings.php:277
1147
  msgid "License Key"
1148
  msgstr ""
1149
 
1150
- #: includes/admin/class-settings.php:289
1151
  msgid "Include Form Styling"
1152
  msgstr ""
1153
 
1154
- #: includes/admin/class-settings.php:290
1155
  msgid "Determines which CSS files to load for the site."
1156
  msgstr ""
1157
 
1158
- #: includes/admin/class-settings.php:295
1159
  msgid "Base and form theme styling"
1160
  msgstr ""
1161
 
1162
- #: includes/admin/class-settings.php:296
1163
  msgid "Base styling only"
1164
  msgstr ""
1165
 
1166
- #: includes/admin/class-settings.php:297
1167
  msgid "No styling"
1168
  msgstr ""
1169
 
1170
- #: includes/admin/class-settings.php:302
1171
  msgid "Load Assets Globally"
1172
  msgstr ""
1173
 
1174
- #: includes/admin/class-settings.php:303
1175
  msgid ""
1176
  "Check this if you would like to load WPForms assets site-wide. Only check if "
1177
  "your site is having compatibility issues or instructed to by support."
1178
  msgstr ""
1179
 
1180
- #: includes/admin/class-settings.php:308
1181
- msgid "Hide Announcements"
1182
- msgstr ""
1183
-
1184
- #: includes/admin/class-settings.php:309
1185
- msgid ""
1186
- "Check this if you would like to hide plugin announcements and update details."
1187
- msgstr ""
1188
-
1189
- #: includes/admin/class-settings.php:324
1190
  msgid "Template"
1191
  msgstr ""
1192
 
1193
- #: includes/admin/class-settings.php:325
1194
  msgid ""
1195
  "Determines how email notifications will be formatted. HTML Templates are the "
1196
  "default."
1197
  msgstr ""
1198
 
1199
- #: includes/admin/class-settings.php:329
1200
  msgid "HTML Template"
1201
  msgstr ""
1202
 
1203
- #: includes/admin/class-settings.php:330
1204
  msgid "Plain text"
1205
  msgstr ""
1206
 
1207
- #: includes/admin/class-settings.php:335
1208
  msgid "Header Image"
1209
  msgstr ""
1210
 
1211
- #: includes/admin/class-settings.php:336
1212
  msgid ""
1213
  "Upload or choose a logo to be displayed at the top of email notifications."
1214
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
1215
  msgstr ""
1216
 
1217
- #: includes/admin/class-settings.php:341
1218
  msgid "Background Color"
1219
  msgstr ""
1220
 
1221
- #: includes/admin/class-settings.php:342
1222
  msgid "Customize the background color of the HTML email template."
1223
  msgstr ""
1224
 
1225
- #: includes/admin/class-settings.php:348
1226
  msgid "Carbon Copy"
1227
  msgstr ""
1228
 
1229
- #: includes/admin/class-settings.php:349
1230
  msgid ""
1231
  "Check this if you would like to enable the ability to CC: email addresses in "
1232
  "the form notification settings."
1233
  msgstr ""
1234
 
1235
- #: includes/admin/class-settings.php:364
1236
  #: pro/includes/fields/class-date-time.php:153
1237
  msgid "Type"
1238
  msgstr ""
1239
 
1240
- #: includes/admin/class-settings.php:368
1241
  msgid "v2 reCAPTCHA"
1242
  msgstr ""
1243
 
1244
- #: includes/admin/class-settings.php:369
1245
  msgid "Invisible reCAPTCHA"
1246
  msgstr ""
1247
 
1248
- #: includes/admin/class-settings.php:374
1249
  msgid "Site Key"
1250
  msgstr ""
1251
 
1252
- #: includes/admin/class-settings.php:379
1253
  msgid "Secret Key"
1254
  msgstr ""
1255
 
1256
- #: includes/admin/class-settings.php:387
 
 
 
 
 
 
 
 
 
 
 
1257
  msgid "Validation Messages"
1258
  msgstr ""
1259
 
1260
- #: includes/admin/class-settings.php:387
1261
  msgid ""
1262
  "These messages are displayed to the user as they fill out a form in real-"
1263
  "time."
1264
  msgstr ""
1265
 
1266
- #: includes/admin/class-settings.php:394 includes/fields/class-base.php:337
1267
  msgid "Required"
1268
  msgstr ""
1269
 
1270
- #: includes/admin/class-settings.php:396 includes/class-frontend.php:1005
1271
- #: includes/functions.php:1563
1272
  msgid "This field is required."
1273
  msgstr ""
1274
 
1275
- #: includes/admin/class-settings.php:400
1276
  msgid "Website URL"
1277
  msgstr ""
1278
 
1279
- #: includes/admin/class-settings.php:402 includes/class-frontend.php:1006
1280
  #: pro/includes/fields/class-url.php:158
1281
  msgid "Please enter a valid URL."
1282
  msgstr ""
1283
 
1284
- #: includes/admin/class-settings.php:408 includes/class-frontend.php:1007
1285
  msgid "Please enter a valid email address."
1286
  msgstr ""
1287
 
1288
- #: includes/admin/class-settings.php:412
1289
  msgid "Number"
1290
  msgstr ""
1291
 
1292
- #: includes/admin/class-settings.php:414 includes/class-frontend.php:1008
1293
  #: includes/fields/class-number.php:157
1294
  msgid "Please enter a valid number."
1295
  msgstr ""
1296
 
1297
- #: includes/admin/class-settings.php:418
1298
  msgid "Confirm Value"
1299
  msgstr ""
1300
 
1301
- #: includes/admin/class-settings.php:420 includes/class-frontend.php:1009
1302
  #: pro/includes/fields/class-password.php:404
1303
  msgid "Field values do not match."
1304
  msgstr ""
1305
 
1306
- #: includes/admin/class-settings.php:427 includes/admin/class-settings.php:434
1307
  msgid ""
1308
  "Manage integrations with popular providers such as Constant Contact, "
1309
  "MailChimp, Zapier, and more."
1310
  msgstr ""
1311
 
1312
- #: includes/admin/class-settings.php:548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1313
  msgid "Want to better protect your contact forms from spam?"
1314
  msgstr ""
1315
 
1316
- #: includes/admin/class-settings.php:550
1317
  msgid ""
1318
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1319
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
@@ -1321,7 +1407,7 @@ msgid ""
1321
  "your forms."
1322
  msgstr ""
1323
 
1324
- #: includes/admin/class-settings.php:553
1325
  msgid "Click here to Upgrade"
1326
  msgstr ""
1327
 
@@ -1387,7 +1473,7 @@ msgstr ""
1387
  msgid "Select previous contact form plugin..."
1388
  msgstr ""
1389
 
1390
- #: includes/admin/class-tools.php:276 pro/includes/admin/class-addons.php:232
1391
  msgid "Not Installed"
1392
  msgstr ""
1393
 
@@ -1495,8 +1581,8 @@ msgid "Upgrade to the PRO plan to import these fields."
1495
  msgstr ""
1496
 
1497
  #: includes/admin/class-tools.php:498 includes/admin/class-welcome.php:258
1498
- #: lite/wpforms-lite.php:1047 lite/wpforms-lite.php:1072
1499
- #: pro/includes/admin/class-addons.php:280
1500
  msgid "Upgrade Now"
1501
  msgstr ""
1502
 
@@ -1554,17 +1640,31 @@ msgstr ""
1554
  msgid "System Information"
1555
  msgstr ""
1556
 
1557
- #: includes/admin/class-tools.php:675
1558
- msgid "Please upload a valid .json form export file."
1559
  msgstr ""
1560
 
1561
- #: includes/admin/class-tools.php:676
1562
- #: pro/includes/admin/entries/class-entries-export.php:342
1563
- msgid "Error"
 
1564
  msgstr ""
1565
 
1566
- #: includes/admin/class-tools.php:802 includes/admin/class-tools.php:806
1567
- #: pro/includes/admin/entries/class-entries-single.php:740
 
 
 
 
 
 
 
 
 
 
 
 
 
1568
  #: pro/includes/admin/entries/class-entries-single.php:1116
1569
  msgid "M j, Y @ g:ia"
1570
  msgstr ""
@@ -1873,8 +1973,8 @@ msgstr ""
1873
 
1874
  #: includes/admin/overview/class-overview-table.php:214
1875
  #: includes/admin/overview/class-overview-table.php:231
1876
- #: pro/includes/admin/entries/class-entries-list-table.php:425
1877
- #: pro/includes/admin/entries/class-entries-list-table.php:499
1878
  msgid "Delete"
1879
  msgstr ""
1880
 
@@ -1942,7 +2042,8 @@ msgid ""
1942
  "\"wpforms-setting-license-key-refresh\">click here to force a refresh</a>."
1943
  msgstr ""
1944
 
1945
- #: includes/admin/settings-api.php:306
 
1946
  msgid "Upload Image"
1947
  msgstr ""
1948
 
@@ -1975,36 +2076,36 @@ msgstr ""
1975
  msgid "Add rule group"
1976
  msgstr ""
1977
 
1978
- #: includes/class-frontend.php:1010
1979
  #: pro/includes/fields/class-file-upload.php:383
1980
  #: pro/includes/fields/class-file-upload.php:399
1981
  #: pro/includes/fields/class-file-upload.php:417 pro/wpforms-pro.php:191
1982
  msgid "File type is not allowed."
1983
  msgstr ""
1984
 
1985
- #: includes/class-frontend.php:1011 pro/wpforms-pro.php:197
1986
  msgid "File exceeds max size allowed."
1987
  msgstr ""
1988
 
1989
- #: includes/class-frontend.php:1012 pro/wpforms-pro.php:203
1990
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
1991
  msgstr ""
1992
 
1993
- #: includes/class-frontend.php:1013 pro/wpforms-pro.php:209
1994
  msgid "Please enter time in 24-hour format (eg 22:45)."
1995
  msgstr ""
1996
 
1997
- #: includes/class-frontend.php:1014
1998
  #: pro/includes/fields/class-payment-total.php:208 pro/wpforms-pro.php:215
1999
  msgid "Payment is required."
2000
  msgstr ""
2001
 
2002
- #: includes/class-frontend.php:1015 pro/wpforms-pro.php:221
2003
  msgid "Please enter a valid credit card number."
2004
  msgstr ""
2005
 
2006
  #. translators: %s - URL to a non-amp version of a page with the form.
2007
- #: includes/class-frontend.php:1080
2008
  msgid "<a href=\"%s\">Go to the full page</a> to view and submit the form."
2009
  msgstr ""
2010
 
@@ -2112,28 +2213,28 @@ msgstr ""
2112
  msgid "%s Preview"
2113
  msgstr ""
2114
 
2115
- #: includes/class-process.php:80
2116
  msgid "Invalid form."
2117
  msgstr ""
2118
 
2119
- #: includes/class-process.php:117
2120
  msgid "Incorrect reCAPTCHA, please try again."
2121
  msgstr ""
2122
 
2123
- #: includes/class-process.php:120
2124
  msgid "reCAPTCHA is required."
2125
  msgstr ""
2126
 
2127
- #: includes/class-process.php:132 includes/class-process.php:182
2128
  msgid "Form has not been submitted, please see the errors below."
2129
  msgstr ""
2130
 
2131
- #: includes/class-process.php:144
2132
  msgid "WPForms honeypot field triggered."
2133
  msgstr ""
2134
 
2135
  #. translators: %s - form name.
2136
- #: includes/class-process.php:369 lite/wpforms-lite.php:54
2137
  #: pro/wpforms-pro.php:406
2138
  msgid "New %s Entry"
2139
  msgstr ""
@@ -2164,7 +2265,7 @@ msgstr ""
2164
 
2165
  #: includes/class-smart-tags.php:42
2166
  #: pro/includes/admin/entries/class-entries-export.php:203
2167
- #: pro/includes/admin/entries/class-entries-list-table.php:164
2168
  #: pro/includes/fields/class-date-time.php:72
2169
  #: pro/includes/fields/class-date-time.php:129
2170
  #: pro/includes/fields/class-date-time.php:268
@@ -2186,42 +2287,46 @@ msgid "User ID"
2186
  msgstr ""
2187
 
2188
  #: includes/class-smart-tags.php:46
2189
- msgid "User Name"
2190
  msgstr ""
2191
 
2192
  #: includes/class-smart-tags.php:47
2193
- msgid "User Email"
2194
  msgstr ""
2195
 
2196
  #: includes/class-smart-tags.php:48
2197
- msgid "Author ID"
2198
  msgstr ""
2199
 
2200
  #: includes/class-smart-tags.php:49
2201
- msgid "Author Name"
2202
  msgstr ""
2203
 
2204
  #: includes/class-smart-tags.php:50
2205
- msgid "Author Email"
2206
  msgstr ""
2207
 
2208
  #: includes/class-smart-tags.php:51
2209
- msgid "Referrer URL"
2210
  msgstr ""
2211
 
2212
  #: includes/class-smart-tags.php:52
2213
- msgid "Login URL"
2214
  msgstr ""
2215
 
2216
  #: includes/class-smart-tags.php:53
2217
- msgid "Logout URL"
2218
  msgstr ""
2219
 
2220
  #: includes/class-smart-tags.php:54
2221
- msgid "Register URL"
2222
  msgstr ""
2223
 
2224
  #: includes/class-smart-tags.php:55
 
 
 
 
2225
  msgid "Lost Password URL"
2226
  msgstr ""
2227
 
@@ -2272,8 +2377,7 @@ msgid ""
2272
  msgstr ""
2273
 
2274
  #: includes/emails/class-emails.php:474 includes/emails/class-emails.php:506
2275
- #: includes/fields/class-checkbox.php:214 includes/fields/class-radio.php:214
2276
- #: includes/fields/class-select.php:200
2277
  msgid "(empty)"
2278
  msgstr ""
2279
 
@@ -2318,147 +2422,193 @@ msgstr ""
2318
  msgid "Code"
2319
  msgstr ""
2320
 
2321
- #: includes/fields/class-base.php:362 includes/fields/class-base.php:444
2322
- msgid "Add choices for the form field."
2323
  msgstr ""
2324
 
2325
- #: includes/fields/class-base.php:375
2326
- msgid "Choices"
2327
  msgstr ""
2328
 
2329
  #. translators: %1$s - source name; %2$s - type name.
2330
- #: includes/fields/class-base.php:421
2331
- msgid "Choices are dynamically populated from the %1$s %2$s"
2332
  msgstr ""
2333
 
2334
- #: includes/fields/class-base.php:453
2335
  msgid "Items"
2336
  msgstr ""
2337
 
2338
- #: includes/fields/class-base.php:495
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2339
  msgid "Enter text for the default form field value."
2340
  msgstr ""
2341
 
2342
- #: includes/fields/class-base.php:497 includes/fields/class-name.php:283
2343
  #: includes/fields/class-name.php:298 includes/fields/class-name.php:313
2344
- #: includes/fields/class-name.php:328 pro/includes/fields/class-address.php:329
2345
- #: pro/includes/fields/class-address.php:348
2346
- #: pro/includes/fields/class-address.php:369
2347
- #: pro/includes/fields/class-address.php:387
2348
- #: pro/includes/fields/class-address.php:407
2349
- #: pro/includes/fields/class-address.php:431
2350
  msgid "Default Value"
2351
  msgstr ""
2352
 
2353
- #: includes/fields/class-base.php:507
2354
  msgid "Select the default form field size."
2355
  msgstr ""
2356
 
2357
- #: includes/fields/class-base.php:509 pro/includes/fields/class-rating.php:256
2358
  msgid "Small"
2359
  msgstr ""
2360
 
2361
- #: includes/fields/class-base.php:510 pro/includes/fields/class-rating.php:257
2362
  msgid "Medium"
2363
  msgstr ""
2364
 
2365
- #: includes/fields/class-base.php:511 pro/includes/fields/class-rating.php:258
2366
  msgid "Large"
2367
  msgstr ""
2368
 
2369
- #: includes/fields/class-base.php:513
2370
  msgid "Field Size"
2371
  msgstr ""
2372
 
2373
- #: includes/fields/class-base.php:526
2374
  msgid "Advanced Options"
2375
  msgstr ""
2376
 
2377
- #: includes/fields/class-base.php:537
2378
  msgid "Enter text for the form field placeholder."
2379
  msgstr ""
2380
 
2381
- #: includes/fields/class-base.php:538
2382
  msgid "Placeholder Text"
2383
  msgstr ""
2384
 
2385
- #: includes/fields/class-base.php:548
2386
  msgid ""
2387
  "Enter CSS class names for the form field container. Class names should be "
2388
  "separated with spaces."
2389
  msgstr ""
2390
 
2391
- #: includes/fields/class-base.php:553
2392
  msgid "CSS Classes"
2393
  msgstr ""
2394
 
2395
- #: includes/fields/class-base.php:562
2396
  msgid "Check this option to hide the form field label."
2397
  msgstr ""
2398
 
2399
- #: includes/fields/class-base.php:564
2400
  msgid "Hide Label"
2401
  msgstr ""
2402
 
2403
- #: includes/fields/class-base.php:572
2404
  msgid "Check this option to hide the form field sub-label."
2405
  msgstr ""
2406
 
2407
- #: includes/fields/class-base.php:574
2408
  msgid "Hide Sub-Labels"
2409
  msgstr ""
2410
 
2411
- #: includes/fields/class-base.php:582
2412
  msgid "Select the layout for displaying field choices."
2413
  msgstr ""
2414
 
2415
- #: includes/fields/class-base.php:584
2416
  msgid "One Column"
2417
  msgstr ""
2418
 
2419
- #: includes/fields/class-base.php:585
2420
  msgid "Two Columns"
2421
  msgstr ""
2422
 
2423
- #: includes/fields/class-base.php:586
2424
  msgid "Three Columns"
2425
  msgstr ""
2426
 
2427
- #: includes/fields/class-base.php:588
 
 
 
 
2428
  msgid "Choice Layout"
2429
  msgstr ""
2430
 
2431
- #: includes/fields/class-base.php:597
2432
  msgid "Select auto-populate method to use."
2433
  msgstr ""
2434
 
2435
- #: includes/fields/class-base.php:600 includes/fields/class-base.php:621
2436
  msgid "Post Type"
2437
  msgstr ""
2438
 
2439
- #: includes/fields/class-base.php:601 includes/fields/class-base.php:632
2440
  msgid "Taxonomy"
2441
  msgstr ""
2442
 
2443
- #: includes/fields/class-base.php:603
2444
  msgid "Dynamic Choices"
2445
  msgstr ""
2446
 
2447
  #. translators: %s - dynamic source type name.
2448
- #: includes/fields/class-base.php:643
2449
  msgid "Select %s to use for auto-populating field choices."
2450
  msgstr ""
2451
 
2452
  #. translators: %s - dynamic source type name.
2453
- #: includes/fields/class-base.php:645
2454
  msgid "Dynamic %s Source"
2455
  msgstr ""
2456
 
2457
- #: includes/fields/class-base.php:772
 
 
 
 
 
 
 
2458
  msgid "No form ID found"
2459
  msgstr ""
2460
 
2461
- #: includes/fields/class-base.php:777
2462
  msgid "No field type found"
2463
  msgstr ""
2464
 
@@ -2471,40 +2621,42 @@ msgstr ""
2471
  msgid "First Choice"
2472
  msgstr ""
2473
 
2474
- #: includes/fields/class-checkbox.php:32 includes/fields/class-radio.php:32
2475
  #: includes/fields/class-select.php:32
2476
  msgid "Second Choice"
2477
  msgstr ""
2478
 
2479
- #: includes/fields/class-checkbox.php:37 includes/fields/class-radio.php:37
2480
  #: includes/fields/class-select.php:37
2481
  msgid "Third Choice"
2482
  msgstr ""
2483
 
2484
- #: includes/fields/class-checkbox.php:100 includes/fields/class-radio.php:100
2485
  msgid "Randomize Choices"
2486
  msgstr ""
2487
 
2488
- #: includes/fields/class-checkbox.php:101 includes/fields/class-radio.php:101
2489
  msgid "Check this option to randomize the order of the choices."
2490
  msgstr ""
2491
 
2492
- #: includes/fields/class-checkbox.php:117 includes/fields/class-radio.php:117
2493
  #: includes/fields/class-select.php:97
2494
  msgid "Show Values"
2495
  msgstr ""
2496
 
2497
- #: includes/fields/class-checkbox.php:118 includes/fields/class-radio.php:118
2498
  #: includes/fields/class-select.php:98
2499
  msgid "Check this to manually set form field values."
2500
  msgstr ""
2501
 
2502
- #. translators: %d - total amount of choices.
2503
- #. translators: %d - total number of choices.
2504
- #: includes/fields/class-checkbox.php:233 includes/fields/class-radio.php:233
 
 
2505
  msgid ""
2506
- "Showing the first 20 choices.<br> All %d choices will be displayed when "
2507
- "viewing the form."
2508
  msgstr ""
2509
 
2510
  #: includes/fields/class-email.php:91 includes/fields/class-email.php:311
@@ -2571,12 +2723,12 @@ msgstr ""
2571
 
2572
  #: includes/fields/class-name.php:279 includes/fields/class-name.php:294
2573
  #: includes/fields/class-name.php:309 includes/fields/class-name.php:324
2574
- #: pro/includes/fields/class-address.php:325
2575
- #: pro/includes/fields/class-address.php:344
2576
- #: pro/includes/fields/class-address.php:365
2577
- #: pro/includes/fields/class-address.php:383
2578
- #: pro/includes/fields/class-address.php:403
2579
- #: pro/includes/fields/class-address.php:427
2580
  #: pro/includes/fields/class-date-time.php:134
2581
  #: pro/includes/fields/class-date-time.php:178
2582
  msgid "Placeholder"
@@ -2622,1281 +2774,1293 @@ msgstr ""
2622
  msgid "Single Line Text"
2623
  msgstr ""
2624
 
 
 
 
 
 
 
 
 
 
 
 
 
2625
  #: includes/fields/class-textarea.php:21
2626
  msgid "Paragraph Text"
2627
  msgstr ""
2628
 
2629
- #: includes/functions.php:625
2630
  msgid "Alabama"
2631
  msgstr ""
2632
 
2633
- #: includes/functions.php:626
2634
  msgid "Alaska"
2635
  msgstr ""
2636
 
2637
- #: includes/functions.php:627
2638
  msgid "Arizona"
2639
  msgstr ""
2640
 
2641
- #: includes/functions.php:628
2642
  msgid "Arkansas"
2643
  msgstr ""
2644
 
2645
- #: includes/functions.php:629
2646
  msgid "California"
2647
  msgstr ""
2648
 
2649
- #: includes/functions.php:630
2650
  msgid "Colorado"
2651
  msgstr ""
2652
 
2653
- #: includes/functions.php:631
2654
  msgid "Connecticut"
2655
  msgstr ""
2656
 
2657
- #: includes/functions.php:632
2658
  msgid "Delaware"
2659
  msgstr ""
2660
 
2661
- #: includes/functions.php:633
2662
  msgid "District of Columbia"
2663
  msgstr ""
2664
 
2665
- #: includes/functions.php:634
2666
  msgid "Florida"
2667
  msgstr ""
2668
 
2669
- #: includes/functions.php:635
2670
  msgctxt "US State"
2671
  msgid "Georgia"
2672
  msgstr ""
2673
 
2674
- #: includes/functions.php:636
2675
  msgid "Hawaii"
2676
  msgstr ""
2677
 
2678
- #: includes/functions.php:637
2679
  msgid "Idaho"
2680
  msgstr ""
2681
 
2682
- #: includes/functions.php:638
2683
  msgid "Illinois"
2684
  msgstr ""
2685
 
2686
- #: includes/functions.php:639
2687
  msgid "Indiana"
2688
  msgstr ""
2689
 
2690
- #: includes/functions.php:640
2691
  msgid "Iowa"
2692
  msgstr ""
2693
 
2694
- #: includes/functions.php:641
2695
  msgid "Kansas"
2696
  msgstr ""
2697
 
2698
- #: includes/functions.php:642
2699
  msgid "Kentucky"
2700
  msgstr ""
2701
 
2702
- #: includes/functions.php:643
2703
  msgid "Louisiana"
2704
  msgstr ""
2705
 
2706
- #: includes/functions.php:644
2707
  msgid "Maine"
2708
  msgstr ""
2709
 
2710
- #: includes/functions.php:645
2711
  msgid "Maryland"
2712
  msgstr ""
2713
 
2714
- #: includes/functions.php:646
2715
  msgid "Massachusetts"
2716
  msgstr ""
2717
 
2718
- #: includes/functions.php:647
2719
  msgid "Michigan"
2720
  msgstr ""
2721
 
2722
- #: includes/functions.php:648
2723
  msgid "Minnesota"
2724
  msgstr ""
2725
 
2726
- #: includes/functions.php:649
2727
  msgid "Mississippi"
2728
  msgstr ""
2729
 
2730
- #: includes/functions.php:650
2731
  msgid "Missouri"
2732
  msgstr ""
2733
 
2734
- #: includes/functions.php:651
2735
  msgid "Montana"
2736
  msgstr ""
2737
 
2738
- #: includes/functions.php:652
2739
  msgid "Nebraska"
2740
  msgstr ""
2741
 
2742
- #: includes/functions.php:653
2743
  msgid "Nevada"
2744
  msgstr ""
2745
 
2746
- #: includes/functions.php:654
2747
  msgid "New Hampshire"
2748
  msgstr ""
2749
 
2750
- #: includes/functions.php:655
2751
  msgid "New Jersey"
2752
  msgstr ""
2753
 
2754
- #: includes/functions.php:656
2755
  msgid "New Mexico"
2756
  msgstr ""
2757
 
2758
- #: includes/functions.php:657
2759
  msgid "New York"
2760
  msgstr ""
2761
 
2762
- #: includes/functions.php:658
2763
  msgid "North Carolina"
2764
  msgstr ""
2765
 
2766
- #: includes/functions.php:659
2767
  msgid "North Dakota"
2768
  msgstr ""
2769
 
2770
- #: includes/functions.php:660
2771
  msgid "Ohio"
2772
  msgstr ""
2773
 
2774
- #: includes/functions.php:661
2775
  msgid "Oklahoma"
2776
  msgstr ""
2777
 
2778
- #: includes/functions.php:662
2779
  msgid "Oregon"
2780
  msgstr ""
2781
 
2782
- #: includes/functions.php:663
2783
  msgid "Pennsylvania"
2784
  msgstr ""
2785
 
2786
- #: includes/functions.php:664
2787
  msgid "Rhode Island"
2788
  msgstr ""
2789
 
2790
- #: includes/functions.php:665
2791
  msgid "South Carolina"
2792
  msgstr ""
2793
 
2794
- #: includes/functions.php:666
2795
  msgid "South Dakota"
2796
  msgstr ""
2797
 
2798
- #: includes/functions.php:667
2799
  msgid "Tennessee"
2800
  msgstr ""
2801
 
2802
- #: includes/functions.php:668
2803
  msgid "Texas"
2804
  msgstr ""
2805
 
2806
- #: includes/functions.php:669
2807
  msgid "Utah"
2808
  msgstr ""
2809
 
2810
- #: includes/functions.php:670
2811
  msgid "Vermont"
2812
  msgstr ""
2813
 
2814
- #: includes/functions.php:671
2815
  msgid "Virginia"
2816
  msgstr ""
2817
 
2818
- #: includes/functions.php:672
2819
  msgid "Washington"
2820
  msgstr ""
2821
 
2822
- #: includes/functions.php:673
2823
  msgid "West Virginia"
2824
  msgstr ""
2825
 
2826
- #: includes/functions.php:674
2827
  msgid "Wisconsin"
2828
  msgstr ""
2829
 
2830
- #: includes/functions.php:675
2831
  msgid "Wyoming"
2832
  msgstr ""
2833
 
2834
- #: includes/functions.php:690
2835
  msgid "Afghanistan"
2836
  msgstr ""
2837
 
2838
- #: includes/functions.php:691
2839
  msgid "Åland Islands"
2840
  msgstr ""
2841
 
2842
- #: includes/functions.php:692
2843
  msgid "Albania"
2844
  msgstr ""
2845
 
2846
- #: includes/functions.php:693
2847
  msgid "Algeria"
2848
  msgstr ""
2849
 
2850
- #: includes/functions.php:694
2851
  msgid "American Samoa"
2852
  msgstr ""
2853
 
2854
- #: includes/functions.php:695
2855
  msgid "Andorra"
2856
  msgstr ""
2857
 
2858
- #: includes/functions.php:696
2859
  msgid "Angola"
2860
  msgstr ""
2861
 
2862
- #: includes/functions.php:697
2863
  msgid "Anguilla"
2864
  msgstr ""
2865
 
2866
- #: includes/functions.php:698
2867
  msgid "Antarctica"
2868
  msgstr ""
2869
 
2870
- #: includes/functions.php:699
2871
  msgid "Antigua and Barbuda"
2872
  msgstr ""
2873
 
2874
- #: includes/functions.php:700
2875
  msgid "Argentina"
2876
  msgstr ""
2877
 
2878
- #: includes/functions.php:701
2879
  msgid "Armenia"
2880
  msgstr ""
2881
 
2882
- #: includes/functions.php:702
2883
  msgid "Aruba"
2884
  msgstr ""
2885
 
2886
- #: includes/functions.php:703
2887
  msgid "Australia"
2888
  msgstr ""
2889
 
2890
- #: includes/functions.php:704
2891
  msgid "Austria"
2892
  msgstr ""
2893
 
2894
- #: includes/functions.php:705
2895
  msgid "Azerbaijan"
2896
  msgstr ""
2897
 
2898
- #: includes/functions.php:706
2899
  msgid "Bahamas"
2900
  msgstr ""
2901
 
2902
- #: includes/functions.php:707
2903
  msgid "Bahrain"
2904
  msgstr ""
2905
 
2906
- #: includes/functions.php:708
2907
  msgid "Bangladesh"
2908
  msgstr ""
2909
 
2910
- #: includes/functions.php:709
2911
  msgid "Barbados"
2912
  msgstr ""
2913
 
2914
- #: includes/functions.php:710
2915
  msgid "Belarus"
2916
  msgstr ""
2917
 
2918
- #: includes/functions.php:711
2919
  msgid "Belgium"
2920
  msgstr ""
2921
 
2922
- #: includes/functions.php:712
2923
  msgid "Belize"
2924
  msgstr ""
2925
 
2926
- #: includes/functions.php:713
2927
  msgid "Benin"
2928
  msgstr ""
2929
 
2930
- #: includes/functions.php:714
2931
  msgid "Bermuda"
2932
  msgstr ""
2933
 
2934
- #: includes/functions.php:715
2935
  msgid "Bhutan"
2936
  msgstr ""
2937
 
2938
- #: includes/functions.php:716
2939
  msgid "Bolivia (Plurinational State of)"
2940
  msgstr ""
2941
 
2942
- #: includes/functions.php:717
2943
  msgid "Bosnia and Herzegovina"
2944
  msgstr ""
2945
 
2946
- #: includes/functions.php:718
2947
  msgid "Botswana"
2948
  msgstr ""
2949
 
2950
- #: includes/functions.php:719
2951
  msgid "Bouvet Island"
2952
  msgstr ""
2953
 
2954
- #: includes/functions.php:720
2955
  msgid "Brazil"
2956
  msgstr ""
2957
 
2958
- #: includes/functions.php:721
2959
  msgid "British Indian Ocean Territory"
2960
  msgstr ""
2961
 
2962
- #: includes/functions.php:722
2963
  msgid "Brunei Darussalam"
2964
  msgstr ""
2965
 
2966
- #: includes/functions.php:723
2967
  msgid "Bulgaria"
2968
  msgstr ""
2969
 
2970
- #: includes/functions.php:724
2971
  msgid "Burkina Faso"
2972
  msgstr ""
2973
 
2974
- #: includes/functions.php:725
2975
  msgid "Burundi"
2976
  msgstr ""
2977
 
2978
- #: includes/functions.php:726
2979
  msgid "Cabo Verde"
2980
  msgstr ""
2981
 
2982
- #: includes/functions.php:727
2983
  msgid "Cambodia"
2984
  msgstr ""
2985
 
2986
- #: includes/functions.php:728
2987
  msgid "Cameroon"
2988
  msgstr ""
2989
 
2990
- #: includes/functions.php:729
2991
  msgid "Canada"
2992
  msgstr ""
2993
 
2994
- #: includes/functions.php:730
2995
  msgid "Cayman Islands"
2996
  msgstr ""
2997
 
2998
- #: includes/functions.php:731
2999
  msgid "Central African Republic"
3000
  msgstr ""
3001
 
3002
- #: includes/functions.php:732
3003
  msgid "Chad"
3004
  msgstr ""
3005
 
3006
- #: includes/functions.php:733
3007
  msgid "Chile"
3008
  msgstr ""
3009
 
3010
- #: includes/functions.php:734
3011
  msgid "China"
3012
  msgstr ""
3013
 
3014
- #: includes/functions.php:735
3015
  msgid "Christmas Island"
3016
  msgstr ""
3017
 
3018
- #: includes/functions.php:736
3019
  msgid "Cocos (Keeling) Islands"
3020
  msgstr ""
3021
 
3022
- #: includes/functions.php:737
3023
  msgid "Colombia"
3024
  msgstr ""
3025
 
3026
- #: includes/functions.php:738
3027
  msgid "Comoros"
3028
  msgstr ""
3029
 
3030
- #: includes/functions.php:739
3031
  msgid "Congo"
3032
  msgstr ""
3033
 
3034
- #: includes/functions.php:740
3035
  msgid "Congo (Democratic Republic of the)"
3036
  msgstr ""
3037
 
3038
- #: includes/functions.php:741
3039
  msgid "Cook Islands"
3040
  msgstr ""
3041
 
3042
- #: includes/functions.php:742
3043
  msgid "Costa Rica"
3044
  msgstr ""
3045
 
3046
- #: includes/functions.php:743
3047
  msgid "Côte d'Ivoire"
3048
  msgstr ""
3049
 
3050
- #: includes/functions.php:744
3051
  msgid "Croatia"
3052
  msgstr ""
3053
 
3054
- #: includes/functions.php:745
3055
  msgid "Cuba"
3056
  msgstr ""
3057
 
3058
- #: includes/functions.php:746
3059
  msgid "Curaçao"
3060
  msgstr ""
3061
 
3062
- #: includes/functions.php:747
3063
  msgid "Cyprus"
3064
  msgstr ""
3065
 
3066
- #: includes/functions.php:748
3067
  msgid "Czech Republic"
3068
  msgstr ""
3069
 
3070
- #: includes/functions.php:749
3071
  msgid "Denmark"
3072
  msgstr ""
3073
 
3074
- #: includes/functions.php:750
3075
  msgid "Djibouti"
3076
  msgstr ""
3077
 
3078
- #: includes/functions.php:751
3079
  msgid "Dominica"
3080
  msgstr ""
3081
 
3082
- #: includes/functions.php:752
3083
  msgid "Dominican Republic"
3084
  msgstr ""
3085
 
3086
- #: includes/functions.php:753
3087
  msgid "Ecuador"
3088
  msgstr ""
3089
 
3090
- #: includes/functions.php:754
3091
  msgid "Egypt"
3092
  msgstr ""
3093
 
3094
- #: includes/functions.php:755
3095
  msgid "El Salvador"
3096
  msgstr ""
3097
 
3098
- #: includes/functions.php:756
3099
  msgid "Equatorial Guinea"
3100
  msgstr ""
3101
 
3102
- #: includes/functions.php:757
3103
  msgid "Eritrea"
3104
  msgstr ""
3105
 
3106
- #: includes/functions.php:758
3107
  msgid "Estonia"
3108
  msgstr ""
3109
 
3110
- #: includes/functions.php:759
3111
  msgid "Ethiopia"
3112
  msgstr ""
3113
 
3114
- #: includes/functions.php:760
3115
  msgid "Falkland Islands (Malvinas)"
3116
  msgstr ""
3117
 
3118
- #: includes/functions.php:761
3119
  msgid "Faroe Islands"
3120
  msgstr ""
3121
 
3122
- #: includes/functions.php:762
3123
  msgid "Fiji"
3124
  msgstr ""
3125
 
3126
- #: includes/functions.php:763
3127
  msgid "Finland"
3128
  msgstr ""
3129
 
3130
- #: includes/functions.php:764
3131
  msgid "France"
3132
  msgstr ""
3133
 
3134
- #: includes/functions.php:765
3135
  msgid "French Guiana"
3136
  msgstr ""
3137
 
3138
- #: includes/functions.php:766
3139
  msgid "French Polynesia"
3140
  msgstr ""
3141
 
3142
- #: includes/functions.php:767
3143
  msgid "French Southern Territories"
3144
  msgstr ""
3145
 
3146
- #: includes/functions.php:768
3147
  msgid "Gabon"
3148
  msgstr ""
3149
 
3150
- #: includes/functions.php:769
3151
  msgid "Gambia"
3152
  msgstr ""
3153
 
3154
- #: includes/functions.php:770
3155
  msgctxt "Country"
3156
  msgid "Georgia"
3157
  msgstr ""
3158
 
3159
- #: includes/functions.php:771
3160
  msgid "Germany"
3161
  msgstr ""
3162
 
3163
- #: includes/functions.php:772
3164
  msgid "Ghana"
3165
  msgstr ""
3166
 
3167
- #: includes/functions.php:773
3168
  msgid "Gibraltar"
3169
  msgstr ""
3170
 
3171
- #: includes/functions.php:774
3172
  msgid "Greece"
3173
  msgstr ""
3174
 
3175
- #: includes/functions.php:775
3176
  msgid "Greenland"
3177
  msgstr ""
3178
 
3179
- #: includes/functions.php:776
3180
  msgid "Grenada"
3181
  msgstr ""
3182
 
3183
- #: includes/functions.php:777
3184
  msgid "Guadeloupe"
3185
  msgstr ""
3186
 
3187
- #: includes/functions.php:778
3188
  msgid "Guam"
3189
  msgstr ""
3190
 
3191
- #: includes/functions.php:779
3192
  msgid "Guatemala"
3193
  msgstr ""
3194
 
3195
- #: includes/functions.php:780
3196
  msgid "Guernsey"
3197
  msgstr ""
3198
 
3199
- #: includes/functions.php:781
3200
  msgid "Guinea"
3201
  msgstr ""
3202
 
3203
- #: includes/functions.php:782
3204
  msgid "Guinea-Bissau"
3205
  msgstr ""
3206
 
3207
- #: includes/functions.php:783
3208
  msgid "Guyana"
3209
  msgstr ""
3210
 
3211
- #: includes/functions.php:784
3212
  msgid "Haiti"
3213
  msgstr ""
3214
 
3215
- #: includes/functions.php:785
3216
  msgid "Heard Island and McDonald Islands"
3217
  msgstr ""
3218
 
3219
- #: includes/functions.php:786
3220
  msgid "Honduras"
3221
  msgstr ""
3222
 
3223
- #: includes/functions.php:787
3224
  msgid "Hong Kong"
3225
  msgstr ""
3226
 
3227
- #: includes/functions.php:788
3228
  msgid "Hungary"
3229
  msgstr ""
3230
 
3231
- #: includes/functions.php:789
3232
  msgid "Iceland"
3233
  msgstr ""
3234
 
3235
- #: includes/functions.php:790
3236
  msgid "India"
3237
  msgstr ""
3238
 
3239
- #: includes/functions.php:791
3240
  msgid "Indonesia"
3241
  msgstr ""
3242
 
3243
- #: includes/functions.php:792
3244
  msgid "Iran (Islamic Republic of)"
3245
  msgstr ""
3246
 
3247
- #: includes/functions.php:793
3248
  msgid "Iraq"
3249
  msgstr ""
3250
 
3251
- #: includes/functions.php:794
3252
  msgid "Ireland (Republic of)"
3253
  msgstr ""
3254
 
3255
- #: includes/functions.php:795
3256
  msgid "Isle of Man"
3257
  msgstr ""
3258
 
3259
- #: includes/functions.php:796
3260
  msgid "Israel"
3261
  msgstr ""
3262
 
3263
- #: includes/functions.php:797
3264
  msgid "Italy"
3265
  msgstr ""
3266
 
3267
- #: includes/functions.php:798
3268
  msgid "Jamaica"
3269
  msgstr ""
3270
 
3271
- #: includes/functions.php:799
3272
  msgid "Japan"
3273
  msgstr ""
3274
 
3275
- #: includes/functions.php:800
3276
  msgid "Jersey"
3277
  msgstr ""
3278
 
3279
- #: includes/functions.php:801
3280
  msgid "Jordan"
3281
  msgstr ""
3282
 
3283
- #: includes/functions.php:802
3284
  msgid "Kazakhstan"
3285
  msgstr ""
3286
 
3287
- #: includes/functions.php:803
3288
  msgid "Kenya"
3289
  msgstr ""
3290
 
3291
- #: includes/functions.php:804
3292
  msgid "Kiribati"
3293
  msgstr ""
3294
 
3295
- #: includes/functions.php:805
3296
  msgid "Korea (Democratic People's Republic of)"
3297
  msgstr ""
3298
 
3299
- #: includes/functions.php:806
3300
  msgid "Korea (Republic of)"
3301
  msgstr ""
3302
 
3303
- #: includes/functions.php:807
3304
  msgid "Kuwait"
3305
  msgstr ""
3306
 
3307
- #: includes/functions.php:808
3308
  msgid "Kyrgyzstan"
3309
  msgstr ""
3310
 
3311
- #: includes/functions.php:809
3312
  msgid "Lao People's Democratic Republic"
3313
  msgstr ""
3314
 
3315
- #: includes/functions.php:810
3316
  msgid "Latvia"
3317
  msgstr ""
3318
 
3319
- #: includes/functions.php:811
3320
  msgid "Lebanon"
3321
  msgstr ""
3322
 
3323
- #: includes/functions.php:812
3324
  msgid "Lesotho"
3325
  msgstr ""
3326
 
3327
- #: includes/functions.php:813
3328
  msgid "Liberia"
3329
  msgstr ""
3330
 
3331
- #: includes/functions.php:814
3332
  msgid "Libya"
3333
  msgstr ""
3334
 
3335
- #: includes/functions.php:815
3336
  msgid "Liechtenstein"
3337
  msgstr ""
3338
 
3339
- #: includes/functions.php:816
3340
  msgid "Lithuania"
3341
  msgstr ""
3342
 
3343
- #: includes/functions.php:817
3344
  msgid "Luxembourg"
3345
  msgstr ""
3346
 
3347
- #: includes/functions.php:818
3348
  msgid "Macao"
3349
  msgstr ""
3350
 
3351
- #: includes/functions.php:819
3352
  msgid "Macedonia (Republic of)"
3353
  msgstr ""
3354
 
3355
- #: includes/functions.php:820
3356
  msgid "Madagascar"
3357
  msgstr ""
3358
 
3359
- #: includes/functions.php:821
3360
  msgid "Malawi"
3361
  msgstr ""
3362
 
3363
- #: includes/functions.php:822
3364
  msgid "Malaysia"
3365
  msgstr ""
3366
 
3367
- #: includes/functions.php:823
3368
  msgid "Maldives"
3369
  msgstr ""
3370
 
3371
- #: includes/functions.php:824
3372
  msgid "Mali"
3373
  msgstr ""
3374
 
3375
- #: includes/functions.php:825
3376
  msgid "Malta"
3377
  msgstr ""
3378
 
3379
- #: includes/functions.php:826
3380
  msgid "Marshall Islands"
3381
  msgstr ""
3382
 
3383
- #: includes/functions.php:827
3384
  msgid "Martinique"
3385
  msgstr ""
3386
 
3387
- #: includes/functions.php:828
3388
  msgid "Mauritania"
3389
  msgstr ""
3390
 
3391
- #: includes/functions.php:829
3392
  msgid "Mauritius"
3393
  msgstr ""
3394
 
3395
- #: includes/functions.php:830
3396
  msgid "Mayotte"
3397
  msgstr ""
3398
 
3399
- #: includes/functions.php:831
3400
  msgid "Mexico"
3401
  msgstr ""
3402
 
3403
- #: includes/functions.php:832
3404
  msgid "Micronesia (Federated States of)"
3405
  msgstr ""
3406
 
3407
- #: includes/functions.php:833
3408
  msgid "Moldova (Republic of)"
3409
  msgstr ""
3410
 
3411
- #: includes/functions.php:834
3412
  msgid "Monaco"
3413
  msgstr ""
3414
 
3415
- #: includes/functions.php:835
3416
  msgid "Mongolia"
3417
  msgstr ""
3418
 
3419
- #: includes/functions.php:836
3420
  msgid "Montenegro"
3421
  msgstr ""
3422
 
3423
- #: includes/functions.php:837
3424
  msgid "Montserrat"
3425
  msgstr ""
3426
 
3427
- #: includes/functions.php:838
3428
  msgid "Morocco"
3429
  msgstr ""
3430
 
3431
- #: includes/functions.php:839
3432
  msgid "Mozambique"
3433
  msgstr ""
3434
 
3435
- #: includes/functions.php:840
3436
  msgid "Myanmar"
3437
  msgstr ""
3438
 
3439
- #: includes/functions.php:841
3440
  msgid "Namibia"
3441
  msgstr ""
3442
 
3443
- #: includes/functions.php:842
3444
  msgid "Nauru"
3445
  msgstr ""
3446
 
3447
- #: includes/functions.php:843
3448
  msgid "Nepal"
3449
  msgstr ""
3450
 
3451
- #: includes/functions.php:844
3452
  msgid "Netherlands"
3453
  msgstr ""
3454
 
3455
- #: includes/functions.php:845
3456
  msgid "New Caledonia"
3457
  msgstr ""
3458
 
3459
- #: includes/functions.php:846
3460
  msgid "New Zealand"
3461
  msgstr ""
3462
 
3463
- #: includes/functions.php:847
3464
  msgid "Nicaragua"
3465
  msgstr ""
3466
 
3467
- #: includes/functions.php:848
3468
  msgid "Niger"
3469
  msgstr ""
3470
 
3471
- #: includes/functions.php:849
3472
  msgid "Nigeria"
3473
  msgstr ""
3474
 
3475
- #: includes/functions.php:850
3476
  msgid "Niue"
3477
  msgstr ""
3478
 
3479
- #: includes/functions.php:851
3480
  msgid "Norfolk Island"
3481
  msgstr ""
3482
 
3483
- #: includes/functions.php:852
3484
  msgid "Northern Mariana Islands"
3485
  msgstr ""
3486
 
3487
- #: includes/functions.php:853
3488
  msgid "Norway"
3489
  msgstr ""
3490
 
3491
- #: includes/functions.php:854
3492
  msgid "Oman"
3493
  msgstr ""
3494
 
3495
- #: includes/functions.php:855
3496
  msgid "Pakistan"
3497
  msgstr ""
3498
 
3499
- #: includes/functions.php:856
3500
  msgid "Palau"
3501
  msgstr ""
3502
 
3503
- #: includes/functions.php:857
3504
  msgid "Palestine (State of)"
3505
  msgstr ""
3506
 
3507
- #: includes/functions.php:858
3508
  msgid "Panama"
3509
  msgstr ""
3510
 
3511
- #: includes/functions.php:859
3512
  msgid "Papua New Guinea"
3513
  msgstr ""
3514
 
3515
- #: includes/functions.php:860
3516
  msgid "Paraguay"
3517
  msgstr ""
3518
 
3519
- #: includes/functions.php:861
3520
  msgid "Peru"
3521
  msgstr ""
3522
 
3523
- #: includes/functions.php:862
3524
  msgid "Philippines"
3525
  msgstr ""
3526
 
3527
- #: includes/functions.php:863
3528
  msgid "Pitcairn"
3529
  msgstr ""
3530
 
3531
- #: includes/functions.php:864
3532
  msgid "Poland"
3533
  msgstr ""
3534
 
3535
- #: includes/functions.php:865
3536
  msgid "Portugal"
3537
  msgstr ""
3538
 
3539
- #: includes/functions.php:866
3540
  msgid "Puerto Rico"
3541
  msgstr ""
3542
 
3543
- #: includes/functions.php:867
3544
  msgid "Qatar"
3545
  msgstr ""
3546
 
3547
- #: includes/functions.php:868
3548
  msgid "Réunion"
3549
  msgstr ""
3550
 
3551
- #: includes/functions.php:869
3552
  msgid "Romania"
3553
  msgstr ""
3554
 
3555
- #: includes/functions.php:870
3556
  msgid "Russian Federation"
3557
  msgstr ""
3558
 
3559
- #: includes/functions.php:871
3560
  msgid "Rwanda"
3561
  msgstr ""
3562
 
3563
- #: includes/functions.php:872
3564
  msgid "Saint Barthélemy"
3565
  msgstr ""
3566
 
3567
- #: includes/functions.php:873
3568
  msgid "Saint Helena, Ascension and Tristan da Cunha"
3569
  msgstr ""
3570
 
3571
- #: includes/functions.php:874
3572
  msgid "Saint Kitts and Nevis"
3573
  msgstr ""
3574
 
3575
- #: includes/functions.php:875
3576
  msgid "Saint Lucia"
3577
  msgstr ""
3578
 
3579
- #: includes/functions.php:876
3580
  msgid "Saint Martin (French part)"
3581
  msgstr ""
3582
 
3583
- #: includes/functions.php:877
3584
  msgid "Saint Pierre and Miquelon"
3585
  msgstr ""
3586
 
3587
- #: includes/functions.php:878
3588
  msgid "Saint Vincent and the Grenadines"
3589
  msgstr ""
3590
 
3591
- #: includes/functions.php:879
3592
  msgid "Samoa"
3593
  msgstr ""
3594
 
3595
- #: includes/functions.php:880
3596
  msgid "San Marino"
3597
  msgstr ""
3598
 
3599
- #: includes/functions.php:881
3600
  msgid "Sao Tome and Principe"
3601
  msgstr ""
3602
 
3603
- #: includes/functions.php:882
3604
  msgid "Saudi Arabia"
3605
  msgstr ""
3606
 
3607
- #: includes/functions.php:883
3608
  msgid "Senegal"
3609
  msgstr ""
3610
 
3611
- #: includes/functions.php:884
3612
  msgid "Serbia"
3613
  msgstr ""
3614
 
3615
- #: includes/functions.php:885
3616
  msgid "Seychelles"
3617
  msgstr ""
3618
 
3619
- #: includes/functions.php:886
3620
  msgid "Sierra Leone"
3621
  msgstr ""
3622
 
3623
- #: includes/functions.php:887
3624
  msgid "Singapore"
3625
  msgstr ""
3626
 
3627
- #: includes/functions.php:888
3628
  msgid "Sint Maarten (Dutch part)"
3629
  msgstr ""
3630
 
3631
- #: includes/functions.php:889
3632
  msgid "Slovakia"
3633
  msgstr ""
3634
 
3635
- #: includes/functions.php:890
3636
  msgid "Slovenia"
3637
  msgstr ""
3638
 
3639
- #: includes/functions.php:891
3640
  msgid "Solomon Islands"
3641
  msgstr ""
3642
 
3643
- #: includes/functions.php:892
3644
  msgid "Somalia"
3645
  msgstr ""
3646
 
3647
- #: includes/functions.php:893
3648
  msgid "South Africa"
3649
  msgstr ""
3650
 
3651
- #: includes/functions.php:894
3652
  msgid "South Georgia and the South Sandwich Islands"
3653
  msgstr ""
3654
 
3655
- #: includes/functions.php:895
3656
  msgid "South Sudan"
3657
  msgstr ""
3658
 
3659
- #: includes/functions.php:896
3660
  msgid "Spain"
3661
  msgstr ""
3662
 
3663
- #: includes/functions.php:897
3664
  msgid "Sri Lanka"
3665
  msgstr ""
3666
 
3667
- #: includes/functions.php:898
3668
  msgid "Sudan"
3669
  msgstr ""
3670
 
3671
- #: includes/functions.php:899
3672
  msgid "Suriname"
3673
  msgstr ""
3674
 
3675
- #: includes/functions.php:900
3676
  msgid "Svalbard and Jan Mayen"
3677
  msgstr ""
3678
 
3679
- #: includes/functions.php:901
3680
  msgid "Swaziland"
3681
  msgstr ""
3682
 
3683
- #: includes/functions.php:902
3684
  msgid "Sweden"
3685
  msgstr ""
3686
 
3687
- #: includes/functions.php:903
3688
  msgid "Switzerland"
3689
  msgstr ""
3690
 
3691
- #: includes/functions.php:904
3692
  msgid "Syrian Arab Republic"
3693
  msgstr ""
3694
 
3695
- #: includes/functions.php:905
3696
  msgid "Taiwan, Province of China"
3697
  msgstr ""
3698
 
3699
- #: includes/functions.php:906
3700
  msgid "Tajikistan"
3701
  msgstr ""
3702
 
3703
- #: includes/functions.php:907
3704
  msgid "Tanzania (United Republic of)"
3705
  msgstr ""
3706
 
3707
- #: includes/functions.php:908
3708
  msgid "Thailand"
3709
  msgstr ""
3710
 
3711
- #: includes/functions.php:909
3712
  msgid "Timor-Leste"
3713
  msgstr ""
3714
 
3715
- #: includes/functions.php:910
3716
  msgid "Togo"
3717
  msgstr ""
3718
 
3719
- #: includes/functions.php:911
3720
  msgid "Tokelau"
3721
  msgstr ""
3722
 
3723
- #: includes/functions.php:912
3724
  msgid "Tonga"
3725
  msgstr ""
3726
 
3727
- #: includes/functions.php:913
3728
  msgid "Trinidad and Tobago"
3729
  msgstr ""
3730
 
3731
- #: includes/functions.php:914
3732
  msgid "Tunisia"
3733
  msgstr ""
3734
 
3735
- #: includes/functions.php:915
3736
  msgid "Turkey"
3737
  msgstr ""
3738
 
3739
- #: includes/functions.php:916
3740
  msgid "Turkmenistan"
3741
  msgstr ""
3742
 
3743
- #: includes/functions.php:917
3744
  msgid "Turks and Caicos Islands"
3745
  msgstr ""
3746
 
3747
- #: includes/functions.php:918
3748
  msgid "Tuvalu"
3749
  msgstr ""
3750
 
3751
- #: includes/functions.php:919
3752
  msgid "Uganda"
3753
  msgstr ""
3754
 
3755
- #: includes/functions.php:920
3756
  msgid "Ukraine"
3757
  msgstr ""
3758
 
3759
- #: includes/functions.php:921
3760
  msgid "United Arab Emirates"
3761
  msgstr ""
3762
 
3763
- #: includes/functions.php:922
3764
  msgid "United Kingdom of Great Britain and Northern Ireland"
3765
  msgstr ""
3766
 
3767
- #: includes/functions.php:923
3768
  msgid "United States of America"
3769
  msgstr ""
3770
 
3771
- #: includes/functions.php:924
3772
  msgid "United States Minor Outlying Islands"
3773
  msgstr ""
3774
 
3775
- #: includes/functions.php:925
3776
  msgid "Uruguay"
3777
  msgstr ""
3778
 
3779
- #: includes/functions.php:926
3780
  msgid "Uzbekistan"
3781
  msgstr ""
3782
 
3783
- #: includes/functions.php:927
3784
  msgid "Vanuatu"
3785
  msgstr ""
3786
 
3787
- #: includes/functions.php:928
3788
  msgid "Vatican City State"
3789
  msgstr ""
3790
 
3791
- #: includes/functions.php:929
3792
  msgid "Venezuela (Bolivarian Republic of)"
3793
  msgstr ""
3794
 
3795
- #: includes/functions.php:930
3796
  msgid "Viet Nam"
3797
  msgstr ""
3798
 
3799
- #: includes/functions.php:931
3800
  msgid "Virgin Islands (British)"
3801
  msgstr ""
3802
 
3803
- #: includes/functions.php:932
3804
  msgid "Virgin Islands (U.S.)"
3805
  msgstr ""
3806
 
3807
- #: includes/functions.php:933
3808
  msgid "Wallis and Futuna"
3809
  msgstr ""
3810
 
3811
- #: includes/functions.php:934
3812
  msgid "Western Sahara"
3813
  msgstr ""
3814
 
3815
- #: includes/functions.php:935
3816
  msgid "Yemen"
3817
  msgstr ""
3818
 
3819
- #: includes/functions.php:936
3820
  msgid "Zambia"
3821
  msgstr ""
3822
 
3823
- #: includes/functions.php:937
3824
  msgid "Zimbabwe"
3825
  msgstr ""
3826
 
3827
- #: includes/functions.php:952
3828
  msgid "January"
3829
  msgstr ""
3830
 
3831
- #: includes/functions.php:953
3832
  msgid "February"
3833
  msgstr ""
3834
 
3835
- #: includes/functions.php:954
3836
  msgid "March"
3837
  msgstr ""
3838
 
3839
- #: includes/functions.php:955
3840
  msgid "April"
3841
  msgstr ""
3842
 
3843
- #: includes/functions.php:956
3844
  msgid "May"
3845
  msgstr ""
3846
 
3847
- #: includes/functions.php:957
3848
  msgid "June"
3849
  msgstr ""
3850
 
3851
- #: includes/functions.php:958
3852
  msgid "July"
3853
  msgstr ""
3854
 
3855
- #: includes/functions.php:959
3856
  msgid "August"
3857
  msgstr ""
3858
 
3859
- #: includes/functions.php:960
3860
  msgid "September"
3861
  msgstr ""
3862
 
3863
- #: includes/functions.php:961
3864
  msgid "October"
3865
  msgstr ""
3866
 
3867
- #: includes/functions.php:962
3868
  msgid "November"
3869
  msgstr ""
3870
 
3871
- #: includes/functions.php:963
3872
  msgid "December"
3873
  msgstr ""
3874
 
3875
- #: includes/functions.php:978
3876
  msgid "Sunday"
3877
  msgstr ""
3878
 
3879
- #: includes/functions.php:979
3880
  msgid "Monday"
3881
  msgstr ""
3882
 
3883
- #: includes/functions.php:980
3884
  msgid "Tuesday"
3885
  msgstr ""
3886
 
3887
- #: includes/functions.php:981
3888
  msgid "Wednesday"
3889
  msgstr ""
3890
 
3891
- #: includes/functions.php:982
3892
  msgid "Thursday"
3893
  msgstr ""
3894
 
3895
- #: includes/functions.php:983
3896
  msgid "Friday"
3897
  msgstr ""
3898
 
3899
- #: includes/functions.php:984
3900
  msgid "Saturday"
3901
  msgstr ""
3902
 
@@ -4560,17 +4724,21 @@ msgstr ""
4560
  msgid "Upgrade to WPForms Pro Now"
4561
  msgstr ""
4562
 
4563
- #: lite/wpforms-lite.php:1043
 
 
 
 
4564
  msgid "Form Addons are a PRO feature."
4565
  msgstr ""
4566
 
4567
- #: lite/wpforms-lite.php:1044
4568
  msgid ""
4569
  "Please upgrade to the PRO plan to unlock them and more awesome features."
4570
  msgstr ""
4571
 
4572
  #. translators: %s - addon name
4573
- #: lite/wpforms-lite.php:1062
4574
  msgid "%s Addon"
4575
  msgstr ""
4576
 
@@ -4608,10 +4776,6 @@ msgstr ""
4608
  msgid "Please enter a license key."
4609
  msgstr ""
4610
 
4611
- #: pro/includes/admin/builder/panels/class-payments.php:41
4612
- msgid "Default"
4613
- msgstr ""
4614
-
4615
  #: pro/includes/admin/builder/panels/class-payments.php:82
4616
  msgid "Install Your Payment Integration"
4617
  msgstr ""
@@ -4635,58 +4799,58 @@ msgid ""
4635
  "it added as fast as possible."
4636
  msgstr ""
4637
 
4638
- #: pro/includes/admin/class-addons.php:85
4639
  msgid "Refresh Addons"
4640
  msgstr ""
4641
 
4642
- #: pro/includes/admin/class-addons.php:91
4643
  msgid ""
4644
- "There was an issue retrieving the addons for this site. Please click on the "
4645
- "button above the refresh the addons data."
4646
  msgstr ""
4647
 
4648
- #: pro/includes/admin/class-addons.php:97
4649
  msgid ""
4650
  "In order to get access to Addons, you need to resolve your license key "
4651
  "errors."
4652
  msgstr ""
4653
 
4654
- #: pro/includes/admin/class-addons.php:103
4655
  msgid ""
4656
  "In order to get access to Addons, you need to verify your license key for "
4657
  "WPForms."
4658
  msgstr ""
4659
 
4660
- #: pro/includes/admin/class-addons.php:111
4661
  msgid "Addons have successfully been refreshed."
4662
  msgstr ""
4663
 
4664
  #. translators: %s - refresh addons page URL.
4665
- #: pro/includes/admin/class-addons.php:124
4666
  msgid ""
4667
  "Improve your forms with our premium addons. Missing an addon that you think "
4668
  "you should be able to see? Click the <a href=\"%s\">Refresh Addons</a> "
4669
  "button above."
4670
  msgstr ""
4671
 
4672
- #: pro/includes/admin/class-addons.php:136
4673
  msgid "Available Addons"
4674
  msgstr ""
4675
 
4676
- #: pro/includes/admin/class-addons.php:182
4677
  msgid "Unlock More Features..."
4678
  msgstr ""
4679
 
4680
  #. translators: %s - WPForms.com Account page URL.
4681
- #: pro/includes/admin/class-addons.php:187
4682
  msgid ""
4683
  "Want to get even more features? <a href=\"%s\" target=\"_blank\" rel="
4684
  "\"noopener noreferrer\">Upgrade your WPForms account</a> and unlock the "
4685
  "following extensions."
4686
  msgstr ""
4687
 
4688
- #: pro/includes/admin/class-addons.php:256
4689
- #: pro/includes/admin/entries/class-entries-list-table.php:161
4690
  msgid "Status"
4691
  msgstr ""
4692
 
@@ -4816,119 +4980,119 @@ msgstr ""
4816
  msgid "Starred"
4817
  msgstr ""
4818
 
4819
- #: pro/includes/admin/entries/class-entries-list-table.php:155
4820
  #: pro/includes/fields/class-payment-total.php:22
4821
  msgid "Total"
4822
  msgstr ""
4823
 
4824
- #: pro/includes/admin/entries/class-entries-list-table.php:166
4825
  #: pro/includes/admin/entries/class-entries-single.php:1048
4826
  msgid "Actions"
4827
  msgstr ""
4828
 
4829
- #: pro/includes/admin/entries/class-entries-list-table.php:167
4830
  msgid "Change columns to display"
4831
  msgstr ""
4832
 
4833
- #: pro/includes/admin/entries/class-entries-list-table.php:325
4834
  #: pro/includes/admin/entries/class-entries-single.php:840
4835
  msgid "Unknown"
4836
  msgstr ""
4837
 
4838
- #: pro/includes/admin/entries/class-entries-list-table.php:332
4839
  #: pro/includes/admin/entries/class-entries-single.php:783
4840
  msgid "Completed"
4841
  msgstr ""
4842
 
4843
- #: pro/includes/admin/entries/class-entries-list-table.php:406
4844
  msgid "View Form Entry"
4845
  msgstr ""
4846
 
4847
- #: pro/includes/admin/entries/class-entries-list-table.php:407
4848
  msgid "View"
4849
  msgstr ""
4850
 
4851
- #: pro/includes/admin/entries/class-entries-list-table.php:424
4852
  msgid "Delete Form Entry"
4853
  msgstr ""
4854
 
4855
- #: pro/includes/admin/entries/class-entries-list-table.php:448
4856
  msgid "Select a date range"
4857
  msgstr ""
4858
 
4859
- #: pro/includes/admin/entries/class-entries-list-table.php:452
4860
  msgid "Filter"
4861
  msgstr ""
4862
 
4863
- #: pro/includes/admin/entries/class-entries-list-table.php:494
4864
  msgid "Mark Read"
4865
  msgstr ""
4866
 
4867
- #: pro/includes/admin/entries/class-entries-list-table.php:495
4868
  #: pro/includes/admin/entries/class-entries-single.php:1032
4869
  msgid "Mark Unread"
4870
  msgstr ""
4871
 
4872
- #: pro/includes/admin/entries/class-entries-list-table.php:496
4873
  #: pro/includes/admin/entries/class-entries-single.php:997
4874
  #: pro/includes/fields/class-rating.php:225
4875
  msgid "Star"
4876
  msgstr ""
4877
 
4878
- #: pro/includes/admin/entries/class-entries-list-table.php:497
4879
  #: pro/includes/admin/entries/class-entries-single.php:997
4880
  msgid "Unstar"
4881
  msgstr ""
4882
 
4883
- #: pro/includes/admin/entries/class-entries-list-table.php:498
4884
  msgid "----------"
4885
  msgstr ""
4886
 
4887
- #: pro/includes/admin/entries/class-entries-list-table.php:556
4888
  msgid "Entry was successfully marked as read."
4889
  msgstr ""
4890
 
4891
- #: pro/includes/admin/entries/class-entries-list-table.php:558
4892
  msgid "Entries were successfully marked as read."
4893
  msgstr ""
4894
 
4895
- #: pro/includes/admin/entries/class-entries-list-table.php:582
4896
  msgid "Entry was successfully marked as unread."
4897
  msgstr ""
4898
 
4899
- #: pro/includes/admin/entries/class-entries-list-table.php:584
4900
  msgid "Entries were successfully marked as unread."
4901
  msgstr ""
4902
 
4903
- #: pro/includes/admin/entries/class-entries-list-table.php:608
4904
  msgid "Entry was successfully starred."
4905
  msgstr ""
4906
 
4907
- #: pro/includes/admin/entries/class-entries-list-table.php:610
4908
  msgid "Entries were successfully starred."
4909
  msgstr ""
4910
 
4911
- #: pro/includes/admin/entries/class-entries-list-table.php:634
4912
  msgid "Entry was successfully unstarred."
4913
  msgstr ""
4914
 
4915
- #: pro/includes/admin/entries/class-entries-list-table.php:636
4916
  msgid "Entries were successfully unstarred."
4917
  msgstr ""
4918
 
4919
- #: pro/includes/admin/entries/class-entries-list-table.php:655
4920
  msgid "Entry was successfully deleted."
4921
  msgstr ""
4922
 
4923
- #: pro/includes/admin/entries/class-entries-list-table.php:657
4924
  msgid "Entries were successfully deleted."
4925
  msgstr ""
4926
 
4927
- #: pro/includes/admin/entries/class-entries-list-table.php:672
4928
  msgid "Whoops, it appears you do not have any form entries yet."
4929
  msgstr ""
4930
 
4931
- #: pro/includes/admin/entries/class-entries-list-table.php:704
4932
  msgid "Any form field"
4933
  msgstr ""
4934
 
@@ -5184,19 +5348,19 @@ msgstr ""
5184
 
5185
  #: pro/includes/fields/class-address.php:40
5186
  #: pro/includes/fields/class-address.php:49
5187
- #: pro/includes/fields/class-address.php:321
5188
  msgid "Address Line 1"
5189
  msgstr ""
5190
 
5191
  #: pro/includes/fields/class-address.php:41
5192
  #: pro/includes/fields/class-address.php:50
5193
- #: pro/includes/fields/class-address.php:340
5194
  msgid "Address Line 2"
5195
  msgstr ""
5196
 
5197
  #: pro/includes/fields/class-address.php:42
5198
  #: pro/includes/fields/class-address.php:51
5199
- #: pro/includes/fields/class-address.php:361
5200
  msgid "City"
5201
  msgstr ""
5202
 
@@ -5218,24 +5382,24 @@ msgid "Postal Code"
5218
  msgstr ""
5219
 
5220
  #: pro/includes/fields/class-address.php:53
5221
- #: pro/includes/fields/class-address.php:379
5222
  msgid "State / Province / Region"
5223
  msgstr ""
5224
 
5225
  #: pro/includes/fields/class-address.php:55
5226
- #: pro/includes/fields/class-address.php:423
5227
  msgid "Country"
5228
  msgstr ""
5229
 
5230
- #: pro/includes/fields/class-address.php:272
5231
  msgid "Select scheme format for the address field."
5232
  msgstr ""
5233
 
5234
- #: pro/includes/fields/class-address.php:279
5235
  msgid "Scheme"
5236
  msgstr ""
5237
 
5238
- #: pro/includes/fields/class-address.php:399
5239
  msgid "ZIP / Postal"
5240
  msgstr ""
5241
 
@@ -5409,10 +5573,6 @@ msgstr ""
5409
  msgid "Connector"
5410
  msgstr ""
5411
 
5412
- #: pro/includes/fields/class-page-break.php:287
5413
- msgid "None"
5414
- msgstr ""
5415
-
5416
  #: pro/includes/fields/class-page-break.php:294
5417
  msgid "Progress Indicator"
5418
  msgstr ""
@@ -5567,19 +5727,18 @@ msgid "First Item"
5567
  msgstr ""
5568
 
5569
  #: pro/includes/fields/class-payment-dropdown.php:34
5570
- #: pro/includes/fields/class-payment-multiple.php:34
5571
  #: pro/includes/templates/class-order.php:76
5572
  msgid "Second Item"
5573
  msgstr ""
5574
 
5575
  #: pro/includes/fields/class-payment-dropdown.php:39
5576
- #: pro/includes/fields/class-payment-multiple.php:39
5577
  #: pro/includes/templates/class-order.php:80
5578
  msgid "Third Item"
5579
  msgstr ""
5580
 
5581
  #: pro/includes/fields/class-payment-dropdown.php:219
5582
- #: pro/includes/fields/class-payment-multiple.php:186
5583
  msgid "Invalid payment option"
5584
  msgstr ""
5585
 
@@ -5587,6 +5746,10 @@ msgstr ""
5587
  msgid "Multiple Items"
5588
  msgstr ""
5589
 
 
 
 
 
5590
  #: pro/includes/fields/class-payment-single.php:22
5591
  #: pro/includes/fields/class-payment-single.php:68
5592
  msgid "Single Item"
@@ -5894,9 +6057,9 @@ msgstr ""
5894
  msgid "Please deactivate WPForms Lite before activating WPForms."
5895
  msgstr ""
5896
 
5897
- #. #-#-#-#-# wpforms.pot (WPForms 1.4.4.1) #-#-#-#-#
5898
  #. Plugin URI of the plugin/theme
5899
- #. #-#-#-#-# wpforms.pot (WPForms 1.4.4.1) #-#-#-#-#
5900
  #. Author URI of the plugin/theme
5901
  msgid "https://wpforms.com"
5902
  msgstr ""
2
  # This file is distributed under the same license as the WPForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WPForms 1.4.5\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
7
+ "POT-Creation-Date: 2018-03-15 14:55:52+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
  #: includes/admin/admin.php:128 includes/admin/admin.php:156
16
+ #: pro/includes/admin/class-addons.php:284
17
  msgid "Activate"
18
  msgstr ""
19
 
20
+ #: includes/admin/admin.php:129 pro/includes/admin/class-addons.php:241
21
  msgid "Active"
22
  msgstr ""
23
 
24
+ #: includes/admin/admin.php:130 pro/includes/admin/class-addons.php:279
25
  msgid "Deactivate"
26
  msgstr ""
27
 
28
+ #: includes/admin/admin.php:131 pro/includes/admin/class-addons.php:247
29
  msgid "Inactive"
30
  msgstr ""
31
 
32
+ #: includes/admin/admin.php:132 pro/includes/admin/class-addons.php:289
33
  msgid "Install Addon"
34
  msgstr ""
35
 
36
+ #: includes/admin/admin.php:134 includes/admin/builder/class-builder.php:320
37
  #: includes/admin/class-editor.php:109
38
  #: pro/includes/admin/entries/class-entries-single.php:608
39
  msgid "Cancel"
40
  msgstr ""
41
 
42
+ #: includes/admin/admin.php:135 includes/admin/builder/class-builder.php:322
43
  #: includes/admin/class-editor.php:72 includes/class-preview.php:161
44
  msgid "Close"
45
  msgstr ""
71
  msgstr ""
72
 
73
  #: includes/admin/admin.php:142
74
+ #: pro/includes/admin/entries/class-entries-list-table.php:372
75
  msgid "Unstar entry"
76
  msgstr ""
77
 
78
  #: includes/admin/admin.php:143
79
+ #: pro/includes/admin/entries/class-entries-list-table.php:372
80
  msgid "Star entry"
81
  msgstr ""
82
 
83
  #: includes/admin/admin.php:144
84
+ #: pro/includes/admin/entries/class-entries-list-table.php:377
85
  msgid "Mark entry read"
86
  msgstr ""
87
 
88
  #: includes/admin/admin.php:145
89
+ #: pro/includes/admin/entries/class-entries-list-table.php:377
90
  msgid "Mark entry unread"
91
  msgstr ""
92
 
102
  msgid "Are you sure you want to duplicate this form?"
103
  msgstr ""
104
 
105
+ #: includes/admin/admin.php:149 includes/admin/builder/class-builder.php:330
106
  msgid "Heads up!"
107
  msgstr ""
108
 
110
  msgid "Please select at least one form to import."
111
  msgstr ""
112
 
113
+ #: includes/admin/admin.php:153 includes/admin/builder/class-builder.php:321
114
  msgid "OK"
115
  msgstr ""
116
 
143
  msgstr ""
144
 
145
  #: includes/admin/admin.php:161
146
+ msgid "Testing"
147
  msgstr ""
148
 
149
  #: includes/admin/admin.php:162
150
+ msgid "Upgrade was successfully completed!"
151
+ msgstr ""
152
+
153
+ #: includes/admin/admin.php:163 includes/admin/builder/class-builder.php:390
154
  msgid "Upload or Choose Your Image"
155
  msgstr ""
156
 
157
+ #: includes/admin/admin.php:164 includes/admin/builder/class-builder.php:391
158
  msgid "Use Image"
159
  msgstr ""
160
 
161
  #. translators: %1$s - WPForms plugin name; %2$s - WPForms.com URL to a related
162
  #. doc.
163
+ #: includes/admin/admin.php:361
164
  msgid ""
165
  "Your site is running an outdated version of PHP that is no longer supported "
166
  "and may cause issues with %1$s. <a href=\"%2$s\" target=\"_blank\" rel="
167
  "\"noopener noreferrer\">Read more</a> for additional information."
168
  msgstr ""
169
 
170
+ #: includes/admin/admin.php:375
171
  msgid ""
172
  "<em><strong>Please Note:</strong> After April 2018, WPForms will be "
173
  "deactivated if not further action is taken.</em>"
174
  msgstr ""
175
 
176
+ #: includes/admin/admin.php:397
177
  msgid "Thanks for your interest in WPForms Pro!"
178
  msgstr ""
179
 
180
  #. translators: %s - WPForms.com contact page URL.
181
+ #: includes/admin/admin.php:401
182
  msgid ""
183
  "If you have any questions or issues just <a href=\"%s\" target=\"_blank\" "
184
  "rel=\"noopener noreferrer\">let us know</a>."
185
  msgstr ""
186
 
187
+ #: includes/admin/admin.php:415
188
  msgid ""
189
  "After purchasing WPForms Pro, you'll need to <strong>download and install "
190
  "the Pro version of the plugin</strong>, and then <strong>remove the free "
191
  "plugin</strong>."
192
  msgstr ""
193
 
194
+ #: includes/admin/admin.php:420
195
  msgid "(Don't worry, all your forms and settings will be preserved.)"
196
  msgstr ""
197
 
198
  #. translators: %s - WPForms.com upgrade from Lite to paid docs page URL.
199
+ #: includes/admin/admin.php:426
200
  msgid ""
201
  "Check out <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">our "
202
  "documentation</a> for step-by-step instructions."
203
  msgstr ""
204
 
205
+ #: includes/admin/ajax-actions.php:24 includes/fields/class-base.php:1094
206
  msgid "You do not have permission."
207
  msgstr ""
208
 
230
  msgid "Error updating form template"
231
  msgstr ""
232
 
233
+ #: includes/admin/ajax-actions.php:281 includes/fields/class-base.php:446
234
  msgid "post type"
235
  msgstr ""
236
 
237
+ #: includes/admin/ajax-actions.php:309 includes/fields/class-base.php:450
238
  msgid "taxonomy"
239
  msgstr ""
240
 
241
+ #: includes/admin/ajax-actions.php:369
242
+ msgid "Success! Your server can make SSL connections."
243
+ msgstr ""
244
+
245
+ #: includes/admin/ajax-actions.php:373
246
+ msgid ""
247
+ "There was an error and the connection failed. Please contact your web host "
248
+ "with the technical details below."
249
+ msgstr ""
250
+
251
+ #: includes/admin/builder/class-builder.php:307
252
  #: includes/class-conditional-logic-core.php:449
253
  msgid "AND"
254
  msgstr ""
255
 
256
+ #: includes/admin/builder/class-builder.php:309
257
  msgid "Add New Choices"
258
  msgstr ""
259
 
260
+ #: includes/admin/builder/class-builder.php:310
261
+ #: includes/fields/class-base.php:383
262
  msgid "Bulk Add"
263
  msgstr ""
264
 
265
+ #: includes/admin/builder/class-builder.php:311
266
  msgid "Hide Bulk Add"
267
  msgstr ""
268
 
269
+ #: includes/admin/builder/class-builder.php:312
270
  msgid "Add Choices (one per line)"
271
  msgstr ""
272
 
273
+ #: includes/admin/builder/class-builder.php:313
274
  msgid ""
275
  "Blue\n"
276
  "Red\n"
277
  "Green"
278
  msgstr ""
279
 
280
+ #: includes/admin/builder/class-builder.php:314
281
  msgid "Show presets"
282
  msgstr ""
283
 
284
+ #: includes/admin/builder/class-builder.php:315
285
  msgid "Hide presets"
286
  msgstr ""
287
 
288
+ #: includes/admin/builder/class-builder.php:319
289
  msgid ""
290
  "The {source} {type} contains over {limit} items ({total}). This may make the "
291
  "field difficult for your visitors to use and/or cause the form to be slow."
292
  msgstr ""
293
 
294
+ #: includes/admin/builder/class-builder.php:323
295
  msgid ""
296
  "Due to form changes, conditional logic rules have been removed or updated:"
297
  msgstr ""
298
 
299
+ #: includes/admin/builder/class-builder.php:324
300
  msgid ""
301
  "Are you sure you want to disable conditional logic? This will remove the "
302
  "rules for this field or setting."
303
  msgstr ""
304
 
305
+ #: includes/admin/builder/class-builder.php:325
306
+ #: pro/includes/admin/entries/class-entries-list-table.php:222
307
+ #: pro/includes/admin/entries/class-entries-list-table.php:233
308
+ #: pro/includes/admin/entries/class-entries-list-table.php:710
309
  #: pro/includes/admin/entries/class-entries-list.php:614
310
  #: pro/includes/admin/entries/class-entries-list.php:627
311
  msgid "Field"
312
  msgstr ""
313
 
314
+ #: includes/admin/builder/class-builder.php:326
315
  msgid "Field Locked"
316
  msgstr ""
317
 
318
+ #: includes/admin/builder/class-builder.php:327
319
  msgid "This field cannot be deleted or duplicated."
320
  msgstr ""
321
 
322
+ #: includes/admin/builder/class-builder.php:328
323
  msgid "Available Fields"
324
  msgstr ""
325
 
326
+ #: includes/admin/builder/class-builder.php:329
327
  msgid "No fields available"
328
  msgstr ""
329
 
330
+ #: includes/admin/builder/class-builder.php:333
331
  msgid "No email fields"
332
  msgstr ""
333
 
334
+ #: includes/admin/builder/class-builder.php:334
335
  msgid "Are you sure you want to delete this notification?"
336
  msgstr ""
337
 
338
+ #: includes/admin/builder/class-builder.php:335
339
  msgid "Enter a notification name"
340
  msgstr ""
341
 
342
+ #: includes/admin/builder/class-builder.php:336
343
  msgid "Eg: User Confirmation"
344
  msgstr ""
345
 
346
+ #: includes/admin/builder/class-builder.php:337
347
  msgid "You must provide a notification name"
348
  msgstr ""
349
 
350
+ #: includes/admin/builder/class-builder.php:338
351
  msgid ""
352
  "Form must contain one notification. To disable all notifications use the "
353
  "Notifications dropdown setting."
354
  msgstr ""
355
 
356
+ #: includes/admin/builder/class-builder.php:339 lite/wpforms-lite.php:110
357
  #: pro/wpforms-pro.php:435
358
  msgid "Default Notification"
359
  msgstr ""
360
 
361
+ #: includes/admin/builder/class-builder.php:340
362
+ #: includes/admin/builder/class-builder.php:515
363
  msgid "Save"
364
  msgstr ""
365
 
366
+ #: includes/admin/builder/class-builder.php:341
367
  msgid "Saving ..."
368
  msgstr ""
369
 
370
+ #: includes/admin/builder/class-builder.php:342
371
  msgid "Saved!"
372
  msgstr ""
373
 
374
+ #: includes/admin/builder/class-builder.php:343
375
  msgid "Save and Exit"
376
  msgstr ""
377
 
378
+ #: includes/admin/builder/class-builder.php:345
379
+ #: includes/fields/class-base.php:712
380
  msgid "Show Layouts"
381
  msgstr ""
382
 
383
+ #: includes/admin/builder/class-builder.php:346
384
  msgid "Hide Layouts"
385
  msgstr ""
386
 
387
+ #: includes/admin/builder/class-builder.php:347
388
  msgid "Select your layout"
389
  msgstr ""
390
 
391
+ #: includes/admin/builder/class-builder.php:348
392
  msgid "Select your column"
393
  msgstr ""
394
 
395
+ #: includes/admin/builder/class-builder.php:349
396
+ #: includes/admin/builder/class-builder.php:474
397
  msgid "Loading"
398
  msgstr ""
399
 
400
+ #: includes/admin/builder/class-builder.php:355
401
  msgid "Use Template"
402
  msgstr ""
403
 
404
+ #: includes/admin/builder/class-builder.php:356
405
  msgid ""
406
  "Changing templates on an existing form will DELETE existing form fields. Are "
407
  "you sure you want apply the new template?"
408
  msgstr ""
409
 
410
+ #: includes/admin/builder/class-builder.php:357
411
  msgid ""
412
  "You are almost done. To embed this form on your site, please paste the "
413
  "following shortcode inside a post or page."
414
  msgstr ""
415
 
416
+ #: includes/admin/builder/class-builder.php:358
417
  msgid "Or you can follow the instructions in this video."
418
  msgstr ""
419
 
420
+ #: includes/admin/builder/class-builder.php:359
421
+ #: includes/admin/builder/class-builder.php:520
422
  msgid "Exit"
423
  msgstr ""
424
 
425
+ #: includes/admin/builder/class-builder.php:361
426
  msgid "If you exit without saving, your changes will be lost."
427
  msgstr ""
428
 
429
+ #: includes/admin/builder/class-builder.php:362
430
  msgid "Are you sure you want to delete this field?"
431
  msgstr ""
432
 
433
+ #: includes/admin/builder/class-builder.php:363
434
  msgid "Are you sure you want to duplicate this field?"
435
  msgstr ""
436
 
437
+ #: includes/admin/builder/class-builder.php:364
438
  msgid "(copy)"
439
  msgstr ""
440
 
441
+ #: includes/admin/builder/class-builder.php:365
442
  msgid "Please enter a form name."
443
  msgstr ""
444
 
445
+ #: includes/admin/builder/class-builder.php:366
446
  msgid "This item must contain at least one choice."
447
  msgstr ""
448
 
449
+ #: includes/admin/builder/class-builder.php:367
450
+ #: includes/fields/class-base.php:253 includes/fields/class-base.php:762
451
  #: lite/wpforms-lite.php:101 pro/wpforms-pro.php:428
452
  msgid "Off"
453
  msgstr ""
454
 
455
+ #: includes/admin/builder/class-builder.php:368
456
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:100
457
  #: pro/wpforms-pro.php:427
458
  msgid "On"
459
  msgstr ""
460
 
461
+ #: includes/admin/builder/class-builder.php:369
462
  msgid "or"
463
  msgstr ""
464
 
465
+ #: includes/admin/builder/class-builder.php:370
466
  #: includes/admin/class-am-deactivation-survey.php:307
467
  #: includes/templates/class-suggestion.php:61
468
  msgid "Other"
469
  msgstr ""
470
 
471
+ #: includes/admin/builder/class-builder.php:371
472
  #: includes/class-conditional-logic-core.php:372
473
+ #: pro/includes/admin/entries/class-entries-list-table.php:728
474
  msgid "is"
475
  msgstr ""
476
 
477
+ #: includes/admin/builder/class-builder.php:372
478
  #: includes/class-conditional-logic-core.php:373
479
+ #: pro/includes/admin/entries/class-entries-list-table.php:729
480
  msgid "is not"
481
  msgstr ""
482
 
483
+ #: includes/admin/builder/class-builder.php:373
484
  #: includes/class-conditional-logic-core.php:374
485
  msgid "empty"
486
  msgstr ""
487
 
488
+ #: includes/admin/builder/class-builder.php:374
489
  #: includes/class-conditional-logic-core.php:375
490
  msgid "not empty"
491
  msgstr ""
492
 
493
+ #: includes/admin/builder/class-builder.php:375
494
  #: includes/class-conditional-logic-core.php:380
495
+ #: pro/includes/admin/entries/class-entries-list-table.php:726
496
  msgid "contains"
497
  msgstr ""
498
 
499
+ #: includes/admin/builder/class-builder.php:376
500
  #: includes/class-conditional-logic-core.php:381
501
+ #: pro/includes/admin/entries/class-entries-list-table.php:727
502
  msgid "does not contain"
503
  msgstr ""
504
 
505
+ #: includes/admin/builder/class-builder.php:377
506
  #: includes/class-conditional-logic-core.php:382
507
  msgid "starts with"
508
  msgstr ""
509
 
510
+ #: includes/admin/builder/class-builder.php:378
511
  #: includes/class-conditional-logic-core.php:383
512
  msgid "ends with"
513
  msgstr ""
514
 
515
+ #: includes/admin/builder/class-builder.php:379
516
  msgid ""
517
  "Form entries must be stored to accept payments. Please enable saving form "
518
  "entries in the General settings first."
519
  msgstr ""
520
 
521
+ #: includes/admin/builder/class-builder.php:380
522
  #: pro/includes/fields/class-page-break.php:199
523
  #: pro/includes/fields/class-page-break.php:521
524
  msgid "Previous"
525
  msgstr ""
526
 
527
+ #: includes/admin/builder/class-builder.php:381
528
+ msgid ""
529
+ "Your form contains required {provider} settings that have not been "
530
+ "configured. Please double-check and configure these settings to complete the "
531
+ "connection setup."
532
+ msgstr ""
533
+
534
+ #: includes/admin/builder/class-builder.php:382
535
  #: includes/class-conditional-logic-core.php:449
536
  msgid "Create new rule"
537
  msgstr ""
538
 
539
+ #: includes/admin/builder/class-builder.php:383
540
  msgid "Add new group"
541
  msgstr ""
542
 
543
+ #: includes/admin/builder/class-builder.php:384
544
  #: includes/class-conditional-logic-core.php:450
545
  msgid "Delete rule"
546
  msgstr ""
547
 
548
+ #: includes/admin/builder/class-builder.php:386
549
+ #: includes/admin/builder/functions.php:255 includes/fields/class-base.php:658
550
  msgid "Show Smart Tags"
551
  msgstr ""
552
 
553
+ #: includes/admin/builder/class-builder.php:387
554
  msgid "Hide Smart Tags"
555
  msgstr ""
556
 
557
+ #: includes/admin/builder/class-builder.php:388
558
  #: includes/class-conditional-logic-core.php:331
559
  msgid "-- Select Field --"
560
  msgstr ""
561
 
562
+ #: includes/admin/builder/class-builder.php:389
563
  #: includes/class-conditional-logic-core.php:429
564
  msgid "-- Select Choice --"
565
  msgstr ""
566
 
567
+ #: includes/admin/builder/class-builder.php:392
568
+ #: includes/fields/class-base.php:421 includes/fields/class-base.php:536
569
+ msgid "Remove Image"
570
+ msgstr ""
571
+
572
+ #: includes/admin/builder/class-builder.php:425
573
  msgid "Countries"
574
  msgstr ""
575
 
576
+ #: includes/admin/builder/class-builder.php:429
577
  msgid "Countries Postal Code"
578
  msgstr ""
579
 
580
+ #: includes/admin/builder/class-builder.php:433
581
  msgid "States"
582
  msgstr ""
583
 
584
+ #: includes/admin/builder/class-builder.php:437
585
  msgid "States Postal Code"
586
  msgstr ""
587
 
588
+ #: includes/admin/builder/class-builder.php:441
589
  msgid "Months"
590
  msgstr ""
591
 
592
+ #: includes/admin/builder/class-builder.php:445
593
  msgid "Days"
594
  msgstr ""
595
 
596
+ #: includes/admin/builder/class-builder.php:489
597
  #: includes/admin/class-welcome.php:114
598
  msgid "Sullie the WPForms mascot"
599
  msgstr ""
600
 
601
+ #: includes/admin/builder/class-builder.php:497
602
  msgid "Now editing"
603
  msgstr ""
604
 
605
+ #: includes/admin/builder/class-builder.php:508
606
  msgid "Embed Form"
607
  msgstr ""
608
 
609
+ #: includes/admin/builder/class-builder.php:510
610
  msgid "Embed"
611
  msgstr ""
612
 
613
+ #: includes/admin/builder/class-builder.php:513
614
  msgid "Save Form"
615
  msgstr ""
616
 
618
  msgid "Field #"
619
  msgstr ""
620
 
621
+ #: includes/admin/builder/panels/class-analytics.php:21
622
+ msgid "Analytics"
623
+ msgstr ""
624
+
625
+ #: includes/admin/builder/panels/class-analytics.php:55
626
+ #: includes/admin/builder/panels/class-providers.php:56
627
+ msgid ""
628
+ "We need to save your progress to continue to the Marketing panel. Is that OK?"
629
+ msgstr ""
630
+
631
+ #: includes/admin/builder/panels/class-analytics.php:56
632
+ #: includes/admin/builder/panels/class-providers.php:57
633
+ msgid "Are you sure you want to delete this connection?"
634
+ msgstr ""
635
+
636
+ #: includes/admin/builder/panels/class-analytics.php:57
637
+ #: includes/admin/builder/panels/class-providers.php:58
638
+ msgid "Enter a %type% nickname"
639
+ msgstr ""
640
+
641
+ #: includes/admin/builder/panels/class-analytics.php:58
642
+ #: includes/admin/builder/panels/class-providers.php:59
643
+ msgid "Eg: Newsletter Optin"
644
+ msgstr ""
645
+
646
+ #: includes/admin/builder/panels/class-analytics.php:59
647
+ #: includes/admin/builder/panels/class-providers.php:60
648
+ msgid "You must provide a connection nickname"
649
+ msgstr ""
650
+
651
+ #: includes/admin/builder/panels/class-analytics.php:60
652
+ #: includes/admin/builder/panels/class-providers.php:61
653
+ msgid "Field required"
654
+ msgstr ""
655
+
656
+ #: includes/admin/builder/panels/class-analytics.php:77
657
+ #: pro/includes/admin/builder/panels/class-payments.php:41
658
+ msgid "Default"
659
+ msgstr ""
660
+
661
+ #: includes/admin/builder/panels/class-analytics.php:98
662
+ #: includes/admin/builder/panels/class-providers.php:99
663
+ #: pro/includes/admin/builder/panels/class-payments.php:62
664
+ msgid ""
665
+ "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
666
+ "\">setup your form</a> before you can manage these settings."
667
+ msgstr ""
668
+
669
+ #: includes/admin/builder/panels/class-analytics.php:118
670
+ msgid "Install Your Analytic Integration"
671
+ msgstr ""
672
+
673
+ #. translators: %s - plugin admin area Addons page.
674
+ #: includes/admin/builder/panels/class-analytics.php:123
675
+ msgid ""
676
+ "It seems you do not have any analytics plugins or addons activated. We "
677
+ "recommend <a href=\"%s\">MonsterInsights</a>."
678
+ msgstr ""
679
+
680
+ #: includes/admin/builder/panels/class-analytics.php:138
681
+ msgid "Select Your Analytics Integration"
682
+ msgstr ""
683
+
684
+ #: includes/admin/builder/panels/class-analytics.php:139
685
+ msgid "Select your analytics plugin or service from the options on the left."
686
+ msgstr ""
687
+
688
  #: includes/admin/builder/panels/class-fields.php:22
689
  msgid "Fields"
690
  msgstr ""
691
 
692
+ #: includes/admin/builder/panels/class-fields.php:70
693
  msgid "Add Fields"
694
  msgstr ""
695
 
696
+ #: includes/admin/builder/panels/class-fields.php:77
697
  msgid "Field Options"
698
  msgstr ""
699
 
700
+ #: includes/admin/builder/panels/class-fields.php:105
701
  msgid ""
702
  "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
703
  "\">setup your form</a> before you can manage the fields."
704
  msgstr ""
705
 
706
+ #: includes/admin/builder/panels/class-fields.php:138
707
+ #: includes/admin/builder/panels/class-settings.php:118
708
  #: includes/admin/importers/class-contact-form-7.php:106
709
  #: includes/admin/importers/class-ninja-forms.php:123
710
  msgid "Submit"
711
  msgstr ""
712
 
713
+ #: includes/admin/builder/panels/class-fields.php:159
714
  msgid "Standard Fields"
715
  msgstr ""
716
 
717
+ #: includes/admin/builder/panels/class-fields.php:163
718
  msgid "Fancy Fields"
719
  msgstr ""
720
 
721
+ #: includes/admin/builder/panels/class-fields.php:167
722
  msgid "Payment Fields"
723
  msgstr ""
724
 
725
+ #: includes/admin/builder/panels/class-fields.php:217
726
  msgid "You don't have any fields yet."
727
  msgstr ""
728
 
729
+ #: includes/admin/builder/panels/class-fields.php:249
730
  msgid "You don't have any fields yet. Add some!"
731
  msgstr ""
732
 
733
+ #: includes/admin/builder/panels/class-fields.php:271
734
+ #: includes/fields/class-base.php:1133
735
  msgid "Duplicate Field"
736
  msgstr ""
737
 
738
+ #: includes/admin/builder/panels/class-fields.php:273
739
+ #: includes/fields/class-base.php:1134
740
  msgid "Delete Field"
741
  msgstr ""
742
 
743
+ #: includes/admin/builder/panels/class-fields.php:275
744
+ #: includes/fields/class-base.php:1135
745
  msgid "Click to edit. Drag to reorder."
746
  msgstr ""
747
 
749
  msgid "Marketing"
750
  msgstr ""
751
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
  #: includes/admin/builder/panels/class-providers.php:119
753
  msgid "Install Your Marketing Integration"
754
  msgstr ""
777
  msgid "Settings"
778
  msgstr ""
779
 
780
+ #: includes/admin/builder/panels/class-settings.php:42
781
+ #: includes/admin/builder/panels/class-settings.php:82
782
+ #: includes/admin/class-settings.php:165 includes/admin/class-settings.php:287
783
  msgid "General"
784
  msgstr ""
785
 
786
+ #: includes/admin/builder/panels/class-settings.php:43 lite/wpforms-lite.php:63
787
  #: lite/wpforms-lite.php:96 pro/wpforms-pro.php:414 pro/wpforms-pro.php:423
788
  msgid "Notifications"
789
  msgstr ""
790
 
791
+ #: includes/admin/builder/panels/class-settings.php:44
792
+ #: includes/admin/builder/panels/class-settings.php:175
793
  msgid "Confirmation"
794
  msgstr ""
795
 
796
+ #: includes/admin/builder/panels/class-settings.php:63
797
  msgid ""
798
  "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
799
  "\">setup your form</a> before you can manage the settings."
800
  msgstr ""
801
 
802
+ #: includes/admin/builder/panels/class-settings.php:89
803
  #: includes/admin/builder/panels/class-setup.php:56
804
  #: includes/class-smart-tags.php:38
805
  msgid "Form Name"
806
  msgstr ""
807
 
808
+ #: includes/admin/builder/panels/class-settings.php:99
809
  msgid "Form Description"
810
  msgstr ""
811
 
812
+ #: includes/admin/builder/panels/class-settings.php:106
813
  msgid "Form CSS Class"
814
  msgstr ""
815
 
816
+ #: includes/admin/builder/panels/class-settings.php:108
817
  msgid ""
818
  "Enter CSS class names for the form wrapper. Multiple class names should be "
819
  "separated with spaces."
820
  msgstr ""
821
 
822
+ #: includes/admin/builder/panels/class-settings.php:116
823
  msgid "Submit Button Text"
824
  msgstr ""
825
 
826
+ #: includes/admin/builder/panels/class-settings.php:126
827
  msgid "Submit Button Processing Text"
828
  msgstr ""
829
 
830
+ #: includes/admin/builder/panels/class-settings.php:128
831
  msgid ""
832
  "Enter the submit button text you would like the button display while the "
833
  "form submit is processing."
834
  msgstr ""
835
 
836
+ #: includes/admin/builder/panels/class-settings.php:136
837
  msgid "Submit Button CSS Class"
838
  msgstr ""
839
 
840
+ #: includes/admin/builder/panels/class-settings.php:138
841
  msgid ""
842
  "Enter CSS class names for the form submit button. Multiple names should be "
843
  "separated with spaces."
844
  msgstr ""
845
 
846
+ #: includes/admin/builder/panels/class-settings.php:146
847
  msgid "Enable anti-spam honeypot"
848
  msgstr ""
849
 
850
+ #: includes/admin/builder/panels/class-settings.php:157
851
  msgid "Enable Google invisible reCAPTCHA"
852
  msgstr ""
853
 
854
+ #: includes/admin/builder/panels/class-settings.php:157
855
  msgid "Enable Google reCAPTCHA (v2)"
856
  msgstr ""
857
 
858
+ #: includes/admin/builder/panels/class-settings.php:182
859
  msgid "Confirmation Type"
860
  msgstr ""
861
 
862
+ #: includes/admin/builder/panels/class-settings.php:186
863
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:217
864
  #: pro/wpforms-pro.php:572
865
  msgid "Message"
866
  msgstr ""
867
 
868
+ #: includes/admin/builder/panels/class-settings.php:187
869
  msgid "Show Page"
870
  msgstr ""
871
 
872
+ #: includes/admin/builder/panels/class-settings.php:188
873
  msgid "Go to URL (Redirect)"
874
  msgstr ""
875
 
876
+ #: includes/admin/builder/panels/class-settings.php:197
877
  msgid "Confirmation Message"
878
  msgstr ""
879
 
880
+ #: includes/admin/builder/panels/class-settings.php:199
881
  #: includes/admin/importers/class-contact-form-7.php:123
882
  #: includes/admin/importers/class-ninja-forms.php:140
883
  msgid "Thanks for contacting us! We will be in touch with you shortly."
884
  msgstr ""
885
 
886
+ #: includes/admin/builder/panels/class-settings.php:210
887
  msgid "Automatically scroll to the confirmation message"
888
  msgstr ""
889
 
890
+ #: includes/admin/builder/panels/class-settings.php:223
891
  msgid "Confirmation Page"
892
  msgstr ""
893
 
894
+ #: includes/admin/builder/panels/class-settings.php:233
895
  msgid "Confirmation Redirect URL"
896
  msgstr ""
897
 
1031
  "a>?"
1032
  msgstr ""
1033
 
1034
+ #. #-#-#-#-# wpforms.pot (WPForms 1.4.5) #-#-#-#-#
1035
  #. Plugin Name of the plugin/theme
1036
+ #. #-#-#-#-# wpforms.pot (WPForms 1.4.5) #-#-#-#-#
1037
  #. Author of the plugin/theme
1038
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
1039
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
1081
  msgid "Info"
1082
  msgstr ""
1083
 
1084
+ #: includes/admin/class-menu.php:113 lite/wpforms-lite.php:1054
1085
+ #: pro/includes/admin/class-addons.php:91
1086
  msgid "WPForms Addons"
1087
  msgstr ""
1088
 
1136
 
1137
  #: includes/admin/class-settings.php:167 includes/admin/class-settings.php:172
1138
  #: includes/admin/class-settings.php:177 includes/admin/class-settings.php:182
1139
+ #: includes/admin/class-settings.php:192 pro/wpforms-pro.php:158
1140
  msgid "Save Settings"
1141
  msgstr ""
1142
 
1143
+ #: includes/admin/class-settings.php:170 includes/admin/class-settings.php:316
1144
+ #: includes/admin/class-settings.php:411 includes/fields/class-email.php:21
1145
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1146
  #: includes/templates/class-contact.php:41
1147
  #: includes/templates/class-subscribe.php:44
1152
  msgid "Email"
1153
  msgstr ""
1154
 
1155
+ #: includes/admin/class-settings.php:175 includes/admin/class-settings.php:356
1156
  msgid "reCAPTCHA"
1157
  msgstr ""
1158
 
1160
  msgid "Validation"
1161
  msgstr ""
1162
 
1163
+ #: includes/admin/class-settings.php:185 includes/admin/class-settings.php:432
1164
+ #: includes/admin/class-settings.php:439
1165
  msgid "Integrations"
1166
  msgstr ""
1167
 
1168
+ #: includes/admin/class-settings.php:190 includes/admin/class-settings.php:448
1169
+ msgid "Misc"
1170
+ msgstr ""
1171
+
1172
+ #: includes/admin/class-settings.php:232
1173
  msgid ""
1174
  "reCAPTCHA is a free anti-spam service from Google which helps to protect "
1175
  "your website from spam and abuse while letting real people pass through with "
1178
 
1179
  #. translators: %1$s - Google reCAPTCHA Intro URL, %2$s - Google Invisible
1180
  #. reCAPTCHA Intro URL.
1181
+ #: includes/admin/class-settings.php:238
1182
  msgid ""
1183
  "Google's original <a href=\"%1$s\" target=\"_blank\" rel=\"noopener "
1184
  "noreferrer\">v2 reCAPTCHA</a> prompts users to check a box to prove they're "
1187
  "without requiring any input."
1188
  msgstr ""
1189
 
1190
+ #: includes/admin/class-settings.php:251
1191
  msgid ""
1192
  "Sites already using v2 reCAPTCHA will need to create new site keys before "
1193
  "switching to the Invisible reCAPTCHA."
1194
  msgstr ""
1195
 
1196
  #. translators: %s = WPForms.com Setup Captcha URL.
1197
+ #: includes/admin/class-settings.php:257
1198
  msgid ""
1199
  "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our walk "
1200
  "through</a> to learn more and for step-by-step directions."
1201
  msgstr ""
1202
 
1203
+ #: includes/admin/class-settings.php:275
1204
  msgid "License"
1205
  msgstr ""
1206
 
1207
+ #: includes/admin/class-settings.php:275
1208
  msgid "Your license key provides access to updates and addons."
1209
  msgstr ""
1210
 
1211
+ #: includes/admin/class-settings.php:282
1212
  msgid "License Key"
1213
  msgstr ""
1214
 
1215
+ #: includes/admin/class-settings.php:294
1216
  msgid "Include Form Styling"
1217
  msgstr ""
1218
 
1219
+ #: includes/admin/class-settings.php:295
1220
  msgid "Determines which CSS files to load for the site."
1221
  msgstr ""
1222
 
1223
+ #: includes/admin/class-settings.php:300
1224
  msgid "Base and form theme styling"
1225
  msgstr ""
1226
 
1227
+ #: includes/admin/class-settings.php:301
1228
  msgid "Base styling only"
1229
  msgstr ""
1230
 
1231
+ #: includes/admin/class-settings.php:302
1232
  msgid "No styling"
1233
  msgstr ""
1234
 
1235
+ #: includes/admin/class-settings.php:307
1236
  msgid "Load Assets Globally"
1237
  msgstr ""
1238
 
1239
+ #: includes/admin/class-settings.php:308
1240
  msgid ""
1241
  "Check this if you would like to load WPForms assets site-wide. Only check if "
1242
  "your site is having compatibility issues or instructed to by support."
1243
  msgstr ""
1244
 
1245
+ #: includes/admin/class-settings.php:323
 
 
 
 
 
 
 
 
 
1246
  msgid "Template"
1247
  msgstr ""
1248
 
1249
+ #: includes/admin/class-settings.php:324
1250
  msgid ""
1251
  "Determines how email notifications will be formatted. HTML Templates are the "
1252
  "default."
1253
  msgstr ""
1254
 
1255
+ #: includes/admin/class-settings.php:328
1256
  msgid "HTML Template"
1257
  msgstr ""
1258
 
1259
+ #: includes/admin/class-settings.php:329
1260
  msgid "Plain text"
1261
  msgstr ""
1262
 
1263
+ #: includes/admin/class-settings.php:334
1264
  msgid "Header Image"
1265
  msgstr ""
1266
 
1267
+ #: includes/admin/class-settings.php:335
1268
  msgid ""
1269
  "Upload or choose a logo to be displayed at the top of email notifications."
1270
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
1271
  msgstr ""
1272
 
1273
+ #: includes/admin/class-settings.php:340
1274
  msgid "Background Color"
1275
  msgstr ""
1276
 
1277
+ #: includes/admin/class-settings.php:341
1278
  msgid "Customize the background color of the HTML email template."
1279
  msgstr ""
1280
 
1281
+ #: includes/admin/class-settings.php:347
1282
  msgid "Carbon Copy"
1283
  msgstr ""
1284
 
1285
+ #: includes/admin/class-settings.php:348
1286
  msgid ""
1287
  "Check this if you would like to enable the ability to CC: email addresses in "
1288
  "the form notification settings."
1289
  msgstr ""
1290
 
1291
+ #: includes/admin/class-settings.php:363
1292
  #: pro/includes/fields/class-date-time.php:153
1293
  msgid "Type"
1294
  msgstr ""
1295
 
1296
+ #: includes/admin/class-settings.php:367
1297
  msgid "v2 reCAPTCHA"
1298
  msgstr ""
1299
 
1300
+ #: includes/admin/class-settings.php:368
1301
  msgid "Invisible reCAPTCHA"
1302
  msgstr ""
1303
 
1304
+ #: includes/admin/class-settings.php:373
1305
  msgid "Site Key"
1306
  msgstr ""
1307
 
1308
+ #: includes/admin/class-settings.php:378
1309
  msgid "Secret Key"
1310
  msgstr ""
1311
 
1312
+ #: includes/admin/class-settings.php:383
1313
+ msgid "No-Conflict Mode"
1314
+ msgstr ""
1315
+
1316
+ #: includes/admin/class-settings.php:384
1317
+ msgid ""
1318
+ "When checked, other reCAPTCHA occurrences are forcefully removed, to prevent "
1319
+ "conflicts. Only check if your site is having compatibility issues or "
1320
+ "instructed to by support."
1321
+ msgstr ""
1322
+
1323
+ #: includes/admin/class-settings.php:392
1324
  msgid "Validation Messages"
1325
  msgstr ""
1326
 
1327
+ #: includes/admin/class-settings.php:392
1328
  msgid ""
1329
  "These messages are displayed to the user as they fill out a form in real-"
1330
  "time."
1331
  msgstr ""
1332
 
1333
+ #: includes/admin/class-settings.php:399 includes/fields/class-base.php:337
1334
  msgid "Required"
1335
  msgstr ""
1336
 
1337
+ #: includes/admin/class-settings.php:401 includes/class-frontend.php:1016
1338
+ #: includes/functions.php:1700
1339
  msgid "This field is required."
1340
  msgstr ""
1341
 
1342
+ #: includes/admin/class-settings.php:405
1343
  msgid "Website URL"
1344
  msgstr ""
1345
 
1346
+ #: includes/admin/class-settings.php:407 includes/class-frontend.php:1017
1347
  #: pro/includes/fields/class-url.php:158
1348
  msgid "Please enter a valid URL."
1349
  msgstr ""
1350
 
1351
+ #: includes/admin/class-settings.php:413 includes/class-frontend.php:1018
1352
  msgid "Please enter a valid email address."
1353
  msgstr ""
1354
 
1355
+ #: includes/admin/class-settings.php:417
1356
  msgid "Number"
1357
  msgstr ""
1358
 
1359
+ #: includes/admin/class-settings.php:419 includes/class-frontend.php:1019
1360
  #: includes/fields/class-number.php:157
1361
  msgid "Please enter a valid number."
1362
  msgstr ""
1363
 
1364
+ #: includes/admin/class-settings.php:423
1365
  msgid "Confirm Value"
1366
  msgstr ""
1367
 
1368
+ #: includes/admin/class-settings.php:425 includes/class-frontend.php:1020
1369
  #: pro/includes/fields/class-password.php:404
1370
  msgid "Field values do not match."
1371
  msgstr ""
1372
 
1373
+ #: includes/admin/class-settings.php:432 includes/admin/class-settings.php:439
1374
  msgid ""
1375
  "Manage integrations with popular providers such as Constant Contact, "
1376
  "MailChimp, Zapier, and more."
1377
  msgstr ""
1378
 
1379
+ #: includes/admin/class-settings.php:455
1380
+ msgid "Hide Announcements"
1381
+ msgstr ""
1382
+
1383
+ #: includes/admin/class-settings.php:456
1384
+ msgid ""
1385
+ "Check this if you would like to hide plugin announcements and update details."
1386
+ msgstr ""
1387
+
1388
+ #: includes/admin/class-settings.php:461
1389
+ msgid "Uninstall WPForms"
1390
+ msgstr ""
1391
+
1392
+ #: includes/admin/class-settings.php:462
1393
+ msgid ""
1394
+ "Check this if you would like to remove ALL WPForms data upon plugin "
1395
+ "deletion. All forms, entries, and uploaded files will be unrecoverable."
1396
+ msgstr ""
1397
+
1398
+ #: includes/admin/class-settings.php:575
1399
  msgid "Want to better protect your contact forms from spam?"
1400
  msgstr ""
1401
 
1402
+ #: includes/admin/class-settings.php:577
1403
  msgid ""
1404
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1405
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
1407
  "your forms."
1408
  msgstr ""
1409
 
1410
+ #: includes/admin/class-settings.php:580
1411
  msgid "Click here to Upgrade"
1412
  msgstr ""
1413
 
1473
  msgid "Select previous contact form plugin..."
1474
  msgstr ""
1475
 
1476
+ #: includes/admin/class-tools.php:276 pro/includes/admin/class-addons.php:244
1477
  msgid "Not Installed"
1478
  msgstr ""
1479
 
1581
  msgstr ""
1582
 
1583
  #: includes/admin/class-tools.php:498 includes/admin/class-welcome.php:258
1584
+ #: lite/wpforms-lite.php:1062 lite/wpforms-lite.php:1088
1585
+ #: pro/includes/admin/class-addons.php:292
1586
  msgid "Upgrade Now"
1587
  msgstr ""
1588
 
1640
  msgid "System Information"
1641
  msgstr ""
1642
 
1643
+ #: includes/admin/class-tools.php:612
1644
+ msgid "Test SSL Connections"
1645
  msgstr ""
1646
 
1647
+ #: includes/admin/class-tools.php:613
1648
+ msgid ""
1649
+ "Click the button below to verify your web server can perform SSL connections "
1650
+ "successfully."
1651
  msgstr ""
1652
 
1653
+ #: includes/admin/class-tools.php:614
1654
+ msgid "Test Connection"
1655
+ msgstr ""
1656
+
1657
+ #: includes/admin/class-tools.php:681
1658
+ msgid "Please upload a valid .json form export file."
1659
+ msgstr ""
1660
+
1661
+ #: includes/admin/class-tools.php:682
1662
+ #: pro/includes/admin/entries/class-entries-export.php:342
1663
+ msgid "Error"
1664
+ msgstr ""
1665
+
1666
+ #: includes/admin/class-tools.php:808 includes/admin/class-tools.php:812
1667
+ #: pro/includes/admin/entries/class-entries-single.php:740
1668
  #: pro/includes/admin/entries/class-entries-single.php:1116
1669
  msgid "M j, Y @ g:ia"
1670
  msgstr ""
1973
 
1974
  #: includes/admin/overview/class-overview-table.php:214
1975
  #: includes/admin/overview/class-overview-table.php:231
1976
+ #: pro/includes/admin/entries/class-entries-list-table.php:426
1977
+ #: pro/includes/admin/entries/class-entries-list-table.php:500
1978
  msgid "Delete"
1979
  msgstr ""
1980
 
2042
  "\"wpforms-setting-license-key-refresh\">click here to force a refresh</a>."
2043
  msgstr ""
2044
 
2045
+ #: includes/admin/settings-api.php:306 includes/fields/class-base.php:429
2046
+ #: includes/fields/class-base.php:544
2047
  msgid "Upload Image"
2048
  msgstr ""
2049
 
2076
  msgid "Add rule group"
2077
  msgstr ""
2078
 
2079
+ #: includes/class-frontend.php:1021
2080
  #: pro/includes/fields/class-file-upload.php:383
2081
  #: pro/includes/fields/class-file-upload.php:399
2082
  #: pro/includes/fields/class-file-upload.php:417 pro/wpforms-pro.php:191
2083
  msgid "File type is not allowed."
2084
  msgstr ""
2085
 
2086
+ #: includes/class-frontend.php:1022 pro/wpforms-pro.php:197
2087
  msgid "File exceeds max size allowed."
2088
  msgstr ""
2089
 
2090
+ #: includes/class-frontend.php:1023 pro/wpforms-pro.php:203
2091
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
2092
  msgstr ""
2093
 
2094
+ #: includes/class-frontend.php:1024 pro/wpforms-pro.php:209
2095
  msgid "Please enter time in 24-hour format (eg 22:45)."
2096
  msgstr ""
2097
 
2098
+ #: includes/class-frontend.php:1025
2099
  #: pro/includes/fields/class-payment-total.php:208 pro/wpforms-pro.php:215
2100
  msgid "Payment is required."
2101
  msgstr ""
2102
 
2103
+ #: includes/class-frontend.php:1026 pro/wpforms-pro.php:221
2104
  msgid "Please enter a valid credit card number."
2105
  msgstr ""
2106
 
2107
  #. translators: %s - URL to a non-amp version of a page with the form.
2108
+ #: includes/class-frontend.php:1132
2109
  msgid "<a href=\"%s\">Go to the full page</a> to view and submit the form."
2110
  msgstr ""
2111
 
2213
  msgid "%s Preview"
2214
  msgstr ""
2215
 
2216
+ #: includes/class-process.php:101
2217
  msgid "Invalid form."
2218
  msgstr ""
2219
 
2220
+ #: includes/class-process.php:138
2221
  msgid "Incorrect reCAPTCHA, please try again."
2222
  msgstr ""
2223
 
2224
+ #: includes/class-process.php:141
2225
  msgid "reCAPTCHA is required."
2226
  msgstr ""
2227
 
2228
+ #: includes/class-process.php:153 includes/class-process.php:203
2229
  msgid "Form has not been submitted, please see the errors below."
2230
  msgstr ""
2231
 
2232
+ #: includes/class-process.php:165
2233
  msgid "WPForms honeypot field triggered."
2234
  msgstr ""
2235
 
2236
  #. translators: %s - form name.
2237
+ #: includes/class-process.php:392 lite/wpforms-lite.php:54
2238
  #: pro/wpforms-pro.php:406
2239
  msgid "New %s Entry"
2240
  msgstr ""
2265
 
2266
  #: includes/class-smart-tags.php:42
2267
  #: pro/includes/admin/entries/class-entries-export.php:203
2268
+ #: pro/includes/admin/entries/class-entries-list-table.php:165
2269
  #: pro/includes/fields/class-date-time.php:72
2270
  #: pro/includes/fields/class-date-time.php:129
2271
  #: pro/includes/fields/class-date-time.php:268
2287
  msgstr ""
2288
 
2289
  #: includes/class-smart-tags.php:46
2290
+ msgid "User Display Name"
2291
  msgstr ""
2292
 
2293
  #: includes/class-smart-tags.php:47
2294
+ msgid "User Full Name"
2295
  msgstr ""
2296
 
2297
  #: includes/class-smart-tags.php:48
2298
+ msgid "User Email"
2299
  msgstr ""
2300
 
2301
  #: includes/class-smart-tags.php:49
2302
+ msgid "Author ID"
2303
  msgstr ""
2304
 
2305
  #: includes/class-smart-tags.php:50
2306
+ msgid "Author Name"
2307
  msgstr ""
2308
 
2309
  #: includes/class-smart-tags.php:51
2310
+ msgid "Author Email"
2311
  msgstr ""
2312
 
2313
  #: includes/class-smart-tags.php:52
2314
+ msgid "Referrer URL"
2315
  msgstr ""
2316
 
2317
  #: includes/class-smart-tags.php:53
2318
+ msgid "Login URL"
2319
  msgstr ""
2320
 
2321
  #: includes/class-smart-tags.php:54
2322
+ msgid "Logout URL"
2323
  msgstr ""
2324
 
2325
  #: includes/class-smart-tags.php:55
2326
+ msgid "Register URL"
2327
+ msgstr ""
2328
+
2329
+ #: includes/class-smart-tags.php:56
2330
  msgid "Lost Password URL"
2331
  msgstr ""
2332
 
2377
  msgstr ""
2378
 
2379
  #: includes/emails/class-emails.php:474 includes/emails/class-emails.php:506
2380
+ #: includes/fields/class-base.php:972 includes/fields/class-select.php:200
 
2381
  msgid "(empty)"
2382
  msgstr ""
2383
 
2422
  msgid "Code"
2423
  msgstr ""
2424
 
2425
+ #: includes/fields/class-base.php:381
2426
+ msgid "Choices"
2427
  msgstr ""
2428
 
2429
+ #: includes/fields/class-base.php:382 includes/fields/class-base.php:498
2430
+ msgid "Add choices for the form field."
2431
  msgstr ""
2432
 
2433
  #. translators: %1$s - source name; %2$s - type name.
2434
+ #: includes/fields/class-base.php:460
2435
+ msgid "Choices are dynamically populated from the %1$s %2$s."
2436
  msgstr ""
2437
 
2438
+ #: includes/fields/class-base.php:497
2439
  msgid "Items"
2440
  msgstr ""
2441
 
2442
+ #: includes/fields/class-base.php:575
2443
+ msgid ""
2444
+ "Images are not cropped or resized. For best result, they should be the same "
2445
+ "size and 250x250 pixels or smaller."
2446
+ msgstr ""
2447
+
2448
+ #: includes/fields/class-base.php:585
2449
+ msgid "Use image choices"
2450
+ msgstr ""
2451
+
2452
+ #: includes/fields/class-base.php:586
2453
+ msgid "Check this option to enable using images with the choices."
2454
+ msgstr ""
2455
+
2456
+ #: includes/fields/class-base.php:614
2457
+ msgid "Image Choice Style"
2458
+ msgstr ""
2459
+
2460
+ #: includes/fields/class-base.php:615
2461
+ msgid "Select the style for the image choices."
2462
+ msgstr ""
2463
+
2464
+ #: includes/fields/class-base.php:628
2465
+ msgid "Modern"
2466
+ msgstr ""
2467
+
2468
+ #: includes/fields/class-base.php:629
2469
+ msgid "Classic"
2470
+ msgstr ""
2471
+
2472
+ #: includes/fields/class-base.php:630
2473
+ #: pro/includes/fields/class-page-break.php:287
2474
+ msgid "None"
2475
+ msgstr ""
2476
+
2477
+ #: includes/fields/class-base.php:657
2478
  msgid "Enter text for the default form field value."
2479
  msgstr ""
2480
 
2481
+ #: includes/fields/class-base.php:659 includes/fields/class-name.php:283
2482
  #: includes/fields/class-name.php:298 includes/fields/class-name.php:313
2483
+ #: includes/fields/class-name.php:328 pro/includes/fields/class-address.php:336
2484
+ #: pro/includes/fields/class-address.php:355
2485
+ #: pro/includes/fields/class-address.php:376
2486
+ #: pro/includes/fields/class-address.php:394
2487
+ #: pro/includes/fields/class-address.php:414
2488
+ #: pro/includes/fields/class-address.php:438
2489
  msgid "Default Value"
2490
  msgstr ""
2491
 
2492
+ #: includes/fields/class-base.php:669
2493
  msgid "Select the default form field size."
2494
  msgstr ""
2495
 
2496
+ #: includes/fields/class-base.php:671 pro/includes/fields/class-rating.php:256
2497
  msgid "Small"
2498
  msgstr ""
2499
 
2500
+ #: includes/fields/class-base.php:672 pro/includes/fields/class-rating.php:257
2501
  msgid "Medium"
2502
  msgstr ""
2503
 
2504
+ #: includes/fields/class-base.php:673 pro/includes/fields/class-rating.php:258
2505
  msgid "Large"
2506
  msgstr ""
2507
 
2508
+ #: includes/fields/class-base.php:675
2509
  msgid "Field Size"
2510
  msgstr ""
2511
 
2512
+ #: includes/fields/class-base.php:688
2513
  msgid "Advanced Options"
2514
  msgstr ""
2515
 
2516
+ #: includes/fields/class-base.php:699
2517
  msgid "Enter text for the form field placeholder."
2518
  msgstr ""
2519
 
2520
+ #: includes/fields/class-base.php:700
2521
  msgid "Placeholder Text"
2522
  msgstr ""
2523
 
2524
+ #: includes/fields/class-base.php:710
2525
  msgid ""
2526
  "Enter CSS class names for the form field container. Class names should be "
2527
  "separated with spaces."
2528
  msgstr ""
2529
 
2530
+ #: includes/fields/class-base.php:715
2531
  msgid "CSS Classes"
2532
  msgstr ""
2533
 
2534
+ #: includes/fields/class-base.php:724
2535
  msgid "Check this option to hide the form field label."
2536
  msgstr ""
2537
 
2538
+ #: includes/fields/class-base.php:726
2539
  msgid "Hide Label"
2540
  msgstr ""
2541
 
2542
+ #: includes/fields/class-base.php:734
2543
  msgid "Check this option to hide the form field sub-label."
2544
  msgstr ""
2545
 
2546
+ #: includes/fields/class-base.php:736
2547
  msgid "Hide Sub-Labels"
2548
  msgstr ""
2549
 
2550
+ #: includes/fields/class-base.php:744
2551
  msgid "Select the layout for displaying field choices."
2552
  msgstr ""
2553
 
2554
+ #: includes/fields/class-base.php:746
2555
  msgid "One Column"
2556
  msgstr ""
2557
 
2558
+ #: includes/fields/class-base.php:747
2559
  msgid "Two Columns"
2560
  msgstr ""
2561
 
2562
+ #: includes/fields/class-base.php:748
2563
  msgid "Three Columns"
2564
  msgstr ""
2565
 
2566
+ #: includes/fields/class-base.php:749
2567
+ msgid "Inline"
2568
+ msgstr ""
2569
+
2570
+ #: includes/fields/class-base.php:751
2571
  msgid "Choice Layout"
2572
  msgstr ""
2573
 
2574
+ #: includes/fields/class-base.php:760
2575
  msgid "Select auto-populate method to use."
2576
  msgstr ""
2577
 
2578
+ #: includes/fields/class-base.php:763 includes/fields/class-base.php:784
2579
  msgid "Post Type"
2580
  msgstr ""
2581
 
2582
+ #: includes/fields/class-base.php:764 includes/fields/class-base.php:795
2583
  msgid "Taxonomy"
2584
  msgstr ""
2585
 
2586
+ #: includes/fields/class-base.php:766
2587
  msgid "Dynamic Choices"
2588
  msgstr ""
2589
 
2590
  #. translators: %s - dynamic source type name.
2591
+ #: includes/fields/class-base.php:806
2592
  msgid "Select %s to use for auto-populating field choices."
2593
  msgstr ""
2594
 
2595
  #. translators: %s - dynamic source type name.
2596
+ #: includes/fields/class-base.php:808
2597
  msgid "Dynamic %s Source"
2598
  msgstr ""
2599
 
2600
+ #. translators: %d - total amount of choices.
2601
+ #: includes/fields/class-base.php:1063
2602
+ msgid ""
2603
+ "Showing the first 20 choices.<br> All %d choices will be displayed when "
2604
+ "viewing the form."
2605
+ msgstr ""
2606
+
2607
+ #: includes/fields/class-base.php:1099
2608
  msgid "No form ID found"
2609
  msgstr ""
2610
 
2611
+ #: includes/fields/class-base.php:1104
2612
  msgid "No field type found"
2613
  msgstr ""
2614
 
2621
  msgid "First Choice"
2622
  msgstr ""
2623
 
2624
+ #: includes/fields/class-checkbox.php:33 includes/fields/class-radio.php:33
2625
  #: includes/fields/class-select.php:32
2626
  msgid "Second Choice"
2627
  msgstr ""
2628
 
2629
+ #: includes/fields/class-checkbox.php:39 includes/fields/class-radio.php:39
2630
  #: includes/fields/class-select.php:37
2631
  msgid "Third Choice"
2632
  msgstr ""
2633
 
2634
+ #: includes/fields/class-checkbox.php:258 includes/fields/class-radio.php:241
2635
  msgid "Randomize Choices"
2636
  msgstr ""
2637
 
2638
+ #: includes/fields/class-checkbox.php:259 includes/fields/class-radio.php:242
2639
  msgid "Check this option to randomize the order of the choices."
2640
  msgstr ""
2641
 
2642
+ #: includes/fields/class-checkbox.php:277 includes/fields/class-radio.php:260
2643
  #: includes/fields/class-select.php:97
2644
  msgid "Show Values"
2645
  msgstr ""
2646
 
2647
+ #: includes/fields/class-checkbox.php:278 includes/fields/class-radio.php:261
2648
  #: includes/fields/class-select.php:98
2649
  msgid "Check this to manually set form field values."
2650
  msgstr ""
2651
 
2652
+ #: includes/fields/class-checkbox.php:315
2653
+ msgid "Enable Disclaimer / Terms of Service Display"
2654
+ msgstr ""
2655
+
2656
+ #: includes/fields/class-checkbox.php:316
2657
  msgid ""
2658
+ "Check this option apply adjust the field styling to support Disclaimers and "
2659
+ "Terms of Serice type agreements."
2660
  msgstr ""
2661
 
2662
  #: includes/fields/class-email.php:91 includes/fields/class-email.php:311
2723
 
2724
  #: includes/fields/class-name.php:279 includes/fields/class-name.php:294
2725
  #: includes/fields/class-name.php:309 includes/fields/class-name.php:324
2726
+ #: pro/includes/fields/class-address.php:332
2727
+ #: pro/includes/fields/class-address.php:351
2728
+ #: pro/includes/fields/class-address.php:372
2729
+ #: pro/includes/fields/class-address.php:390
2730
+ #: pro/includes/fields/class-address.php:410
2731
+ #: pro/includes/fields/class-address.php:434
2732
  #: pro/includes/fields/class-date-time.php:134
2733
  #: pro/includes/fields/class-date-time.php:178
2734
  msgid "Placeholder"
2774
  msgid "Single Line Text"
2775
  msgstr ""
2776
 
2777
+ #: includes/fields/class-text.php:130
2778
+ msgid "Input Mask"
2779
+ msgstr ""
2780
+
2781
+ #: includes/fields/class-text.php:131
2782
+ msgid "Enter your custom input mask."
2783
+ msgstr ""
2784
+
2785
+ #: includes/fields/class-text.php:132
2786
+ msgid "See Examples & Docs"
2787
+ msgstr ""
2788
+
2789
  #: includes/fields/class-textarea.php:21
2790
  msgid "Paragraph Text"
2791
  msgstr ""
2792
 
2793
+ #: includes/functions.php:684
2794
  msgid "Alabama"
2795
  msgstr ""
2796
 
2797
+ #: includes/functions.php:685
2798
  msgid "Alaska"
2799
  msgstr ""
2800
 
2801
+ #: includes/functions.php:686
2802
  msgid "Arizona"
2803
  msgstr ""
2804
 
2805
+ #: includes/functions.php:687
2806
  msgid "Arkansas"
2807
  msgstr ""
2808
 
2809
+ #: includes/functions.php:688
2810
  msgid "California"
2811
  msgstr ""
2812
 
2813
+ #: includes/functions.php:689
2814
  msgid "Colorado"
2815
  msgstr ""
2816
 
2817
+ #: includes/functions.php:690
2818
  msgid "Connecticut"
2819
  msgstr ""
2820
 
2821
+ #: includes/functions.php:691
2822
  msgid "Delaware"
2823
  msgstr ""
2824
 
2825
+ #: includes/functions.php:692
2826
  msgid "District of Columbia"
2827
  msgstr ""
2828
 
2829
+ #: includes/functions.php:693
2830
  msgid "Florida"
2831
  msgstr ""
2832
 
2833
+ #: includes/functions.php:694
2834
  msgctxt "US State"
2835
  msgid "Georgia"
2836
  msgstr ""
2837
 
2838
+ #: includes/functions.php:695
2839
  msgid "Hawaii"
2840
  msgstr ""
2841
 
2842
+ #: includes/functions.php:696
2843
  msgid "Idaho"
2844
  msgstr ""
2845
 
2846
+ #: includes/functions.php:697
2847
  msgid "Illinois"
2848
  msgstr ""
2849
 
2850
+ #: includes/functions.php:698
2851
  msgid "Indiana"
2852
  msgstr ""
2853
 
2854
+ #: includes/functions.php:699
2855
  msgid "Iowa"
2856
  msgstr ""
2857
 
2858
+ #: includes/functions.php:700
2859
  msgid "Kansas"
2860
  msgstr ""
2861
 
2862
+ #: includes/functions.php:701
2863
  msgid "Kentucky"
2864
  msgstr ""
2865
 
2866
+ #: includes/functions.php:702
2867
  msgid "Louisiana"
2868
  msgstr ""
2869
 
2870
+ #: includes/functions.php:703
2871
  msgid "Maine"
2872
  msgstr ""
2873
 
2874
+ #: includes/functions.php:704
2875
  msgid "Maryland"
2876
  msgstr ""
2877
 
2878
+ #: includes/functions.php:705
2879
  msgid "Massachusetts"
2880
  msgstr ""
2881
 
2882
+ #: includes/functions.php:706
2883
  msgid "Michigan"
2884
  msgstr ""
2885
 
2886
+ #: includes/functions.php:707
2887
  msgid "Minnesota"
2888
  msgstr ""
2889
 
2890
+ #: includes/functions.php:708
2891
  msgid "Mississippi"
2892
  msgstr ""
2893
 
2894
+ #: includes/functions.php:709
2895
  msgid "Missouri"
2896
  msgstr ""
2897
 
2898
+ #: includes/functions.php:710
2899
  msgid "Montana"
2900
  msgstr ""
2901
 
2902
+ #: includes/functions.php:711
2903
  msgid "Nebraska"
2904
  msgstr ""
2905
 
2906
+ #: includes/functions.php:712
2907
  msgid "Nevada"
2908
  msgstr ""
2909
 
2910
+ #: includes/functions.php:713
2911
  msgid "New Hampshire"
2912
  msgstr ""
2913
 
2914
+ #: includes/functions.php:714
2915
  msgid "New Jersey"
2916
  msgstr ""
2917
 
2918
+ #: includes/functions.php:715
2919
  msgid "New Mexico"
2920
  msgstr ""
2921
 
2922
+ #: includes/functions.php:716
2923
  msgid "New York"
2924
  msgstr ""
2925
 
2926
+ #: includes/functions.php:717
2927
  msgid "North Carolina"
2928
  msgstr ""
2929
 
2930
+ #: includes/functions.php:718
2931
  msgid "North Dakota"
2932
  msgstr ""
2933
 
2934
+ #: includes/functions.php:719
2935
  msgid "Ohio"
2936
  msgstr ""
2937
 
2938
+ #: includes/functions.php:720
2939
  msgid "Oklahoma"
2940
  msgstr ""
2941
 
2942
+ #: includes/functions.php:721
2943
  msgid "Oregon"
2944
  msgstr ""
2945
 
2946
+ #: includes/functions.php:722
2947
  msgid "Pennsylvania"
2948
  msgstr ""
2949
 
2950
+ #: includes/functions.php:723
2951
  msgid "Rhode Island"
2952
  msgstr ""
2953
 
2954
+ #: includes/functions.php:724
2955
  msgid "South Carolina"
2956
  msgstr ""
2957
 
2958
+ #: includes/functions.php:725
2959
  msgid "South Dakota"
2960
  msgstr ""
2961
 
2962
+ #: includes/functions.php:726
2963
  msgid "Tennessee"
2964
  msgstr ""
2965
 
2966
+ #: includes/functions.php:727
2967
  msgid "Texas"
2968
  msgstr ""
2969
 
2970
+ #: includes/functions.php:728
2971
  msgid "Utah"
2972
  msgstr ""
2973
 
2974
+ #: includes/functions.php:729
2975
  msgid "Vermont"
2976
  msgstr ""
2977
 
2978
+ #: includes/functions.php:730
2979
  msgid "Virginia"
2980
  msgstr ""
2981
 
2982
+ #: includes/functions.php:731
2983
  msgid "Washington"
2984
  msgstr ""
2985
 
2986
+ #: includes/functions.php:732
2987
  msgid "West Virginia"
2988
  msgstr ""
2989
 
2990
+ #: includes/functions.php:733
2991
  msgid "Wisconsin"
2992
  msgstr ""
2993
 
2994
+ #: includes/functions.php:734
2995
  msgid "Wyoming"
2996
  msgstr ""
2997
 
2998
+ #: includes/functions.php:749
2999
  msgid "Afghanistan"
3000
  msgstr ""
3001
 
3002
+ #: includes/functions.php:750
3003
  msgid "Åland Islands"
3004
  msgstr ""
3005
 
3006
+ #: includes/functions.php:751
3007
  msgid "Albania"
3008
  msgstr ""
3009
 
3010
+ #: includes/functions.php:752
3011
  msgid "Algeria"
3012
  msgstr ""
3013
 
3014
+ #: includes/functions.php:753
3015
  msgid "American Samoa"
3016
  msgstr ""
3017
 
3018
+ #: includes/functions.php:754
3019
  msgid "Andorra"
3020
  msgstr ""
3021
 
3022
+ #: includes/functions.php:755
3023
  msgid "Angola"
3024
  msgstr ""
3025
 
3026
+ #: includes/functions.php:756
3027
  msgid "Anguilla"
3028
  msgstr ""
3029
 
3030
+ #: includes/functions.php:757
3031
  msgid "Antarctica"
3032
  msgstr ""
3033
 
3034
+ #: includes/functions.php:758
3035
  msgid "Antigua and Barbuda"
3036
  msgstr ""
3037
 
3038
+ #: includes/functions.php:759
3039
  msgid "Argentina"
3040
  msgstr ""
3041
 
3042
+ #: includes/functions.php:760
3043
  msgid "Armenia"
3044
  msgstr ""
3045
 
3046
+ #: includes/functions.php:761
3047
  msgid "Aruba"
3048
  msgstr ""
3049
 
3050
+ #: includes/functions.php:762
3051
  msgid "Australia"
3052
  msgstr ""
3053
 
3054
+ #: includes/functions.php:763
3055
  msgid "Austria"
3056
  msgstr ""
3057
 
3058
+ #: includes/functions.php:764
3059
  msgid "Azerbaijan"
3060
  msgstr ""
3061
 
3062
+ #: includes/functions.php:765
3063
  msgid "Bahamas"
3064
  msgstr ""
3065
 
3066
+ #: includes/functions.php:766
3067
  msgid "Bahrain"
3068
  msgstr ""
3069
 
3070
+ #: includes/functions.php:767
3071
  msgid "Bangladesh"
3072
  msgstr ""
3073
 
3074
+ #: includes/functions.php:768
3075
  msgid "Barbados"
3076
  msgstr ""
3077
 
3078
+ #: includes/functions.php:769
3079
  msgid "Belarus"
3080
  msgstr ""
3081
 
3082
+ #: includes/functions.php:770
3083
  msgid "Belgium"
3084
  msgstr ""
3085
 
3086
+ #: includes/functions.php:771
3087
  msgid "Belize"
3088
  msgstr ""
3089
 
3090
+ #: includes/functions.php:772
3091
  msgid "Benin"
3092
  msgstr ""
3093
 
3094
+ #: includes/functions.php:773
3095
  msgid "Bermuda"
3096
  msgstr ""
3097
 
3098
+ #: includes/functions.php:774
3099
  msgid "Bhutan"
3100
  msgstr ""
3101
 
3102
+ #: includes/functions.php:775
3103
  msgid "Bolivia (Plurinational State of)"
3104
  msgstr ""
3105
 
3106
+ #: includes/functions.php:776
3107
  msgid "Bosnia and Herzegovina"
3108
  msgstr ""
3109
 
3110
+ #: includes/functions.php:777
3111
  msgid "Botswana"
3112
  msgstr ""
3113
 
3114
+ #: includes/functions.php:778
3115
  msgid "Bouvet Island"
3116
  msgstr ""
3117
 
3118
+ #: includes/functions.php:779
3119
  msgid "Brazil"
3120
  msgstr ""
3121
 
3122
+ #: includes/functions.php:780
3123
  msgid "British Indian Ocean Territory"
3124
  msgstr ""
3125
 
3126
+ #: includes/functions.php:781
3127
  msgid "Brunei Darussalam"
3128
  msgstr ""
3129
 
3130
+ #: includes/functions.php:782
3131
  msgid "Bulgaria"
3132
  msgstr ""
3133
 
3134
+ #: includes/functions.php:783
3135
  msgid "Burkina Faso"
3136
  msgstr ""
3137
 
3138
+ #: includes/functions.php:784
3139
  msgid "Burundi"
3140
  msgstr ""
3141
 
3142
+ #: includes/functions.php:785
3143
  msgid "Cabo Verde"
3144
  msgstr ""
3145
 
3146
+ #: includes/functions.php:786
3147
  msgid "Cambodia"
3148
  msgstr ""
3149
 
3150
+ #: includes/functions.php:787
3151
  msgid "Cameroon"
3152
  msgstr ""
3153
 
3154
+ #: includes/functions.php:788
3155
  msgid "Canada"
3156
  msgstr ""
3157
 
3158
+ #: includes/functions.php:789
3159
  msgid "Cayman Islands"
3160
  msgstr ""
3161
 
3162
+ #: includes/functions.php:790
3163
  msgid "Central African Republic"
3164
  msgstr ""
3165
 
3166
+ #: includes/functions.php:791
3167
  msgid "Chad"
3168
  msgstr ""
3169
 
3170
+ #: includes/functions.php:792
3171
  msgid "Chile"
3172
  msgstr ""
3173
 
3174
+ #: includes/functions.php:793
3175
  msgid "China"
3176
  msgstr ""
3177
 
3178
+ #: includes/functions.php:794
3179
  msgid "Christmas Island"
3180
  msgstr ""
3181
 
3182
+ #: includes/functions.php:795
3183
  msgid "Cocos (Keeling) Islands"
3184
  msgstr ""
3185
 
3186
+ #: includes/functions.php:796
3187
  msgid "Colombia"
3188
  msgstr ""
3189
 
3190
+ #: includes/functions.php:797
3191
  msgid "Comoros"
3192
  msgstr ""
3193
 
3194
+ #: includes/functions.php:798
3195
  msgid "Congo"
3196
  msgstr ""
3197
 
3198
+ #: includes/functions.php:799
3199
  msgid "Congo (Democratic Republic of the)"
3200
  msgstr ""
3201
 
3202
+ #: includes/functions.php:800
3203
  msgid "Cook Islands"
3204
  msgstr ""
3205
 
3206
+ #: includes/functions.php:801
3207
  msgid "Costa Rica"
3208
  msgstr ""
3209
 
3210
+ #: includes/functions.php:802
3211
  msgid "Côte d'Ivoire"
3212
  msgstr ""
3213
 
3214
+ #: includes/functions.php:803
3215
  msgid "Croatia"
3216
  msgstr ""
3217
 
3218
+ #: includes/functions.php:804
3219
  msgid "Cuba"
3220
  msgstr ""
3221
 
3222
+ #: includes/functions.php:805
3223
  msgid "Curaçao"
3224
  msgstr ""
3225
 
3226
+ #: includes/functions.php:806
3227
  msgid "Cyprus"
3228
  msgstr ""
3229
 
3230
+ #: includes/functions.php:807
3231
  msgid "Czech Republic"
3232
  msgstr ""
3233
 
3234
+ #: includes/functions.php:808
3235
  msgid "Denmark"
3236
  msgstr ""
3237
 
3238
+ #: includes/functions.php:809
3239
  msgid "Djibouti"
3240
  msgstr ""
3241
 
3242
+ #: includes/functions.php:810
3243
  msgid "Dominica"
3244
  msgstr ""
3245
 
3246
+ #: includes/functions.php:811
3247
  msgid "Dominican Republic"
3248
  msgstr ""
3249
 
3250
+ #: includes/functions.php:812
3251
  msgid "Ecuador"
3252
  msgstr ""
3253
 
3254
+ #: includes/functions.php:813
3255
  msgid "Egypt"
3256
  msgstr ""
3257
 
3258
+ #: includes/functions.php:814
3259
  msgid "El Salvador"
3260
  msgstr ""
3261
 
3262
+ #: includes/functions.php:815
3263
  msgid "Equatorial Guinea"
3264
  msgstr ""
3265
 
3266
+ #: includes/functions.php:816
3267
  msgid "Eritrea"
3268
  msgstr ""
3269
 
3270
+ #: includes/functions.php:817
3271
  msgid "Estonia"
3272
  msgstr ""
3273
 
3274
+ #: includes/functions.php:818
3275
  msgid "Ethiopia"
3276
  msgstr ""
3277
 
3278
+ #: includes/functions.php:819
3279
  msgid "Falkland Islands (Malvinas)"
3280
  msgstr ""
3281
 
3282
+ #: includes/functions.php:820
3283
  msgid "Faroe Islands"
3284
  msgstr ""
3285
 
3286
+ #: includes/functions.php:821
3287
  msgid "Fiji"
3288
  msgstr ""
3289
 
3290
+ #: includes/functions.php:822
3291
  msgid "Finland"
3292
  msgstr ""
3293
 
3294
+ #: includes/functions.php:823
3295
  msgid "France"
3296
  msgstr ""
3297
 
3298
+ #: includes/functions.php:824
3299
  msgid "French Guiana"
3300
  msgstr ""
3301
 
3302
+ #: includes/functions.php:825
3303
  msgid "French Polynesia"
3304
  msgstr ""
3305
 
3306
+ #: includes/functions.php:826
3307
  msgid "French Southern Territories"
3308
  msgstr ""
3309
 
3310
+ #: includes/functions.php:827
3311
  msgid "Gabon"
3312
  msgstr ""
3313
 
3314
+ #: includes/functions.php:828
3315
  msgid "Gambia"
3316
  msgstr ""
3317
 
3318
+ #: includes/functions.php:829
3319
  msgctxt "Country"
3320
  msgid "Georgia"
3321
  msgstr ""
3322
 
3323
+ #: includes/functions.php:830
3324
  msgid "Germany"
3325
  msgstr ""
3326
 
3327
+ #: includes/functions.php:831
3328
  msgid "Ghana"
3329
  msgstr ""
3330
 
3331
+ #: includes/functions.php:832
3332
  msgid "Gibraltar"
3333
  msgstr ""
3334
 
3335
+ #: includes/functions.php:833
3336
  msgid "Greece"
3337
  msgstr ""
3338
 
3339
+ #: includes/functions.php:834
3340
  msgid "Greenland"
3341
  msgstr ""
3342
 
3343
+ #: includes/functions.php:835
3344
  msgid "Grenada"
3345
  msgstr ""
3346
 
3347
+ #: includes/functions.php:836
3348
  msgid "Guadeloupe"
3349
  msgstr ""
3350
 
3351
+ #: includes/functions.php:837
3352
  msgid "Guam"
3353
  msgstr ""
3354
 
3355
+ #: includes/functions.php:838
3356
  msgid "Guatemala"
3357
  msgstr ""
3358
 
3359
+ #: includes/functions.php:839
3360
  msgid "Guernsey"
3361
  msgstr ""
3362
 
3363
+ #: includes/functions.php:840
3364
  msgid "Guinea"
3365
  msgstr ""
3366
 
3367
+ #: includes/functions.php:841
3368
  msgid "Guinea-Bissau"
3369
  msgstr ""
3370
 
3371
+ #: includes/functions.php:842
3372
  msgid "Guyana"
3373
  msgstr ""
3374
 
3375
+ #: includes/functions.php:843
3376
  msgid "Haiti"
3377
  msgstr ""
3378
 
3379
+ #: includes/functions.php:844
3380
  msgid "Heard Island and McDonald Islands"
3381
  msgstr ""
3382
 
3383
+ #: includes/functions.php:845
3384
  msgid "Honduras"
3385
  msgstr ""
3386
 
3387
+ #: includes/functions.php:846
3388
  msgid "Hong Kong"
3389
  msgstr ""
3390
 
3391
+ #: includes/functions.php:847
3392
  msgid "Hungary"
3393
  msgstr ""
3394
 
3395
+ #: includes/functions.php:848
3396
  msgid "Iceland"
3397
  msgstr ""
3398
 
3399
+ #: includes/functions.php:849
3400
  msgid "India"
3401
  msgstr ""
3402
 
3403
+ #: includes/functions.php:850
3404
  msgid "Indonesia"
3405
  msgstr ""
3406
 
3407
+ #: includes/functions.php:851
3408
  msgid "Iran (Islamic Republic of)"
3409
  msgstr ""
3410
 
3411
+ #: includes/functions.php:852
3412
  msgid "Iraq"
3413
  msgstr ""
3414
 
3415
+ #: includes/functions.php:853
3416
  msgid "Ireland (Republic of)"
3417
  msgstr ""
3418
 
3419
+ #: includes/functions.php:854
3420
  msgid "Isle of Man"
3421
  msgstr ""
3422
 
3423
+ #: includes/functions.php:855
3424
  msgid "Israel"
3425
  msgstr ""
3426
 
3427
+ #: includes/functions.php:856
3428
  msgid "Italy"
3429
  msgstr ""
3430
 
3431
+ #: includes/functions.php:857
3432
  msgid "Jamaica"
3433
  msgstr ""
3434
 
3435
+ #: includes/functions.php:858
3436
  msgid "Japan"
3437
  msgstr ""
3438
 
3439
+ #: includes/functions.php:859
3440
  msgid "Jersey"
3441
  msgstr ""
3442
 
3443
+ #: includes/functions.php:860
3444
  msgid "Jordan"
3445
  msgstr ""
3446
 
3447
+ #: includes/functions.php:861
3448
  msgid "Kazakhstan"
3449
  msgstr ""
3450
 
3451
+ #: includes/functions.php:862
3452
  msgid "Kenya"
3453
  msgstr ""
3454
 
3455
+ #: includes/functions.php:863
3456
  msgid "Kiribati"
3457
  msgstr ""
3458
 
3459
+ #: includes/functions.php:864
3460
  msgid "Korea (Democratic People's Republic of)"
3461
  msgstr ""
3462
 
3463
+ #: includes/functions.php:865
3464
  msgid "Korea (Republic of)"
3465
  msgstr ""
3466
 
3467
+ #: includes/functions.php:866
3468
  msgid "Kuwait"
3469
  msgstr ""
3470
 
3471
+ #: includes/functions.php:867
3472
  msgid "Kyrgyzstan"
3473
  msgstr ""
3474
 
3475
+ #: includes/functions.php:868
3476
  msgid "Lao People's Democratic Republic"
3477
  msgstr ""
3478
 
3479
+ #: includes/functions.php:869
3480
  msgid "Latvia"
3481
  msgstr ""
3482
 
3483
+ #: includes/functions.php:870
3484
  msgid "Lebanon"
3485
  msgstr ""
3486
 
3487
+ #: includes/functions.php:871
3488
  msgid "Lesotho"
3489
  msgstr ""
3490
 
3491
+ #: includes/functions.php:872
3492
  msgid "Liberia"
3493
  msgstr ""
3494
 
3495
+ #: includes/functions.php:873
3496
  msgid "Libya"
3497
  msgstr ""
3498
 
3499
+ #: includes/functions.php:874
3500
  msgid "Liechtenstein"
3501
  msgstr ""
3502
 
3503
+ #: includes/functions.php:875
3504
  msgid "Lithuania"
3505
  msgstr ""
3506
 
3507
+ #: includes/functions.php:876
3508
  msgid "Luxembourg"
3509
  msgstr ""
3510
 
3511
+ #: includes/functions.php:877
3512
  msgid "Macao"
3513
  msgstr ""
3514
 
3515
+ #: includes/functions.php:878
3516
  msgid "Macedonia (Republic of)"
3517
  msgstr ""
3518
 
3519
+ #: includes/functions.php:879
3520
  msgid "Madagascar"
3521
  msgstr ""
3522
 
3523
+ #: includes/functions.php:880
3524
  msgid "Malawi"
3525
  msgstr ""
3526
 
3527
+ #: includes/functions.php:881
3528
  msgid "Malaysia"
3529
  msgstr ""
3530
 
3531
+ #: includes/functions.php:882
3532
  msgid "Maldives"
3533
  msgstr ""
3534
 
3535
+ #: includes/functions.php:883
3536
  msgid "Mali"
3537
  msgstr ""
3538
 
3539
+ #: includes/functions.php:884
3540
  msgid "Malta"
3541
  msgstr ""
3542
 
3543
+ #: includes/functions.php:885
3544
  msgid "Marshall Islands"
3545
  msgstr ""
3546
 
3547
+ #: includes/functions.php:886
3548
  msgid "Martinique"
3549
  msgstr ""
3550
 
3551
+ #: includes/functions.php:887
3552
  msgid "Mauritania"
3553
  msgstr ""
3554
 
3555
+ #: includes/functions.php:888
3556
  msgid "Mauritius"
3557
  msgstr ""
3558
 
3559
+ #: includes/functions.php:889
3560
  msgid "Mayotte"
3561
  msgstr ""
3562
 
3563
+ #: includes/functions.php:890
3564
  msgid "Mexico"
3565
  msgstr ""
3566
 
3567
+ #: includes/functions.php:891
3568
  msgid "Micronesia (Federated States of)"
3569
  msgstr ""
3570
 
3571
+ #: includes/functions.php:892
3572
  msgid "Moldova (Republic of)"
3573
  msgstr ""
3574
 
3575
+ #: includes/functions.php:893
3576
  msgid "Monaco"
3577
  msgstr ""
3578
 
3579
+ #: includes/functions.php:894
3580
  msgid "Mongolia"
3581
  msgstr ""
3582
 
3583
+ #: includes/functions.php:895
3584
  msgid "Montenegro"
3585
  msgstr ""
3586
 
3587
+ #: includes/functions.php:896
3588
  msgid "Montserrat"
3589
  msgstr ""
3590
 
3591
+ #: includes/functions.php:897
3592
  msgid "Morocco"
3593
  msgstr ""
3594
 
3595
+ #: includes/functions.php:898
3596
  msgid "Mozambique"
3597
  msgstr ""
3598
 
3599
+ #: includes/functions.php:899
3600
  msgid "Myanmar"
3601
  msgstr ""
3602
 
3603
+ #: includes/functions.php:900
3604
  msgid "Namibia"
3605
  msgstr ""
3606
 
3607
+ #: includes/functions.php:901
3608
  msgid "Nauru"
3609
  msgstr ""
3610
 
3611
+ #: includes/functions.php:902
3612
  msgid "Nepal"
3613
  msgstr ""
3614
 
3615
+ #: includes/functions.php:903
3616
  msgid "Netherlands"
3617
  msgstr ""
3618
 
3619
+ #: includes/functions.php:904
3620
  msgid "New Caledonia"
3621
  msgstr ""
3622
 
3623
+ #: includes/functions.php:905
3624
  msgid "New Zealand"
3625
  msgstr ""
3626
 
3627
+ #: includes/functions.php:906
3628
  msgid "Nicaragua"
3629
  msgstr ""
3630
 
3631
+ #: includes/functions.php:907
3632
  msgid "Niger"
3633
  msgstr ""
3634
 
3635
+ #: includes/functions.php:908
3636
  msgid "Nigeria"
3637
  msgstr ""
3638
 
3639
+ #: includes/functions.php:909
3640
  msgid "Niue"
3641
  msgstr ""
3642
 
3643
+ #: includes/functions.php:910
3644
  msgid "Norfolk Island"
3645
  msgstr ""
3646
 
3647
+ #: includes/functions.php:911
3648
  msgid "Northern Mariana Islands"
3649
  msgstr ""
3650
 
3651
+ #: includes/functions.php:912
3652
  msgid "Norway"
3653
  msgstr ""
3654
 
3655
+ #: includes/functions.php:913
3656
  msgid "Oman"
3657
  msgstr ""
3658
 
3659
+ #: includes/functions.php:914
3660
  msgid "Pakistan"
3661
  msgstr ""
3662
 
3663
+ #: includes/functions.php:915
3664
  msgid "Palau"
3665
  msgstr ""
3666
 
3667
+ #: includes/functions.php:916
3668
  msgid "Palestine (State of)"
3669
  msgstr ""
3670
 
3671
+ #: includes/functions.php:917
3672
  msgid "Panama"
3673
  msgstr ""
3674
 
3675
+ #: includes/functions.php:918
3676
  msgid "Papua New Guinea"
3677
  msgstr ""
3678
 
3679
+ #: includes/functions.php:919
3680
  msgid "Paraguay"
3681
  msgstr ""
3682
 
3683
+ #: includes/functions.php:920
3684
  msgid "Peru"
3685
  msgstr ""
3686
 
3687
+ #: includes/functions.php:921
3688
  msgid "Philippines"
3689
  msgstr ""
3690
 
3691
+ #: includes/functions.php:922
3692
  msgid "Pitcairn"
3693
  msgstr ""
3694
 
3695
+ #: includes/functions.php:923
3696
  msgid "Poland"
3697
  msgstr ""
3698
 
3699
+ #: includes/functions.php:924
3700
  msgid "Portugal"
3701
  msgstr ""
3702
 
3703
+ #: includes/functions.php:925
3704
  msgid "Puerto Rico"
3705
  msgstr ""
3706
 
3707
+ #: includes/functions.php:926
3708
  msgid "Qatar"
3709
  msgstr ""
3710
 
3711
+ #: includes/functions.php:927
3712
  msgid "Réunion"
3713
  msgstr ""
3714
 
3715
+ #: includes/functions.php:928
3716
  msgid "Romania"
3717
  msgstr ""
3718
 
3719
+ #: includes/functions.php:929
3720
  msgid "Russian Federation"
3721
  msgstr ""
3722
 
3723
+ #: includes/functions.php:930
3724
  msgid "Rwanda"
3725
  msgstr ""
3726
 
3727
+ #: includes/functions.php:931
3728
  msgid "Saint Barthélemy"
3729
  msgstr ""
3730
 
3731
+ #: includes/functions.php:932
3732
  msgid "Saint Helena, Ascension and Tristan da Cunha"
3733
  msgstr ""
3734
 
3735
+ #: includes/functions.php:933
3736
  msgid "Saint Kitts and Nevis"
3737
  msgstr ""
3738
 
3739
+ #: includes/functions.php:934
3740
  msgid "Saint Lucia"
3741
  msgstr ""
3742
 
3743
+ #: includes/functions.php:935
3744
  msgid "Saint Martin (French part)"
3745
  msgstr ""
3746
 
3747
+ #: includes/functions.php:936
3748
  msgid "Saint Pierre and Miquelon"
3749
  msgstr ""
3750
 
3751
+ #: includes/functions.php:937
3752
  msgid "Saint Vincent and the Grenadines"
3753
  msgstr ""
3754
 
3755
+ #: includes/functions.php:938
3756
  msgid "Samoa"
3757
  msgstr ""
3758
 
3759
+ #: includes/functions.php:939
3760
  msgid "San Marino"
3761
  msgstr ""
3762
 
3763
+ #: includes/functions.php:940
3764
  msgid "Sao Tome and Principe"
3765
  msgstr ""
3766
 
3767
+ #: includes/functions.php:941
3768
  msgid "Saudi Arabia"
3769
  msgstr ""
3770
 
3771
+ #: includes/functions.php:942
3772
  msgid "Senegal"
3773
  msgstr ""
3774
 
3775
+ #: includes/functions.php:943
3776
  msgid "Serbia"
3777
  msgstr ""
3778
 
3779
+ #: includes/functions.php:944
3780
  msgid "Seychelles"
3781
  msgstr ""
3782
 
3783
+ #: includes/functions.php:945
3784
  msgid "Sierra Leone"
3785
  msgstr ""
3786
 
3787
+ #: includes/functions.php:946
3788
  msgid "Singapore"
3789
  msgstr ""
3790
 
3791
+ #: includes/functions.php:947
3792
  msgid "Sint Maarten (Dutch part)"
3793
  msgstr ""
3794
 
3795
+ #: includes/functions.php:948
3796
  msgid "Slovakia"
3797
  msgstr ""
3798
 
3799
+ #: includes/functions.php:949
3800
  msgid "Slovenia"
3801
  msgstr ""
3802
 
3803
+ #: includes/functions.php:950
3804
  msgid "Solomon Islands"
3805
  msgstr ""
3806
 
3807
+ #: includes/functions.php:951
3808
  msgid "Somalia"
3809
  msgstr ""
3810
 
3811
+ #: includes/functions.php:952
3812
  msgid "South Africa"
3813
  msgstr ""
3814
 
3815
+ #: includes/functions.php:953
3816
  msgid "South Georgia and the South Sandwich Islands"
3817
  msgstr ""
3818
 
3819
+ #: includes/functions.php:954
3820
  msgid "South Sudan"
3821
  msgstr ""
3822
 
3823
+ #: includes/functions.php:955
3824
  msgid "Spain"
3825
  msgstr ""
3826
 
3827
+ #: includes/functions.php:956
3828
  msgid "Sri Lanka"
3829
  msgstr ""
3830
 
3831
+ #: includes/functions.php:957
3832
  msgid "Sudan"
3833
  msgstr ""
3834
 
3835
+ #: includes/functions.php:958
3836
  msgid "Suriname"
3837
  msgstr ""
3838
 
3839
+ #: includes/functions.php:959
3840
  msgid "Svalbard and Jan Mayen"
3841
  msgstr ""
3842
 
3843
+ #: includes/functions.php:960
3844
  msgid "Swaziland"
3845
  msgstr ""
3846
 
3847
+ #: includes/functions.php:961
3848
  msgid "Sweden"
3849
  msgstr ""
3850
 
3851
+ #: includes/functions.php:962
3852
  msgid "Switzerland"
3853
  msgstr ""
3854
 
3855
+ #: includes/functions.php:963
3856
  msgid "Syrian Arab Republic"
3857
  msgstr ""
3858
 
3859
+ #: includes/functions.php:964
3860
  msgid "Taiwan, Province of China"
3861
  msgstr ""
3862
 
3863
+ #: includes/functions.php:965
3864
  msgid "Tajikistan"
3865
  msgstr ""
3866
 
3867
+ #: includes/functions.php:966
3868
  msgid "Tanzania (United Republic of)"
3869
  msgstr ""
3870
 
3871
+ #: includes/functions.php:967
3872
  msgid "Thailand"
3873
  msgstr ""
3874
 
3875
+ #: includes/functions.php:968
3876
  msgid "Timor-Leste"
3877
  msgstr ""
3878
 
3879
+ #: includes/functions.php:969
3880
  msgid "Togo"
3881
  msgstr ""
3882
 
3883
+ #: includes/functions.php:970
3884
  msgid "Tokelau"
3885
  msgstr ""
3886
 
3887
+ #: includes/functions.php:971
3888
  msgid "Tonga"
3889
  msgstr ""
3890
 
3891
+ #: includes/functions.php:972
3892
  msgid "Trinidad and Tobago"
3893
  msgstr ""
3894
 
3895
+ #: includes/functions.php:973
3896
  msgid "Tunisia"
3897
  msgstr ""
3898
 
3899
+ #: includes/functions.php:974
3900
  msgid "Turkey"
3901
  msgstr ""
3902
 
3903
+ #: includes/functions.php:975
3904
  msgid "Turkmenistan"
3905
  msgstr ""
3906
 
3907
+ #: includes/functions.php:976
3908
  msgid "Turks and Caicos Islands"
3909
  msgstr ""
3910
 
3911
+ #: includes/functions.php:977
3912
  msgid "Tuvalu"
3913
  msgstr ""
3914
 
3915
+ #: includes/functions.php:978
3916
  msgid "Uganda"
3917
  msgstr ""
3918
 
3919
+ #: includes/functions.php:979
3920
  msgid "Ukraine"
3921
  msgstr ""
3922
 
3923
+ #: includes/functions.php:980
3924
  msgid "United Arab Emirates"
3925
  msgstr ""
3926
 
3927
+ #: includes/functions.php:981
3928
  msgid "United Kingdom of Great Britain and Northern Ireland"
3929
  msgstr ""
3930
 
3931
+ #: includes/functions.php:982
3932
  msgid "United States of America"
3933
  msgstr ""
3934
 
3935
+ #: includes/functions.php:983
3936
  msgid "United States Minor Outlying Islands"
3937
  msgstr ""
3938
 
3939
+ #: includes/functions.php:984
3940
  msgid "Uruguay"
3941
  msgstr ""
3942
 
3943
+ #: includes/functions.php:985
3944
  msgid "Uzbekistan"
3945
  msgstr ""
3946
 
3947
+ #: includes/functions.php:986
3948
  msgid "Vanuatu"
3949
  msgstr ""
3950
 
3951
+ #: includes/functions.php:987
3952
  msgid "Vatican City State"
3953
  msgstr ""
3954
 
3955
+ #: includes/functions.php:988
3956
  msgid "Venezuela (Bolivarian Republic of)"
3957
  msgstr ""
3958
 
3959
+ #: includes/functions.php:989
3960
  msgid "Viet Nam"
3961
  msgstr ""
3962
 
3963
+ #: includes/functions.php:990
3964
  msgid "Virgin Islands (British)"
3965
  msgstr ""
3966
 
3967
+ #: includes/functions.php:991
3968
  msgid "Virgin Islands (U.S.)"
3969
  msgstr ""
3970
 
3971
+ #: includes/functions.php:992
3972
  msgid "Wallis and Futuna"
3973
  msgstr ""
3974
 
3975
+ #: includes/functions.php:993
3976
  msgid "Western Sahara"
3977
  msgstr ""
3978
 
3979
+ #: includes/functions.php:994
3980
  msgid "Yemen"
3981
  msgstr ""
3982
 
3983
+ #: includes/functions.php:995
3984
  msgid "Zambia"
3985
  msgstr ""
3986
 
3987
+ #: includes/functions.php:996
3988
  msgid "Zimbabwe"
3989
  msgstr ""
3990
 
3991
+ #: includes/functions.php:1011
3992
  msgid "January"
3993
  msgstr ""
3994
 
3995
+ #: includes/functions.php:1012
3996
  msgid "February"
3997
  msgstr ""
3998
 
3999
+ #: includes/functions.php:1013
4000
  msgid "March"
4001
  msgstr ""
4002
 
4003
+ #: includes/functions.php:1014
4004
  msgid "April"
4005
  msgstr ""
4006
 
4007
+ #: includes/functions.php:1015
4008
  msgid "May"
4009
  msgstr ""
4010
 
4011
+ #: includes/functions.php:1016
4012
  msgid "June"
4013
  msgstr ""
4014
 
4015
+ #: includes/functions.php:1017
4016
  msgid "July"
4017
  msgstr ""
4018
 
4019
+ #: includes/functions.php:1018
4020
  msgid "August"
4021
  msgstr ""
4022
 
4023
+ #: includes/functions.php:1019
4024
  msgid "September"
4025
  msgstr ""
4026
 
4027
+ #: includes/functions.php:1020
4028
  msgid "October"
4029
  msgstr ""
4030
 
4031
+ #: includes/functions.php:1021
4032
  msgid "November"
4033
  msgstr ""
4034
 
4035
+ #: includes/functions.php:1022
4036
  msgid "December"
4037
  msgstr ""
4038
 
4039
+ #: includes/functions.php:1037
4040
  msgid "Sunday"
4041
  msgstr ""
4042
 
4043
+ #: includes/functions.php:1038
4044
  msgid "Monday"
4045
  msgstr ""
4046
 
4047
+ #: includes/functions.php:1039
4048
  msgid "Tuesday"
4049
  msgstr ""
4050
 
4051
+ #: includes/functions.php:1040
4052
  msgid "Wednesday"
4053
  msgstr ""
4054
 
4055
+ #: includes/functions.php:1041
4056
  msgid "Thursday"
4057
  msgstr ""
4058
 
4059
+ #: includes/functions.php:1042
4060
  msgid "Friday"
4061
  msgstr ""
4062
 
4063
+ #: includes/functions.php:1043
4064
  msgid "Saturday"
4065
  msgstr ""
4066
 
4724
  msgid "Upgrade to WPForms Pro Now"
4725
  msgstr ""
4726
 
4727
+ #: lite/wpforms-lite.php:1055 pro/includes/admin/class-addons.php:93
4728
+ msgid "Search Addons"
4729
+ msgstr ""
4730
+
4731
+ #: lite/wpforms-lite.php:1058
4732
  msgid "Form Addons are a PRO feature."
4733
  msgstr ""
4734
 
4735
+ #: lite/wpforms-lite.php:1059
4736
  msgid ""
4737
  "Please upgrade to the PRO plan to unlock them and more awesome features."
4738
  msgstr ""
4739
 
4740
  #. translators: %s - addon name
4741
+ #: lite/wpforms-lite.php:1078
4742
  msgid "%s Addon"
4743
  msgstr ""
4744
 
4776
  msgid "Please enter a license key."
4777
  msgstr ""
4778
 
 
 
 
 
4779
  #: pro/includes/admin/builder/panels/class-payments.php:82
4780
  msgid "Install Your Payment Integration"
4781
  msgstr ""
4799
  "it added as fast as possible."
4800
  msgstr ""
4801
 
4802
+ #: pro/includes/admin/class-addons.php:92
4803
  msgid "Refresh Addons"
4804
  msgstr ""
4805
 
4806
+ #: pro/includes/admin/class-addons.php:99
4807
  msgid ""
4808
+ "There was an issue retrieving Addons for this site. Please click on the "
4809
+ "button above the refresh."
4810
  msgstr ""
4811
 
4812
+ #: pro/includes/admin/class-addons.php:105
4813
  msgid ""
4814
  "In order to get access to Addons, you need to resolve your license key "
4815
  "errors."
4816
  msgstr ""
4817
 
4818
+ #: pro/includes/admin/class-addons.php:111
4819
  msgid ""
4820
  "In order to get access to Addons, you need to verify your license key for "
4821
  "WPForms."
4822
  msgstr ""
4823
 
4824
+ #: pro/includes/admin/class-addons.php:119
4825
  msgid "Addons have successfully been refreshed."
4826
  msgstr ""
4827
 
4828
  #. translators: %s - refresh addons page URL.
4829
+ #: pro/includes/admin/class-addons.php:132
4830
  msgid ""
4831
  "Improve your forms with our premium addons. Missing an addon that you think "
4832
  "you should be able to see? Click the <a href=\"%s\">Refresh Addons</a> "
4833
  "button above."
4834
  msgstr ""
4835
 
4836
+ #: pro/includes/admin/class-addons.php:144
4837
  msgid "Available Addons"
4838
  msgstr ""
4839
 
4840
+ #: pro/includes/admin/class-addons.php:194
4841
  msgid "Unlock More Features..."
4842
  msgstr ""
4843
 
4844
  #. translators: %s - WPForms.com Account page URL.
4845
+ #: pro/includes/admin/class-addons.php:199
4846
  msgid ""
4847
  "Want to get even more features? <a href=\"%s\" target=\"_blank\" rel="
4848
  "\"noopener noreferrer\">Upgrade your WPForms account</a> and unlock the "
4849
  "following extensions."
4850
  msgstr ""
4851
 
4852
+ #: pro/includes/admin/class-addons.php:268
4853
+ #: pro/includes/admin/entries/class-entries-list-table.php:162
4854
  msgid "Status"
4855
  msgstr ""
4856
 
4980
  msgid "Starred"
4981
  msgstr ""
4982
 
4983
+ #: pro/includes/admin/entries/class-entries-list-table.php:156
4984
  #: pro/includes/fields/class-payment-total.php:22
4985
  msgid "Total"
4986
  msgstr ""
4987
 
4988
+ #: pro/includes/admin/entries/class-entries-list-table.php:167
4989
  #: pro/includes/admin/entries/class-entries-single.php:1048
4990
  msgid "Actions"
4991
  msgstr ""
4992
 
4993
+ #: pro/includes/admin/entries/class-entries-list-table.php:168
4994
  msgid "Change columns to display"
4995
  msgstr ""
4996
 
4997
+ #: pro/includes/admin/entries/class-entries-list-table.php:326
4998
  #: pro/includes/admin/entries/class-entries-single.php:840
4999
  msgid "Unknown"
5000
  msgstr ""
5001
 
5002
+ #: pro/includes/admin/entries/class-entries-list-table.php:333
5003
  #: pro/includes/admin/entries/class-entries-single.php:783
5004
  msgid "Completed"
5005
  msgstr ""
5006
 
5007
+ #: pro/includes/admin/entries/class-entries-list-table.php:407
5008
  msgid "View Form Entry"
5009
  msgstr ""
5010
 
5011
+ #: pro/includes/admin/entries/class-entries-list-table.php:408
5012
  msgid "View"
5013
  msgstr ""
5014
 
5015
+ #: pro/includes/admin/entries/class-entries-list-table.php:425
5016
  msgid "Delete Form Entry"
5017
  msgstr ""
5018
 
5019
+ #: pro/includes/admin/entries/class-entries-list-table.php:449
5020
  msgid "Select a date range"
5021
  msgstr ""
5022
 
5023
+ #: pro/includes/admin/entries/class-entries-list-table.php:453
5024
  msgid "Filter"
5025
  msgstr ""
5026
 
5027
+ #: pro/includes/admin/entries/class-entries-list-table.php:495
5028
  msgid "Mark Read"
5029
  msgstr ""
5030
 
5031
+ #: pro/includes/admin/entries/class-entries-list-table.php:496
5032
  #: pro/includes/admin/entries/class-entries-single.php:1032
5033
  msgid "Mark Unread"
5034
  msgstr ""
5035
 
5036
+ #: pro/includes/admin/entries/class-entries-list-table.php:497
5037
  #: pro/includes/admin/entries/class-entries-single.php:997
5038
  #: pro/includes/fields/class-rating.php:225
5039
  msgid "Star"
5040
  msgstr ""
5041
 
5042
+ #: pro/includes/admin/entries/class-entries-list-table.php:498
5043
  #: pro/includes/admin/entries/class-entries-single.php:997
5044
  msgid "Unstar"
5045
  msgstr ""
5046
 
5047
+ #: pro/includes/admin/entries/class-entries-list-table.php:499
5048
  msgid "----------"
5049
  msgstr ""
5050
 
5051
+ #: pro/includes/admin/entries/class-entries-list-table.php:557
5052
  msgid "Entry was successfully marked as read."
5053
  msgstr ""
5054
 
5055
+ #: pro/includes/admin/entries/class-entries-list-table.php:559
5056
  msgid "Entries were successfully marked as read."
5057
  msgstr ""
5058
 
5059
+ #: pro/includes/admin/entries/class-entries-list-table.php:583
5060
  msgid "Entry was successfully marked as unread."
5061
  msgstr ""
5062
 
5063
+ #: pro/includes/admin/entries/class-entries-list-table.php:585
5064
  msgid "Entries were successfully marked as unread."
5065
  msgstr ""
5066
 
5067
+ #: pro/includes/admin/entries/class-entries-list-table.php:609
5068
  msgid "Entry was successfully starred."
5069
  msgstr ""
5070
 
5071
+ #: pro/includes/admin/entries/class-entries-list-table.php:611
5072
  msgid "Entries were successfully starred."
5073
  msgstr ""
5074
 
5075
+ #: pro/includes/admin/entries/class-entries-list-table.php:635
5076
  msgid "Entry was successfully unstarred."
5077
  msgstr ""
5078
 
5079
+ #: pro/includes/admin/entries/class-entries-list-table.php:637
5080
  msgid "Entries were successfully unstarred."
5081
  msgstr ""
5082
 
5083
+ #: pro/includes/admin/entries/class-entries-list-table.php:656
5084
  msgid "Entry was successfully deleted."
5085
  msgstr ""
5086
 
5087
+ #: pro/includes/admin/entries/class-entries-list-table.php:658
5088
  msgid "Entries were successfully deleted."
5089
  msgstr ""
5090
 
5091
+ #: pro/includes/admin/entries/class-entries-list-table.php:673
5092
  msgid "Whoops, it appears you do not have any form entries yet."
5093
  msgstr ""
5094
 
5095
+ #: pro/includes/admin/entries/class-entries-list-table.php:705
5096
  msgid "Any form field"
5097
  msgstr ""
5098
 
5348
 
5349
  #: pro/includes/fields/class-address.php:40
5350
  #: pro/includes/fields/class-address.php:49
5351
+ #: pro/includes/fields/class-address.php:328
5352
  msgid "Address Line 1"
5353
  msgstr ""
5354
 
5355
  #: pro/includes/fields/class-address.php:41
5356
  #: pro/includes/fields/class-address.php:50
5357
+ #: pro/includes/fields/class-address.php:347
5358
  msgid "Address Line 2"
5359
  msgstr ""
5360
 
5361
  #: pro/includes/fields/class-address.php:42
5362
  #: pro/includes/fields/class-address.php:51
5363
+ #: pro/includes/fields/class-address.php:368
5364
  msgid "City"
5365
  msgstr ""
5366
 
5382
  msgstr ""
5383
 
5384
  #: pro/includes/fields/class-address.php:53
5385
+ #: pro/includes/fields/class-address.php:386
5386
  msgid "State / Province / Region"
5387
  msgstr ""
5388
 
5389
  #: pro/includes/fields/class-address.php:55
5390
+ #: pro/includes/fields/class-address.php:430
5391
  msgid "Country"
5392
  msgstr ""
5393
 
5394
+ #: pro/includes/fields/class-address.php:279
5395
  msgid "Select scheme format for the address field."
5396
  msgstr ""
5397
 
5398
+ #: pro/includes/fields/class-address.php:286
5399
  msgid "Scheme"
5400
  msgstr ""
5401
 
5402
+ #: pro/includes/fields/class-address.php:406
5403
  msgid "ZIP / Postal"
5404
  msgstr ""
5405
 
5573
  msgid "Connector"
5574
  msgstr ""
5575
 
 
 
 
 
5576
  #: pro/includes/fields/class-page-break.php:294
5577
  msgid "Progress Indicator"
5578
  msgstr ""
5727
  msgstr ""
5728
 
5729
  #: pro/includes/fields/class-payment-dropdown.php:34
5730
+ #: pro/includes/fields/class-payment-multiple.php:35
5731
  #: pro/includes/templates/class-order.php:76
5732
  msgid "Second Item"
5733
  msgstr ""
5734
 
5735
  #: pro/includes/fields/class-payment-dropdown.php:39
5736
+ #: pro/includes/fields/class-payment-multiple.php:41
5737
  #: pro/includes/templates/class-order.php:80
5738
  msgid "Third Item"
5739
  msgstr ""
5740
 
5741
  #: pro/includes/fields/class-payment-dropdown.php:219
 
5742
  msgid "Invalid payment option"
5743
  msgstr ""
5744
 
5746
  msgid "Multiple Items"
5747
  msgstr ""
5748
 
5749
+ #: pro/includes/fields/class-payment-multiple.php:352
5750
+ msgid "Invalid payment option."
5751
+ msgstr ""
5752
+
5753
  #: pro/includes/fields/class-payment-single.php:22
5754
  #: pro/includes/fields/class-payment-single.php:68
5755
  msgid "Single Item"
6057
  msgid "Please deactivate WPForms Lite before activating WPForms."
6058
  msgstr ""
6059
 
6060
+ #. #-#-#-#-# wpforms.pot (WPForms 1.4.5) #-#-#-#-#
6061
  #. Plugin URI of the plugin/theme
6062
+ #. #-#-#-#-# wpforms.pot (WPForms 1.4.5) #-#-#-#-#
6063
  #. Author URI of the plugin/theme
6064
  msgid "https://wpforms.com"
6065
  msgstr ""
lite/assets/images/addon-icon-captcha.png ADDED
Binary file
lite/assets/images/addon-icon-conditional-logic.png ADDED
Binary file
lite/assets/images/addon-icon-constant-contact.png ADDED
Binary file
lite/assets/images/addon-icon-form-abandonment.png ADDED
Binary file
lite/assets/images/addon-icon-form-templates-pack.png ADDED
Binary file
lite/assets/images/addon-icon-geolocation.png ADDED
Binary file
lite/assets/images/addon-icon-offline-forms.png ADDED
Binary file
lite/assets/images/addon-icon-paypal.png ADDED
Binary file
lite/assets/images/addon-icon-post-submissions.png ADDED
Binary file
lite/assets/images/addon-icon-signatures.png ADDED
Binary file
lite/assets/images/addon-icon-stripe.png ADDED
Binary file
lite/assets/images/addon-icon-user-registration.png ADDED
Binary file
lite/assets/images/addon-icons-surveys-polls.png ADDED
Binary file
lite/wpforms-lite.php CHANGED
@@ -944,11 +944,18 @@ class WPForms_Lite {
944
  // JavaScript.
945
  wp_enqueue_script(
946
  'jquery-matchheight',
947
- WPFORMS_PLUGIN_URL . 'assets/js/jQuery.matchHeight-min.js',
948
  array( 'jquery' ),
949
  '0.7.0',
950
  false
951
  );
 
 
 
 
 
 
 
952
  }
953
 
954
  /**
@@ -1011,7 +1018,7 @@ class WPForms_Lite {
1011
  ),
1012
  array(
1013
  'name' => 'PayPal Standard',
1014
- 'desc' => 'WPForms\' PayPal addon allows you to connect your WordPress site with PayPal to easily collect payments, donations, and online orders.',
1015
  'icon' => 'addon-icon-paypal.png',
1016
  ),
1017
  array(
@@ -1021,24 +1028,32 @@ class WPForms_Lite {
1021
  ),
1022
  array(
1023
  'name' => 'Stripe',
1024
- 'desc' => 'WPForms\' Stripe addon allows you to connect your WordPress site with Stripe to easily collect payments, donations, and online orders.',
1025
  'icon' => 'addon-icon-stripe.png',
1026
  ),
 
 
 
 
 
1027
  array(
1028
  'name' => 'User Registration',
1029
- 'desc' => 'WPForms\' User Registration addon allows you to create custom WordPress user registration forms.',
1030
  'icon' => 'addon-icon-user-registration.png',
1031
  ),
1032
  array(
1033
  'name' => 'Zapier',
1034
- 'desc' => 'WPForms\' Zapier addon allows you to connect your WordPress forms with over 500+ web apps. The integration possibilities here are just endless..',
1035
  'icon' => 'addon-icon-zapier.png',
1036
  ),
1037
  )
1038
  ?>
1039
 
1040
  <div id="wpforms-admin-addons" class="wrap wpforms-admin-wrap">
1041
- <h1 class="page-title"><?php esc_html_e( 'WPForms Addons', 'wpforms' ); ?></h1>
 
 
 
1042
  <div class="notice notice-info" style="display: block;">
1043
  <p><strong><?php esc_html_e( 'Form Addons are a PRO feature.', 'wpforms' ); ?></strong></p>
1044
  <p><?php esc_html_e( 'Please upgrade to the PRO plan to unlock them and more awesome features.', 'wpforms' ); ?></p>
@@ -1049,13 +1064,14 @@ class WPForms_Lite {
1049
  </p>
1050
  </div>
1051
  <div class="wpforms-admin-content">
1052
- <div class="addons-container">
1053
- <?php foreach ( $addons as $addon ) : ?>
 
1054
  <div class="addon-container">
1055
  <div class="addon-item">
1056
  <div class="details wpforms-clear" style="">
1057
- <img src="https://wpforms.com/images/<?php echo $addon['icon']; ?>">
1058
- <h5>
1059
  <?php
1060
  printf(
1061
  /* translators: %s - addon name*/
@@ -1064,7 +1080,7 @@ class WPForms_Lite {
1064
  );
1065
  ?>
1066
  </h5>
1067
- <p><?php echo $addon['desc']; ?></p>
1068
  </div>
1069
  <div class="actions wpforms-clear">
1070
  <div class="upgrade-button">
@@ -1075,8 +1091,8 @@ class WPForms_Lite {
1075
  </div>
1076
  </div>
1077
  </div>
1078
- <?php endforeach; ?>
1079
- <div style="clear:both;"></div>
1080
  </div>
1081
  </div>
1082
  </div>
944
  // JavaScript.
945
  wp_enqueue_script(
946
  'jquery-matchheight',
947
+ WPFORMS_PLUGIN_URL . 'assets/js/jquery.matchHeight-min.js',
948
  array( 'jquery' ),
949
  '0.7.0',
950
  false
951
  );
952
+
953
+ wp_enqueue_script(
954
+ 'listjs',
955
+ WPFORMS_PLUGIN_URL . 'assets/js/list.min.js',
956
+ array( 'jquery' ),
957
+ '1.5.0'
958
+ );
959
  }
960
 
961
  /**
1018
  ),
1019
  array(
1020
  'name' => 'PayPal Standard',
1021
+ 'desc' => 'WPForms PayPal addon allows you to connect your WordPress site with PayPal to easily collect payments, donations, and online orders.',
1022
  'icon' => 'addon-icon-paypal.png',
1023
  ),
1024
  array(
1028
  ),
1029
  array(
1030
  'name' => 'Stripe',
1031
+ 'desc' => 'WPForms Stripe addon allows you to connect your WordPress site with Stripe to easily collect payments, donations, and online orders.',
1032
  'icon' => 'addon-icon-stripe.png',
1033
  ),
1034
+ array(
1035
+ 'name' => 'Surveys and Polls',
1036
+ 'desc' => 'WPForms Surveys and Polls allows you easily create surveys forms and analyze the data with interactive reports.',
1037
+ 'icon' => 'addon-icons-surveys-polls.png',
1038
+ ),
1039
  array(
1040
  'name' => 'User Registration',
1041
+ 'desc' => 'WPForms User Registration addon allows you to create custom WordPress user registration forms.',
1042
  'icon' => 'addon-icon-user-registration.png',
1043
  ),
1044
  array(
1045
  'name' => 'Zapier',
1046
+ 'desc' => 'WPForms Zapier addon allows you to connect your WordPress forms with over 500+ web apps. The integration possibilities here are just endless.',
1047
  'icon' => 'addon-icon-zapier.png',
1048
  ),
1049
  )
1050
  ?>
1051
 
1052
  <div id="wpforms-admin-addons" class="wrap wpforms-admin-wrap">
1053
+ <h1 class="page-title">
1054
+ <?php esc_html_e( 'WPForms Addons', 'wpforms' ); ?>
1055
+ <input type="search" placeholder="<?php esc_html_e( 'Search Addons', 'wpforms' ); ?>" id="wpforms-admin-addons-search">
1056
+ </h1>
1057
  <div class="notice notice-info" style="display: block;">
1058
  <p><strong><?php esc_html_e( 'Form Addons are a PRO feature.', 'wpforms' ); ?></strong></p>
1059
  <p><?php esc_html_e( 'Please upgrade to the PRO plan to unlock them and more awesome features.', 'wpforms' ); ?></p>
1064
  </p>
1065
  </div>
1066
  <div class="wpforms-admin-content">
1067
+ <div class="addons-container" id="wpforms-admin-addons-list">
1068
+ <div class="list">
1069
+ <?php foreach ( $addons as $addon ) : ?>
1070
  <div class="addon-container">
1071
  <div class="addon-item">
1072
  <div class="details wpforms-clear" style="">
1073
+ <img src="<?php echo WPFORMS_PLUGIN_URL; ?>lite/assets/images/<?php echo $addon['icon']; ?>">
1074
+ <h5 class="addon-name">
1075
  <?php
1076
  printf(
1077
  /* translators: %s - addon name*/
1080
  );
1081
  ?>
1082
  </h5>
1083
+ <p class="addon-desc"><?php echo $addon['desc']; ?></p>
1084
  </div>
1085
  <div class="actions wpforms-clear">
1086
  <div class="upgrade-button">
1091
  </div>
1092
  </div>
1093
  </div>
1094
+ <?php endforeach; ?>
1095
+ </div>
1096
  </div>
1097
  </div>
1098
  </div>
readme.txt CHANGED
@@ -94,6 +94,7 @@ We also knew that our developer friends may want to extend contact forms further
94
  * <a href="https://wpforms.com/addons/conditional-logic-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Conditional Logic</a> - Show or hide fields and contact form sections based on user behavior.
95
  * <a href="https://wpforms.com/addons/geolocation-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Geolocation</a> - Display location information about your users.
96
  * <a href="https://wpforms.com/addons/custom-catpcha-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Custom Captchas</a> - Create custom captchas for your contact form.
 
97
  * Want us to add something else? Suggest a contact form feature and we'll get it added!
98
 
99
  After reading this feature list, you can probably imagine why WPForms is the best WordPress contact form plugin in the market.
@@ -210,6 +211,23 @@ Syed Balkhi
210
 
211
  == Changelog ==
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  = 1.4.4.1 =
214
  - Changed: Textdomain loading to a later priority.
215
  - Changed: Allow the `WPForms_Builder` class to be accessible.
94
  * <a href="https://wpforms.com/addons/conditional-logic-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Conditional Logic</a> - Show or hide fields and contact form sections based on user behavior.
95
  * <a href="https://wpforms.com/addons/geolocation-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Geolocation</a> - Display location information about your users.
96
  * <a href="https://wpforms.com/addons/custom-catpcha-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Custom Captchas</a> - Create custom captchas for your contact form.
97
+ * <a href="https://wpforms.com/addons/surveys-and-polls-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Surveys and Polls</a> - Easily create surveys forms and analyze the data with interactive reports.
98
  * Want us to add something else? Suggest a contact form feature and we'll get it added!
99
 
100
  After reading this feature list, you can probably imagine why WPForms is the best WordPress contact form plugin in the market.
211
 
212
  == Changelog ==
213
 
214
+ = 1.4.5 =
215
+ - Added: Image choices feature with Checkbox and Multiple Choice fields; Images can now be uploaded and displayed with your choices!
216
+ - Added: Custom input masks for Single Line Text fields (Advanced Options).
217
+ - Added: No-Conflict Mode for Google reCAPTCHA (Settings > reCAPTCHA). Removes other reCAPTCHA occurrences, to prevent conflicts.
218
+ - Added: SSL Connection Test (Tools > System Info). Quicky verify that your web host correct supports SSL connections.
219
+ - Added: `{user_full_name}` Smart Tag, displays users first and last name.
220
+ - Added: Discalimer / Terms of Service Display formatting option for Checkbox fields (Advanced Options).
221
+ - Added: Basic CSS styling for `disabled` fields.
222
+ - Added: Uninstall routine, available from Settings > Misc.
223
+ - Added: Form builder performance improvements. Editing a form with hundreds of fields is now 500%+ faster!
224
+ - Changed: New Settings tab: Misc, moved Hide Annoucements option to new tab.
225
+ - Changed: `{user_display}` Smart Tag diplays user's display name (in most cases, this is the user's name).
226
+ - Changed: All `<form>` attributes can now be changed via `wpforms_frontend_form_atts` filter.
227
+ - Fixed: Form builder tab icon alignment conflicts with third party plugin CSS.
228
+ - Fixed: Smart Tag dropdown display issues in the form builder.
229
+ - Fixed: Form builder drag and drop area disappearing if all fields are removed from a form.
230
+
231
  = 1.4.4.1 =
232
  - Changed: Textdomain loading to a later priority.
233
  - Changed: Allow the `WPForms_Builder` class to be accessible.
uninstall.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Uninstalls WPForms.
4
+ *
5
+ * Removes:
6
+ * - Entries table
7
+ * - Entry Meta table
8
+ * - Entry fields table
9
+ * - Form Preview page
10
+ * - wpforms_log post type posts and post_meta
11
+ * - wpforms post type posts and post_meta
12
+ * - WPForms settings/options
13
+ * - WPForms Uploads
14
+ *
15
+ * @package WPForms
16
+ * @author WPForms
17
+ * @since 1.4.5
18
+ * @license GPL-2.0+
19
+ * @copyright Copyright (c) 2018, WPForms LLC
20
+ */
21
+
22
+ // Exit if accessed directly.
23
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
24
+ exit;
25
+ }
26
+
27
+ // Confirm user has decided to remove all data, otherwise stop.
28
+ $settings = get_option( 'wpforms_settings', array() );
29
+ if ( empty( $settings['uninstall-data'] ) ) {
30
+ return;
31
+ }
32
+
33
+ global $wpdb;
34
+
35
+ // Delete entries table.
36
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entries' );
37
+
38
+ // Delete entry meta table.
39
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entry_meta' );
40
+
41
+ // Delete entry fields table.
42
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entry_fields' );
43
+
44
+ // Delete Preview page.
45
+ $preview = get_option( 'wpforms_preview_page', false );
46
+ if ( ! empty( $preview ) ) {
47
+ wp_delete_post( $preview, true );
48
+ }
49
+
50
+ // Delete wpform and wpform_log post type posts/post_meta.
51
+ $posts = get_posts( array(
52
+ 'post_type' => array( 'wpforms_log', 'wpforms' ),
53
+ 'post_status' => 'any',
54
+ 'numberposts' => -1,
55
+ 'fields' => 'ids',
56
+ ) );
57
+ if ( $posts ) {
58
+ foreach ( $posts as $post ) {
59
+ wp_delete_post( $post, true);
60
+ }
61
+ }
62
+
63
+ // Delete plugin settings.
64
+ delete_option( 'wpforms_version' );
65
+ delete_option( 'wpforms_providers' );
66
+ delete_option( 'wpforms_license' );
67
+ delete_option( 'wpforms_license_updates' );
68
+ delete_option( 'wpforms_settings' );
69
+ delete_option( 'wpforms_version_upgraded_from' );
70
+ delete_option( 'wpforms_preview_page' );
71
+ delete_option( 'wpforms_zapier_apikey' );
72
+ delete_option( 'wpforms_activated' );
73
+ delete_option( 'wpforms_review' );
74
+ delete_option( 'wpforms_imported' );
75
+
76
+ // Remove any transients we've left behind.
77
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_wpforms\_%'" );
78
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_wpforms\_%'" );
79
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_timeout\_wpforms\_%'" );
80
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_timeout\_wpforms\_%'" );
81
+
82
+ // Remove uploaded files.
83
+ $uploads_directory = wp_upload_dir();
84
+ if ( ! empty( $uploads_directory['error'] ) ) {
85
+ return;
86
+ }
87
+ global $wp_filesystem;
88
+ $wp_filesystem->rmdir( $uploads_directory['basedir'] . '/wpforms/', true );
wpforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
6
  * Author: WPForms
7
  * Author URI: https://wpforms.com
8
- * Version: 1.4.4.1
9
  * Text Domain: wpforms
10
  * Domain Path: languages
11
  *
@@ -92,7 +92,7 @@ if ( class_exists( 'WPForms' ) ) {
92
  *
93
  * @var string
94
  */
95
- public $version = '1.4.4.1';
96
 
97
  /**
98
  * The form data handler instance.
5
  * Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
6
  * Author: WPForms
7
  * Author URI: https://wpforms.com
8
+ * Version: 1.4.5
9
  * Text Domain: wpforms
10
  * Domain Path: languages
11
  *
92
  *
93
  * @var string
94
  */
95
+ public $version = '1.4.5';
96
 
97
  /**
98
  * The form data handler instance.