Version Description
- Changed: Improved logic of pasting a text in the fields with word and character limits.
- Changed: Updated DOMPurify lib to 2.2.9.
- Changed: Some admin notices can be dismissed on a per-user basis.
- Fixed: Smart Tags don't parse dot and comma symbols well.
- Fixed: In rare cases, WPForms functions calls are not handled correctly inside the third-party frontend AJAX calls.
- Fixed: Incorrect
wpforms_smart_tag_process
filter deprecation notice. - Fixed: Compatibility with the Elementor 3.1.x, 3.2.x and 3.3.x.
Download this release
Release Info
Developer | slaFFik |
Plugin | Contact Form by WPForms – Drag & Drop Form Builder for WordPress |
Version | 1.6.7.1 |
Comparing to | |
See all releases |
Code changes from version 1.6.7 to 1.6.7.1
- assets/css/admin-integrations.css +3 -1
- assets/css/admin-integrations.min.css +1 -1
- assets/js/admin-builder.js +2 -2
- assets/js/admin-utils.js +4 -0
- assets/js/components/admin/notices.js +78 -0
- assets/js/components/admin/notices.min.js +1 -0
- assets/js/integrations/divi/formselector.min.js +1 -1
- assets/js/purify.min.js +1 -1
- assets/js/text-limit.js +35 -3
- assets/js/text-limit.min.js +1 -1
- assets/js/wpforms.js +46 -27
- assets/languages/wpforms-lite.pot +155 -155
- changelog.txt +9 -0
- includes/admin/admin.php +1 -1
- includes/admin/ajax-actions.php +21 -16
- includes/admin/builder/class-builder.php +1 -1
- includes/admin/class-notices.php +1 -4
- includes/admin/class-review.php +84 -74
- includes/admin/class-settings.php +1 -1
- includes/admin/class-tools.php +0 -0
- includes/admin/overview/class-overview-table.php +4 -4
- includes/admin/overview/class-overview.php +1 -1
- includes/class-form.php +112 -66
- includes/class-frontend.php +29 -21
- includes/class-smart-tags.php +0 -0
- includes/functions.php +11 -21
- includes/providers/class-constant-contact.php +72 -54
- lite/templates/admin/addons.php +0 -9
- lite/wpforms-lite.php +7 -2
- readme.txt +10 -1
- src/Admin/Notice.php +365 -0
- src/Admin/Settings/Captcha.php +1 -1
- src/Integrations/UsageTracking/UsageTracking.php +10 -1
- src/Lite/Admin/Pages/Addons.php +28 -0
- src/Loader.php +4 -0
- src/SmartTags/SmartTag/Generic.php +27 -0
- src/SmartTags/SmartTag/SmartTag.php +11 -4
- src/SmartTags/SmartTags.php +76 -36
- src/WPForms.php +20 -16
- wpforms.php +2 -2
assets/css/admin-integrations.css
CHANGED
@@ -148,6 +148,8 @@
|
|
148 |
padding: 30px;
|
149 |
z-index: 10000;
|
150 |
background: rgba(0, 0, 0, 0.75);
|
|
|
|
|
151 |
}
|
152 |
|
153 |
#wpforms-builder-elementor-popup iframe {
|
@@ -390,4 +392,4 @@ div.components-panel__body .wpforms-gutenberg-panel-notice {
|
|
390 |
padding: 10px;
|
391 |
}
|
392 |
|
393 |
-
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi1pbnRlZ3JhdGlvbnMuY3NzIiwic291cmNlcyI6WyJhc3NldHMvc2Nzcy9hZG1pbi1pbnRlZ3JhdGlvbnMuc2NzcyIsImFzc2V0cy9zY3NzL192YXJpYWJsZXMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19lbXB0eS1zdGF0ZXMuc2NzcyIsImFzc2V0cy9zY3NzL2ludGVncmF0aW9ucy9fZWxlbWVudG9yLnNjc3MiLCJhc3NldHMvc2Nzcy9pbnRlZ3JhdGlvbnMvZGl2aS9fcHJldmlldy5zY3NzIiwiYXNzZXRzL3Njc3MvaW50ZWdyYXRpb25zL19ndXRlbmJlcmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBTdHlsZXMgbmVlZGVkIGZvciBpbnRlZ3JhdGlvbnMgd2l0aCB0aGlyZC1wYXJ0eSBwbHVnaW5zLiAqL1xuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnYWRtaW4vZW1wdHktc3RhdGVzJztcbkBpbXBvcnQgJ2ludGVncmF0aW9ucy9lbGVtZW50b3InO1xuQGltcG9ydCAnaW50ZWdyYXRpb25zL2RpdmkvcHJldmlldyc7XG5AaW1wb3J0ICdpbnRlZ3JhdGlvbnMvZ3V0ZW5iZXJnJztcbiIsIiRvcmFuZ2U6ICNlMjc3MzA7XG4kYWx0b3JhbmdlOiAjZGY3NzM5O1xuJGRhcmtvcmFuZ2U6ICNiODVhMWI7XG4kZ3JlZW46ICMyYTliMzk7XG4kYmx1ZTogIzBlNmNhZDtcbiRsaWdodEJsdWU6ICNlYmYzZmI7XG5cbiR0cmFuc2l0aW9uX2R1cmF0aW9uOiAwLjNzO1xuJGhvdmVyX3RyYW5zaXRpb25fZHVyYXRpb246IDAuMDVzO1xuIiwiLy8gRW1wdHkgc3RhdGVzIHN0eWxlcy5cblxuLy8gQ29tbW9uIHN0eWxlcyBmb3IgZW1wdHkgc3RhdGUgcGFnZXMuXG4ud3Bmb3Jtcy1hZG1pbi1lbXB0eS1zdGF0ZS1jb250YWluZXIge1xuXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRwYWRkaW5nOiAzMHB4O1xuXG5cdC53YXZpbmctaGFuZC1lbW9qaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZW1wdHktc3RhdGVzL3dhdmluZy1oYW5kLWVtb2ppLnBuZyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHR9XG5cblx0aDIge1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRjb2xvcjogIzQ0NDQ0NDtcblx0XHRsaW5lLWhlaWdodDogMjlweDtcblx0XHRtYXJnaW46IDAgMCAxMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDQyOHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbjogMzBweCBhdXRvO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiAjNzc3Nzc3O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHR9XG5cblx0Ly8gRm9ybXMgb3ZlcnZpZXcgc2NyZWVuLlxuXHQmLndwZm9ybXMtYWRtaW4tbm8tZm9ybXMge1xuXG5cdFx0cCB7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1idG4sIC53cGZvcm1zLWJ0bjphY3RpdmUge1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0XHRwYWRkaW5nOiAxNXB4IDMwcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLW5vLWZvcm1zLWZvb3RlciB7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdFx0fVxuXHR9XG5cblx0Ly8gTW9kaWZpY2F0aW9ucyBmb3IgdGhlIEVsZW1lbnRvciB3aWRnZXQuXG5cdCYud3Bmb3Jtcy1lbGVtZW50b3Itbm8tZm9ybXMge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjNzFEN0Y3O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0cGFkZGluZzogMjBweDtcblxuXHRcdGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDI0MHB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICM0OTUxNTc7XG5cdFx0XHRtYXgtd2lkdGg6IDQ1MHB4O1xuXHRcdFx0bWFyZ2luOiAyMHB4IGF1dG8gMDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI0QzMEM1Qztcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYnRuIHtcblx0XHRcdGJhY2tncm91bmQ6ICNEMzBDNUM7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMThweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogI0ZGRkZGRjtcblx0XHRcdHBhZGRpbmc6IDdweCAxN3B4O1xuXHRcdFx0bWFyZ2luOiAyMHB4IDAgMDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZkMWU3YTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tbm8tZm9ybXMtZm9vdGVyIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdFx0Y29sb3I6ICM2RDc4ODI7XG5cdFx0fVxuXHR9XG5cblx0Ly8gRm9ybSBlbnRyaWVzIHNjcmVlbi5cblx0Ji53cGZvcm1zLWFkbWluLW5vLWVudHJpZXMge1xuXG5cdFx0aW1nIHtcblx0XHRcdG1heC13aWR0aDogNDEzcHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBTdHlsZXMgc3BlY2lmaWMgZm9yIEVsZW1lbnRvcidzIFdQRm9ybXMgd2lkZ2V0LlxuXG4jd3Bmb3Jtcy1idWlsZGVyLWVsZW1lbnRvci1wb3B1cCB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRwYWRkaW5nOiAzMHB4O1xuXHR6LWluZGV4OiAxMDAwMDtcblx0YmFja2dyb3VuZDogcmdiYSggMCwgMCwgMCwgMC43NSApO1xuXG5cdGlmcmFtZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdH1cbn1cblxuLndwZm9ybXMtZWxlbWVudG9yLWZvcm0tc2VsZWN0b3Ige1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkICM3MUQ3Rjc7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRwYWRkaW5nOiA0MHB4O1xuXG5cdGltZyB7XG5cdFx0d2lkdGg6IDIyMHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvIDIwcHggYXV0bztcblx0fVxuXG5cdC5zZWxlY3Qtd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAyNjZweDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRsaW5lLWhlaWdodDogMDtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Zm9udC1mYW1pbHk6IGVpY29ucztcblx0XHRcdGNvbnRlbnQ6IFwiXFxlOGFkXCI7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdHJpZ2h0OiA1cHg7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdG9wYWNpdHk6IDAuNTU7XG5cdFx0fVxuXHR9XG5cblx0c2VsZWN0IHtcblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXN0eWxlOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdGNvbG9yOiAjNkQ3ODgyO1xuXHRcdHBhZGRpbmc6IDAgMjBweCAwIDVweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDI3cHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJhY2tncm91bmQ6ICNGRkZGRkY7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI0Q1REFERjtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0YXBwZWFyYW5jZTogbm9uZTtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFdlYiBmb250IGNvbnRhaW5pbmcgb25lIGVsZW1lbnQgY3JlYXRlZCB1c2luZyBodHRwczovL2ZvbnRlbGxvLmNvbS8gc2VydmljZS5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ0ljb24gV1BGb3Jtcyc7XG5cdHNyYzogdXJsKCcuLi9pbWFnZXMvaW50ZWdyYXRpb25zL2VsZW1lbnRvci9mb250L2ljb24td3Bmb3Jtcy5lb3QnKTtcblx0c3JjOiB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZWxlbWVudG9yL2ZvbnQvaWNvbi13cGZvcm1zLmVvdCNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0ICAgICB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZWxlbWVudG9yL2ZvbnQvaWNvbi13cGZvcm1zLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHRcdCB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZWxlbWVudG9yL2ZvbnQvaWNvbi13cGZvcm1zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHQgdXJsKCcuLi9pbWFnZXMvaW50ZWdyYXRpb25zL2VsZW1lbnRvci9mb250L2ljb24td3Bmb3Jtcy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0IHVybCgnLi4vaW1hZ2VzL2ludGVncmF0aW9ucy9lbGVtZW50b3IvZm9udC9pY29uLXdwZm9ybXMuc3ZnJykgZm9ybWF0KCdzdmcnKTtcbn1cblxuI2VsZW1lbnRvci1lZGl0b3Itd3JhcHBlciwgLmVsZW1lbnRvci1lZGl0LWFyZWEge1xuXG5cdC5pY29uLXdwZm9ybXMge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMjhweDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICdcXGU4MDAnO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiSWNvbiBXUEZvcm1zXCI7XG5cdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0c3BlYWs6IG5ldmVyO1xuXHRcdH1cblx0fVxuXG5cdC5lbGVtZW50b3Itd2lkZ2V0LWVtcHR5LWljb24uaWNvbi13cGZvcm1zIHtcblx0XHR3aWR0aDogMjJweDtcblx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuZWxlbWVudG9yLW5hdmlnYXRvcl9faXRlbSB7XG5cdFx0Lmljb24td3Bmb3JtcyB7XG5cdFx0XHR3aWR0aDogMTFweDtcblx0XHRcdGhlaWdodDogMTFweDtcblx0XHR9XG5cdH1cblxuXHQuZWxlbWVudG9yLWNvbnRyb2wuZWxlbWVudG9yLWNvbnRyb2wtZWRpdF9mb3JtIHtcblx0XHRwYWRkaW5nOiAwIDIwcHggMTBweCAyMHB4O1xuXG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxM3B4O1xuXHRcdGNvbG9yOiAjQTRBRkI3O1xuXG5cdFx0YSB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdCY6aG92ZXIge1xuXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmVsZW1lbnRvci1jb250cm9sLmVsZW1lbnRvci1jb250cm9sLXRlc3RfZm9ybV9ub3RpY2Uge1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogIzZkNzg4Mjtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICM2ZDc4ODI7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI2QzMGM1Yztcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2QzMGM1Yztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZWxlbWVudG9yLWNvbnRyb2wuZWxlbWVudG9yLWNvbnRyb2wtYWRkX2Zvcm1fYnRuIHtcblxuXHRcdC5lbGVtZW50b3ItYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDdweCAxNnB4O1xuXG5cdFx0XHRiIHtcblx0XHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuZWxlbWVudG9yLWxhYmVsLWlubGluZT4uZWxlbWVudG9yLWNvbnRyb2wtY29udGVudD4uZWxlbWVudG9yLWNvbnRyb2wtZmllbGQ+LmVsZW1lbnRvci1jb250cm9sLWlucHV0LXdyYXBwZXIge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxufVxuIiwiLndwZm9ybXMtZGl2aS1mb3JtLXBsYWNlaG9sZGVyLFxuLmV0LWRiICNldC1ib2MgLmV0LWwgLndwZm9ybXMtZGl2aS1mb3JtLXBsYWNlaG9sZGVyIHtcblx0cGFkZGluZzogMjVweCAxNXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0aW1nIHtcblx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdGgzIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDEwcHggMCAwO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgU2Vnb2UgVUksIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBIZWx2ZXRpY2EgTmV1ZSwgc2Fucy1zZXJpZjtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdH1cbn1cblxuLndwZm9ybXMtZGl2aS1mb3JtLXByZXZpZXcsXG4uZXQtZGIgI2V0LWJvYyAuZXQtbCAud3Bmb3Jtcy1kaXZpLWZvcm0tcHJldmlldyB7XG5cdCYubG9hZGluZyB7XG5cdFx0b3BhY2l0eTogLjc7XG5cdH1cbn1cblxuLmV0LWRiICNldC1ib2MgLmV0LWwgLmV0LWZiLW1vZHVsZXMtbGlzdCB1bCA+IGxpLndwZm9ybXNfc2VsZWN0b3I6OmJlZm9yZSB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZGl2aS93cGZvcm1zLWljb24uc3ZnJyk7XG5cdGhlaWdodDogMTZweDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4iLCIvKiBHdXRlbmJlcmcgQmxvY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5lZGl0LXBvc3QtdmlzdWFsLWVkaXRvciAud3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3Rvci13cmFwIHtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRoMyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAxMHB4IDAgNXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdGltZyB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0d2lkdGg6IGF1dG87XG5cdH1cblxuXHQuY29tcG9uZW50cy1iYXNlLWNvbnRyb2wge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LmNvbXBvbmVudHMtcGxhY2Vob2xkZXJfX2ZpZWxkc2V0IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0bWF4LXdpZHRoOiA0MDBweDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuY29tcG9uZW50cy1zZWxlY3QtY29udHJvbF9faW5wdXQge1xuXHRcdHBhZGRpbmc6IDAgMTBweDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cbn1cblxuZGl2LndwZm9ybXMtZ3V0ZW5iZXJnLWZvcm0tc2VsZWN0b3IgLndwZm9ybXMtZm9ybSB7XG5cblx0aW5wdXQ6ZGlzYWJsZWQsXG5cdHRleHRhcmVhOmRpc2FibGVkLFxuXHRzZWxlY3Q6ZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjY2NjO1xuXHRcdGNvbG9yOiAjMzMzO1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdH1cblxuXHRidXR0b25bdHlwZT1zdWJtaXRdOmRpc2FibGVkIHtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHR9XG59XG5cbmRpdi5jb21wb25lbnRzLXBhbmVsX19ib2R5IC53cGZvcm1zLWd1dGVuYmVyZy1wYW5lbC1ub3RpY2Uge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjYmNlOGYxO1xuXHRjb2xvcjogIzMxNzA4Zjtcblx0cGFkZGluZzogMTBweDtcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FFRzlELEFBQUEsb0NBQW9DLENBQUM7RUFFcEMsVUFBVSxFQUFFLE1BQU07RUFDbEIsV0FBVyxFQUFFLDRCQUE0QjtF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 */
|
148 |
padding: 30px;
|
149 |
z-index: 10000;
|
150 |
background: rgba(0, 0, 0, 0.75);
|
151 |
+
left: 0;
|
152 |
+
top: 0;
|
153 |
}
|
154 |
|
155 |
#wpforms-builder-elementor-popup iframe {
|
392 |
padding: 10px;
|
393 |
}
|
394 |
|
395 |
+
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi1pbnRlZ3JhdGlvbnMuY3NzIiwic291cmNlcyI6WyJhc3NldHMvc2Nzcy9hZG1pbi1pbnRlZ3JhdGlvbnMuc2NzcyIsImFzc2V0cy9zY3NzL192YXJpYWJsZXMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19lbXB0eS1zdGF0ZXMuc2NzcyIsImFzc2V0cy9zY3NzL2ludGVncmF0aW9ucy9fZWxlbWVudG9yLnNjc3MiLCJhc3NldHMvc2Nzcy9pbnRlZ3JhdGlvbnMvZGl2aS9fcHJldmlldy5zY3NzIiwiYXNzZXRzL3Njc3MvaW50ZWdyYXRpb25zL19ndXRlbmJlcmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBTdHlsZXMgbmVlZGVkIGZvciBpbnRlZ3JhdGlvbnMgd2l0aCB0aGlyZC1wYXJ0eSBwbHVnaW5zLiAqL1xuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnYWRtaW4vZW1wdHktc3RhdGVzJztcbkBpbXBvcnQgJ2ludGVncmF0aW9ucy9lbGVtZW50b3InO1xuQGltcG9ydCAnaW50ZWdyYXRpb25zL2RpdmkvcHJldmlldyc7XG5AaW1wb3J0ICdpbnRlZ3JhdGlvbnMvZ3V0ZW5iZXJnJztcbiIsIiRvcmFuZ2U6ICNlMjc3MzA7XG4kYWx0b3JhbmdlOiAjZGY3NzM5O1xuJGRhcmtvcmFuZ2U6ICNiODVhMWI7XG4kZ3JlZW46ICMyYTliMzk7XG4kYmx1ZTogIzBlNmNhZDtcbiRsaWdodEJsdWU6ICNlYmYzZmI7XG5cbiR0cmFuc2l0aW9uX2R1cmF0aW9uOiAwLjNzO1xuJGhvdmVyX3RyYW5zaXRpb25fZHVyYXRpb246IDAuMDVzO1xuIiwiLy8gRW1wdHkgc3RhdGVzIHN0eWxlcy5cblxuLy8gQ29tbW9uIHN0eWxlcyBmb3IgZW1wdHkgc3RhdGUgcGFnZXMuXG4ud3Bmb3Jtcy1hZG1pbi1lbXB0eS1zdGF0ZS1jb250YWluZXIge1xuXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRwYWRkaW5nOiAzMHB4O1xuXG5cdC53YXZpbmctaGFuZC1lbW9qaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZW1wdHktc3RhdGVzL3dhdmluZy1oYW5kLWVtb2ppLnBuZyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHR9XG5cblx0aDIge1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRjb2xvcjogIzQ0NDQ0NDtcblx0XHRsaW5lLWhlaWdodDogMjlweDtcblx0XHRtYXJnaW46IDAgMCAxMHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDQyOHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbjogMzBweCBhdXRvO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiAjNzc3Nzc3O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHR9XG5cblx0Ly8gRm9ybXMgb3ZlcnZpZXcgc2NyZWVuLlxuXHQmLndwZm9ybXMtYWRtaW4tbm8tZm9ybXMge1xuXG5cdFx0cCB7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1idG4sIC53cGZvcm1zLWJ0bjphY3RpdmUge1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0XHRwYWRkaW5nOiAxNXB4IDMwcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLW5vLWZvcm1zLWZvb3RlciB7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdFx0fVxuXHR9XG5cblx0Ly8gTW9kaWZpY2F0aW9ucyBmb3IgdGhlIEVsZW1lbnRvciB3aWRnZXQuXG5cdCYud3Bmb3Jtcy1lbGVtZW50b3Itbm8tZm9ybXMge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjNzFEN0Y3O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0cGFkZGluZzogMjBweDtcblxuXHRcdGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDI0MHB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6ICM0OTUxNTc7XG5cdFx0XHRtYXgtd2lkdGg6IDQ1MHB4O1xuXHRcdFx0bWFyZ2luOiAyMHB4IGF1dG8gMDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI0QzMEM1Qztcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYnRuIHtcblx0XHRcdGJhY2tncm91bmQ6ICNEMzBDNUM7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMThweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogI0ZGRkZGRjtcblx0XHRcdHBhZGRpbmc6IDdweCAxN3B4O1xuXHRcdFx0bWFyZ2luOiAyMHB4IDAgMDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZkMWU3YTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tbm8tZm9ybXMtZm9vdGVyIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdFx0Y29sb3I6ICM2RDc4ODI7XG5cdFx0fVxuXHR9XG5cblx0Ly8gRm9ybSBlbnRyaWVzIHNjcmVlbi5cblx0Ji53cGZvcm1zLWFkbWluLW5vLWVudHJpZXMge1xuXG5cdFx0aW1nIHtcblx0XHRcdG1heC13aWR0aDogNDEzcHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBTdHlsZXMgc3BlY2lmaWMgZm9yIEVsZW1lbnRvcidzIFdQRm9ybXMgd2lkZ2V0LlxuXG4jd3Bmb3Jtcy1idWlsZGVyLWVsZW1lbnRvci1wb3B1cCB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0d2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRwYWRkaW5nOiAzMHB4O1xuXHR6LWluZGV4OiAxMDAwMDtcblx0YmFja2dyb3VuZDogcmdiYSggMCwgMCwgMCwgMC43NSApO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cblx0aWZyYW1lIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcblx0fVxufVxuXG4ud3Bmb3Jtcy1lbGVtZW50b3ItZm9ybS1zZWxlY3RvciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblx0Ym9yZGVyOiAxcHggc29saWQgIzcxRDdGNztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdHBhZGRpbmc6IDQwcHg7XG5cblx0aW1nIHtcblx0XHR3aWR0aDogMjIwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMjBweCBhdXRvO1xuXHR9XG5cblx0LnNlbGVjdC13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDI2NnB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdGxpbmUtaGVpZ2h0OiAwO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRmb250LWZhbWlseTogZWljb25zO1xuXHRcdFx0Y29udGVudDogXCJcXGU4YWRcIjtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0cmlnaHQ6IDVweDtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMC41NTtcblx0XHR9XG5cdH1cblxuXHRzZWxlY3Qge1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtc3R5bGU6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdFx0Y29sb3I6ICM2RDc4ODI7XG5cdFx0cGFkZGluZzogMCAyMHB4IDAgNXB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMjdweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRtYXJnaW46IDA7XG5cdFx0YmFja2dyb3VuZDogI0ZGRkZGRjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjRDVEQURGO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRhcHBlYXJhbmNlOiBub25lO1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gV2ViIGZvbnQgY29udGFpbmluZyBvbmUgZWxlbWVudCBjcmVhdGVkIHVzaW5nIGh0dHBzOi8vZm9udGVsbG8uY29tLyBzZXJ2aWNlLlxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnSWNvbiBXUEZvcm1zJztcblx0c3JjOiB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZWxlbWVudG9yL2ZvbnQvaWNvbi13cGZvcm1zLmVvdCcpO1xuXHRzcmM6IHVybCgnLi4vaW1hZ2VzL2ludGVncmF0aW9ucy9lbGVtZW50b3IvZm9udC9pY29uLXdwZm9ybXMuZW90I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHQgICAgIHVybCgnLi4vaW1hZ2VzL2ludGVncmF0aW9ucy9lbGVtZW50b3IvZm9udC9pY29uLXdwZm9ybXMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0IHVybCgnLi4vaW1hZ2VzL2ludGVncmF0aW9ucy9lbGVtZW50b3IvZm9udC9pY29uLXdwZm9ybXMud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdCB1cmwoJy4uL2ltYWdlcy9pbnRlZ3JhdGlvbnMvZWxlbWVudG9yL2ZvbnQvaWNvbi13cGZvcm1zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHQgdXJsKCcuLi9pbWFnZXMvaW50ZWdyYXRpb25zL2VsZW1lbnRvci9mb250L2ljb24td3Bmb3Jtcy5zdmcnKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4jZWxlbWVudG9yLWVkaXRvci13cmFwcGVyLCAuZWxlbWVudG9yLWVkaXQtYXJlYSB7XG5cblx0Lmljb24td3Bmb3JtcyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAyOHB4O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJ1xcZTgwMCc7XG5cdFx0XHRmb250LWZhbWlseTogXCJJY29uIFdQRm9ybXNcIjtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRzcGVhazogbmV2ZXI7XG5cdFx0fVxuXHR9XG5cblx0LmVsZW1lbnRvci13aWRnZXQtZW1wdHktaWNvbi5pY29uLXdwZm9ybXMge1xuXHRcdHdpZHRoOiAyMnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdC5lbGVtZW50b3ItbmF2aWdhdG9yX19pdGVtIHtcblx0XHQuaWNvbi13cGZvcm1zIHtcblx0XHRcdHdpZHRoOiAxMXB4O1xuXHRcdFx0aGVpZ2h0OiAxMXB4O1xuXHRcdH1cblx0fVxuXG5cdC5lbGVtZW50b3ItY29udHJvbC5lbGVtZW50b3ItY29udHJvbC1lZGl0X2Zvcm0ge1xuXHRcdHBhZGRpbmc6IDAgMjBweCAxMHB4IDIwcHg7XG5cblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEzcHg7XG5cdFx0Y29sb3I6ICNBNEFGQjc7XG5cblx0XHRhIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZWxlbWVudG9yLWNvbnRyb2wuZWxlbWVudG9yLWNvbnRyb2wtdGVzdF9mb3JtX25vdGljZSB7XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAjNmQ3ODgyO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogIzZkNzg4MjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAjZDMwYzVjO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiAjZDMwYzVjO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5lbGVtZW50b3ItY29udHJvbC5lbGVtZW50b3ItY29udHJvbC1hZGRfZm9ybV9idG4ge1xuXG5cdFx0LmVsZW1lbnRvci1idXR0b24ge1xuXHRcdFx0cGFkZGluZzogN3B4IDE2cHg7XG5cblx0XHRcdGIge1xuXHRcdFx0XHRtYXJnaW46IDAgMTBweCAwIDA7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5lbGVtZW50b3ItbGFiZWwtaW5saW5lPi5lbGVtZW50b3ItY29udHJvbC1jb250ZW50Pi5lbGVtZW50b3ItY29udHJvbC1maWVsZD4uZWxlbWVudG9yLWNvbnRyb2wtaW5wdXQtd3JhcHBlciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG59XG4iLCIud3Bmb3Jtcy1kaXZpLWZvcm0tcGxhY2Vob2xkZXIsXG4uZXQtZGIgI2V0LWJvYyAuZXQtbCAud3Bmb3Jtcy1kaXZpLWZvcm0tcGxhY2Vob2xkZXIge1xuXHRwYWRkaW5nOiAyNXB4IDE1cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRpbWcge1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0aDMge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbjogMTBweCAwIDA7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIEhlbHZldGljYSBOZXVlLCBzYW5zLXNlcmlmO1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cGFkZGluZzogMDtcblx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0fVxufVxuXG4ud3Bmb3Jtcy1kaXZpLWZvcm0tcHJldmlldyxcbi5ldC1kYiAjZXQtYm9jIC5ldC1sIC53cGZvcm1zLWRpdmktZm9ybS1wcmV2aWV3IHtcblx0Ji5sb2FkaW5nIHtcblx0XHRvcGFjaXR5OiAuNztcblx0fVxufVxuXG4uZXQtZGIgI2V0LWJvYyAuZXQtbCAuZXQtZmItbW9kdWxlcy1saXN0IHVsID4gbGkud3Bmb3Jtc19zZWxlY3Rvcjo6YmVmb3JlIHtcblx0Y29udGVudDogJyc7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ludGVncmF0aW9ucy9kaXZpL3dwZm9ybXMtaWNvbi5zdmcnKTtcblx0aGVpZ2h0OiAxNnB4O1xuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbiIsIi8qIEd1dGVuYmVyZyBCbG9ja1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmVkaXQtcG9zdC12aXN1YWwtZWRpdG9yIC53cGZvcm1zLWd1dGVuYmVyZy1mb3JtLXNlbGVjdG9yLXdyYXAge1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdGgzIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDEwcHggMCA1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdFx0aGVpZ2h0OiAxMDBweDtcblx0XHR3aWR0aDogYXV0bztcblx0fVxuXG5cdC5jb21wb25lbnRzLWJhc2UtY29udHJvbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQuY29tcG9uZW50cy1wbGFjZWhvbGRlcl9fZmllbGRzZXQge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHRtYXgtd2lkdGg6IDQwMHB4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcblx0fVxuXG5cdC5jb21wb25lbnRzLXNlbGVjdC1jb250cm9sX19pbnB1dCB7XG5cdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG5kaXYud3Bmb3Jtcy1ndXRlbmJlcmctZm9ybS1zZWxlY3RvciAud3Bmb3Jtcy1mb3JtIHtcblxuXHRpbnB1dDpkaXNhYmxlZCxcblx0dGV4dGFyZWE6ZGlzYWJsZWQsXG5cdHNlbGVjdDpkaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXItY29sb3I6ICNjY2M7XG5cdFx0Y29sb3I6ICMzMzM7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0fVxuXG5cdGJ1dHRvblt0eXBlPXN1Ym1pdF06ZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdH1cbn1cblxuZGl2LmNvbXBvbmVudHMtcGFuZWxfX2JvZHkgLndwZm9ybXMtZ3V0ZW5iZXJnLXBhbmVsLW5vdGljZSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNiY2U4ZjE7XG5cdGNvbG9yOiAjMzE3MDhmO1xuXHRwYWRkaW5nOiAxMHB4O1xufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUVHOUQsQUFBQSxvQ0FBb0MsQ0FBQztFQUVwQyxVQUFVLEVBQUUsTUFBTTtF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 */
|
assets/css/admin-integrations.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wpforms-admin-empty-state-container{text-align:center;font-family:"Helvetica Neue", sans-serif;font-style:normal;padding:30px}.wpforms-admin-empty-state-container .waving-hand-emoji{display:inline-block;background-image:url(../images/empty-states/waving-hand-emoji.png);background-repeat:no-repeat;background-size:24px 24px;background-position:0 0;padding-left:34px}.wpforms-admin-empty-state-container h2{font-family:inherit;font-weight:bold;font-size:24px;color:#444444;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-weight:normal;font-size:16px;line-height:24px;text-align:center;color:#777777;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:bold}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:bold;font-size:16px;line-height:24px;text-align:center;color:#FFFFFF;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{background:rgba(255,255,255,0.5);border:1px solid #71D7F7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{color:#D30C5C;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#D30C5C;border:none;border-radius:3px;font-family:inherit;font-weight:500;font-size:12px;line-height:18px;text-align:center;text-transform:uppercase;color:#FFFFFF;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#fd1e7a}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:18px;color:#6D7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px}#wpforms-builder-elementor-popup{position:fixed;width:100vw;height:100vh;padding:30px;z-index:10000;background:rgba(0,0,0,0.75)}#wpforms-builder-elementor-popup iframe{width:100%;height:100%;background-color:#ffffff}.wpforms-elementor-form-selector{background:rgba(255,255,255,0.5);border:1px solid #71D7F7;box-sizing:border-box;text-align:center;font-family:"Helvetica Neue", sans-serif;font-style:normal;padding:40px}.wpforms-elementor-form-selector img{width:220px;margin:0 auto 20px auto}.wpforms-elementor-form-selector .select-wrapper{position:relative;padding:0;width:100%;max-width:266px;margin:0 auto;line-height:0}.wpforms-elementor-form-selector .select-wrapper:after{font-family:eicons;content:"\e8ad";font-size:12px;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:5px;pointer-events:none;opacity:0.55}.wpforms-elementor-form-selector select{font-family:inherit;font-style:inherit;font-weight:normal;font-size:12px;line-height:12px;color:#6D7882;padding:0 20px 0 5px;width:100%;height:27px;text-overflow:ellipsis;margin:0;background:#FFFFFF;border:1px solid #D5DADF;box-sizing:border-box;border-radius:3px;cursor:pointer;appearance:none;-webkit-appearance:none}.wpforms-elementor-form-selector select:focus{outline:none}@font-face{font-family:'Icon WPForms';src:url("../images/integrations/elementor/font/icon-wpforms.eot");src:url("../images/integrations/elementor/font/icon-wpforms.eot#iefix") format("embedded-opentype"),url("../images/integrations/elementor/font/icon-wpforms.woff2") format("woff2"),url("../images/integrations/elementor/font/icon-wpforms.woff") format("woff"),url("../images/integrations/elementor/font/icon-wpforms.ttf") format("truetype"),url("../images/integrations/elementor/font/icon-wpforms.svg") format("svg")}#elementor-editor-wrapper .icon-wpforms,.elementor-edit-area .icon-wpforms{display:inline-block;width:28px}#elementor-editor-wrapper .icon-wpforms:before,.elementor-edit-area .icon-wpforms:before{content:'\e800';font-family:"Icon WPForms";font-style:normal;font-weight:normal;speak:never}#elementor-editor-wrapper .elementor-widget-empty-icon.icon-wpforms,.elementor-edit-area .elementor-widget-empty-icon.icon-wpforms{width:22px;line-height:22px;padding:0;font-size:22px;text-align:center}#elementor-editor-wrapper .elementor-navigator__item .icon-wpforms,.elementor-edit-area .elementor-navigator__item .icon-wpforms{width:11px;height:11px}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form,.elementor-edit-area .elementor-control.elementor-control-edit_form{padding:0 20px 10px 20px;font-style:italic;font-weight:normal;font-size:11px;line-height:13px;color:#A4AFB7}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form a,.elementor-edit-area .elementor-control.elementor-control-edit_form a{cursor:pointer}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice a,.elementor-edit-area .elementor-control.elementor-control-test_form_notice a{color:#6d7882;border-bottom-color:#6d7882}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice a:hover,.elementor-edit-area .elementor-control.elementor-control-test_form_notice a:hover{color:#d30c5c;border-bottom-color:#d30c5c}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button{padding:7px 16px}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button b,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button b{margin:0 10px 0 0;font-size:13px;font-weight:400;line-height:12px}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper,.elementor-edit-area .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper{margin-right:auto}.wpforms-divi-form-placeholder,.et-db #et-boc .et-l .wpforms-divi-form-placeholder{padding:25px 15px;text-align:center;display:flex;flex-wrap:wrap;justify-content:center}.wpforms-divi-form-placeholder img,.et-db #et-boc .et-l .wpforms-divi-form-placeholder img{height:100px;width:auto;margin-right:15px;display:block}.wpforms-divi-form-placeholder h3,.et-db #et-boc .et-l .wpforms-divi-form-placeholder h3{width:100%;margin:10px 0 0;font-weight:700;font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;font-size:20px;line-height:28px;text-align:center;padding:0;letter-spacing:0;text-transform:none}.wpforms-divi-form-preview.loading,.et-db #et-boc .et-l .wpforms-divi-form-preview.loading{opacity:.7}.et-db #et-boc .et-l .et-fb-modules-list ul>li.wpforms_selector::before{content:'';background-image:url("../images/integrations/divi/wpforms-icon.svg");height:16px;font-variant:normal;background-position:center center;background-repeat:no-repeat}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap{align-items:center}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap h3{width:100%;margin:10px 0 5px;font-weight:700;font-size:20px;text-align:center}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img{margin-right:15px;height:100px;width:auto}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-placeholder__fieldset{justify-content:center;align-self:center;max-width:400px;flex-direction:row !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-select-control__input{padding:0 10px;height:auto}div.wpforms-gutenberg-form-selector .wpforms-form input:disabled,div.wpforms-gutenberg-form-selector .wpforms-form textarea:disabled,div.wpforms-gutenberg-form-selector .wpforms-form select:disabled{background-color:#fff;border-color:#ccc;color:#333;cursor:not-allowed}div.wpforms-gutenberg-form-selector .wpforms-form button[type=submit]:disabled{cursor:not-allowed}div.components-panel__body .wpforms-gutenberg-panel-notice{background-color:#d9edf7;border:1px solid #bce8f1;color:#31708f;padding:10px}
|
1 |
+
.wpforms-admin-empty-state-container{text-align:center;font-family:"Helvetica Neue", sans-serif;font-style:normal;padding:30px}.wpforms-admin-empty-state-container .waving-hand-emoji{display:inline-block;background-image:url(../images/empty-states/waving-hand-emoji.png);background-repeat:no-repeat;background-size:24px 24px;background-position:0 0;padding-left:34px}.wpforms-admin-empty-state-container h2{font-family:inherit;font-weight:bold;font-size:24px;color:#444444;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-weight:normal;font-size:16px;line-height:24px;text-align:center;color:#777777;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:bold}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:bold;font-size:16px;line-height:24px;text-align:center;color:#FFFFFF;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{background:rgba(255,255,255,0.5);border:1px solid #71D7F7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{color:#D30C5C;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#D30C5C;border:none;border-radius:3px;font-family:inherit;font-weight:500;font-size:12px;line-height:18px;text-align:center;text-transform:uppercase;color:#FFFFFF;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#fd1e7a}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:18px;color:#6D7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px}#wpforms-builder-elementor-popup{position:fixed;width:100vw;height:100vh;padding:30px;z-index:10000;background:rgba(0,0,0,0.75);left:0;top:0}#wpforms-builder-elementor-popup iframe{width:100%;height:100%;background-color:#ffffff}.wpforms-elementor-form-selector{background:rgba(255,255,255,0.5);border:1px solid #71D7F7;box-sizing:border-box;text-align:center;font-family:"Helvetica Neue", sans-serif;font-style:normal;padding:40px}.wpforms-elementor-form-selector img{width:220px;margin:0 auto 20px auto}.wpforms-elementor-form-selector .select-wrapper{position:relative;padding:0;width:100%;max-width:266px;margin:0 auto;line-height:0}.wpforms-elementor-form-selector .select-wrapper:after{font-family:eicons;content:"\e8ad";font-size:12px;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:5px;pointer-events:none;opacity:0.55}.wpforms-elementor-form-selector select{font-family:inherit;font-style:inherit;font-weight:normal;font-size:12px;line-height:12px;color:#6D7882;padding:0 20px 0 5px;width:100%;height:27px;text-overflow:ellipsis;margin:0;background:#FFFFFF;border:1px solid #D5DADF;box-sizing:border-box;border-radius:3px;cursor:pointer;appearance:none;-webkit-appearance:none}.wpforms-elementor-form-selector select:focus{outline:none}@font-face{font-family:'Icon WPForms';src:url("../images/integrations/elementor/font/icon-wpforms.eot");src:url("../images/integrations/elementor/font/icon-wpforms.eot#iefix") format("embedded-opentype"),url("../images/integrations/elementor/font/icon-wpforms.woff2") format("woff2"),url("../images/integrations/elementor/font/icon-wpforms.woff") format("woff"),url("../images/integrations/elementor/font/icon-wpforms.ttf") format("truetype"),url("../images/integrations/elementor/font/icon-wpforms.svg") format("svg")}#elementor-editor-wrapper .icon-wpforms,.elementor-edit-area .icon-wpforms{display:inline-block;width:28px}#elementor-editor-wrapper .icon-wpforms:before,.elementor-edit-area .icon-wpforms:before{content:'\e800';font-family:"Icon WPForms";font-style:normal;font-weight:normal;speak:never}#elementor-editor-wrapper .elementor-widget-empty-icon.icon-wpforms,.elementor-edit-area .elementor-widget-empty-icon.icon-wpforms{width:22px;line-height:22px;padding:0;font-size:22px;text-align:center}#elementor-editor-wrapper .elementor-navigator__item .icon-wpforms,.elementor-edit-area .elementor-navigator__item .icon-wpforms{width:11px;height:11px}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form,.elementor-edit-area .elementor-control.elementor-control-edit_form{padding:0 20px 10px 20px;font-style:italic;font-weight:normal;font-size:11px;line-height:13px;color:#A4AFB7}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form a,.elementor-edit-area .elementor-control.elementor-control-edit_form a{cursor:pointer}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice a,.elementor-edit-area .elementor-control.elementor-control-test_form_notice a{color:#6d7882;border-bottom-color:#6d7882}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice a:hover,.elementor-edit-area .elementor-control.elementor-control-test_form_notice a:hover{color:#d30c5c;border-bottom-color:#d30c5c}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button{padding:7px 16px}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button b,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button b{margin:0 10px 0 0;font-size:13px;font-weight:400;line-height:12px}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper,.elementor-edit-area .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper{margin-right:auto}.wpforms-divi-form-placeholder,.et-db #et-boc .et-l .wpforms-divi-form-placeholder{padding:25px 15px;text-align:center;display:flex;flex-wrap:wrap;justify-content:center}.wpforms-divi-form-placeholder img,.et-db #et-boc .et-l .wpforms-divi-form-placeholder img{height:100px;width:auto;margin-right:15px;display:block}.wpforms-divi-form-placeholder h3,.et-db #et-boc .et-l .wpforms-divi-form-placeholder h3{width:100%;margin:10px 0 0;font-weight:700;font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;font-size:20px;line-height:28px;text-align:center;padding:0;letter-spacing:0;text-transform:none}.wpforms-divi-form-preview.loading,.et-db #et-boc .et-l .wpforms-divi-form-preview.loading{opacity:.7}.et-db #et-boc .et-l .et-fb-modules-list ul>li.wpforms_selector::before{content:'';background-image:url("../images/integrations/divi/wpforms-icon.svg");height:16px;font-variant:normal;background-position:center center;background-repeat:no-repeat}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap{align-items:center}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap h3{width:100%;margin:10px 0 5px;font-weight:700;font-size:20px;text-align:center}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img{margin-right:15px;height:100px;width:auto}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-placeholder__fieldset{justify-content:center;align-self:center;max-width:400px;flex-direction:row !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-select-control__input{padding:0 10px;height:auto}div.wpforms-gutenberg-form-selector .wpforms-form input:disabled,div.wpforms-gutenberg-form-selector .wpforms-form textarea:disabled,div.wpforms-gutenberg-form-selector .wpforms-form select:disabled{background-color:#fff;border-color:#ccc;color:#333;cursor:not-allowed}div.wpforms-gutenberg-form-selector .wpforms-form button[type=submit]:disabled{cursor:not-allowed}div.components-panel__body .wpforms-gutenberg-panel-notice{background-color:#d9edf7;border:1px solid #bce8f1;color:#31708f;padding:10px}
|
assets/js/admin-builder.js
CHANGED
@@ -5004,7 +5004,7 @@ var WPFormsBuilder = window.WPFormsBuilder || ( function( document, window, $ )
|
|
5004 |
|
5005 |
// Don't allow users to enable payments if storing entries has
|
5006 |
// been disabled in the General settings.
|
5007 |
-
$builder.on( 'change', '#wpforms-panel-field-stripe-enable, #wpforms-panel-field-paypal_standard-enable, #wpforms-panel-field-authorize_net-enable', function( event ) {
|
5008 |
|
5009 |
var $this = $( this ),
|
5010 |
gateway = $this.attr( 'id' ).replace( 'wpforms-panel-field-', '' ).replace( '-enable', '' ),
|
@@ -5045,7 +5045,7 @@ var WPFormsBuilder = window.WPFormsBuilder || ( function( document, window, $ )
|
|
5045 |
var $this = $( this );
|
5046 |
if ( $this.prop( 'checked' ) ) {
|
5047 |
|
5048 |
-
var paymentsEnabled = $( '#wpforms-panel-field-stripe-enable' ).prop( 'checked' ) || $( '#wpforms-panel-field-paypal_standard-enable' ).prop( 'checked' ) || $( '#wpforms-panel-field-authorize_net-enable' ).prop( 'checked' );
|
5049 |
if ( paymentsEnabled ) {
|
5050 |
$.confirm( {
|
5051 |
title: wpforms_builder.heads_up,
|
5004 |
|
5005 |
// Don't allow users to enable payments if storing entries has
|
5006 |
// been disabled in the General settings.
|
5007 |
+
$builder.on( 'change', '#wpforms-panel-field-stripe-enable, #wpforms-panel-field-paypal_standard-enable, #wpforms-panel-field-authorize_net-enable, #wpforms-panel-field-square-enable', function( event ) {
|
5008 |
|
5009 |
var $this = $( this ),
|
5010 |
gateway = $this.attr( 'id' ).replace( 'wpforms-panel-field-', '' ).replace( '-enable', '' ),
|
5045 |
var $this = $( this );
|
5046 |
if ( $this.prop( 'checked' ) ) {
|
5047 |
|
5048 |
+
var paymentsEnabled = $( '#wpforms-panel-field-stripe-enable' ).prop( 'checked' ) || $( '#wpforms-panel-field-paypal_standard-enable' ).prop( 'checked' ) || $( '#wpforms-panel-field-authorize_net-enable' ).prop( 'checked' ) || $( '#wpforms-panel-field-square-enable' ).prop( 'checked' );
|
5049 |
if ( paymentsEnabled ) {
|
5050 |
$.confirm( {
|
5051 |
title: wpforms_builder.heads_up,
|
assets/js/admin-utils.js
CHANGED
@@ -633,6 +633,10 @@ var wpf = {
|
|
633 |
*/
|
634 |
initTooltips: function() {
|
635 |
|
|
|
|
|
|
|
|
|
636 |
jQuery( '.wpforms-help-tooltip' ).tooltipster( {
|
637 |
contentAsHTML: true,
|
638 |
position: 'right',
|
633 |
*/
|
634 |
initTooltips: function() {
|
635 |
|
636 |
+
if ( typeof jQuery.fn.tooltipster === 'undefined' ) {
|
637 |
+
return;
|
638 |
+
}
|
639 |
+
|
640 |
jQuery( '.wpforms-help-tooltip' ).tooltipster( {
|
641 |
contentAsHTML: true,
|
642 |
position: 'right',
|
assets/js/components/admin/notices.js
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* global wpforms_admin_notices */
|
2 |
+
|
3 |
+
/**
|
4 |
+
* WPForms Dismissible Notices.
|
5 |
+
*
|
6 |
+
* @since 1.6.7.1
|
7 |
+
*/
|
8 |
+
|
9 |
+
'use strict';
|
10 |
+
|
11 |
+
var WPFormsAdminNotices = window.WPFormsAdminNotices || ( function( document, window, $ ) {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Public functions and properties.
|
15 |
+
*
|
16 |
+
* @since 1.6.7.1
|
17 |
+
*
|
18 |
+
* @type {object}
|
19 |
+
*/
|
20 |
+
var app = {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Start the engine.
|
24 |
+
*
|
25 |
+
* @since 1.6.7.1
|
26 |
+
*/
|
27 |
+
init: function() {
|
28 |
+
|
29 |
+
$( app.ready );
|
30 |
+
},
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Document ready.
|
34 |
+
*
|
35 |
+
* @since 1.6.7.1
|
36 |
+
*/
|
37 |
+
ready: function() {
|
38 |
+
|
39 |
+
app.events();
|
40 |
+
},
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Dismissible notices events.
|
44 |
+
*
|
45 |
+
* @since 1.6.7.1
|
46 |
+
*/
|
47 |
+
events: function() {
|
48 |
+
|
49 |
+
$( document ).on(
|
50 |
+
'click',
|
51 |
+
'.wpforms-notice .notice-dismiss, .wpforms-notice .wpforms-notice-dismiss',
|
52 |
+
app.dismissNotice
|
53 |
+
);
|
54 |
+
},
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Dismiss notice event handler.
|
58 |
+
*
|
59 |
+
* @since 1.6.7.1
|
60 |
+
*
|
61 |
+
* @param {object} e Event object.
|
62 |
+
* */
|
63 |
+
dismissNotice: function( e ) {
|
64 |
+
|
65 |
+
$.post( wpforms_admin_notices.ajax_url, {
|
66 |
+
action: 'wpforms_notice_dismiss',
|
67 |
+
nonce: wpforms_admin_notices.nonce,
|
68 |
+
id: ( $( this ).closest( '.wpforms-notice' ).attr( 'id' ) || '' ).replace( 'wpforms-notice-', '' ),
|
69 |
+
} );
|
70 |
+
},
|
71 |
+
};
|
72 |
+
|
73 |
+
return app;
|
74 |
+
|
75 |
+
}( document, window, jQuery ) );
|
76 |
+
|
77 |
+
// Initialize.
|
78 |
+
WPFormsAdminNotices.init();
|
assets/js/components/admin/notices.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
"use strict";var WPFormsAdminNotices=window.WPFormsAdminNotices||function(i,o){var s={init:function(){o(s.ready)},ready:function(){s.events()},events:function(){o(i).on("click",".wpforms-notice .notice-dismiss, .wpforms-notice .wpforms-notice-dismiss",s.dismissNotice)},dismissNotice:function(i){o.post(wpforms_admin_notices.ajax_url,{action:"wpforms_notice_dismiss",nonce:wpforms_admin_notices.nonce,id:(o(this).closest(".wpforms-notice").attr("id")||"").replace("wpforms-notice-","")})}};return s}(document,(window,jQuery));WPFormsAdminNotices.init();
|
assets/js/integrations/divi/formselector.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function n(o,i,a){function u(r,e){if(!i[r]){if(!o[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(c)return c(r,!0);throw new Error("Cannot find module '"+r+"'")}t=i[r]={exports:{}};o[r][0].call(t.exports,function(e){var t=o[r][1][e];return u(t||e)},t,t.exports,n,o,i,a)}return i[r].exports}for(var c="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";var c=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},n)).join("")?void 0:1}catch(e){return}}()?Object.assign:function(e,t){for(var r,n=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),o=1;o<arguments.length;o++){for(var i in r=Object(arguments[o]))s.call(r,i)&&(n[i]=r[i]);if(c)for(var a=c(r),u=0;u<a.length;u++)f.call(r,a[u])&&(n[a[u]]=r[a[u]])}return n}},{}],2:[function(e,t,r){t=t.exports={};function n(){}t.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var r=[];return window.addEventListener("message",function(e){var t=e.source;t!==window&&null!==t||"process-tick"!==e.data||(e.stopPropagation(),0<r.length&&r.shift()())},!0),function(e){r.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=n,t.addListener=n,t.once=n,t.off=n,t.removeListener=n,t.removeAllListeners=n,t.emit=n,t.binding=function(e){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw new Error("process.chdir is not supported")}},{}],3:[function(t,r,e){!function(c){"use strict";var s,f,l,p=function(){};function e(e,t,r,n,o){if("production"!==c.env.NODE_ENV)for(var i in e)if(l(e,i)){var a;try{if("function"!=typeof e[i]){var u=Error((n||"React class")+": "+r+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.");throw u.name="Invariant Violation",u}a=e[i](t,i,n,r,null,s)}catch(e){a=e}!a||a instanceof Error||p((n||"React class")+": type specification of "+r+" `"+i+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof a+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),a instanceof Error&&!(a.message in f)&&(f[a.message]=!0,i=o?o():"",p("Failed "+r+" type: "+a.message+(null!=i?i:"")))}}"production"!==c.env.NODE_ENV&&(s=t("./lib/ReactPropTypesSecret"),f={},l=Function.call.bind(Object.prototype.hasOwnProperty),p=function(e){e="Warning: "+e;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(e){}}),e.resetWarningCache=function(){"production"!==c.env.NODE_ENV&&(f={})},r.exports=e}.call(this,t("Xp6JUx"))},{"./lib/ReactPropTypesSecret":7,Xp6JUx:2}],4:[function(e,t,r){"use strict";var a=e("./lib/ReactPropTypesSecret");function n(){}function o(){}o.resetWarningCache=n,t.exports=function(){function e(e,t,r,n,o,i){if(i!==a){i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}var r={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:n};return r.PropTypes=r}},{"./lib/ReactPropTypesSecret":7}],5:[function(e,t,r){!function(d){"use strict";var m=e("react-is"),h=e("object-assign"),b=e("./lib/ReactPropTypesSecret"),n=e("./checkPropTypes"),v=Function.call.bind(Object.prototype.hasOwnProperty),g=function(){};function o(){return null}"production"!==d.env.NODE_ENV&&(g=function(e){e="Warning: "+e;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(e){}}),t.exports=function(i,l){var a="function"==typeof Symbol&&Symbol.iterator,u="@@iterator";var p="<<anonymous>>",e={array:t("array"),bool:t("boolean"),func:t("function"),number:t("number"),object:t("object"),string:t("string"),symbol:t("symbol"),any:r(o),arrayOf:function(c){return r(function(e,t,r,n,o){if("function"!=typeof c)return new y("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var i=e[t];if(!Array.isArray(i))return new y("Invalid "+n+" `"+o+"` of type `"+f(i)+"` supplied to `"+r+"`, expected an array.");for(var a=0;a<i.length;a++){var u=c(i,a,r,n,o+"["+a+"]",b);if(u instanceof Error)return u}return null})},element:r(function(e,t,r,n,o){return t=e[t],i(t)?null:new y("Invalid "+n+" `"+o+"` of type `"+f(t)+"` supplied to `"+r+"`, expected a single ReactElement.")}),elementType:r(function(e,t,r,n,o){return t=e[t],m.isValidElementType(t)?null:new y("Invalid "+n+" `"+o+"` of type `"+f(t)+"` supplied to `"+r+"`, expected a single ReactElement type.")}),instanceOf:function(a){return r(function(e,t,r,n,o){if(e[t]instanceof a)return null;var i=a.name||p;return new y("Invalid "+n+" `"+o+"` of type `"+((t=e[t]).constructor&&t.constructor.name?t.constructor.name:p)+"` supplied to `"+r+"`, expected instance of `"+i+"`.")})},node:r(function(e,t,r,n,o){return c(e[t])?null:new y("Invalid "+n+" `"+o+"` supplied to `"+r+"`, expected a ReactNode.")}),objectOf:function(c){return r(function(e,t,r,n,o){if("function"!=typeof c)return new y("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var i,a=e[t];if("object"!==(t=f(a)))return new y("Invalid "+n+" `"+o+"` of type `"+t+"` supplied to `"+r+"`, expected an object.");for(i in a)if(v(a,i)){var u=c(a,i,r,n,o+"."+i,b);if(u instanceof Error)return u}return null})},oneOf:function(u){if(Array.isArray(u))return r(function(e,t,r,n,o){for(var i=e[t],a=0;a<u.length;a++)if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(i,u[a]))return null;t=JSON.stringify(u,function(e,t){return"symbol"===s(t)?String(t):t});return new y("Invalid "+n+" `"+o+"` of value `"+String(i)+"` supplied to `"+r+"`, expected one of "+t+".")});"production"!==d.env.NODE_ENV&&g(1<arguments.length?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array.");return o},oneOfType:function(a){if(!Array.isArray(a))return"production"!==d.env.NODE_ENV&&g("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var e=0;e<a.length;e++){var t=a[e];if("function"!=typeof t)return g("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+function(e){var t=s(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}(t)+" at index "+e+"."),o}return r(function(e,t,r,n,o){for(var i=0;i<a.length;i++)if(null==(0,a[i])(e,t,r,n,o,b))return null;return new y("Invalid "+n+" `"+o+"` supplied to `"+r+"`.")})},shape:function(c){return r(function(e,t,r,n,o){var i,a=e[t];if("object"!==(t=f(a)))return new y("Invalid "+n+" `"+o+"` of type `"+t+"` supplied to `"+r+"`, expected `object`.");for(i in c){var u=c[i];if(u){u=u(a,i,r,n,o+"."+i,b);if(u)return u}}return null})},exact:function(s){return r(function(e,t,r,n,o){var i,a=e[t],u=f(a);if("object"!==u)return new y("Invalid "+n+" `"+o+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(i in h({},e[t],s)){var c=s[i];if(!c)return new y("Invalid "+n+" `"+o+"` key `"+i+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(e[t],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(s),null," "));c=c(a,i,r,n,o+"."+i,b);if(c)return c}return null})}};function y(e){this.message=e,this.stack=""}function r(c){var s,f;function e(e,t,r,n,o,i,a){if(n=n||p,i=i||r,a!==b){if(l){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}"production"===d.env.NODE_ENV||"undefined"==typeof console||!s[u=n+":"+r]&&f<3&&(g("You are manually calling a React.PropTypes validation function for the `"+i+"` prop on `"+n+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),s[u]=!0,f++)}return null==t[r]?e?null===t[r]?new y("The "+o+" `"+i+"` is marked as required in `"+n+"`, but its value is `null`."):new y("The "+o+" `"+i+"` is marked as required in `"+n+"`, but its value is `undefined`."):null:c(t,r,n,o,i)}"production"!==d.env.NODE_ENV&&(s={},f=0);var t=e.bind(null,!1);return t.isRequired=e.bind(null,!0),t}function t(a){return r(function(e,t,r,n,o,i){return f(t=e[t])===a?null:new y("Invalid "+n+" `"+o+"` of type `"+s(t)+"` supplied to `"+r+"`, expected `"+a+"`.")})}function c(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(c);if(null===e||i(e))return!0;var t=function(e){if("function"==typeof(e=e&&(a&&e[a]||e[u])))return e}(e);if(!t)return!1;var r,n=t.call(e);if(t!==e.entries){for(;!(r=n.next()).done;)if(!c(r.value))return!1}else for(;!(r=n.next()).done;){var o=r.value;if(o&&!c(o[1]))return!1}return!0;default:return!1}}function f(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":(e=e,"symbol"===t||e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t)}function s(e){if(null==e)return""+e;var t=f(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return y.prototype=Error.prototype,e.checkPropTypes=n,e.resetWarningCache=n.resetWarningCache,e.PropTypes=e}}.call(this,e("Xp6JUx"))},{"./checkPropTypes":3,"./lib/ReactPropTypesSecret":7,Xp6JUx:2,"object-assign":1,"react-is":10}],6:[function(t,r,e){!function(e){"production"!==e.env.NODE_ENV?(e=t("react-is"),r.exports=t("./factoryWithTypeCheckers")(e.isElement,!0)):r.exports=t("./factoryWithThrowingShims")()}.call(this,t("Xp6JUx"))},{"./factoryWithThrowingShims":4,"./factoryWithTypeCheckers":5,Xp6JUx:2,"react-is":10}],7:[function(e,t,r){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}],8:[function(e,t,I){!function(e){"use strict";function t(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:var r=e.type;switch(r){case l:case p:case a:case c:case u:case d:return r;default:var n=r&&r.$$typeof;switch(n){case f:case y:case b:case h:case s:return n;default:return t}}case i:return t}}}function r(e){return t(e)===p}var n,o,i,a,u,c,s,f,l,p,y,d,m,h,b,v,g,w,_,S,j,O,x,P,k,C,$,R,E,T;"production"!==e.env.NODE_ENV&&(n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,f=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,g=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119,S=p,j=f,O=s,x=o,P=y,k=a,C=b,$=h,R=i,E=c,e=u,n=d,T=!1,I.AsyncMode=l,I.ConcurrentMode=S,I.ContextConsumer=j,I.ContextProvider=O,I.Element=x,I.ForwardRef=P,I.Fragment=k,I.Lazy=C,I.Memo=$,I.Portal=R,I.Profiler=E,I.StrictMode=e,I.Suspense=n,I.isAsyncMode=function(e){return T||(T=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),r(e)||t(e)===l},I.isConcurrentMode=r,I.isContextConsumer=function(e){return t(e)===f},I.isContextProvider=function(e){return t(e)===s},I.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},I.isForwardRef=function(e){return t(e)===y},I.isFragment=function(e){return t(e)===a},I.isLazy=function(e){return t(e)===b},I.isMemo=function(e){return t(e)===h},I.isPortal=function(e){return t(e)===i},I.isProfiler=function(e){return t(e)===c},I.isStrictMode=function(e){return t(e)===u},I.isSuspense=function(e){return t(e)===d},I.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===p||e===c||e===u||e===d||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===s||e.$$typeof===f||e.$$typeof===y||e.$$typeof===g||e.$$typeof===w||e.$$typeof===_||e.$$typeof===v)},I.typeOf=t)}.call(this,e("Xp6JUx"))},{Xp6JUx:2}],9:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,f=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,g=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case l:case p:case a:case c:case u:case d:return e;default:switch(e=e&&e.$$typeof){case f:case y:case b:case h:case s:return e;default:return t}}case i:return t}}}function j(e){return S(e)===p}r.AsyncMode=l,r.ConcurrentMode=p,r.ContextConsumer=f,r.ContextProvider=s,r.Element=o,r.ForwardRef=y,r.Fragment=a,r.Lazy=b,r.Memo=h,r.Portal=i,r.Profiler=c,r.StrictMode=u,r.Suspense=d,r.isAsyncMode=function(e){return j(e)||S(e)===l},r.isConcurrentMode=j,r.isContextConsumer=function(e){return S(e)===f},r.isContextProvider=function(e){return S(e)===s},r.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},r.isForwardRef=function(e){return S(e)===y},r.isFragment=function(e){return S(e)===a},r.isLazy=function(e){return S(e)===b},r.isMemo=function(e){return S(e)===h},r.isPortal=function(e){return S(e)===i},r.isProfiler=function(e){return S(e)===c},r.isStrictMode=function(e){return S(e)===u},r.isSuspense=function(e){return S(e)===d},r.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===p||e===c||e===u||e===d||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===s||e.$$typeof===f||e.$$typeof===y||e.$$typeof===g||e.$$typeof===w||e.$$typeof===_||e.$$typeof===v)},r.typeOf=S},{}],10:[function(t,r,e){!function(e){"use strict";"production"===e.env.NODE_ENV?r.exports=t("./cjs/react-is.production.min.js"):r.exports=t("./cjs/react-is.development.js")}.call(this,t("Xp6JUx"))},{"./cjs/react-is.development.js":8,"./cjs/react-is.production.min.js":9,Xp6JUx:2}],11:[function(ke,e,Ce){!function(e){"use strict";"production"!==e.env.NODE_ENV&&function(){var d=ke("object-assign"),o=ke("prop-types/checkPropTypes"),e="function"==typeof Symbol&&Symbol.for,m=e?Symbol.for("react.element"):60103,h=e?Symbol.for("react.portal"):60106,u=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,c=e?Symbol.for("react.provider"):60109,s=e?Symbol.for("react.context"):60110,t=e?Symbol.for("react.concurrent_mode"):60111,f=e?Symbol.for("react.forward_ref"):60112,l=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,y=e?Symbol.for("react.memo"):60115,b=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,r=e?Symbol.for("react.fundamental"):60117,n=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119,w="function"==typeof Symbol&&Symbol.iterator,_="@@iterator";function S(e){if(null===e||"object"!=typeof e)return null;e=w&&e[w]||e[_];return"function"==typeof e?e:null}var j={current:null},O={current:null},x=/^(.*)[\\\/]/;var P=1;function k(e){if(null==e)return null;if("number"==typeof e.tag&&I("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case u:return"Fragment";case h:return"Portal";case a:return"Profiler";case i:return"StrictMode";case l:return"Suspense";case p:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case s:return"Context.Consumer";case c:return"Context.Provider";case f:return r=(t=e).render,n="ForwardRef",r=r.displayName||r.name||"",t.displayName||(""!==r?n+"("+r+")":n);case y:return k(e.type);case v:return k(e.render);case b:n=(n=e)._status===P?n._result:null;if(n)return k(n)}var t,r,n;return null}var C={},$=null;function R(e){$=e}C.getCurrentStack=null,C.getStackAddendum=function(){var e,t,r,n,o,i="";$&&(n=k($.type),o=$._owner,i+=(e=n,t=$._source,r=o&&k(o.type),a="",t?(o=(n=t.fileName).replace(x,""),/^index\./.test(o)&&(!(n=n.match(x))||(n=n[1])&&(o=n.replace(x,"")+"/"+o)),a=" (at "+o+":"+t.lineNumber+")"):r&&(a=" (created by "+r+")"),"\n in "+(e||"Unknown")+a));var a=C.getCurrentStack;return a&&(i+=a()||""),i};var E={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:O,IsSomeRendererActing:{current:!1},assign:d};function T(e){for(var t=arguments.length,r=new Array(1<t?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];N("warn",e,r)}function I(e){for(var t=arguments.length,r=new Array(1<t?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];N("error",e,r)}function N(e,t,r){0<r.length&&"string"==typeof r[r.length-1]&&0===r[r.length-1].indexOf("\n in")||""!==(n=E.ReactDebugCurrentFrame.getStackAddendum())&&(t+="%s",r=r.concat([n]));var n=r.map(function(e){return""+e});n.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,n);try{var o=0,i="Warning: "+t.replace(/%s/g,function(){return r[o++]});throw new Error(i)}catch(e){}}d(E,{ReactDebugCurrentFrame:C,ReactComponentTreeHook:{}});var A={};function D(e,t){var r=e.constructor,e=r&&(r.displayName||r.name)||"ReactClass",r=e+"."+t;A[r]||(I("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),A[r]=!0)}var M={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,r){D(e,"forceUpdate")},enqueueReplaceState:function(e,t,r,n){D(e,"replaceState")},enqueueSetState:function(e,t,r,n){D(e,"setState")}},U={};function V(e,t,r){this.props=e,this.context=t,this.refs=U,this.updater=r||M}Object.freeze(U),V.prototype.isReactComponent={},V.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},V.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var F,L={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]};for(F in L)L.hasOwnProperty(F)&&function(e,t){Object.defineProperty(V.prototype,e,{get:function(){T("%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})}(F,L[F]);function q(){}function W(e,t,r){this.props=e,this.context=t,this.refs=U,this.updater=r||M}q.prototype=V.prototype;e=W.prototype=new q;e.constructor=W,d(e,V.prototype),e.isPureReactComponent=!0;var z,J,X=Object.prototype.hasOwnProperty,B={key:!0,ref:!0,__self:!0,__source:!0};function Y(e){if(X.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return}return void 0!==e.ref}function H(e){if(X.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return}return void 0!==e.key}var Q={},G=function(e,t,r,n,o,i,a){i={$$typeof:m,type:e,key:t,ref:r,props:a,_owner:i,_store:{}};return Object.defineProperty(i._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(i,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(i,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(i.props),Object.freeze(i)),i};function K(e,t,r){var n,o,i,a={},u=null,c=null,s=null,f=null;if(null!=t)for(n in Y(t)&&(c=t.ref,"string"==typeof(o=t).ref&&O.current&&o.__self&&O.current.stateNode!==o.__self&&(i=k(O.current.type),Q[i]||(I('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',k(O.current.type),o.ref),Q[i]=!0))),H(t)&&(u=""+t.key),s=void 0===t.__self?null:t.__self,f=void 0===t.__source?null:t.__source,t)X.call(t,n)&&!B.hasOwnProperty(n)&&(a[n]=t[n]);var l,p,y,d=arguments.length-2;if(1==d)a.children=r;else if(1<d){for(var m=Array(d),h=0;h<d;h++)m[h]=arguments[h+2];Object.freeze&&Object.freeze(m),a.children=m}if(e&&e.defaultProps){var b=e.defaultProps;for(n in b)void 0===a[n]&&(a[n]=b[n])}function v(){J||(J=!0,I("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",l))}function g(){z||(z=!0,I("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",y))}return(u||c)&&(r="function"==typeof e?e.displayName||e.name||"Unknown":e,u&&(p=a,y=r,g.isReactWarning=!0,Object.defineProperty(p,"key",{get:g,configurable:!0})),c&&(p=a,l=r,v.isReactWarning=!0,Object.defineProperty(p,"ref",{get:v,configurable:!0}))),G(e,u,c,s,f,O.current,a)}function Z(e){return"object"==typeof e&&null!==e&&e.$$typeof===m}var ee=".",te=":";var re=!1,ne=/\/+/g;function oe(e){return(""+e).replace(ne,"$&/")}var ie=10,ae=[];function ue(e,t,r,n){if(ae.length){var o=ae.pop();return o.result=e,o.keyPrefix=t,o.func=r,o.context=n,o.count=0,o}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function ce(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,ae.length<ie&&ae.push(e)}function se(e,t,r){return null==e?0:function e(t,r,n,o){var i,a=typeof t,u=!1;if(null===(t="undefined"==a||"boolean"==a?null:t))u=!0;else switch(a){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case m:case h:u=!0}}if(u)return n(o,t,""===r?ee+fe(t,0):r),1;var c=0,s=""===r?ee:r+te;if(Array.isArray(t))for(var f=0;f<t.length;f++)c+=e(i=t[f],s+fe(i,f),n,o);else if("function"==typeof(r=S(t))){r===t.entries&&(re||T("Using Maps as children is deprecated and will be removed in a future major release. Consider converting children to an array of keyed ReactElements instead."),re=!0);for(var l,p=r.call(t),y=0;!(l=p.next()).done;)c+=e(i=l.value,s+fe(i,y++),n,o)}else if("object"==a)throw r="",r=" If you meant to render a collection of children, use an array instead."+C.getStackAddendum(),a=""+t,Error("Objects are not valid as a React child (found: "+("[object Object]"==a?"object with keys {"+Object.keys(t).join(", ")+"}":a)+")."+r);return c}(e,"",t,r)}function fe(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(e=e.key,r={"=":"=0",":":"=2"},"$"+(""+e).replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var r}function le(e,t,r){var n=e.func,o=e.context;n.call(o,t,e.count++)}function pe(e,t,r){var n=e.result,o=e.keyPrefix,i=e.func,a=e.context,e=i.call(a,t,e.count++);Array.isArray(e)?ye(e,n,r,function(e){return e}):null!=e&&(Z(e)&&(r=o+(!(o=e).key||t&&t.key===e.key?"":oe(e.key)+"/")+r,e=G(o.type,r,o.ref,o._self,o._source,o._owner,o.props)),n.push(e))}function ye(e,t,r,n,o){var i="",o=ue(t,i=null!=r?oe(r)+"/":i,n,o);se(e,pe,o),ce(o)}function de(e){return"string"==typeof e||"function"==typeof e||e===u||e===t||e===a||e===i||e===l||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===y||e.$$typeof===c||e.$$typeof===s||e.$$typeof===f||e.$$typeof===r||e.$$typeof===n||e.$$typeof===g||e.$$typeof===v)}function me(){var e=j.current;if(null===e)throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.");return e}function he(){if(O.current){var e=k(O.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}var be=!1,ve={};function ge(e,t){var r;e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,r=t,(t=he())||(r="string"==typeof r?r:r.displayName||r.name)&&(t="\n\nCheck the top-level render call using <"+r+">."),ve[r=t]||(ve[r]=!0,t="",e&&e._owner&&e._owner!==O.current&&(t=" It was passed a child from "+k(e._owner.type)+"."),R(e),I('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',r,t),R(null)))}function we(e,t){if("object"==typeof e)if(Array.isArray(e))for(var r=0;r<e.length;r++){var n=e[r];Z(n)&&ge(n,t)}else if(Z(e))e._store&&(e._store.validated=!0);else if(e){var o=S(e);if("function"==typeof o&&o!==e.entries)for(var i,a=o.call(e);!(i=a.next()).done;)Z(i.value)&&ge(i.value,t)}}function _e(e){var t=e.type;if(null!=t&&"string"!=typeof t){var r,n=k(t);if("function"==typeof t)r=t.propTypes;else{if("object"!=typeof t||t.$$typeof!==f&&t.$$typeof!==y)return;r=t.propTypes}r?(R(e),o(r,e.props,"prop",n,C.getStackAddendum),R(null)):void 0===t.PropTypes||be||(be=!0,I("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",n||"Unknown")),"function"!=typeof t.getDefaultProps||t.getDefaultProps.isReactClassApproved||I("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Se(e,t,r){var n,o=de(e);o||(i="",(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(i+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."),i+=(null==(t=t)||void 0===(t=t.__source)?"":"\n\nCheck your code at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+".")||he(),null===e?n="null":Array.isArray(e)?n="array":void 0!==e&&e.$$typeof===m?(n="<"+(k(e.type)||"Unknown")+" />",i=" Did you accidentally export a JSX literal instead of a component?"):n=typeof e,I("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",n,i));var i=K.apply(this,arguments);if(null==i)return i;if(o)for(var a=2;a<arguments.length;a++)we(arguments[a],e);return(e===u?function(e){R(e);for(var t=Object.keys(e.props),r=0;r<t.length;r++){var n=t[r];if("children"!==n&&"key"!==n){I("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n);break}}null!==e.ref&&I("Invalid attribute `ref` supplied to `React.Fragment`."),R(null)}:_e)(i),i}var je=!1;try{var Oe=Object.freeze({}),xe=new Map([[Oe,null]]),Pe=new Set([Oe]);xe.set(0,0),Pe.add(0)}catch(e){}Oe=Se,xe=function(e,t,r){for(var n=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n,o,i=d({},e.props),a=e.key,u=e.ref,c=e._self,s=e._source,f=e._owner;if(null!=t)for(n in Y(t)&&(u=t.ref,f=O.current),H(t)&&(a=""+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)X.call(t,n)&&!B.hasOwnProperty(n)&&(void 0===t[n]&&void 0!==o?i[n]=o[n]:i[n]=t[n]);var l=arguments.length-2;if(1==l)i.children=r;else if(1<l){for(var p=Array(l),y=0;y<l;y++)p[y]=arguments[y+2];i.children=p}return G(e.type,a,u,c,s,f,i)}.apply(this,arguments),o=2;o<arguments.length;o++)we(arguments[o],n.type);return _e(n),n},Pe=function(e){var t=Se.bind(null,e);return t.type=e,je||(je=!0,T("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(t,"type",{enumerable:!1,get:function(){return T("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:e}),e}}),t};Ce.Children={map:function(e,t,r){if(null==e)return e;var n=[];return ye(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;r=ue(null,null,t,r),se(e,le,r),ce(r)},count:function(e){return se(e,function(){return null},null)},toArray:function(e){var t=[];return ye(e,t,null,function(e){return e}),t},only:function(e){if(!Z(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},Ce.Component=V,Ce.Fragment=u,Ce.Profiler=a,Ce.PureComponent=W,Ce.StrictMode=i,Ce.Suspense=l,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=E,Ce.cloneElement=xe,Ce.createContext=function(e,t){void 0===t?t=null:null!==t&&"function"!=typeof t&&I("createContext: Expected the optional second argument to be a function. Instead received: %s",t);var r={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},n=!(r.Provider={$$typeof:c,_context:r}),o=!1,e={$$typeof:s,_context:r,_calculateChangedBits:r._calculateChangedBits};return Object.defineProperties(e,{Provider:{get:function(){return o||(o=!0,I("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),r.Provider},set:function(e){r.Provider=e}},_currentValue:{get:function(){return r._currentValue},set:function(e){r._currentValue=e}},_currentValue2:{get:function(){return r._currentValue2},set:function(e){r._currentValue2=e}},_threadCount:{get:function(){return r._threadCount},set:function(e){r._threadCount=e}},Consumer:{get:function(){return n||(n=!0,I("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),r.Consumer}}}),r.Consumer=e,r._currentRenderer=null,r._currentRenderer2=null,r},Ce.createElement=Oe,Ce.createFactory=Pe,Ce.createRef=function(){var e={current:null};return Object.seal(e),e},Ce.forwardRef=function(e){return null!=e&&e.$$typeof===y?I("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?I("forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&I("forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null==e.defaultProps&&null==e.propTypes||I("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?")),{$$typeof:f,render:e}},Ce.isValidElement=Z,Ce.lazy=function(e){var t,r,n={$$typeof:b,_ctor:e,_status:-1,_result:null};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){I("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),t=e,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(e){I("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=e,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},Ce.memo=function(e,t){return de(e)||I("memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e),{$$typeof:y,type:e,compare:void 0===t?null:t}},Ce.useCallback=function(e,t){return me().useCallback(e,t)},Ce.useContext=function(e,t){var r,n=me();return void 0!==t&&I("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",t,"number"==typeof t&&Array.isArray(arguments[2])?"\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks":""),void 0!==e._context&&((r=e._context).Consumer===e?I("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):r.Provider===e&&I("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")),n.useContext(e,t)},Ce.useDebugValue=function(e,t){return me().useDebugValue(e,t)},Ce.useEffect=function(e,t){return me().useEffect(e,t)},Ce.useImperativeHandle=function(e,t,r){return me().useImperativeHandle(e,t,r)},Ce.useLayoutEffect=function(e,t){return me().useLayoutEffect(e,t)},Ce.useMemo=function(e,t){return me().useMemo(e,t)},Ce.useReducer=function(e,t,r){return me().useReducer(e,t,r)},Ce.useRef=function(e){return me().useRef(e)},Ce.useState=function(e){return me().useState(e)},Ce.version="16.14.0"}()}.call(this,ke("Xp6JUx"))},{Xp6JUx:2,"object-assign":1,"prop-types/checkPropTypes":3}],12:[function(e,t,r){"use strict";var f=e("object-assign"),n="function"==typeof Symbol&&Symbol.for,l=n?Symbol.for("react.element"):60103,s=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,a=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,p=n?Symbol.for("react.forward_ref"):60112,e=n?Symbol.for("react.suspense"):60113,y=n?Symbol.for("react.memo"):60115,d=n?Symbol.for("react.lazy"):60116,m="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v={};function g(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||b}function w(){}function _(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||b}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=g.prototype;n=_.prototype=new w;n.constructor=_,f(n,g.prototype),n.isPureReactComponent=!0;var S={current:null},j=Object.prototype.hasOwnProperty,O={key:!0,ref:!0,__self:!0,__source:!0};function x(e,t,r){var n,o={},i=null,a=null;if(null!=t)for(n in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(i=""+t.key),t)j.call(t,n)&&!O.hasOwnProperty(n)&&(o[n]=t[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];o.children=c}if(e&&e.defaultProps)for(n in u=e.defaultProps)void 0===o[n]&&(o[n]=u[n]);return{$$typeof:l,type:e,key:i,ref:a,props:o,_owner:S.current}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===l}var k=/\/+/g,C=[];function $(e,t,r,n){if(C.length){var o=C.pop();return o.result=e,o.keyPrefix=t,o.func=r,o.context=n,o.count=0,o}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function R(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,C.length<10&&C.push(e)}function E(e,t,r){return null==e?0:function e(t,r,n,o){var i=!1;if(null===(t="undefined"==(u=typeof t)||"boolean"===u?null:t))i=!0;else switch(u){case"string":case"number":i=!0;break;case"object":switch(t.$$typeof){case l:case s:i=!0}}if(i)return n(o,t,""===r?"."+T(t,0):r),1;if(i=0,r=""===r?".":r+":",Array.isArray(t))for(var a=0;a<t.length;a++){var u,c=r+T(u=t[a],a);i+=e(u,c,n,o)}else if("function"==typeof(c=null!==t&&"object"==typeof t&&"function"==typeof(c=m&&t[m]||t["@@iterator"])?c:null))for(t=c.call(t),a=0;!(u=t.next()).done;)i+=e(u=u.value,c=r+T(u,a++),n,o);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return i}(e,"",t,r)}function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(e=e.key,r={"=":"=0",":":"=2"},"$"+(""+e).replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var r}function I(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?A(e,n,r,function(e){return e}):null!=e&&(P(e)&&(r=o+(!(o=e).key||t&&t.key===e.key?"":(""+e.key).replace(k,"$&/")+"/")+r,e={$$typeof:l,type:o.type,key:r,ref:o.ref,props:o.props,_owner:o._owner}),n.push(e))}function A(e,t,r,n,o){var i="";E(e,N,t=$(t,i=null!=r?(""+r).replace(k,"$&/")+"/":i,n,o)),R(t)}var D={current:null};function M(){var e=D.current;if(null===e)throw Error(h(321));return e}n={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:S,IsSomeRendererActing:{current:!1},assign:f};r.Children={map:function(e,t,r){if(null==e)return e;var n=[];return A(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;E(e,I,t=$(null,null,t,r)),R(t)},count:function(e){return E(e,function(){return null},null)},toArray:function(e){var t=[];return A(e,t,null,function(e){return e}),t},only:function(e){if(!P(e))throw Error(h(143));return e}},r.Component=g,r.Fragment=o,r.Profiler=a,r.PureComponent=_,r.StrictMode=i,r.Suspense=e,r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=n,r.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var n=f({},e.props),o=e.key,i=e.ref,a=e._owner;if(null!=t)for(u in void 0!==t.ref&&(i=t.ref,a=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps&&(c=e.type.defaultProps),t)j.call(t,u)&&!O.hasOwnProperty(u)&&(n[u]=(void 0===t[u]&&void 0!==c?c:t)[u]);var u=arguments.length-2;if(1===u)n.children=r;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];n.children=c}return{$$typeof:l,type:e.type,key:o,ref:i,props:n,_owner:a}},r.createContext=function(e,t){return(e={$$typeof:c,_calculateChangedBits:t=void 0===t?null:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},r.createElement=x,r.createFactory=function(e){var t=x.bind(null,e);return t.type=e,t},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:p,render:e}},r.isValidElement=P,r.lazy=function(e){return{$$typeof:d,_ctor:e,_status:-1,_result:null}},r.memo=function(e,t){return{$$typeof:y,type:e,compare:void 0===t?null:t}},r.useCallback=function(e,t){return M().useCallback(e,t)},r.useContext=function(e,t){return M().useContext(e,t)},r.useDebugValue=function(){},r.useEffect=function(e,t){return M().useEffect(e,t)},r.useImperativeHandle=function(e,t,r){return M().useImperativeHandle(e,t,r)},r.useLayoutEffect=function(e,t){return M().useLayoutEffect(e,t)},r.useMemo=function(e,t){return M().useMemo(e,t)},r.useReducer=function(e,t,r){return M().useReducer(e,t,r)},r.useRef=function(e){return M().useRef(e)},r.useState=function(e){return M().useState(e)},r.version="16.14.0"},{"object-assign":1}],13:[function(t,r,e){!function(e){"use strict";"production"===e.env.NODE_ENV?r.exports=t("./cjs/react.production.min.js"):r.exports=t("./cjs/react.development.js")}.call(this,t("Xp6JUx"))},{"./cjs/react.development.js":11,"./cjs/react.production.min.js":12,Xp6JUx:2}],14:[function(e,t,r){"use strict";function a(e){return(a="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})(e)}var n,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var r,n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var i;Object.prototype.hasOwnProperty.call(e,r)&&((i=o?Object.getOwnPropertyDescriptor(e,r):null)&&(i.get||i.set)?Object.defineProperty(n,r,i):n[r]=e[r])}n.default=e,t&&t.set(e,n);return n}(e("react")),u=(n=e("prop-types"))&&n.__esModule?n:{default:n};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(r){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=o(r);return e=n?(e=o(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==a(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var p,y,d,m=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(o,i.Component);var e,t,r,n=l(o);function o(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(e=n.call(this,e)).state={error:null,isLoading:!0,form:null},e}return e=o,r=[{key:"propTypes",get:function(){return{form_id:u.default.number,show_title:u.default.string,show_desc:u.default.string}}}],(t=[{key:"componentDidUpdate",value:function(e){e.form_id===this.props.form_id&&e.show_title===this.props.show_title&&e.show_desc===this.props.show_desc||this.componentDidMount()}},{key:"componentDidMount",value:function(){var t=this,e=new FormData;e.append("nonce",wpforms_divi_builder.nonce),e.append("action","wpforms_divi_preview"),e.append("form_id",this.props.form_id),e.append("show_title",this.props.show_title),e.append("show_desc",this.props.show_desc),fetch(wpforms_divi_builder.ajax_url,{method:"POST",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then(function(e){return e.json()}).then(function(e){t.setState({isLoading:!1,form:e.data})},function(e){t.setState({isLoading:!1,error:e})})}},{key:"render",value:function(){var e=this.state,t=e.error,r=e.isLoaded,e=e.form,r=r?"wpforms-divi-form-preview loading":"wpforms-divi-form-preview";return t||!e?i.default.createElement("div",{className:"wpforms-divi-form-placeholder"},i.default.createElement("img",{src:wpforms_divi_builder.placeholder}),i.default.createElement("h3",null,wpforms_divi_builder.placeholder_title)):i.default.createElement("div",{className:r},i.default.createElement("div",{dangerouslySetInnerHTML:{__html:e}}))}}])&&s(e.prototype,t),r&&s(e,r),o}();d="wpforms_selector",(y="slug")in(p=m)?Object.defineProperty(p,y,{value:d,enumerable:!0,configurable:!0,writable:!0}):p[y]=d,jQuery(window).on("et_builder_api_ready",function(e,t){t.registerModules([m])})},{"prop-types":6,react:13}]},{},[14]);
|
1 |
+
!function n(o,i,a){function u(r,e){if(!i[r]){if(!o[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(c)return c(r,!0);throw new Error("Cannot find module '"+r+"'")}t=i[r]={exports:{}};o[r][0].call(t.exports,function(e){var t=o[r][1][e];return u(t||e)},t,t.exports,n,o,i,a)}return i[r].exports}for(var c="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";var c=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},n)).join("")?void 0:1}catch(e){return}}()?Object.assign:function(e,t){for(var r,n=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),o=1;o<arguments.length;o++){for(var i in r=Object(arguments[o]))s.call(r,i)&&(n[i]=r[i]);if(c)for(var a=c(r),u=0;u<a.length;u++)f.call(r,a[u])&&(n[a[u]]=r[a[u]])}return n}},{}],2:[function(e,t,r){t=t.exports={};function n(){}t.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var r=[];return window.addEventListener("message",function(e){var t=e.source;t!==window&&null!==t||"process-tick"!==e.data||(e.stopPropagation(),0<r.length&&r.shift()())},!0),function(e){r.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=n,t.addListener=n,t.once=n,t.off=n,t.removeListener=n,t.removeAllListeners=n,t.emit=n,t.binding=function(e){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw new Error("process.chdir is not supported")}},{}],3:[function(t,r,e){!function(c){"use strict";var s,f,l,p=function(){};function e(e,t,r,n,o){if("production"!==c.env.NODE_ENV)for(var i in e)if(l(e,i)){var a;try{if("function"!=typeof e[i]){var u=Error((n||"React class")+": "+r+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.");throw u.name="Invariant Violation",u}a=e[i](t,i,n,r,null,s)}catch(e){a=e}!a||a instanceof Error||p((n||"React class")+": type specification of "+r+" `"+i+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof a+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),a instanceof Error&&!(a.message in f)&&(f[a.message]=!0,i=o?o():"",p("Failed "+r+" type: "+a.message+(null!=i?i:"")))}}"production"!==c.env.NODE_ENV&&(s=t("./lib/ReactPropTypesSecret"),f={},l=Function.call.bind(Object.prototype.hasOwnProperty),p=function(e){e="Warning: "+e;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(e){}}),e.resetWarningCache=function(){"production"!==c.env.NODE_ENV&&(f={})},r.exports=e}.call(this,t("Xp6JUx"))},{"./lib/ReactPropTypesSecret":7,Xp6JUx:2}],4:[function(e,t,r){"use strict";var a=e("./lib/ReactPropTypesSecret");function n(){}function o(){}o.resetWarningCache=n,t.exports=function(){function e(e,t,r,n,o,i){if(i!==a){i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}var r={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:n};return r.PropTypes=r}},{"./lib/ReactPropTypesSecret":7}],5:[function(e,t,r){!function(d){"use strict";var m=e("react-is"),h=e("object-assign"),b=e("./lib/ReactPropTypesSecret"),n=e("./checkPropTypes"),v=Function.call.bind(Object.prototype.hasOwnProperty),g=function(){};function o(){return null}"production"!==d.env.NODE_ENV&&(g=function(e){e="Warning: "+e;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(e){}}),t.exports=function(i,l){var a="function"==typeof Symbol&&Symbol.iterator,u="@@iterator";var p="<<anonymous>>",e={array:t("array"),bool:t("boolean"),func:t("function"),number:t("number"),object:t("object"),string:t("string"),symbol:t("symbol"),any:r(o),arrayOf:function(c){return r(function(e,t,r,n,o){if("function"!=typeof c)return new y("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var i=e[t];if(!Array.isArray(i))return new y("Invalid "+n+" `"+o+"` of type `"+f(i)+"` supplied to `"+r+"`, expected an array.");for(var a=0;a<i.length;a++){var u=c(i,a,r,n,o+"["+a+"]",b);if(u instanceof Error)return u}return null})},element:r(function(e,t,r,n,o){return t=e[t],i(t)?null:new y("Invalid "+n+" `"+o+"` of type `"+f(t)+"` supplied to `"+r+"`, expected a single ReactElement.")}),elementType:r(function(e,t,r,n,o){return t=e[t],m.isValidElementType(t)?null:new y("Invalid "+n+" `"+o+"` of type `"+f(t)+"` supplied to `"+r+"`, expected a single ReactElement type.")}),instanceOf:function(a){return r(function(e,t,r,n,o){if(e[t]instanceof a)return null;var i=a.name||p;return new y("Invalid "+n+" `"+o+"` of type `"+((t=e[t]).constructor&&t.constructor.name?t.constructor.name:p)+"` supplied to `"+r+"`, expected instance of `"+i+"`.")})},node:r(function(e,t,r,n,o){return c(e[t])?null:new y("Invalid "+n+" `"+o+"` supplied to `"+r+"`, expected a ReactNode.")}),objectOf:function(c){return r(function(e,t,r,n,o){if("function"!=typeof c)return new y("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var i,a=e[t];if("object"!==(t=f(a)))return new y("Invalid "+n+" `"+o+"` of type `"+t+"` supplied to `"+r+"`, expected an object.");for(i in a)if(v(a,i)){var u=c(a,i,r,n,o+"."+i,b);if(u instanceof Error)return u}return null})},oneOf:function(u){if(Array.isArray(u))return r(function(e,t,r,n,o){for(var i=e[t],a=0;a<u.length;a++)if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(i,u[a]))return null;t=JSON.stringify(u,function(e,t){return"symbol"===s(t)?String(t):t});return new y("Invalid "+n+" `"+o+"` of value `"+String(i)+"` supplied to `"+r+"`, expected one of "+t+".")});"production"!==d.env.NODE_ENV&&g(1<arguments.length?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array.");return o},oneOfType:function(a){if(!Array.isArray(a))return"production"!==d.env.NODE_ENV&&g("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var e=0;e<a.length;e++){var t=a[e];if("function"!=typeof t)return g("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+function(e){var t=s(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}(t)+" at index "+e+"."),o}return r(function(e,t,r,n,o){for(var i=0;i<a.length;i++)if(null==(0,a[i])(e,t,r,n,o,b))return null;return new y("Invalid "+n+" `"+o+"` supplied to `"+r+"`.")})},shape:function(c){return r(function(e,t,r,n,o){var i,a=e[t];if("object"!==(t=f(a)))return new y("Invalid "+n+" `"+o+"` of type `"+t+"` supplied to `"+r+"`, expected `object`.");for(i in c){var u=c[i];if(u){u=u(a,i,r,n,o+"."+i,b);if(u)return u}}return null})},exact:function(s){return r(function(e,t,r,n,o){var i,a=e[t],u=f(a);if("object"!==u)return new y("Invalid "+n+" `"+o+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(i in h({},e[t],s)){var c=s[i];if(!c)return new y("Invalid "+n+" `"+o+"` key `"+i+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(e[t],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(s),null," "));c=c(a,i,r,n,o+"."+i,b);if(c)return c}return null})}};function y(e){this.message=e,this.stack=""}function r(c){var s,f;function e(e,t,r,n,o,i,a){if(n=n||p,i=i||r,a!==b){if(l){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}"production"===d.env.NODE_ENV||"undefined"==typeof console||!s[u=n+":"+r]&&f<3&&(g("You are manually calling a React.PropTypes validation function for the `"+i+"` prop on `"+n+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),s[u]=!0,f++)}return null==t[r]?e?null===t[r]?new y("The "+o+" `"+i+"` is marked as required in `"+n+"`, but its value is `null`."):new y("The "+o+" `"+i+"` is marked as required in `"+n+"`, but its value is `undefined`."):null:c(t,r,n,o,i)}"production"!==d.env.NODE_ENV&&(s={},f=0);var t=e.bind(null,!1);return t.isRequired=e.bind(null,!0),t}function t(a){return r(function(e,t,r,n,o,i){return f(t=e[t])===a?null:new y("Invalid "+n+" `"+o+"` of type `"+s(t)+"` supplied to `"+r+"`, expected `"+a+"`.")})}function c(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(c);if(null===e||i(e))return!0;var t=function(e){if("function"==typeof(e=e&&(a&&e[a]||e[u])))return e}(e);if(!t)return!1;var r,n=t.call(e);if(t!==e.entries){for(;!(r=n.next()).done;)if(!c(r.value))return!1}else for(;!(r=n.next()).done;){var o=r.value;if(o&&!c(o[1]))return!1}return!0;default:return!1}}function f(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":(e=e,"symbol"===t||e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t)}function s(e){if(null==e)return""+e;var t=f(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return y.prototype=Error.prototype,e.checkPropTypes=n,e.resetWarningCache=n.resetWarningCache,e.PropTypes=e}}.call(this,e("Xp6JUx"))},{"./checkPropTypes":3,"./lib/ReactPropTypesSecret":7,Xp6JUx:2,"object-assign":1,"react-is":10}],6:[function(t,r,e){!function(e){"production"!==e.env.NODE_ENV?(e=t("react-is"),r.exports=t("./factoryWithTypeCheckers")(e.isElement,!0)):r.exports=t("./factoryWithThrowingShims")()}.call(this,t("Xp6JUx"))},{"./factoryWithThrowingShims":4,"./factoryWithTypeCheckers":5,Xp6JUx:2,"react-is":10}],7:[function(e,t,r){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}],8:[function(e,t,I){!function(e){"use strict";function t(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:var r=e.type;switch(r){case l:case p:case a:case c:case u:case d:return r;default:var n=r&&r.$$typeof;switch(n){case f:case y:case b:case h:case s:return n;default:return t}}case i:return t}}}function r(e){return t(e)===p}var n,o,i,a,u,c,s,f,l,p,y,d,m,h,b,v,g,w,_,S,j,O,x,P,k,C,$,R,E,T;"production"!==e.env.NODE_ENV&&(n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,f=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,g=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119,S=p,j=f,O=s,x=o,P=y,k=a,C=b,$=h,R=i,E=c,e=u,n=d,T=!1,I.AsyncMode=l,I.ConcurrentMode=S,I.ContextConsumer=j,I.ContextProvider=O,I.Element=x,I.ForwardRef=P,I.Fragment=k,I.Lazy=C,I.Memo=$,I.Portal=R,I.Profiler=E,I.StrictMode=e,I.Suspense=n,I.isAsyncMode=function(e){return T||(T=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),r(e)||t(e)===l},I.isConcurrentMode=r,I.isContextConsumer=function(e){return t(e)===f},I.isContextProvider=function(e){return t(e)===s},I.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},I.isForwardRef=function(e){return t(e)===y},I.isFragment=function(e){return t(e)===a},I.isLazy=function(e){return t(e)===b},I.isMemo=function(e){return t(e)===h},I.isPortal=function(e){return t(e)===i},I.isProfiler=function(e){return t(e)===c},I.isStrictMode=function(e){return t(e)===u},I.isSuspense=function(e){return t(e)===d},I.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===p||e===c||e===u||e===d||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===s||e.$$typeof===f||e.$$typeof===y||e.$$typeof===g||e.$$typeof===w||e.$$typeof===_||e.$$typeof===v)},I.typeOf=t)}.call(this,e("Xp6JUx"))},{Xp6JUx:2}],9:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,f=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,b=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,g=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case l:case p:case a:case c:case u:case d:return e;default:switch(e=e&&e.$$typeof){case f:case y:case b:case h:case s:return e;default:return t}}case i:return t}}}function j(e){return S(e)===p}r.AsyncMode=l,r.ConcurrentMode=p,r.ContextConsumer=f,r.ContextProvider=s,r.Element=o,r.ForwardRef=y,r.Fragment=a,r.Lazy=b,r.Memo=h,r.Portal=i,r.Profiler=c,r.StrictMode=u,r.Suspense=d,r.isAsyncMode=function(e){return j(e)||S(e)===l},r.isConcurrentMode=j,r.isContextConsumer=function(e){return S(e)===f},r.isContextProvider=function(e){return S(e)===s},r.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},r.isForwardRef=function(e){return S(e)===y},r.isFragment=function(e){return S(e)===a},r.isLazy=function(e){return S(e)===b},r.isMemo=function(e){return S(e)===h},r.isPortal=function(e){return S(e)===i},r.isProfiler=function(e){return S(e)===c},r.isStrictMode=function(e){return S(e)===u},r.isSuspense=function(e){return S(e)===d},r.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===p||e===c||e===u||e===d||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===s||e.$$typeof===f||e.$$typeof===y||e.$$typeof===g||e.$$typeof===w||e.$$typeof===_||e.$$typeof===v)},r.typeOf=S},{}],10:[function(t,r,e){!function(e){"use strict";"production"===e.env.NODE_ENV?r.exports=t("./cjs/react-is.production.min.js"):r.exports=t("./cjs/react-is.development.js")}.call(this,t("Xp6JUx"))},{"./cjs/react-is.development.js":8,"./cjs/react-is.production.min.js":9,Xp6JUx:2}],11:[function(ke,e,Ce){!function(e){"use strict";"production"!==e.env.NODE_ENV&&function(){var d=ke("object-assign"),o=ke("prop-types/checkPropTypes"),e="function"==typeof Symbol&&Symbol.for,m=e?Symbol.for("react.element"):60103,h=e?Symbol.for("react.portal"):60106,u=e?Symbol.for("react.fragment"):60107,n=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,a=e?Symbol.for("react.provider"):60109,c=e?Symbol.for("react.context"):60110,t=e?Symbol.for("react.concurrent_mode"):60111,s=e?Symbol.for("react.forward_ref"):60112,f=e?Symbol.for("react.suspense"):60113,l=e?Symbol.for("react.suspense_list"):60120,p=e?Symbol.for("react.memo"):60115,y=e?Symbol.for("react.lazy"):60116,b=e?Symbol.for("react.block"):60121,r=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119,w="function"==typeof Symbol&&Symbol.iterator,_="@@iterator";function S(e){if(null===e||"object"!=typeof e)return null;e=w&&e[w]||e[_];return"function"==typeof e?e:null}var j={current:null},O={current:null},x=/^(.*)[\\\/]/;var P=1;function k(e){if(null==e)return null;if("number"==typeof e.tag&&I("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case u:return"Fragment";case h:return"Portal";case i:return"Profiler";case n:return"StrictMode";case f:return"Suspense";case l:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case c:return"Context.Consumer";case a:return"Context.Provider";case s:return t=e.render,r="ForwardRef",t=t.displayName||t.name||"",e.displayName||(""!==t?r+"("+t+")":r);case p:return k(e.type);case b:return k(e.render);case y:r=(r=e)._status===P?r._result:null;if(r)return k(r)}var t,r;return null}var C={},$=null;function R(e){$=e}C.getCurrentStack=null,C.getStackAddendum=function(){var e,t,r,n,o,i="";$&&(n=k($.type),o=$._owner,i+=(e=n,t=$._source,r=o&&k(o.type),a="",t?(o=(n=t.fileName).replace(x,""),/^index\./.test(o)&&(!(n=n.match(x))||(n=n[1])&&(o=n.replace(x,"")+"/"+o)),a=" (at "+o+":"+t.lineNumber+")"):r&&(a=" (created by "+r+")"),"\n in "+(e||"Unknown")+a));var a=C.getCurrentStack;return a&&(i+=a()||""),i};var E={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:O,IsSomeRendererActing:{current:!1},assign:d};function T(e){for(var t=arguments.length,r=new Array(1<t?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];N("warn",e,r)}function I(e){for(var t=arguments.length,r=new Array(1<t?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];N("error",e,r)}function N(e,t,r){0<r.length&&"string"==typeof r[r.length-1]&&0===r[r.length-1].indexOf("\n in")||""!==(n=E.ReactDebugCurrentFrame.getStackAddendum())&&(t+="%s",r=r.concat([n]));var n=r.map(function(e){return""+e});n.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,n);try{var o=0,i="Warning: "+t.replace(/%s/g,function(){return r[o++]});throw new Error(i)}catch(e){}}d(E,{ReactDebugCurrentFrame:C,ReactComponentTreeHook:{}});var A={};function D(e,t){var r=e.constructor,e=r&&(r.displayName||r.name)||"ReactClass",r=e+"."+t;A[r]||(I("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),A[r]=!0)}var M={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,r){D(e,"forceUpdate")},enqueueReplaceState:function(e,t,r,n){D(e,"replaceState")},enqueueSetState:function(e,t,r,n){D(e,"setState")}},U={};function V(e,t,r){this.props=e,this.context=t,this.refs=U,this.updater=r||M}Object.freeze(U),V.prototype.isReactComponent={},V.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},V.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var F,L={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]};for(F in L)L.hasOwnProperty(F)&&function(e,t){Object.defineProperty(V.prototype,e,{get:function(){T("%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})}(F,L[F]);function q(){}function W(e,t,r){this.props=e,this.context=t,this.refs=U,this.updater=r||M}q.prototype=V.prototype;e=W.prototype=new q;e.constructor=W,d(e,V.prototype),e.isPureReactComponent=!0;var z,J,X=Object.prototype.hasOwnProperty,B={key:!0,ref:!0,__self:!0,__source:!0};function Y(e){if(X.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return}return void 0!==e.ref}function H(e){if(X.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return}return void 0!==e.key}var Q={},G=function(e,t,r,n,o,i,a){i={$$typeof:m,type:e,key:t,ref:r,props:a,_owner:i,_store:{}};return Object.defineProperty(i._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(i,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(i,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(i.props),Object.freeze(i)),i};function K(e,t,r){var n,o,i,a={},u=null,c=null,s=null,f=null;if(null!=t)for(n in Y(t)&&(c=t.ref,"string"==typeof(o=t).ref&&O.current&&o.__self&&O.current.stateNode!==o.__self&&(i=k(O.current.type),Q[i]||(I('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',k(O.current.type),o.ref),Q[i]=!0))),H(t)&&(u=""+t.key),s=void 0===t.__self?null:t.__self,f=void 0===t.__source?null:t.__source,t)X.call(t,n)&&!B.hasOwnProperty(n)&&(a[n]=t[n]);var l,p,y,d=arguments.length-2;if(1==d)a.children=r;else if(1<d){for(var m=Array(d),h=0;h<d;h++)m[h]=arguments[h+2];Object.freeze&&Object.freeze(m),a.children=m}if(e&&e.defaultProps){var b=e.defaultProps;for(n in b)void 0===a[n]&&(a[n]=b[n])}function v(){J||(J=!0,I("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",l))}function g(){z||(z=!0,I("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",y))}return(u||c)&&(r="function"==typeof e?e.displayName||e.name||"Unknown":e,u&&(p=a,y=r,g.isReactWarning=!0,Object.defineProperty(p,"key",{get:g,configurable:!0})),c&&(p=a,l=r,v.isReactWarning=!0,Object.defineProperty(p,"ref",{get:v,configurable:!0}))),G(e,u,c,s,f,O.current,a)}function Z(e){return"object"==typeof e&&null!==e&&e.$$typeof===m}var ee=".",te=":";var re=!1,ne=/\/+/g;function oe(e){return(""+e).replace(ne,"$&/")}var ie=10,ae=[];function ue(e,t,r,n){if(ae.length){var o=ae.pop();return o.result=e,o.keyPrefix=t,o.func=r,o.context=n,o.count=0,o}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function ce(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,ae.length<ie&&ae.push(e)}function se(e,t,r){return null==e?0:function e(t,r,n,o){var i,a=typeof t,u=!1;if(null===(t="undefined"==a||"boolean"==a?null:t))u=!0;else switch(a){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case m:case h:u=!0}}if(u)return n(o,t,""===r?ee+fe(t,0):r),1;var c=0,s=""===r?ee:r+te;if(Array.isArray(t))for(var f=0;f<t.length;f++)c+=e(i=t[f],s+fe(i,f),n,o);else if("function"==typeof(r=S(t))){r===t.entries&&(re||T("Using Maps as children is deprecated and will be removed in a future major release. Consider converting children to an array of keyed ReactElements instead."),re=!0);for(var l,p=r.call(t),y=0;!(l=p.next()).done;)c+=e(i=l.value,s+fe(i,y++),n,o)}else if("object"==a)throw r="",r=" If you meant to render a collection of children, use an array instead."+C.getStackAddendum(),a=""+t,Error("Objects are not valid as a React child (found: "+("[object Object]"==a?"object with keys {"+Object.keys(t).join(", ")+"}":a)+")."+r);return c}(e,"",t,r)}function fe(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(e=e.key,r={"=":"=0",":":"=2"},"$"+(""+e).replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var r}function le(e,t,r){var n=e.func,o=e.context;n.call(o,t,e.count++)}function pe(e,t,r){var n=e.result,o=e.keyPrefix,i=e.func,a=e.context,e=i.call(a,t,e.count++);Array.isArray(e)?ye(e,n,r,function(e){return e}):null!=e&&(Z(e)&&(r=o+(!(o=e).key||t&&t.key===e.key?"":oe(e.key)+"/")+r,e=G(o.type,r,o.ref,o._self,o._source,o._owner,o.props)),n.push(e))}function ye(e,t,r,n,o){var i="",o=ue(t,i=null!=r?oe(r)+"/":i,n,o);se(e,pe,o),ce(o)}function de(e){return"string"==typeof e||"function"==typeof e||e===u||e===t||e===i||e===n||e===f||e===l||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===p||e.$$typeof===a||e.$$typeof===c||e.$$typeof===s||e.$$typeof===r||e.$$typeof===v||e.$$typeof===g||e.$$typeof===b)}function me(){var e=j.current;if(null===e)throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.");return e}function he(){if(O.current){var e=k(O.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}var be=!1,ve={};function ge(e,t){var r;e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,r=t,(t=he())||(r="string"==typeof r?r:r.displayName||r.name)&&(t="\n\nCheck the top-level render call using <"+r+">."),ve[r=t]||(ve[r]=!0,t="",e&&e._owner&&e._owner!==O.current&&(t=" It was passed a child from "+k(e._owner.type)+"."),R(e),I('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',r,t),R(null)))}function we(e,t){if("object"==typeof e)if(Array.isArray(e))for(var r=0;r<e.length;r++){var n=e[r];Z(n)&&ge(n,t)}else if(Z(e))e._store&&(e._store.validated=!0);else if(e){var o=S(e);if("function"==typeof o&&o!==e.entries)for(var i,a=o.call(e);!(i=a.next()).done;)Z(i.value)&&ge(i.value,t)}}function _e(e){var t=e.type;if(null!=t&&"string"!=typeof t){var r,n=k(t);if("function"==typeof t)r=t.propTypes;else{if("object"!=typeof t||t.$$typeof!==s&&t.$$typeof!==p)return;r=t.propTypes}r?(R(e),o(r,e.props,"prop",n,C.getStackAddendum),R(null)):void 0===t.PropTypes||be||(be=!0,I("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",n||"Unknown")),"function"!=typeof t.getDefaultProps||t.getDefaultProps.isReactClassApproved||I("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Se(e,t,r){var n,o=de(e);o||(i="",(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(i+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."),i+=(null==(t=t)||void 0===(t=t.__source)?"":"\n\nCheck your code at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+".")||he(),null===e?n="null":Array.isArray(e)?n="array":void 0!==e&&e.$$typeof===m?(n="<"+(k(e.type)||"Unknown")+" />",i=" Did you accidentally export a JSX literal instead of a component?"):n=typeof e,I("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",n,i));var i=K.apply(this,arguments);if(null==i)return i;if(o)for(var a=2;a<arguments.length;a++)we(arguments[a],e);return(e===u?function(e){R(e);for(var t=Object.keys(e.props),r=0;r<t.length;r++){var n=t[r];if("children"!==n&&"key"!==n){I("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n);break}}null!==e.ref&&I("Invalid attribute `ref` supplied to `React.Fragment`."),R(null)}:_e)(i),i}var je=!1;try{var Oe=Object.freeze({}),xe=new Map([[Oe,null]]),Pe=new Set([Oe]);xe.set(0,0),Pe.add(0)}catch(e){}Oe=Se,xe=function(e,t,r){for(var n=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n,o,i=d({},e.props),a=e.key,u=e.ref,c=e._self,s=e._source,f=e._owner;if(null!=t)for(n in Y(t)&&(u=t.ref,f=O.current),H(t)&&(a=""+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)X.call(t,n)&&!B.hasOwnProperty(n)&&(void 0===t[n]&&void 0!==o?i[n]=o[n]:i[n]=t[n]);var l=arguments.length-2;if(1==l)i.children=r;else if(1<l){for(var p=Array(l),y=0;y<l;y++)p[y]=arguments[y+2];i.children=p}return G(e.type,a,u,c,s,f,i)}.apply(this,arguments),o=2;o<arguments.length;o++)we(arguments[o],n.type);return _e(n),n},Pe=function(e){var t=Se.bind(null,e);return t.type=e,je||(je=!0,T("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(t,"type",{enumerable:!1,get:function(){return T("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:e}),e}}),t};Ce.Children={map:function(e,t,r){if(null==e)return e;var n=[];return ye(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;r=ue(null,null,t,r),se(e,le,r),ce(r)},count:function(e){return se(e,function(){return null},null)},toArray:function(e){var t=[];return ye(e,t,null,function(e){return e}),t},only:function(e){if(!Z(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},Ce.Component=V,Ce.Fragment=u,Ce.Profiler=i,Ce.PureComponent=W,Ce.StrictMode=n,Ce.Suspense=f,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=E,Ce.cloneElement=xe,Ce.createContext=function(e,t){void 0===t?t=null:null!==t&&"function"!=typeof t&&I("createContext: Expected the optional second argument to be a function. Instead received: %s",t);var r={$$typeof:c,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},n=!(r.Provider={$$typeof:a,_context:r}),o=!1,e={$$typeof:c,_context:r,_calculateChangedBits:r._calculateChangedBits};return Object.defineProperties(e,{Provider:{get:function(){return o||(o=!0,I("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),r.Provider},set:function(e){r.Provider=e}},_currentValue:{get:function(){return r._currentValue},set:function(e){r._currentValue=e}},_currentValue2:{get:function(){return r._currentValue2},set:function(e){r._currentValue2=e}},_threadCount:{get:function(){return r._threadCount},set:function(e){r._threadCount=e}},Consumer:{get:function(){return n||(n=!0,I("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),r.Consumer}}}),r.Consumer=e,r._currentRenderer=null,r._currentRenderer2=null,r},Ce.createElement=Oe,Ce.createFactory=Pe,Ce.createRef=function(){var e={current:null};return Object.seal(e),e},Ce.forwardRef=function(e){return null!=e&&e.$$typeof===p?I("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?I("forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&I("forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null==e.defaultProps&&null==e.propTypes||I("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?")),{$$typeof:s,render:e}},Ce.isValidElement=Z,Ce.lazy=function(e){var t,r,n={$$typeof:y,_ctor:e,_status:-1,_result:null};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){I("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),t=e,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(e){I("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=e,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},Ce.memo=function(e,t){return de(e)||I("memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e),{$$typeof:p,type:e,compare:void 0===t?null:t}},Ce.useCallback=function(e,t){return me().useCallback(e,t)},Ce.useContext=function(e,t){var r,n=me();return void 0!==t&&I("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",t,"number"==typeof t&&Array.isArray(arguments[2])?"\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks":""),void 0!==e._context&&((r=e._context).Consumer===e?I("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):r.Provider===e&&I("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")),n.useContext(e,t)},Ce.useDebugValue=function(e,t){return me().useDebugValue(e,t)},Ce.useEffect=function(e,t){return me().useEffect(e,t)},Ce.useImperativeHandle=function(e,t,r){return me().useImperativeHandle(e,t,r)},Ce.useLayoutEffect=function(e,t){return me().useLayoutEffect(e,t)},Ce.useMemo=function(e,t){return me().useMemo(e,t)},Ce.useReducer=function(e,t,r){return me().useReducer(e,t,r)},Ce.useRef=function(e){return me().useRef(e)},Ce.useState=function(e){return me().useState(e)},Ce.version="16.14.0"}()}.call(this,ke("Xp6JUx"))},{Xp6JUx:2,"object-assign":1,"prop-types/checkPropTypes":3}],12:[function(e,t,r){"use strict";var f=e("object-assign"),n="function"==typeof Symbol&&Symbol.for,l=n?Symbol.for("react.element"):60103,s=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,a=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,p=n?Symbol.for("react.forward_ref"):60112,e=n?Symbol.for("react.suspense"):60113,y=n?Symbol.for("react.memo"):60115,d=n?Symbol.for("react.lazy"):60116,m="function"==typeof Symbol&&Symbol.iterator;function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v={};function g(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||b}function w(){}function _(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||b}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(h(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=g.prototype;n=_.prototype=new w;n.constructor=_,f(n,g.prototype),n.isPureReactComponent=!0;var S={current:null},j=Object.prototype.hasOwnProperty,O={key:!0,ref:!0,__self:!0,__source:!0};function x(e,t,r){var n,o={},i=null,a=null;if(null!=t)for(n in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(i=""+t.key),t)j.call(t,n)&&!O.hasOwnProperty(n)&&(o[n]=t[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];o.children=c}if(e&&e.defaultProps)for(n in u=e.defaultProps)void 0===o[n]&&(o[n]=u[n]);return{$$typeof:l,type:e,key:i,ref:a,props:o,_owner:S.current}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===l}var k=/\/+/g,C=[];function $(e,t,r,n){if(C.length){var o=C.pop();return o.result=e,o.keyPrefix=t,o.func=r,o.context=n,o.count=0,o}return{result:e,keyPrefix:t,func:r,context:n,count:0}}function R(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,C.length<10&&C.push(e)}function E(e,t,r){return null==e?0:function e(t,r,n,o){var i=!1;if(null===(t="undefined"==(u=typeof t)||"boolean"===u?null:t))i=!0;else switch(u){case"string":case"number":i=!0;break;case"object":switch(t.$$typeof){case l:case s:i=!0}}if(i)return n(o,t,""===r?"."+T(t,0):r),1;if(i=0,r=""===r?".":r+":",Array.isArray(t))for(var a=0;a<t.length;a++){var u,c=r+T(u=t[a],a);i+=e(u,c,n,o)}else if("function"==typeof(c=null!==t&&"object"==typeof t&&"function"==typeof(c=m&&t[m]||t["@@iterator"])?c:null))for(t=c.call(t),a=0;!(u=t.next()).done;)i+=e(u=u.value,c=r+T(u,a++),n,o);else if("object"===u)throw n=""+t,Error(h(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return i}(e,"",t,r)}function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(e=e.key,r={"=":"=0",":":"=2"},"$"+(""+e).replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var r}function I(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,r){var n=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?A(e,n,r,function(e){return e}):null!=e&&(P(e)&&(r=o+(!(o=e).key||t&&t.key===e.key?"":(""+e.key).replace(k,"$&/")+"/")+r,e={$$typeof:l,type:o.type,key:r,ref:o.ref,props:o.props,_owner:o._owner}),n.push(e))}function A(e,t,r,n,o){var i="";E(e,N,t=$(t,i=null!=r?(""+r).replace(k,"$&/")+"/":i,n,o)),R(t)}var D={current:null};function M(){var e=D.current;if(null===e)throw Error(h(321));return e}n={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:S,IsSomeRendererActing:{current:!1},assign:f};r.Children={map:function(e,t,r){if(null==e)return e;var n=[];return A(e,n,null,t,r),n},forEach:function(e,t,r){if(null==e)return e;E(e,I,t=$(null,null,t,r)),R(t)},count:function(e){return E(e,function(){return null},null)},toArray:function(e){var t=[];return A(e,t,null,function(e){return e}),t},only:function(e){if(!P(e))throw Error(h(143));return e}},r.Component=g,r.Fragment=o,r.Profiler=a,r.PureComponent=_,r.StrictMode=i,r.Suspense=e,r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=n,r.cloneElement=function(e,t,r){if(null==e)throw Error(h(267,e));var n=f({},e.props),o=e.key,i=e.ref,a=e._owner;if(null!=t)for(u in void 0!==t.ref&&(i=t.ref,a=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps&&(c=e.type.defaultProps),t)j.call(t,u)&&!O.hasOwnProperty(u)&&(n[u]=(void 0===t[u]&&void 0!==c?c:t)[u]);var u=arguments.length-2;if(1===u)n.children=r;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];n.children=c}return{$$typeof:l,type:e.type,key:o,ref:i,props:n,_owner:a}},r.createContext=function(e,t){return(e={$$typeof:c,_calculateChangedBits:t=void 0===t?null:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},r.createElement=x,r.createFactory=function(e){var t=x.bind(null,e);return t.type=e,t},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:p,render:e}},r.isValidElement=P,r.lazy=function(e){return{$$typeof:d,_ctor:e,_status:-1,_result:null}},r.memo=function(e,t){return{$$typeof:y,type:e,compare:void 0===t?null:t}},r.useCallback=function(e,t){return M().useCallback(e,t)},r.useContext=function(e,t){return M().useContext(e,t)},r.useDebugValue=function(){},r.useEffect=function(e,t){return M().useEffect(e,t)},r.useImperativeHandle=function(e,t,r){return M().useImperativeHandle(e,t,r)},r.useLayoutEffect=function(e,t){return M().useLayoutEffect(e,t)},r.useMemo=function(e,t){return M().useMemo(e,t)},r.useReducer=function(e,t,r){return M().useReducer(e,t,r)},r.useRef=function(e){return M().useRef(e)},r.useState=function(e){return M().useState(e)},r.version="16.14.0"},{"object-assign":1}],13:[function(t,r,e){!function(e){"use strict";"production"===e.env.NODE_ENV?r.exports=t("./cjs/react.production.min.js"):r.exports=t("./cjs/react.development.js")}.call(this,t("Xp6JUx"))},{"./cjs/react.development.js":11,"./cjs/react.production.min.js":12,Xp6JUx:2}],14:[function(e,t,r){"use strict";function a(e){return(a="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})(e)}var n,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var r,n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var i;Object.prototype.hasOwnProperty.call(e,r)&&((i=o?Object.getOwnPropertyDescriptor(e,r):null)&&(i.get||i.set)?Object.defineProperty(n,r,i):n[r]=e[r])}n.default=e,t&&t.set(e,n);return n}(e("react")),u=(n=e("prop-types"))&&n.__esModule?n:{default:n};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(r){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=o(r);return e=n?(e=o(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==a(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var p,y,d,m=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(o,i.Component);var e,t,r,n=l(o);function o(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(e=n.call(this,e)).state={error:null,isLoading:!0,form:null},e}return e=o,r=[{key:"propTypes",get:function(){return{form_id:u.default.number,show_title:u.default.string,show_desc:u.default.string}}}],(t=[{key:"componentDidUpdate",value:function(e){e.form_id===this.props.form_id&&e.show_title===this.props.show_title&&e.show_desc===this.props.show_desc||this.componentDidMount()}},{key:"componentDidMount",value:function(){var t=this,e=new FormData;e.append("nonce",wpforms_divi_builder.nonce),e.append("action","wpforms_divi_preview"),e.append("form_id",this.props.form_id),e.append("show_title",this.props.show_title),e.append("show_desc",this.props.show_desc),fetch(wpforms_divi_builder.ajax_url,{method:"POST",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then(function(e){return e.json()}).then(function(e){t.setState({isLoading:!1,form:e.data})},function(e){t.setState({isLoading:!1,error:e})})}},{key:"render",value:function(){var e=this.state,t=e.error,r=e.isLoaded,e=e.form;return t||!e?i.default.createElement("div",{className:"wpforms-divi-form-placeholder"},i.default.createElement("img",{src:wpforms_divi_builder.placeholder}),i.default.createElement("h3",null,wpforms_divi_builder.placeholder_title)):i.default.createElement("div",{className:r?"wpforms-divi-form-preview loading":"wpforms-divi-form-preview"},i.default.createElement("div",{dangerouslySetInnerHTML:{__html:e}}))}}])&&s(e.prototype,t),r&&s(e,r),o}();d="wpforms_selector",(y="slug")in(p=m)?Object.defineProperty(p,y,{value:d,enumerable:!0,configurable:!0,writable:!0}):p[y]=d,jQuery(window).on("et_builder_api_ready",function(e,t){t.registerModules([m])})},{"prop-types":6,react:13}]},{},[14]);
|
assets/js/purify.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */
|
2 |
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).DOMPurify=t()}(this,(function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.getPrototypeOf,o=Object.getOwnPropertyDescriptor,i=Object.freeze,a=Object.seal,l=Object.create,c="undefined"!=typeof Reflect&&Reflect,s=c.apply,u=c.construct;s||(s=function(e,t,n){return e.apply(t,n)}),i||(i=function(e){return e}),a||(a=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(t))))});var f,m=x(Array.prototype.forEach),d=x(Array.prototype.pop),p=x(Array.prototype.push),g=x(String.prototype.toLowerCase),h=x(String.prototype.match),y=x(String.prototype.replace),v=x(String.prototype.indexOf),b=x(String.prototype.trim),A=x(RegExp.prototype.test),T=(f=TypeError,function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return u(f,t)});function x(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return s(e,t,r)}}function w(e,r){t&&t(e,null);for(var o=r.length;o--;){var i=r[o];if("string"==typeof i){var a=g(i);a!==i&&(n(r)||(r[o]=a),i=a)}e[i]=!0}return e}function S(t){var n=l(null),r=void 0;for(r in t)s(e,t,[r])&&(n[r]=t[r]);return n}function k(e,t){for(;null!==e;){var n=o(e,t);if(n){if(n.get)return x(n.get);if("function"==typeof n.value)return x(n.value)}e=r(e)}return function(e){return console.warn("fallback value for",e),null}}var E=i(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),R=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),_=i(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),D=i(["animate","color-profile","cursor","discard","fedropshadow","feimage","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),N=i(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),O=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),L=i(["#text"]),M=i(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),F=i(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),C=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),I=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),z=a(/\{\{[\s\S]*|[\s\S]*\}\}/gm),U=a(/<%[\s\S]*|[\s\S]*%>/gm),H=a(/^data-[\-\w.\u00B7-\uFFFF]/),j=a(/^aria-[\-\w]+$/),P=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),B=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G="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};function q(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var K=function(){return"undefined"==typeof window?null:window},V=function(e,t){if("object"!==(void 0===e?"undefined":G(e))||"function"!=typeof e.createPolicy)return null;var n=null,r="data-tt-policy-suffix";t.currentScript&&t.currentScript.hasAttribute(r)&&(n=t.currentScript.getAttribute(r));var o="dompurify"+(n?"#"+n:"");try{return e.createPolicy(o,{createHTML:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+o+" could not be created."),null}};return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K(),n=function(t){return e(t)};if(n.version="2.2.8",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,l=t.HTMLTemplateElement,c=t.Node,s=t.Element,u=t.NodeFilter,f=t.NamedNodeMap,x=void 0===f?t.NamedNodeMap||t.MozNamedAttrMap:f,Y=t.Text,X=t.Comment,$=t.DOMParser,Z=t.trustedTypes,J=s.prototype,Q=k(J,"cloneNode"),ee=k(J,"nextSibling"),te=k(J,"childNodes"),ne=k(J,"parentNode");if("function"==typeof l){var re=o.createElement("template");re.content&&re.content.ownerDocument&&(o=re.content.ownerDocument)}var oe=V(Z,r),ie=oe&&Ie?oe.createHTML(""):"",ae=o,le=ae.implementation,ce=ae.createNodeIterator,se=ae.createDocumentFragment,ue=r.importNode,fe={};try{fe=S(o).documentMode?o.documentMode:{}}catch(e){}var me={};n.isSupported="function"==typeof ne&&le&&void 0!==le.createHTMLDocument&&9!==fe;var de=z,pe=U,ge=H,he=j,ye=B,ve=W,be=P,Ae=null,Te=w({},[].concat(q(E),q(R),q(_),q(N),q(L))),xe=null,we=w({},[].concat(q(M),q(F),q(C),q(I))),Se=null,ke=null,Ee=!0,Re=!0,_e=!1,De=!1,Ne=!1,Oe=!1,Le=!1,Me=!1,Fe=!1,Ce=!0,Ie=!1,ze=!0,Ue=!0,He=!1,je={},Pe=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Be=null,We=w({},["audio","video","img","source","image","track"]),Ge=null,qe=w({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ke="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",Ye="http://www.w3.org/1999/xhtml",Xe=Ye,$e=null,Ze=o.createElement("form"),Je=function(e){$e&&$e===e||(e&&"object"===(void 0===e?"undefined":G(e))||(e={}),e=S(e),Ae="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS):Te,xe="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR):we,Ge="ADD_URI_SAFE_ATTR"in e?w(S(qe),e.ADD_URI_SAFE_ATTR):qe,Be="ADD_DATA_URI_TAGS"in e?w(S(We),e.ADD_DATA_URI_TAGS):We,Se="FORBID_TAGS"in e?w({},e.FORBID_TAGS):{},ke="FORBID_ATTR"in e?w({},e.FORBID_ATTR):{},je="USE_PROFILES"in e&&e.USE_PROFILES,Ee=!1!==e.ALLOW_ARIA_ATTR,Re=!1!==e.ALLOW_DATA_ATTR,_e=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=e.SAFE_FOR_TEMPLATES||!1,Ne=e.WHOLE_DOCUMENT||!1,Me=e.RETURN_DOM||!1,Fe=e.RETURN_DOM_FRAGMENT||!1,Ce=!1!==e.RETURN_DOM_IMPORT,Ie=e.RETURN_TRUSTED_TYPE||!1,Le=e.FORCE_BODY||!1,ze=!1!==e.SANITIZE_DOM,Ue=!1!==e.KEEP_CONTENT,He=e.IN_PLACE||!1,be=e.ALLOWED_URI_REGEXP||be,Xe=e.NAMESPACE||Xe,De&&(Re=!1),Fe&&(Me=!0),je&&(Ae=w({},[].concat(q(L))),xe=[],!0===je.html&&(w(Ae,E),w(xe,M)),!0===je.svg&&(w(Ae,R),w(xe,F),w(xe,I)),!0===je.svgFilters&&(w(Ae,_),w(xe,F),w(xe,I)),!0===je.mathMl&&(w(Ae,N),w(xe,C),w(xe,I))),e.ADD_TAGS&&(Ae===Te&&(Ae=S(Ae)),w(Ae,e.ADD_TAGS)),e.ADD_ATTR&&(xe===we&&(xe=S(xe)),w(xe,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&w(Ge,e.ADD_URI_SAFE_ATTR),Ue&&(Ae["#text"]=!0),Ne&&w(Ae,["html","head","body"]),Ae.table&&(w(Ae,["tbody"]),delete Se.tbody),i&&i(e),$e=e)},Qe=w({},["mi","mo","mn","ms","mtext"]),et=w({},["foreignobject","desc","title","annotation-xml"]),tt=w({},R);w(tt,_),w(tt,D);var nt=w({},N);w(nt,O);var rt=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:Ye,tagName:"template"});var n=g(e.tagName),r=g(t.tagName);if(e.namespaceURI===Ve)return t.namespaceURI===Ye?"svg"===n:t.namespaceURI===Ke?"svg"===n&&("annotation-xml"===r||Qe[r]):Boolean(tt[n]);if(e.namespaceURI===Ke)return t.namespaceURI===Ye?"math"===n:t.namespaceURI===Ve?"math"===n&&et[r]:Boolean(nt[n]);if(e.namespaceURI===Ye){if(t.namespaceURI===Ve&&!et[r])return!1;if(t.namespaceURI===Ke&&!Qe[r])return!1;var o=w({},["title","style","font","a","script"]);return!nt[n]&&(o[n]||!tt[n])}return!1},ot=function(e){p(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ie}catch(t){e.remove()}}},it=function(e,t){try{p(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!xe[e])if(Me||Fe)try{ot(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},at=function(e){var t=void 0,n=void 0;if(Le)e="<remove></remove>"+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=oe?oe.createHTML(e):e;if(Xe===Ye)try{t=(new $).parseFromString(i,"text/html")}catch(e){}t&&t.documentElement||((t=le.createDocument(Xe,"template",null)).documentElement.innerHTML=i);var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Ne?t.documentElement:a},lt=function(e){return ce.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,(function(){return u.FILTER_ACCEPT}),!1)},ct=function(e){return!(e instanceof Y||e instanceof X)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof x&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore)},st=function(e){return"object"===(void 0===c?"undefined":G(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":G(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},ut=function(e,t,r){me[e]&&m(me[e],(function(e){e.call(n,t,r,$e)}))},ft=function(e){var t=void 0;if(ut("beforeSanitizeElements",e,null),ct(e))return ot(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return ot(e),!0;var r=g(e.nodeName);if(ut("uponSanitizeElement",e,{tagName:r,allowedTags:Ae}),!st(e.firstElementChild)&&(!st(e.content)||!st(e.content.firstElementChild))&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return ot(e),!0;if(!Ae[r]||Se[r]){if(Ue&&!Pe[r]){var o=ne(e)||e.parentNode,i=te(e)||e.childNodes;if(i&&o)for(var a=i.length-1;a>=0;--a)o.insertBefore(Q(i[a],!0),ee(e))}return ot(e),!0}return e instanceof s&&!rt(e)?(ot(e),!0):"noscript"!==r&&"noembed"!==r||!A(/<\/no(script|embed)/i,e.innerHTML)?(De&&3===e.nodeType&&(t=e.textContent,t=y(t,de," "),t=y(t,pe," "),e.textContent!==t&&(p(n.removed,{element:e.cloneNode()}),e.textContent=t)),ut("afterSanitizeElements",e,null),!1):(ot(e),!0)},mt=function(e,t,n){if(ze&&("id"===t||"name"===t)&&(n in o||n in Ze))return!1;if(Re&&A(ge,t));else if(Ee&&A(he,t));else{if(!xe[t]||ke[t])return!1;if(Ge[t]);else if(A(be,y(n,ve,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Be[e]){if(_e&&!A(ye,y(n,ve,"")));else if(n)return!1}else;}return!0},dt=function(e){var t=void 0,r=void 0,o=void 0,i=void 0;ut("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var l={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:xe};for(i=a.length;i--;){var c=t=a[i],s=c.name,u=c.namespaceURI;if(r=b(t.value),o=g(s),l.attrName=o,l.attrValue=r,l.keepAttr=!0,l.forceKeepAttr=void 0,ut("uponSanitizeAttribute",e,l),r=l.attrValue,!l.forceKeepAttr&&(it(s,e),l.keepAttr))if(A(/\/>/i,r))it(s,e);else{De&&(r=y(r,de," "),r=y(r,pe," "));var f=e.nodeName.toLowerCase();if(mt(f,o,r))try{u?e.setAttributeNS(u,s,r):e.setAttribute(s,r),d(n.removed)}catch(e){}}}ut("afterSanitizeAttributes",e,null)}},pt=function e(t){var n=void 0,r=lt(t);for(ut("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)ut("uponSanitizeShadowNode",n,null),ft(n)||(n.content instanceof a&&e(n.content),dt(n));ut("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e,o){var i=void 0,l=void 0,s=void 0,u=void 0,f=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!st(e)){if("function"!=typeof e.toString)throw T("toString is not a function");if("string"!=typeof(e=e.toString()))throw T("dirty is not a string, aborting")}if(!n.isSupported){if("object"===G(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(st(e))return t.toStaticHTML(e.outerHTML)}return e}if(Oe||Je(o),n.removed=[],"string"==typeof e&&(He=!1),He);else if(e instanceof c)1===(l=(i=at("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===l.nodeName||"HTML"===l.nodeName?i=l:i.appendChild(l);else{if(!Me&&!De&&!Ne&&-1===e.indexOf("<"))return oe&&Ie?oe.createHTML(e):e;if(!(i=at(e)))return Me?null:ie}i&&Le&&ot(i.firstChild);for(var m=lt(He?e:i);s=m.nextNode();)3===s.nodeType&&s===u||ft(s)||(s.content instanceof a&&pt(s.content),dt(s),u=s);if(u=null,He)return e;if(Me){if(Fe)for(f=se.call(i.ownerDocument);i.firstChild;)f.appendChild(i.firstChild);else f=i;return Ce&&(f=ue.call(r,f,!0)),f}var d=Ne?i.outerHTML:i.innerHTML;return De&&(d=y(d,de," "),d=y(d,pe," ")),oe&&Ie?oe.createHTML(d):d},n.setConfig=function(e){Je(e),Oe=!0},n.clearConfig=function(){$e=null,Oe=!1},n.isValidAttribute=function(e,t,n){$e||Je({});var r=g(e),o=g(t);return mt(r,o,n)},n.addHook=function(e,t){"function"==typeof t&&(me[e]=me[e]||[],p(me[e],t))},n.removeHook=function(e){me[e]&&d(me[e])},n.removeHooks=function(e){me[e]&&(me[e]=[])},n.removeAllHooks=function(){me={}},n}()}));
|
1 |
/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */
|
2 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).DOMPurify=t()}(this,(function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.getPrototypeOf,o=Object.getOwnPropertyDescriptor,i=Object.freeze,a=Object.seal,l=Object.create,c="undefined"!=typeof Reflect&&Reflect,s=c.apply,u=c.construct;s||(s=function(e,t,n){return e.apply(t,n)}),i||(i=function(e){return e}),a||(a=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(t))))});var f,m=x(Array.prototype.forEach),d=x(Array.prototype.pop),p=x(Array.prototype.push),g=x(String.prototype.toLowerCase),h=x(String.prototype.match),y=x(String.prototype.replace),v=x(String.prototype.indexOf),b=x(String.prototype.trim),A=x(RegExp.prototype.test),T=(f=TypeError,function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return u(f,t)});function x(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return s(e,t,r)}}function w(e,r){t&&t(e,null);for(var o=r.length;o--;){var i=r[o];if("string"==typeof i){var a=g(i);a!==i&&(n(r)||(r[o]=a),i=a)}e[i]=!0}return e}function S(t){var n=l(null),r=void 0;for(r in t)s(e,t,[r])&&(n[r]=t[r]);return n}function k(e,t){for(;null!==e;){var n=o(e,t);if(n){if(n.get)return x(n.get);if("function"==typeof n.value)return x(n.value)}e=r(e)}return function(e){return console.warn("fallback value for",e),null}}var D=i(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),E=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),R=i(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),_=i(["animate","color-profile","cursor","discard","fedropshadow","feimage","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),N=i(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),O=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),M=i(["#text"]),L=i(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),F=i(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),I=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),C=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),z=a(/\{\{[\s\S]*|[\s\S]*\}\}/gm),U=a(/<%[\s\S]*|[\s\S]*%>/gm),H=a(/^data-[\-\w.\u00B7-\uFFFF]/),j=a(/^aria-[\-\w]+$/),P=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),B=a(/^(?:\w+script|data):/i),W=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G="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};function q(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var K=function(){return"undefined"==typeof window?null:window},V=function(e,t){if("object"!==(void 0===e?"undefined":G(e))||"function"!=typeof e.createPolicy)return null;var n=null,r="data-tt-policy-suffix";t.currentScript&&t.currentScript.hasAttribute(r)&&(n=t.currentScript.getAttribute(r));var o="dompurify"+(n?"#"+n:"");try{return e.createPolicy(o,{createHTML:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+o+" could not be created."),null}};return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K(),n=function(t){return e(t)};if(n.version="2.2.9",n.removed=[],!t||!t.document||9!==t.document.nodeType)return n.isSupported=!1,n;var r=t.document,o=t.document,a=t.DocumentFragment,l=t.HTMLTemplateElement,c=t.Node,s=t.Element,u=t.NodeFilter,f=t.NamedNodeMap,x=void 0===f?t.NamedNodeMap||t.MozNamedAttrMap:f,Y=t.Text,X=t.Comment,$=t.DOMParser,Z=t.trustedTypes,J=s.prototype,Q=k(J,"cloneNode"),ee=k(J,"nextSibling"),te=k(J,"childNodes"),ne=k(J,"parentNode");if("function"==typeof l){var re=o.createElement("template");re.content&&re.content.ownerDocument&&(o=re.content.ownerDocument)}var oe=V(Z,r),ie=oe&&Ce?oe.createHTML(""):"",ae=o,le=ae.implementation,ce=ae.createNodeIterator,se=ae.createDocumentFragment,ue=r.importNode,fe={};try{fe=S(o).documentMode?o.documentMode:{}}catch(e){}var me={};n.isSupported="function"==typeof ne&&le&&void 0!==le.createHTMLDocument&&9!==fe;var de=z,pe=U,ge=H,he=j,ye=B,ve=W,be=P,Ae=null,Te=w({},[].concat(q(D),q(E),q(R),q(N),q(M))),xe=null,we=w({},[].concat(q(L),q(F),q(I),q(C))),Se=null,ke=null,De=!0,Ee=!0,Re=!1,_e=!1,Ne=!1,Oe=!1,Me=!1,Le=!1,Fe=!1,Ie=!0,Ce=!1,ze=!0,Ue=!0,He=!1,je={},Pe=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Be=null,We=w({},["audio","video","img","source","image","track"]),Ge=null,qe=w({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ke="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",Ye="http://www.w3.org/1999/xhtml",Xe=Ye,$e=!1,Ze=null,Je=o.createElement("form"),Qe=function(e){Ze&&Ze===e||(e&&"object"===(void 0===e?"undefined":G(e))||(e={}),e=S(e),Ae="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS):Te,xe="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR):we,Ge="ADD_URI_SAFE_ATTR"in e?w(S(qe),e.ADD_URI_SAFE_ATTR):qe,Be="ADD_DATA_URI_TAGS"in e?w(S(We),e.ADD_DATA_URI_TAGS):We,Se="FORBID_TAGS"in e?w({},e.FORBID_TAGS):{},ke="FORBID_ATTR"in e?w({},e.FORBID_ATTR):{},je="USE_PROFILES"in e&&e.USE_PROFILES,De=!1!==e.ALLOW_ARIA_ATTR,Ee=!1!==e.ALLOW_DATA_ATTR,Re=e.ALLOW_UNKNOWN_PROTOCOLS||!1,_e=e.SAFE_FOR_TEMPLATES||!1,Ne=e.WHOLE_DOCUMENT||!1,Le=e.RETURN_DOM||!1,Fe=e.RETURN_DOM_FRAGMENT||!1,Ie=!1!==e.RETURN_DOM_IMPORT,Ce=e.RETURN_TRUSTED_TYPE||!1,Me=e.FORCE_BODY||!1,ze=!1!==e.SANITIZE_DOM,Ue=!1!==e.KEEP_CONTENT,He=e.IN_PLACE||!1,be=e.ALLOWED_URI_REGEXP||be,Xe=e.NAMESPACE||Ye,_e&&(Ee=!1),Fe&&(Le=!0),je&&(Ae=w({},[].concat(q(M))),xe=[],!0===je.html&&(w(Ae,D),w(xe,L)),!0===je.svg&&(w(Ae,E),w(xe,F),w(xe,C)),!0===je.svgFilters&&(w(Ae,R),w(xe,F),w(xe,C)),!0===je.mathMl&&(w(Ae,N),w(xe,I),w(xe,C))),e.ADD_TAGS&&(Ae===Te&&(Ae=S(Ae)),w(Ae,e.ADD_TAGS)),e.ADD_ATTR&&(xe===we&&(xe=S(xe)),w(xe,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&w(Ge,e.ADD_URI_SAFE_ATTR),Ue&&(Ae["#text"]=!0),Ne&&w(Ae,["html","head","body"]),Ae.table&&(w(Ae,["tbody"]),delete Se.tbody),i&&i(e),Ze=e)},et=w({},["mi","mo","mn","ms","mtext"]),tt=w({},["foreignobject","desc","title","annotation-xml"]),nt=w({},E);w(nt,R),w(nt,_);var rt=w({},N);w(rt,O);var ot=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:Ye,tagName:"template"});var n=g(e.tagName),r=g(t.tagName);if(e.namespaceURI===Ve)return t.namespaceURI===Ye?"svg"===n:t.namespaceURI===Ke?"svg"===n&&("annotation-xml"===r||et[r]):Boolean(nt[n]);if(e.namespaceURI===Ke)return t.namespaceURI===Ye?"math"===n:t.namespaceURI===Ve?"math"===n&&tt[r]:Boolean(rt[n]);if(e.namespaceURI===Ye){if(t.namespaceURI===Ve&&!tt[r])return!1;if(t.namespaceURI===Ke&&!et[r])return!1;var o=w({},["title","style","font","a","script"]);return!rt[n]&&(o[n]||!nt[n])}return!1},it=function(e){p(n.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ie}catch(t){e.remove()}}},at=function(e,t){try{p(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!xe[e])if(Le||Fe)try{it(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},lt=function(e){var t=void 0,n=void 0;if(Me)e="<remove></remove>"+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=oe?oe.createHTML(e):e;if(Xe===Ye)try{t=(new $).parseFromString(i,"text/html")}catch(e){}if(!t||!t.documentElement){t=le.createDocument(Xe,"template",null);try{t.documentElement.innerHTML=$e?"":i}catch(e){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Ne?t.documentElement:a},ct=function(e){return ce.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},st=function(e){return!(e instanceof Y||e instanceof X)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof x&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI&&"function"==typeof e.insertBefore)},ut=function(e){return"object"===(void 0===c?"undefined":G(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":G(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},ft=function(e,t,r){me[e]&&m(me[e],(function(e){e.call(n,t,r,Ze)}))},mt=function(e){var t=void 0;if(ft("beforeSanitizeElements",e,null),st(e))return it(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return it(e),!0;var r=g(e.nodeName);if(ft("uponSanitizeElement",e,{tagName:r,allowedTags:Ae}),!ut(e.firstElementChild)&&(!ut(e.content)||!ut(e.content.firstElementChild))&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return it(e),!0;if(!Ae[r]||Se[r]){if(Ue&&!Pe[r]){var o=ne(e)||e.parentNode,i=te(e)||e.childNodes;if(i&&o)for(var a=i.length-1;a>=0;--a)o.insertBefore(Q(i[a],!0),ee(e))}return it(e),!0}return e instanceof s&&!ot(e)?(it(e),!0):"noscript"!==r&&"noembed"!==r||!A(/<\/no(script|embed)/i,e.innerHTML)?(_e&&3===e.nodeType&&(t=e.textContent,t=y(t,de," "),t=y(t,pe," "),e.textContent!==t&&(p(n.removed,{element:e.cloneNode()}),e.textContent=t)),ft("afterSanitizeElements",e,null),!1):(it(e),!0)},dt=function(e,t,n){if(ze&&("id"===t||"name"===t)&&(n in o||n in Je))return!1;if(Ee&&A(ge,t));else if(De&&A(he,t));else{if(!xe[t]||ke[t])return!1;if(Ge[t]);else if(A(be,y(n,ve,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Be[e]){if(Re&&!A(ye,y(n,ve,"")));else if(n)return!1}else;}return!0},pt=function(e){var t=void 0,r=void 0,o=void 0,i=void 0;ft("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var l={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:xe};for(i=a.length;i--;){var c=t=a[i],s=c.name,u=c.namespaceURI;if(r=b(t.value),o=g(s),l.attrName=o,l.attrValue=r,l.keepAttr=!0,l.forceKeepAttr=void 0,ft("uponSanitizeAttribute",e,l),r=l.attrValue,!l.forceKeepAttr&&(at(s,e),l.keepAttr))if(A(/\/>/i,r))at(s,e);else{_e&&(r=y(r,de," "),r=y(r,pe," "));var f=e.nodeName.toLowerCase();if(dt(f,o,r))try{u?e.setAttributeNS(u,s,r):e.setAttribute(s,r),d(n.removed)}catch(e){}}}ft("afterSanitizeAttributes",e,null)}},gt=function e(t){var n=void 0,r=ct(t);for(ft("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)ft("uponSanitizeShadowNode",n,null),mt(n)||(n.content instanceof a&&e(n.content),pt(n));ft("afterSanitizeShadowDOM",t,null)};return n.sanitize=function(e,o){var i=void 0,l=void 0,s=void 0,u=void 0,f=void 0;if(($e=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!ut(e)){if("function"!=typeof e.toString)throw T("toString is not a function");if("string"!=typeof(e=e.toString()))throw T("dirty is not a string, aborting")}if(!n.isSupported){if("object"===G(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(ut(e))return t.toStaticHTML(e.outerHTML)}return e}if(Oe||Qe(o),n.removed=[],"string"==typeof e&&(He=!1),He);else if(e instanceof c)1===(l=(i=lt("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===l.nodeName||"HTML"===l.nodeName?i=l:i.appendChild(l);else{if(!Le&&!_e&&!Ne&&-1===e.indexOf("<"))return oe&&Ce?oe.createHTML(e):e;if(!(i=lt(e)))return Le?null:ie}i&&Me&&it(i.firstChild);for(var m=ct(He?e:i);s=m.nextNode();)3===s.nodeType&&s===u||mt(s)||(s.content instanceof a&>(s.content),pt(s),u=s);if(u=null,He)return e;if(Le){if(Fe)for(f=se.call(i.ownerDocument);i.firstChild;)f.appendChild(i.firstChild);else f=i;return Ie&&(f=ue.call(r,f,!0)),f}var d=Ne?i.outerHTML:i.innerHTML;return _e&&(d=y(d,de," "),d=y(d,pe," ")),oe&&Ce?oe.createHTML(d):d},n.setConfig=function(e){Qe(e),Oe=!0},n.clearConfig=function(){Ze=null,Oe=!1},n.isValidAttribute=function(e,t,n){Ze||Qe({});var r=g(e),o=g(t);return dt(r,o,n)},n.addHook=function(e,t){"function"==typeof t&&(me[e]=me[e]||[],p(me[e],t))},n.removeHook=function(e){me[e]&&d(me[e])},n.removeHooks=function(e){me[e]&&(me[e]=[])},n.removeAllHooks=function(){me={}},n}()}));
|
assets/js/text-limit.js
CHANGED
@@ -141,6 +141,30 @@
|
|
141 |
}
|
142 |
}
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
/**
|
145 |
* Paste event higher order function for words limit.
|
146 |
*
|
@@ -155,9 +179,16 @@
|
|
155 |
return function( e ) {
|
156 |
|
157 |
e.preventDefault();
|
158 |
-
|
159 |
-
pastedText
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
};
|
162 |
}
|
163 |
|
@@ -202,6 +233,7 @@
|
|
202 |
|
203 |
e.addEventListener( 'keydown', fn );
|
204 |
e.addEventListener( 'keyup', fn );
|
|
|
205 |
}
|
206 |
);
|
207 |
|
141 |
}
|
142 |
}
|
143 |
|
144 |
+
/**
|
145 |
+
* Paste event higher order function for characters limit.
|
146 |
+
*
|
147 |
+
* @since 1.6.7.1
|
148 |
+
*
|
149 |
+
* @param {number} limit Max allowed number of characters.
|
150 |
+
*
|
151 |
+
* @returns {Function} Event handler.
|
152 |
+
*/
|
153 |
+
function pasteText( limit ) {
|
154 |
+
|
155 |
+
return function( e ) {
|
156 |
+
|
157 |
+
e.preventDefault();
|
158 |
+
|
159 |
+
var pastedText = getPastedText( e ),
|
160 |
+
newPosition = this.selectionStart + pastedText.length,
|
161 |
+
newText = this.value.substring( 0, this.selectionStart ) + pastedText + this.value.substring( this.selectionStart );
|
162 |
+
|
163 |
+
this.value = newText.substring( 0, limit );
|
164 |
+
this.setSelectionRange( newPosition, newPosition );
|
165 |
+
};
|
166 |
+
}
|
167 |
+
|
168 |
/**
|
169 |
* Paste event higher order function for words limit.
|
170 |
*
|
179 |
return function( e ) {
|
180 |
|
181 |
e.preventDefault();
|
182 |
+
|
183 |
+
var pastedText = getPastedText( e ),
|
184 |
+
newPosition = this.selectionStart + pastedText.length,
|
185 |
+
newText = this.value.substring( 0, this.selectionStart ) + pastedText + this.value.substring( this.selectionStart );
|
186 |
+
|
187 |
+
newText = newText.trim().split( /\s+/ );
|
188 |
+
newText.splice( limit, newText.length );
|
189 |
+
|
190 |
+
this.value = newText.join( ' ' );
|
191 |
+
this.setSelectionRange( newPosition, newPosition );
|
192 |
};
|
193 |
}
|
194 |
|
233 |
|
234 |
e.addEventListener( 'keydown', fn );
|
235 |
e.addEventListener( 'keyup', fn );
|
236 |
+
e.addEventListener( 'paste', pasteText( limit ) );
|
237 |
}
|
238 |
);
|
239 |
|
assets/js/text-limit.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function
|
1 |
+
!function n(a,r,s){function o(i,t){if(!r[i]){if(!a[i]){var e="function"==typeof require&&require;if(!t&&e)return e(i,!0);if(l)return l(i,!0);throw new Error("Cannot find module '"+i+"'")}e=r[i]={exports:{}};a[i][0].call(e.exports,function(t){var e=a[i][1][t];return o(e||t)},e,e.exports,n,a,r,s)}return r[i].exports}for(var l="function"==typeof require&&require,t=0;t<s.length;t++)o(s[t]);return o}({1:[function(t,e,i){"use strict";function o(t,e,i){return t.replace("{count}",e).replace("{limit}",i).replace("{remaining}",i-e)}function l(t,e,i){var n=document.createElement("div");return n.classList.add("wpforms-field-limit-text"),n.id="wpforms-field-limit-text-"+t+"-"+e,n.textContent=i,n}function d(e){return"string"==typeof e&&e.length?([/([A-Z]+),([A-Z]+)/gi,/([0-9]+),([A-Z]+)/gi,/([A-Z]+),([0-9]+)/gi].forEach(function(t){e=e.replace(t,"$1, $2")}),e.split(/\s+/).length):0}function u(t){return window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):t.clipboardData&&t.clipboardData.getData?t.clipboardData.getData("text/plain"):void 0}function n(t){return[].slice.call(t)}function a(){n(document.querySelectorAll(".wpforms-limit-characters-enabled")).map(function(t){var e=parseInt(t.dataset.textLimit,10)||0;t.value=t.value.slice(0,e);var i,n,a,r=l(t.dataset.formId,t.dataset.fieldId,o(window.wpforms_settings.val_limit_characters,t.value.length,e)),s=(i=r,n=e,function(t){i.textContent=o(window.wpforms_settings.val_limit_characters,this.value.length,n)});t.parentNode.appendChild(r),t.addEventListener("keydown",s),t.addEventListener("keyup",s),t.addEventListener("paste",(a=e,function(t){t.preventDefault();var e=u(t),t=this.selectionStart+e.length,e=this.value.substring(0,this.selectionStart)+e+this.value.substring(this.selectionStart);this.value=e.substring(0,a),this.setSelectionRange(t,t)}))}),n(document.querySelectorAll(".wpforms-limit-words-enabled")).map(function(t){var e=parseInt(t.dataset.textLimit,10)||0;t.value=t.value.trim().split(/\s+/).slice(0,e).join(" ");var i,n,a,r=l(t.dataset.formId,t.dataset.fieldId,o(window.wpforms_settings.val_limit_words,d(t.value.trim()),e)),s=(i=r,n=e,function(t){var e=d(this.value.trim());i.textContent=o(window.wpforms_settings.val_limit_words,e,n),(32===t.keyCode||188===t.keyCode)&&n<=e&&t.preventDefault()});t.parentNode.appendChild(r),t.addEventListener("keydown",s),t.addEventListener("keyup",s),t.addEventListener("paste",(a=e,function(t){t.preventDefault();var e=u(t),t=this.selectionStart+e.length,e=this.value.substring(0,this.selectionStart)+e+this.value.substring(this.selectionStart);(e=e.trim().split(/\s+/)).splice(a,e.length),this.value=e.join(" "),this.setSelectionRange(t,t)}))})}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",a):a()},{}]},{},[1]);
|
assets/js/wpforms.js
CHANGED
@@ -1372,7 +1372,7 @@ var wpforms = window.wpforms || ( function( document, window, $ ) {
|
|
1372 |
//--------------------------------------------------------------------//
|
1373 |
|
1374 |
/**
|
1375 |
-
* Payments:
|
1376 |
*
|
1377 |
* @since 1.2.3
|
1378 |
* @since 1.5.1 Added support for payment-checkbox field.
|
@@ -1384,32 +1384,11 @@ var wpforms = window.wpforms || ( function( document, window, $ ) {
|
|
1384 |
|
1385 |
validate = validate || false;
|
1386 |
|
1387 |
-
var $form
|
1388 |
-
|
|
|
1389 |
totalFormatted,
|
1390 |
-
totalFormattedSymbol
|
1391 |
-
currency = app.getCurrency();
|
1392 |
-
|
1393 |
-
$( '.wpforms-payment-price', $form ).each( function( index, el ) {
|
1394 |
-
|
1395 |
-
var amount = 0,
|
1396 |
-
$this = $( this );
|
1397 |
-
|
1398 |
-
if ( $this.closest( '.wpforms-field-payment-single' ).hasClass( 'wpforms-conditional-hide' ) ) {
|
1399 |
-
return;
|
1400 |
-
}
|
1401 |
-
if ( 'text' === $this.attr( 'type' ) || 'hidden' === $this.attr( 'type' ) ) {
|
1402 |
-
amount = $this.val();
|
1403 |
-
} else if ( ( 'radio' === $this.attr( 'type' ) || 'checkbox' === $this.attr( 'type' ) ) && $this.is( ':checked' ) ) {
|
1404 |
-
amount = $this.data( 'amount' );
|
1405 |
-
} else if ( $this.is( 'select' ) && $this.find( 'option:selected' ).length > 0 ) {
|
1406 |
-
amount = $this.find( 'option:selected' ).data( 'amount' );
|
1407 |
-
}
|
1408 |
-
if ( ! app.empty( amount ) ) {
|
1409 |
-
amount = app.amountSanitize( amount );
|
1410 |
-
total = Number( total ) + Number( amount );
|
1411 |
-
}
|
1412 |
-
} );
|
1413 |
|
1414 |
totalFormatted = app.amountFormat( total );
|
1415 |
|
@@ -1431,6 +1410,46 @@ var wpforms = window.wpforms || ( function( document, window, $ ) {
|
|
1431 |
} );
|
1432 |
},
|
1433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1434 |
/**
|
1435 |
* Sanitize amount and convert to standard format for calculations.
|
1436 |
*
|
@@ -1464,7 +1483,7 @@ var wpforms = window.wpforms || ( function( document, window, $ ) {
|
|
1464 |
*
|
1465 |
* @since 1.2.6
|
1466 |
*
|
1467 |
-
* @param {string} amount Amount to format.
|
1468 |
*
|
1469 |
* @returns {string} Formatted amount.
|
1470 |
*/
|
1372 |
//--------------------------------------------------------------------//
|
1373 |
|
1374 |
/**
|
1375 |
+
* Payments: Run amount calculation and update the Total field value.
|
1376 |
*
|
1377 |
* @since 1.2.3
|
1378 |
* @since 1.5.1 Added support for payment-checkbox field.
|
1384 |
|
1385 |
validate = validate || false;
|
1386 |
|
1387 |
+
var $form = $( el ).closest( '.wpforms-form' ),
|
1388 |
+
currency = app.getCurrency(),
|
1389 |
+
total = app.amountTotalCalc( $form ),
|
1390 |
totalFormatted,
|
1391 |
+
totalFormattedSymbol;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1392 |
|
1393 |
totalFormatted = app.amountFormat( total );
|
1394 |
|
1410 |
} );
|
1411 |
},
|
1412 |
|
1413 |
+
/**
|
1414 |
+
* Payments: Calculate a total amount without formatting.
|
1415 |
+
*
|
1416 |
+
* @since 1.6.7.1
|
1417 |
+
*
|
1418 |
+
* @param {jQuery} $form Form element.
|
1419 |
+
*
|
1420 |
+
* @returns {number} Total amount.
|
1421 |
+
*/
|
1422 |
+
amountTotalCalc: function( $form ) {
|
1423 |
+
|
1424 |
+
var total = 0;
|
1425 |
+
|
1426 |
+
$( '.wpforms-payment-price', $form ).each( function() {
|
1427 |
+
|
1428 |
+
var amount = 0,
|
1429 |
+
$this = $( this ),
|
1430 |
+
type = $this.attr( 'type' );
|
1431 |
+
|
1432 |
+
if ( $this.closest( '.wpforms-field-payment-single' ).hasClass( 'wpforms-conditional-hide' ) ) {
|
1433 |
+
return;
|
1434 |
+
}
|
1435 |
+
|
1436 |
+
if ( type === 'text' || type === 'hidden' ) {
|
1437 |
+
amount = $this.val();
|
1438 |
+
} else if ( ( type === 'radio' || type === 'checkbox' ) && $this.is( ':checked' ) ) {
|
1439 |
+
amount = $this.data( 'amount' );
|
1440 |
+
} else if ( $this.is( 'select' ) && $this.find( 'option:selected' ).length > 0 ) {
|
1441 |
+
amount = $this.find( 'option:selected' ).data( 'amount' );
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
if ( ! app.empty( amount ) ) {
|
1445 |
+
amount = app.amountSanitize( amount );
|
1446 |
+
total = Number( total ) + Number( amount );
|
1447 |
+
}
|
1448 |
+
} );
|
1449 |
+
|
1450 |
+
return total;
|
1451 |
+
},
|
1452 |
+
|
1453 |
/**
|
1454 |
* Sanitize amount and convert to standard format for calculations.
|
1455 |
*
|
1483 |
*
|
1484 |
* @since 1.2.6
|
1485 |
*
|
1486 |
+
* @param {string|number} amount Amount to format.
|
1487 |
*
|
1488 |
* @returns {string} Formatted amount.
|
1489 |
*/
|
assets/languages/wpforms-lite.pot
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WPForms Lite 1.6.7\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms-lite\n"
|
5 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
6 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
-
"POT-Creation-Date: 2021-
|
11 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
-
"X-Generator: WP-CLI 2.
|
13 |
"X-Domain: wpforms-lite\n"
|
14 |
|
15 |
#. Plugin Name of the plugin
|
@@ -69,7 +69,7 @@ msgid "Install Addon"
|
|
69 |
msgstr ""
|
70 |
|
71 |
#: includes/admin/admin.php:132
|
72 |
-
#: includes/admin/ajax-actions.php:
|
73 |
msgid "Could not install addon. Please download from wpforms.com and install manually."
|
74 |
msgstr ""
|
75 |
|
@@ -304,32 +304,32 @@ msgid "Something went wrong while saving the form."
|
|
304 |
msgstr ""
|
305 |
|
306 |
#: includes/admin/ajax-actions.php:100
|
307 |
-
msgid "No form name provided"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: includes/admin/ajax-actions.php:
|
311 |
-
msgid "Error creating form"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: includes/admin/ajax-actions.php:
|
315 |
msgid "No form ID provided"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: includes/admin/ajax-actions.php:
|
319 |
msgid "Error updating form template"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: includes/admin/ajax-actions.php:
|
323 |
#: includes/fields/class-base.php:983
|
324 |
msgid "post type"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: includes/admin/ajax-actions.php:
|
328 |
#: includes/fields/class-base.php:990
|
329 |
msgid "taxonomy"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: includes/admin/ajax-actions.php:
|
333 |
#: includes/emails/class-emails.php:565
|
334 |
#: includes/emails/class-emails.php:610
|
335 |
#: includes/fields/class-base.php:1550
|
@@ -337,74 +337,74 @@ msgstr ""
|
|
337 |
msgid "(empty)"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: includes/admin/ajax-actions.php:
|
341 |
msgid "You do not have permission to perform this operation."
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: includes/admin/ajax-actions.php:
|
345 |
msgid "Success! Your server can make SSL connections."
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: includes/admin/ajax-actions.php:
|
349 |
msgid "There was an error and the connection failed. Please contact your web host with the technical details below."
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: includes/admin/ajax-actions.php:
|
353 |
msgid "Plugin deactivation is disabled for you on this site."
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: includes/admin/ajax-actions.php:
|
357 |
msgid "Plugin deactivated."
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: includes/admin/ajax-actions.php:
|
361 |
msgid "Addon deactivated."
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: includes/admin/ajax-actions.php:
|
365 |
msgid "Could not deactivate the addon. Please deactivate from the Plugins page."
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: includes/admin/ajax-actions.php:
|
369 |
msgid "Plugin activation is disabled for you on this site."
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: includes/admin/ajax-actions.php:
|
373 |
msgid "Plugin activated."
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: includes/admin/ajax-actions.php:
|
377 |
msgid "Addon activated."
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: includes/admin/ajax-actions.php:
|
381 |
msgid "Could not activate addon. Please activate from the Plugins page."
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: includes/admin/ajax-actions.php:
|
385 |
msgid "There was an error while performing your request."
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/admin/ajax-actions.php:
|
389 |
msgid "Could not install plugin. Please download and install manually."
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: includes/admin/ajax-actions.php:
|
393 |
msgid "Plugin installed."
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: includes/admin/ajax-actions.php:
|
397 |
msgid "Addon installed."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: includes/admin/ajax-actions.php:
|
401 |
#: src/Lite/Admin/Connect.php:182
|
402 |
#: src/Lite/Admin/Connect.php:195
|
403 |
#: src/Lite/Admin/Connect.php:255
|
404 |
msgid "Plugin installed & activated."
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: includes/admin/ajax-actions.php:
|
408 |
msgid "Addon installed & activated."
|
409 |
msgstr ""
|
410 |
|
@@ -894,7 +894,7 @@ msgstr ""
|
|
894 |
|
895 |
#: includes/admin/builder/panels/class-fields.php:159
|
896 |
#: includes/admin/builder/panels/class-settings.php:115
|
897 |
-
#: includes/class-form.php:
|
898 |
#: includes/templates/class-contact.php:71
|
899 |
#: src/Admin/Tools/Importers/ContactForm7.php:124
|
900 |
#: src/Admin/Tools/Importers/NinjaForms.php:129
|
@@ -934,7 +934,7 @@ msgid "Unfortunately, the %s field is not available and will be ignored on the f
|
|
934 |
msgstr ""
|
935 |
|
936 |
#: includes/admin/builder/panels/class-fields.php:404
|
937 |
-
#: lite/templates/admin/addons.php:
|
938 |
msgid "Learn more"
|
939 |
msgstr ""
|
940 |
|
@@ -1062,7 +1062,7 @@ msgstr ""
|
|
1062 |
#: includes/admin/builder/panels/class-settings.php:86
|
1063 |
#: includes/admin/builder/panels/class-setup.php:52
|
1064 |
#: src/Integrations/Elementor/Widget.php:222
|
1065 |
-
#: src/SmartTags/SmartTags.php:
|
1066 |
msgid "Form Name"
|
1067 |
msgstr ""
|
1068 |
|
@@ -1913,36 +1913,36 @@ msgstr ""
|
|
1913 |
msgid "Go to WPForms Lite vs Pro comparison page"
|
1914 |
msgstr ""
|
1915 |
|
1916 |
-
#: includes/admin/class-review.php:
|
1917 |
msgid "Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
-
#: includes/admin/class-review.php:
|
1921 |
-
#: includes/admin/class-review.php:
|
1922 |
msgid "~ Syed Balkhi<br>Co-Founder of WPForms"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
-
#: includes/admin/class-review.php:
|
1926 |
-
#: includes/admin/class-review.php:
|
1927 |
msgid "Ok, you deserve it"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#: includes/admin/class-review.php:
|
1931 |
-
#: includes/admin/class-review.php:
|
1932 |
msgid "Nope, maybe later"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: includes/admin/class-review.php:
|
1936 |
-
#: includes/admin/class-review.php:
|
1937 |
msgid "I already did"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: includes/admin/class-review.php:
|
1941 |
msgid "Hey, I noticed you created a contact form with WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
#. translators: $1$s - WPForms plugin name; $2$s - WP.org review link; $3$s - WP.org review link.
|
1945 |
-
#: includes/admin/class-review.php:
|
1946 |
msgid "Please rate %1$s <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">★★★★★</a> on <a href=\"%3$s\" target=\"_blank\" rel=\"noopener\">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!"
|
1947 |
msgstr ""
|
1948 |
|
@@ -2395,9 +2395,9 @@ msgid "per year"
|
|
2395 |
msgstr ""
|
2396 |
|
2397 |
#: includes/admin/class-welcome.php:286
|
2398 |
-
#: lite/templates/admin/addons.php:
|
2399 |
-
#: lite/templates/admin/addons.php:59
|
2400 |
#: src/Admin/Tools/Views/Importer.php:363
|
|
|
2401 |
msgid "Upgrade Now"
|
2402 |
msgstr ""
|
2403 |
|
@@ -2537,7 +2537,7 @@ msgid "Paste license key here"
|
|
2537 |
msgstr ""
|
2538 |
|
2539 |
#: includes/admin/settings-api.php:143
|
2540 |
-
#: includes/providers/class-constant-contact.php:
|
2541 |
msgid "Connect"
|
2542 |
msgstr ""
|
2543 |
|
@@ -2623,7 +2623,7 @@ msgctxt "Conditional Logic: new rule logic."
|
|
2623 |
msgid "or"
|
2624 |
msgstr ""
|
2625 |
|
2626 |
-
#: includes/class-form.php:
|
2627 |
#: includes/templates/class-blank.php:30
|
2628 |
#: includes/templates/class-contact.php:72
|
2629 |
#: includes/templates/class-subscribe.php:48
|
@@ -2632,7 +2632,7 @@ msgid "Sending..."
|
|
2632 |
msgstr ""
|
2633 |
|
2634 |
#. translators: %s - form name.
|
2635 |
-
#: includes/class-form.php:
|
2636 |
#: lite/wpforms-lite.php:143
|
2637 |
#: src/Admin/Tools/Importers/ContactForm7.php:133
|
2638 |
#: src/Admin/Tools/Importers/ContactForm7.php:448
|
@@ -2642,7 +2642,7 @@ msgstr ""
|
|
2642 |
msgid "New Entry: %s"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
-
#: includes/class-form.php:
|
2646 |
#: includes/class-process.php:541
|
2647 |
#: includes/templates/class-contact.php:66
|
2648 |
#: lite/wpforms-lite.php:270
|
@@ -2689,11 +2689,11 @@ msgid "Google reCAPTCHA verification failed, please try again later."
|
|
2689 |
msgstr ""
|
2690 |
|
2691 |
#. translators: %s - URL to the troubleshooting guide.
|
2692 |
-
#: includes/class-frontend.php:
|
2693 |
msgid "Heads up! WPForms has detected an issue with JavaScript on this page. JavaScript is required for this form to work properly, so this form may not work as expected. See our <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">troubleshooting guide</a> to learn more or contact support."
|
2694 |
msgstr ""
|
2695 |
|
2696 |
-
#: includes/class-frontend.php:
|
2697 |
msgid "This message is only displayed to site administrators."
|
2698 |
msgstr ""
|
2699 |
|
@@ -4759,7 +4759,7 @@ msgstr ""
|
|
4759 |
|
4760 |
#: includes/providers/class-base.php:742
|
4761 |
#: includes/providers/class-base.php:1303
|
4762 |
-
#: includes/providers/class-constant-contact.php:
|
4763 |
#: src/Providers/Provider/Settings/FormBuilder.php:433
|
4764 |
#: src/Providers/Provider/Settings/PageIntegrations.php:153
|
4765 |
msgid "Add New Account"
|
@@ -4851,202 +4851,202 @@ msgstr ""
|
|
4851 |
msgid "Please fill out all of the fields below to add your new provider account."
|
4852 |
msgstr ""
|
4853 |
|
4854 |
-
#: includes/providers/class-constant-contact.php:
|
4855 |
msgid "Constant Contact Subscription stopped by conditional logic"
|
4856 |
msgstr ""
|
4857 |
|
4858 |
-
#: includes/providers/class-constant-contact.php:
|
4859 |
-
#: includes/providers/class-constant-contact.php:
|
4860 |
-
#: includes/providers/class-constant-contact.php:
|
4861 |
msgid "Constant Contact API Error"
|
4862 |
msgstr ""
|
4863 |
|
4864 |
-
#: includes/providers/class-constant-contact.php:
|
4865 |
msgid "API list error: Constant API error"
|
4866 |
msgstr ""
|
4867 |
|
4868 |
-
#: includes/providers/class-constant-contact.php:
|
4869 |
msgid "Please fill out all of the fields below to register your new Constant Contact account."
|
4870 |
msgstr ""
|
4871 |
|
4872 |
-
#: includes/providers/class-constant-contact.php:
|
4873 |
-
#: includes/providers/class-constant-contact.php:
|
4874 |
msgid "Click here for documentation on connecting WPForms with Constant Contact."
|
4875 |
msgstr ""
|
4876 |
|
4877 |
-
#: includes/providers/class-constant-contact.php:
|
4878 |
-
#: includes/providers/class-constant-contact.php:
|
4879 |
msgid "Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: includes/providers/class-constant-contact.php:
|
4883 |
-
#: includes/providers/class-constant-contact.php:
|
4884 |
msgid "Click here to register with Constant Contact"
|
4885 |
msgstr ""
|
4886 |
|
4887 |
-
#: includes/providers/class-constant-contact.php:
|
4888 |
-
#: includes/providers/class-constant-contact.php:
|
4889 |
msgid "Authorization Code"
|
4890 |
msgstr ""
|
4891 |
|
4892 |
-
#: includes/providers/class-constant-contact.php:
|
4893 |
-
#: includes/providers/class-constant-contact.php:
|
4894 |
msgid "Account Nickname"
|
4895 |
msgstr ""
|
4896 |
|
4897 |
-
#: includes/providers/class-constant-contact.php:
|
4898 |
msgid "Get the most out of <strong>WPForms</strong> — use it with an active Constant Contact account."
|
4899 |
msgstr ""
|
4900 |
|
4901 |
-
#: includes/providers/class-constant-contact.php:
|
4902 |
-
#: includes/providers/class-constant-contact.php:
|
4903 |
msgid "Try Constant Contact for Free"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
#. translators: %s - WPForms Constant Contact internal URL.
|
4907 |
-
#: includes/providers/class-constant-contact.php:
|
4908 |
msgid "Learn More about the <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">power of email marketing</a>"
|
4909 |
msgstr ""
|
4910 |
|
4911 |
-
#: includes/providers/class-constant-contact.php:
|
4912 |
msgid "Get the most out of the <strong>WPForms</strong> plugin — use it with an active Constant Contact account."
|
4913 |
msgstr ""
|
4914 |
|
4915 |
-
#: includes/providers/class-constant-contact.php:
|
4916 |
msgid "Connect your existing account"
|
4917 |
msgstr ""
|
4918 |
|
4919 |
#. translators: %s - WPForms Constant Contact internal URL.
|
4920 |
-
#: includes/providers/class-constant-contact.php:
|
4921 |
msgid "Learn More about the <a href=\"%s\">power of email marketing</a>"
|
4922 |
msgstr ""
|
4923 |
|
4924 |
-
#: includes/providers/class-constant-contact.php:
|
4925 |
msgid "Grow Your Website with WPForms + Email Marketing"
|
4926 |
msgstr ""
|
4927 |
|
4928 |
-
#: includes/providers/class-constant-contact.php:
|
4929 |
msgid "Wondering if email marketing is really worth your time?"
|
4930 |
msgstr ""
|
4931 |
|
4932 |
-
#: includes/providers/class-constant-contact.php:
|
4933 |
msgid "Email is hands-down the most effective way to nurture leads and turn them into customers, with a return on investment (ROI) of <strong>$44 back for every $1 spent</strong> according to DMA."
|
4934 |
msgstr ""
|
4935 |
|
4936 |
-
#: includes/providers/class-constant-contact.php:
|
4937 |
msgid "Here are 3 big reasons why every smart business in the world has an email list:"
|
4938 |
msgstr ""
|
4939 |
|
4940 |
-
#: includes/providers/class-constant-contact.php:
|
4941 |
msgid "<strong>Email is still #1</strong> - At least 91% of consumers check their email on a daily basis. You get direct access to your subscribers, without having to play by social media's rules and algorithms."
|
4942 |
msgstr ""
|
4943 |
|
4944 |
-
#: includes/providers/class-constant-contact.php:
|
4945 |
msgid "<strong>You own your email list</strong> - Unlike with social media, your list is your property and no one can revoke your access to it."
|
4946 |
msgstr ""
|
4947 |
|
4948 |
-
#: includes/providers/class-constant-contact.php:
|
4949 |
msgid "<strong>Email converts</strong> - People who buy products marketed through email spend 138% more than those who don't receive email offers."
|
4950 |
msgstr ""
|
4951 |
|
4952 |
-
#: includes/providers/class-constant-contact.php:
|
4953 |
msgid "That's why it's crucial to start collecting email addresses and building your list as soon as possible."
|
4954 |
msgstr ""
|
4955 |
|
4956 |
#. translators: %s - WPBeginners.com Guide to Email Lists URL.
|
4957 |
-
#: includes/providers/class-constant-contact.php:
|
4958 |
msgid "For more details, see this guide on <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">why building your email list is so important</a>."
|
4959 |
msgstr ""
|
4960 |
|
4961 |
-
#: includes/providers/class-constant-contact.php:
|
4962 |
msgid "You've Already Started - Here's the Next Step (It's Easy)"
|
4963 |
msgstr ""
|
4964 |
|
4965 |
-
#: includes/providers/class-constant-contact.php:
|
4966 |
msgid "Here are the 3 things you need to build an email list:"
|
4967 |
msgstr ""
|
4968 |
|
4969 |
-
#: includes/providers/class-constant-contact.php:
|
4970 |
msgid "A Website or Blog"
|
4971 |
msgstr ""
|
4972 |
|
4973 |
-
#: includes/providers/class-constant-contact.php:
|
4974 |
msgid "High-Converting Form Builder"
|
4975 |
msgstr ""
|
4976 |
|
4977 |
-
#: includes/providers/class-constant-contact.php:
|
4978 |
msgid "The Best Email Marketing Service"
|
4979 |
msgstr ""
|
4980 |
|
4981 |
-
#: includes/providers/class-constant-contact.php:
|
4982 |
msgid "With a powerful email marketing service like Constant Contact, you can instantly send out mass notifications and beautifully designed newsletters to engage your subscribers."
|
4983 |
msgstr ""
|
4984 |
|
4985 |
-
#: includes/providers/class-constant-contact.php:
|
4986 |
msgid "Get Started with Constant Contact for Free"
|
4987 |
msgstr ""
|
4988 |
|
4989 |
-
#: includes/providers/class-constant-contact.php:
|
4990 |
msgid "WPForms plugin makes it fast and easy to capture all kinds of visitor information right from your WordPress site - even if you don't have a Constant Contact account."
|
4991 |
msgstr ""
|
4992 |
|
4993 |
-
#: includes/providers/class-constant-contact.php:
|
4994 |
msgid "But when you combine WPForms with Constant Contact, you can nurture your contacts and engage with them even after they leave your website. When you use Constant Contact + WPForms together, you can:"
|
4995 |
msgstr ""
|
4996 |
|
4997 |
-
#: includes/providers/class-constant-contact.php:
|
4998 |
msgid "Seamlessly add new contacts to your email list"
|
4999 |
msgstr ""
|
5000 |
|
5001 |
-
#: includes/providers/class-constant-contact.php:
|
5002 |
msgid "Create and send professional email newsletters"
|
5003 |
msgstr ""
|
5004 |
|
5005 |
-
#: includes/providers/class-constant-contact.php:
|
5006 |
msgid "Get expert marketing and support"
|
5007 |
msgstr ""
|
5008 |
|
5009 |
-
#: includes/providers/class-constant-contact.php:
|
5010 |
msgid "Try Constant Contact Today"
|
5011 |
msgstr ""
|
5012 |
|
5013 |
-
#: includes/providers/class-constant-contact.php:
|
5014 |
msgid "WPForms Makes List Building Easy"
|
5015 |
msgstr ""
|
5016 |
|
5017 |
-
#: includes/providers/class-constant-contact.php:
|
5018 |
msgid "When creating WPForms, our goal was to make a WordPress forms plugin that's both EASY and POWERFUL."
|
5019 |
msgstr ""
|
5020 |
|
5021 |
-
#: includes/providers/class-constant-contact.php:
|
5022 |
msgid "We made the form creation process extremely intuitive, so you can create a form to start capturing emails within 5 minutes or less."
|
5023 |
msgstr ""
|
5024 |
|
5025 |
-
#: includes/providers/class-constant-contact.php:
|
5026 |
msgid "Here's how it works."
|
5027 |
msgstr ""
|
5028 |
|
5029 |
-
#: includes/providers/class-constant-contact.php:
|
5030 |
msgid "1. Select from our pre-built templates, or create a form from scratch."
|
5031 |
msgstr ""
|
5032 |
|
5033 |
-
#: includes/providers/class-constant-contact.php:
|
5034 |
msgid "2. Drag and drop any field you want onto your signup form."
|
5035 |
msgstr ""
|
5036 |
|
5037 |
-
#: includes/providers/class-constant-contact.php:
|
5038 |
msgid "3. Connect your Constant Contact email list."
|
5039 |
msgstr ""
|
5040 |
|
5041 |
-
#: includes/providers/class-constant-contact.php:
|
5042 |
msgid "4. Add your new form to any post, page, or sidebar."
|
5043 |
msgstr ""
|
5044 |
|
5045 |
-
#: includes/providers/class-constant-contact.php:
|
5046 |
msgid "It doesn't matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today."
|
5047 |
msgstr ""
|
5048 |
|
5049 |
-
#: includes/providers/class-constant-contact.php:
|
5050 |
msgid "With Constant Contact + WPForms, growing your list is easy."
|
5051 |
msgstr ""
|
5052 |
|
@@ -5126,15 +5126,7 @@ msgstr ""
|
|
5126 |
msgid "Search Addons"
|
5127 |
msgstr ""
|
5128 |
|
5129 |
-
#: lite/templates/admin/addons.php:
|
5130 |
-
msgid "Form Addons are a PRO feature."
|
5131 |
-
msgstr ""
|
5132 |
-
|
5133 |
-
#: lite/templates/admin/addons.php:23
|
5134 |
-
msgid "Please upgrade to the PRO plan to unlock them and more awesome features."
|
5135 |
-
msgstr ""
|
5136 |
-
|
5137 |
-
#: lite/templates/admin/addons.php:37
|
5138 |
msgid "Unknown Addon"
|
5139 |
msgstr ""
|
5140 |
|
@@ -5328,51 +5320,51 @@ msgstr ""
|
|
5328 |
msgid "<strong>Bonus:</strong> WPForms Lite users get <span class=\"green\">50% off regular price</span>, automatically applied at checkout."
|
5329 |
msgstr ""
|
5330 |
|
5331 |
-
#: lite/wpforms-lite.php:
|
5332 |
msgid "View and Manage All Your Form Entries inside WordPress"
|
5333 |
msgstr ""
|
5334 |
|
5335 |
-
#: lite/wpforms-lite.php:
|
5336 |
msgid "Form entries are not stored in WPForms Lite."
|
5337 |
msgstr ""
|
5338 |
|
5339 |
-
#: lite/wpforms-lite.php:
|
5340 |
msgid "Once you upgrade to WPForms Pro, all future form entries will be stored in your WordPress database and displayed on this Entries screen."
|
5341 |
msgstr ""
|
5342 |
|
5343 |
-
#: lite/wpforms-lite.php:
|
5344 |
msgid "View Entries in Dashboard"
|
5345 |
msgstr ""
|
5346 |
|
5347 |
-
#: lite/wpforms-lite.php:
|
5348 |
msgid "Export Entries in a CSV File"
|
5349 |
msgstr ""
|
5350 |
|
5351 |
-
#: lite/wpforms-lite.php:
|
5352 |
msgid "Add Notes / Comments"
|
5353 |
msgstr ""
|
5354 |
|
5355 |
-
#: lite/wpforms-lite.php:
|
5356 |
msgid "Save Favorite Entries"
|
5357 |
msgstr ""
|
5358 |
|
5359 |
-
#: lite/wpforms-lite.php:
|
5360 |
msgid "Mark Read / Unread"
|
5361 |
msgstr ""
|
5362 |
|
5363 |
-
#: lite/wpforms-lite.php:
|
5364 |
msgid "Print Entries"
|
5365 |
msgstr ""
|
5366 |
|
5367 |
-
#: lite/wpforms-lite.php:
|
5368 |
msgid "Resend Notifications"
|
5369 |
msgstr ""
|
5370 |
|
5371 |
-
#: lite/wpforms-lite.php:
|
5372 |
msgid "See Geolocation Data"
|
5373 |
msgstr ""
|
5374 |
|
5375 |
-
#: lite/wpforms-lite.php:
|
5376 |
msgid "Upgrade to WPForms Pro Now"
|
5377 |
msgstr ""
|
5378 |
|
@@ -6655,6 +6647,14 @@ msgstr ""
|
|
6655 |
msgid "Collect payments for product and service orders with this ready-made form template. You can add and remove fields as needed."
|
6656 |
msgstr ""
|
6657 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6658 |
#: src/Lite/Admin/Settings/Access.php:84
|
6659 |
msgid "Access"
|
6660 |
msgstr ""
|
@@ -6763,7 +6763,7 @@ msgstr ""
|
|
6763 |
|
6764 |
#: src/Logger/ListTable.php:258
|
6765 |
#: src/Logger/ListTable.php:459
|
6766 |
-
#: src/SmartTags/SmartTags.php:
|
6767 |
msgid "Form ID"
|
6768 |
msgstr ""
|
6769 |
|
@@ -6774,7 +6774,7 @@ msgstr ""
|
|
6774 |
|
6775 |
#: src/Logger/ListTable.php:260
|
6776 |
#: src/Logger/ListTable.php:445
|
6777 |
-
#: src/SmartTags/SmartTags.php:
|
6778 |
msgid "Date"
|
6779 |
msgstr ""
|
6780 |
|
@@ -6812,7 +6812,7 @@ msgid "Entry ID"
|
|
6812 |
msgstr ""
|
6813 |
|
6814 |
#: src/Logger/ListTable.php:483
|
6815 |
-
#: src/SmartTags/SmartTags.php:
|
6816 |
msgid "User ID"
|
6817 |
msgstr ""
|
6818 |
|
@@ -6904,100 +6904,100 @@ msgstr ""
|
|
6904 |
msgid "Missing required data in payload."
|
6905 |
msgstr ""
|
6906 |
|
6907 |
-
#: src/SmartTags/SmartTags.php:
|
6908 |
msgid "Site Administrator Email"
|
6909 |
msgstr ""
|
6910 |
|
6911 |
-
#: src/SmartTags/SmartTags.php:
|
6912 |
msgid "Field ID"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
-
#: src/SmartTags/SmartTags.php:
|
6916 |
msgid "Field HTML ID"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
-
#: src/SmartTags/SmartTags.php:
|
6920 |
msgid "Field Value"
|
6921 |
msgstr ""
|
6922 |
|
6923 |
-
#: src/SmartTags/SmartTags.php:
|
6924 |
msgid "Embedded Post/Page Title"
|
6925 |
msgstr ""
|
6926 |
|
6927 |
-
#: src/SmartTags/SmartTags.php:
|
6928 |
msgid "Embedded Post/Page URL"
|
6929 |
msgstr ""
|
6930 |
|
6931 |
-
#: src/SmartTags/SmartTags.php:
|
6932 |
msgid "Embedded Post/Page ID"
|
6933 |
msgstr ""
|
6934 |
|
6935 |
-
#: src/SmartTags/SmartTags.php:
|
6936 |
msgid "Query String Variable"
|
6937 |
msgstr ""
|
6938 |
|
6939 |
-
#: src/SmartTags/SmartTags.php:
|
6940 |
msgid "User IP Address"
|
6941 |
msgstr ""
|
6942 |
|
6943 |
-
#: src/SmartTags/SmartTags.php:
|
6944 |
msgid "User Display Name"
|
6945 |
msgstr ""
|
6946 |
|
6947 |
-
#: src/SmartTags/SmartTags.php:
|
6948 |
msgid "User Full Name"
|
6949 |
msgstr ""
|
6950 |
|
6951 |
-
#: src/SmartTags/SmartTags.php:
|
6952 |
msgid "User First Name"
|
6953 |
msgstr ""
|
6954 |
|
6955 |
-
#: src/SmartTags/SmartTags.php:
|
6956 |
msgid "User Last Name"
|
6957 |
msgstr ""
|
6958 |
|
6959 |
-
#: src/SmartTags/SmartTags.php:
|
6960 |
msgid "User Email"
|
6961 |
msgstr ""
|
6962 |
|
6963 |
-
#: src/SmartTags/SmartTags.php:
|
6964 |
msgid "User Meta"
|
6965 |
msgstr ""
|
6966 |
|
6967 |
-
#: src/SmartTags/SmartTags.php:
|
6968 |
msgid "Author ID"
|
6969 |
msgstr ""
|
6970 |
|
6971 |
-
#: src/SmartTags/SmartTags.php:
|
6972 |
msgid "Author Name"
|
6973 |
msgstr ""
|
6974 |
|
6975 |
-
#: src/SmartTags/SmartTags.php:
|
6976 |
msgid "Author Email"
|
6977 |
msgstr ""
|
6978 |
|
6979 |
-
#: src/SmartTags/SmartTags.php:
|
6980 |
msgid "Referrer URL"
|
6981 |
msgstr ""
|
6982 |
|
6983 |
-
#: src/SmartTags/SmartTags.php:
|
6984 |
msgid "Login URL"
|
6985 |
msgstr ""
|
6986 |
|
6987 |
-
#: src/SmartTags/SmartTags.php:
|
6988 |
msgid "Logout URL"
|
6989 |
msgstr ""
|
6990 |
|
6991 |
-
#: src/SmartTags/SmartTags.php:
|
6992 |
msgid "Register URL"
|
6993 |
msgstr ""
|
6994 |
|
6995 |
-
#: src/SmartTags/SmartTags.php:
|
6996 |
msgid "Lost Password URL"
|
6997 |
msgstr ""
|
6998 |
|
6999 |
#: src/WPForms.php:126
|
7000 |
-
msgid "Property smart_tags was deprecated use wpforms()->get( 'smart_tags' ) instead of wpforms()->smart_tags"
|
7001 |
msgstr ""
|
7002 |
|
7003 |
#: templates/admin/challenge/builder.php:15
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WPForms Lite 1.6.7.1\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms-lite\n"
|
5 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
6 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
+
"POT-Creation-Date: 2021-06-15T13:46:05+03:00\n"
|
11 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
+
"X-Generator: WP-CLI 2.5.0\n"
|
13 |
"X-Domain: wpforms-lite\n"
|
14 |
|
15 |
#. Plugin Name of the plugin
|
69 |
msgstr ""
|
70 |
|
71 |
#: includes/admin/admin.php:132
|
72 |
+
#: includes/admin/ajax-actions.php:521
|
73 |
msgid "Could not install addon. Please download from wpforms.com and install manually."
|
74 |
msgstr ""
|
75 |
|
304 |
msgstr ""
|
305 |
|
306 |
#: includes/admin/ajax-actions.php:100
|
307 |
+
msgid "No form name provided."
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: includes/admin/ajax-actions.php:129
|
311 |
+
msgid "Error creating form."
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: includes/admin/ajax-actions.php:169
|
315 |
msgid "No form ID provided"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: includes/admin/ajax-actions.php:199
|
319 |
msgid "Error updating form template"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: includes/admin/ajax-actions.php:307
|
323 |
#: includes/fields/class-base.php:983
|
324 |
msgid "post type"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: includes/admin/ajax-actions.php:338
|
328 |
#: includes/fields/class-base.php:990
|
329 |
msgid "taxonomy"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: includes/admin/ajax-actions.php:365
|
333 |
#: includes/emails/class-emails.php:565
|
334 |
#: includes/emails/class-emails.php:610
|
335 |
#: includes/fields/class-base.php:1550
|
337 |
msgid "(empty)"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: includes/admin/ajax-actions.php:398
|
341 |
msgid "You do not have permission to perform this operation."
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: includes/admin/ajax-actions.php:408
|
345 |
msgid "Success! Your server can make SSL connections."
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: includes/admin/ajax-actions.php:415
|
349 |
msgid "There was an error and the connection failed. Please contact your web host with the technical details below."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: includes/admin/ajax-actions.php:435
|
353 |
msgid "Plugin deactivation is disabled for you on this site."
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: includes/admin/ajax-actions.php:451
|
357 |
msgid "Plugin deactivated."
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: includes/admin/ajax-actions.php:453
|
361 |
msgid "Addon deactivated."
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: includes/admin/ajax-actions.php:457
|
365 |
msgid "Could not deactivate the addon. Please deactivate from the Plugins page."
|
366 |
msgstr ""
|
367 |
|
368 |
+
#: includes/admin/ajax-actions.php:474
|
369 |
msgid "Plugin activation is disabled for you on this site."
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: includes/admin/ajax-actions.php:491
|
373 |
msgid "Plugin activated."
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: includes/admin/ajax-actions.php:493
|
377 |
msgid "Addon activated."
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: includes/admin/ajax-actions.php:498
|
381 |
msgid "Could not activate addon. Please activate from the Plugins page."
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: includes/admin/ajax-actions.php:513
|
385 |
msgid "There was an error while performing your request."
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: includes/admin/ajax-actions.php:521
|
389 |
msgid "Could not install plugin. Please download and install manually."
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: includes/admin/ajax-actions.php:591
|
393 |
msgid "Plugin installed."
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: includes/admin/ajax-actions.php:591
|
397 |
msgid "Addon installed."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/admin/ajax-actions.php:601
|
401 |
#: src/Lite/Admin/Connect.php:182
|
402 |
#: src/Lite/Admin/Connect.php:195
|
403 |
#: src/Lite/Admin/Connect.php:255
|
404 |
msgid "Plugin installed & activated."
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: includes/admin/ajax-actions.php:601
|
408 |
msgid "Addon installed & activated."
|
409 |
msgstr ""
|
410 |
|
894 |
|
895 |
#: includes/admin/builder/panels/class-fields.php:159
|
896 |
#: includes/admin/builder/panels/class-settings.php:115
|
897 |
+
#: includes/class-form.php:318
|
898 |
#: includes/templates/class-contact.php:71
|
899 |
#: src/Admin/Tools/Importers/ContactForm7.php:124
|
900 |
#: src/Admin/Tools/Importers/NinjaForms.php:129
|
934 |
msgstr ""
|
935 |
|
936 |
#: includes/admin/builder/panels/class-fields.php:404
|
937 |
+
#: lite/templates/admin/addons.php:40
|
938 |
msgid "Learn more"
|
939 |
msgstr ""
|
940 |
|
1062 |
#: includes/admin/builder/panels/class-settings.php:86
|
1063 |
#: includes/admin/builder/panels/class-setup.php:52
|
1064 |
#: src/Integrations/Elementor/Widget.php:222
|
1065 |
+
#: src/SmartTags/SmartTags.php:112
|
1066 |
msgid "Form Name"
|
1067 |
msgstr ""
|
1068 |
|
1913 |
msgid "Go to WPForms Lite vs Pro comparison page"
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: includes/admin/class-review.php:103
|
1917 |
msgid "Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
+
#: includes/admin/class-review.php:104
|
1921 |
+
#: includes/admin/class-review.php:167
|
1922 |
msgid "~ Syed Balkhi<br>Co-Founder of WPForms"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: includes/admin/class-review.php:106
|
1926 |
+
#: includes/admin/class-review.php:169
|
1927 |
msgid "Ok, you deserve it"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: includes/admin/class-review.php:107
|
1931 |
+
#: includes/admin/class-review.php:170
|
1932 |
msgid "Nope, maybe later"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: includes/admin/class-review.php:108
|
1936 |
+
#: includes/admin/class-review.php:171
|
1937 |
msgid "I already did"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: includes/admin/class-review.php:166
|
1941 |
msgid "Hey, I noticed you created a contact form with WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
#. translators: $1$s - WPForms plugin name; $2$s - WP.org review link; $3$s - WP.org review link.
|
1945 |
+
#: includes/admin/class-review.php:224
|
1946 |
msgid "Please rate %1$s <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">★★★★★</a> on <a href=\"%3$s\" target=\"_blank\" rel=\"noopener\">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!"
|
1947 |
msgstr ""
|
1948 |
|
2395 |
msgstr ""
|
2396 |
|
2397 |
#: includes/admin/class-welcome.php:286
|
2398 |
+
#: lite/templates/admin/addons.php:50
|
|
|
2399 |
#: src/Admin/Tools/Views/Importer.php:363
|
2400 |
+
#: src/Lite/Admin/Pages/Addons.php:101
|
2401 |
msgid "Upgrade Now"
|
2402 |
msgstr ""
|
2403 |
|
2537 |
msgstr ""
|
2538 |
|
2539 |
#: includes/admin/settings-api.php:143
|
2540 |
+
#: includes/providers/class-constant-contact.php:512
|
2541 |
msgid "Connect"
|
2542 |
msgstr ""
|
2543 |
|
2623 |
msgid "or"
|
2624 |
msgstr ""
|
2625 |
|
2626 |
+
#: includes/class-form.php:319
|
2627 |
#: includes/templates/class-blank.php:30
|
2628 |
#: includes/templates/class-contact.php:72
|
2629 |
#: includes/templates/class-subscribe.php:48
|
2632 |
msgstr ""
|
2633 |
|
2634 |
#. translators: %s - form name.
|
2635 |
+
#: includes/class-form.php:324
|
2636 |
#: lite/wpforms-lite.php:143
|
2637 |
#: src/Admin/Tools/Importers/ContactForm7.php:133
|
2638 |
#: src/Admin/Tools/Importers/ContactForm7.php:448
|
2642 |
msgid "New Entry: %s"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: includes/class-form.php:334
|
2646 |
#: includes/class-process.php:541
|
2647 |
#: includes/templates/class-contact.php:66
|
2648 |
#: lite/wpforms-lite.php:270
|
2689 |
msgstr ""
|
2690 |
|
2691 |
#. translators: %s - URL to the troubleshooting guide.
|
2692 |
+
#: includes/class-frontend.php:1745
|
2693 |
msgid "Heads up! WPForms has detected an issue with JavaScript on this page. JavaScript is required for this form to work properly, so this form may not work as expected. See our <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">troubleshooting guide</a> to learn more or contact support."
|
2694 |
msgstr ""
|
2695 |
|
2696 |
+
#: includes/class-frontend.php:1758
|
2697 |
msgid "This message is only displayed to site administrators."
|
2698 |
msgstr ""
|
2699 |
|
4759 |
|
4760 |
#: includes/providers/class-base.php:742
|
4761 |
#: includes/providers/class-base.php:1303
|
4762 |
+
#: includes/providers/class-constant-contact.php:491
|
4763 |
#: src/Providers/Provider/Settings/FormBuilder.php:433
|
4764 |
#: src/Providers/Provider/Settings/PageIntegrations.php:153
|
4765 |
msgid "Add New Account"
|
4851 |
msgid "Please fill out all of the fields below to add your new provider account."
|
4852 |
msgstr ""
|
4853 |
|
4854 |
+
#: includes/providers/class-constant-contact.php:114
|
4855 |
msgid "Constant Contact Subscription stopped by conditional logic"
|
4856 |
msgstr ""
|
4857 |
|
4858 |
+
#: includes/providers/class-constant-contact.php:132
|
4859 |
+
#: includes/providers/class-constant-contact.php:310
|
4860 |
+
#: includes/providers/class-constant-contact.php:395
|
4861 |
msgid "Constant Contact API Error"
|
4862 |
msgstr ""
|
4863 |
|
4864 |
+
#: includes/providers/class-constant-contact.php:402
|
4865 |
msgid "API list error: Constant API error"
|
4866 |
msgstr ""
|
4867 |
|
4868 |
+
#: includes/providers/class-constant-contact.php:494
|
4869 |
msgid "Please fill out all of the fields below to register your new Constant Contact account."
|
4870 |
msgstr ""
|
4871 |
|
4872 |
+
#: includes/providers/class-constant-contact.php:496
|
4873 |
+
#: includes/providers/class-constant-contact.php:597
|
4874 |
msgid "Click here for documentation on connecting WPForms with Constant Contact."
|
4875 |
msgstr ""
|
4876 |
|
4877 |
+
#: includes/providers/class-constant-contact.php:501
|
4878 |
+
#: includes/providers/class-constant-contact.php:602
|
4879 |
msgid "Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
+
#: includes/providers/class-constant-contact.php:505
|
4883 |
+
#: includes/providers/class-constant-contact.php:606
|
4884 |
msgid "Click here to register with Constant Contact"
|
4885 |
msgstr ""
|
4886 |
|
4887 |
+
#: includes/providers/class-constant-contact.php:508
|
4888 |
+
#: includes/providers/class-constant-contact.php:609
|
4889 |
msgid "Authorization Code"
|
4890 |
msgstr ""
|
4891 |
|
4892 |
+
#: includes/providers/class-constant-contact.php:510
|
4893 |
+
#: includes/providers/class-constant-contact.php:611
|
4894 |
msgid "Account Nickname"
|
4895 |
msgstr ""
|
4896 |
|
4897 |
+
#: includes/providers/class-constant-contact.php:552
|
4898 |
msgid "Get the most out of <strong>WPForms</strong> — use it with an active Constant Contact account."
|
4899 |
msgstr ""
|
4900 |
|
4901 |
+
#: includes/providers/class-constant-contact.php:561
|
4902 |
+
#: includes/providers/class-constant-contact.php:670
|
4903 |
msgid "Try Constant Contact for Free"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
#. translators: %s - WPForms Constant Contact internal URL.
|
4907 |
+
#: includes/providers/class-constant-contact.php:567
|
4908 |
msgid "Learn More about the <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">power of email marketing</a>"
|
4909 |
msgstr ""
|
4910 |
|
4911 |
+
#: includes/providers/class-constant-contact.php:661
|
4912 |
msgid "Get the most out of the <strong>WPForms</strong> plugin — use it with an active Constant Contact account."
|
4913 |
msgstr ""
|
4914 |
|
4915 |
+
#: includes/providers/class-constant-contact.php:673
|
4916 |
msgid "Connect your existing account"
|
4917 |
msgstr ""
|
4918 |
|
4919 |
#. translators: %s - WPForms Constant Contact internal URL.
|
4920 |
+
#: includes/providers/class-constant-contact.php:678
|
4921 |
msgid "Learn More about the <a href=\"%s\">power of email marketing</a>"
|
4922 |
msgstr ""
|
4923 |
|
4924 |
+
#: includes/providers/class-constant-contact.php:761
|
4925 |
msgid "Grow Your Website with WPForms + Email Marketing"
|
4926 |
msgstr ""
|
4927 |
|
4928 |
+
#: includes/providers/class-constant-contact.php:762
|
4929 |
msgid "Wondering if email marketing is really worth your time?"
|
4930 |
msgstr ""
|
4931 |
|
4932 |
+
#: includes/providers/class-constant-contact.php:763
|
4933 |
msgid "Email is hands-down the most effective way to nurture leads and turn them into customers, with a return on investment (ROI) of <strong>$44 back for every $1 spent</strong> according to DMA."
|
4934 |
msgstr ""
|
4935 |
|
4936 |
+
#: includes/providers/class-constant-contact.php:764
|
4937 |
msgid "Here are 3 big reasons why every smart business in the world has an email list:"
|
4938 |
msgstr ""
|
4939 |
|
4940 |
+
#: includes/providers/class-constant-contact.php:769
|
4941 |
msgid "<strong>Email is still #1</strong> - At least 91% of consumers check their email on a daily basis. You get direct access to your subscribers, without having to play by social media's rules and algorithms."
|
4942 |
msgstr ""
|
4943 |
|
4944 |
+
#: includes/providers/class-constant-contact.php:770
|
4945 |
msgid "<strong>You own your email list</strong> - Unlike with social media, your list is your property and no one can revoke your access to it."
|
4946 |
msgstr ""
|
4947 |
|
4948 |
+
#: includes/providers/class-constant-contact.php:771
|
4949 |
msgid "<strong>Email converts</strong> - People who buy products marketed through email spend 138% more than those who don't receive email offers."
|
4950 |
msgstr ""
|
4951 |
|
4952 |
+
#: includes/providers/class-constant-contact.php:773
|
4953 |
msgid "That's why it's crucial to start collecting email addresses and building your list as soon as possible."
|
4954 |
msgstr ""
|
4955 |
|
4956 |
#. translators: %s - WPBeginners.com Guide to Email Lists URL.
|
4957 |
+
#: includes/providers/class-constant-contact.php:779
|
4958 |
msgid "For more details, see this guide on <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">why building your email list is so important</a>."
|
4959 |
msgstr ""
|
4960 |
|
4961 |
+
#: includes/providers/class-constant-contact.php:793
|
4962 |
msgid "You've Already Started - Here's the Next Step (It's Easy)"
|
4963 |
msgstr ""
|
4964 |
|
4965 |
+
#: includes/providers/class-constant-contact.php:794
|
4966 |
msgid "Here are the 3 things you need to build an email list:"
|
4967 |
msgstr ""
|
4968 |
|
4969 |
+
#: includes/providers/class-constant-contact.php:796
|
4970 |
msgid "A Website or Blog"
|
4971 |
msgstr ""
|
4972 |
|
4973 |
+
#: includes/providers/class-constant-contact.php:797
|
4974 |
msgid "High-Converting Form Builder"
|
4975 |
msgstr ""
|
4976 |
|
4977 |
+
#: includes/providers/class-constant-contact.php:798
|
4978 |
msgid "The Best Email Marketing Service"
|
4979 |
msgstr ""
|
4980 |
|
4981 |
+
#: includes/providers/class-constant-contact.php:800
|
4982 |
msgid "With a powerful email marketing service like Constant Contact, you can instantly send out mass notifications and beautifully designed newsletters to engage your subscribers."
|
4983 |
msgstr ""
|
4984 |
|
4985 |
+
#: includes/providers/class-constant-contact.php:803
|
4986 |
msgid "Get Started with Constant Contact for Free"
|
4987 |
msgstr ""
|
4988 |
|
4989 |
+
#: includes/providers/class-constant-contact.php:806
|
4990 |
msgid "WPForms plugin makes it fast and easy to capture all kinds of visitor information right from your WordPress site - even if you don't have a Constant Contact account."
|
4991 |
msgstr ""
|
4992 |
|
4993 |
+
#: includes/providers/class-constant-contact.php:807
|
4994 |
msgid "But when you combine WPForms with Constant Contact, you can nurture your contacts and engage with them even after they leave your website. When you use Constant Contact + WPForms together, you can:"
|
4995 |
msgstr ""
|
4996 |
|
4997 |
+
#: includes/providers/class-constant-contact.php:809
|
4998 |
msgid "Seamlessly add new contacts to your email list"
|
4999 |
msgstr ""
|
5000 |
|
5001 |
+
#: includes/providers/class-constant-contact.php:810
|
5002 |
msgid "Create and send professional email newsletters"
|
5003 |
msgstr ""
|
5004 |
|
5005 |
+
#: includes/providers/class-constant-contact.php:811
|
5006 |
msgid "Get expert marketing and support"
|
5007 |
msgstr ""
|
5008 |
|
5009 |
+
#: includes/providers/class-constant-contact.php:815
|
5010 |
msgid "Try Constant Contact Today"
|
5011 |
msgstr ""
|
5012 |
|
5013 |
+
#: includes/providers/class-constant-contact.php:819
|
5014 |
msgid "WPForms Makes List Building Easy"
|
5015 |
msgstr ""
|
5016 |
|
5017 |
+
#: includes/providers/class-constant-contact.php:820
|
5018 |
msgid "When creating WPForms, our goal was to make a WordPress forms plugin that's both EASY and POWERFUL."
|
5019 |
msgstr ""
|
5020 |
|
5021 |
+
#: includes/providers/class-constant-contact.php:821
|
5022 |
msgid "We made the form creation process extremely intuitive, so you can create a form to start capturing emails within 5 minutes or less."
|
5023 |
msgstr ""
|
5024 |
|
5025 |
+
#: includes/providers/class-constant-contact.php:822
|
5026 |
msgid "Here's how it works."
|
5027 |
msgstr ""
|
5028 |
|
5029 |
+
#: includes/providers/class-constant-contact.php:826
|
5030 |
msgid "1. Select from our pre-built templates, or create a form from scratch."
|
5031 |
msgstr ""
|
5032 |
|
5033 |
+
#: includes/providers/class-constant-contact.php:830
|
5034 |
msgid "2. Drag and drop any field you want onto your signup form."
|
5035 |
msgstr ""
|
5036 |
|
5037 |
+
#: includes/providers/class-constant-contact.php:834
|
5038 |
msgid "3. Connect your Constant Contact email list."
|
5039 |
msgstr ""
|
5040 |
|
5041 |
+
#: includes/providers/class-constant-contact.php:838
|
5042 |
msgid "4. Add your new form to any post, page, or sidebar."
|
5043 |
msgstr ""
|
5044 |
|
5045 |
+
#: includes/providers/class-constant-contact.php:841
|
5046 |
msgid "It doesn't matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today."
|
5047 |
msgstr ""
|
5048 |
|
5049 |
+
#: includes/providers/class-constant-contact.php:842
|
5050 |
msgid "With Constant Contact + WPForms, growing your list is easy."
|
5051 |
msgstr ""
|
5052 |
|
5126 |
msgid "Search Addons"
|
5127 |
msgstr ""
|
5128 |
|
5129 |
+
#: lite/templates/admin/addons.php:28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5130 |
msgid "Unknown Addon"
|
5131 |
msgstr ""
|
5132 |
|
5320 |
msgid "<strong>Bonus:</strong> WPForms Lite users get <span class=\"green\">50% off regular price</span>, automatically applied at checkout."
|
5321 |
msgstr ""
|
5322 |
|
5323 |
+
#: lite/wpforms-lite.php:650
|
5324 |
msgid "View and Manage All Your Form Entries inside WordPress"
|
5325 |
msgstr ""
|
5326 |
|
5327 |
+
#: lite/wpforms-lite.php:652
|
5328 |
msgid "Form entries are not stored in WPForms Lite."
|
5329 |
msgstr ""
|
5330 |
|
5331 |
+
#: lite/wpforms-lite.php:653
|
5332 |
msgid "Once you upgrade to WPForms Pro, all future form entries will be stored in your WordPress database and displayed on this Entries screen."
|
5333 |
msgstr ""
|
5334 |
|
5335 |
+
#: lite/wpforms-lite.php:657
|
5336 |
msgid "View Entries in Dashboard"
|
5337 |
msgstr ""
|
5338 |
|
5339 |
+
#: lite/wpforms-lite.php:658
|
5340 |
msgid "Export Entries in a CSV File"
|
5341 |
msgstr ""
|
5342 |
|
5343 |
+
#: lite/wpforms-lite.php:659
|
5344 |
msgid "Add Notes / Comments"
|
5345 |
msgstr ""
|
5346 |
|
5347 |
+
#: lite/wpforms-lite.php:660
|
5348 |
msgid "Save Favorite Entries"
|
5349 |
msgstr ""
|
5350 |
|
5351 |
+
#: lite/wpforms-lite.php:663
|
5352 |
msgid "Mark Read / Unread"
|
5353 |
msgstr ""
|
5354 |
|
5355 |
+
#: lite/wpforms-lite.php:664
|
5356 |
msgid "Print Entries"
|
5357 |
msgstr ""
|
5358 |
|
5359 |
+
#: lite/wpforms-lite.php:665
|
5360 |
msgid "Resend Notifications"
|
5361 |
msgstr ""
|
5362 |
|
5363 |
+
#: lite/wpforms-lite.php:666
|
5364 |
msgid "See Geolocation Data"
|
5365 |
msgstr ""
|
5366 |
|
5367 |
+
#: lite/wpforms-lite.php:672
|
5368 |
msgid "Upgrade to WPForms Pro Now"
|
5369 |
msgstr ""
|
5370 |
|
6647 |
msgid "Collect payments for product and service orders with this ready-made form template. You can add and remove fields as needed."
|
6648 |
msgstr ""
|
6649 |
|
6650 |
+
#: src/Lite/Admin/Pages/Addons.php:98
|
6651 |
+
msgid "WPForms Addons is a PRO feature."
|
6652 |
+
msgstr ""
|
6653 |
+
|
6654 |
+
#: src/Lite/Admin/Pages/Addons.php:99
|
6655 |
+
msgid "Please upgrade to the PRO plan to unlock them and more awesome features."
|
6656 |
+
msgstr ""
|
6657 |
+
|
6658 |
#: src/Lite/Admin/Settings/Access.php:84
|
6659 |
msgid "Access"
|
6660 |
msgstr ""
|
6763 |
|
6764 |
#: src/Logger/ListTable.php:258
|
6765 |
#: src/Logger/ListTable.php:459
|
6766 |
+
#: src/SmartTags/SmartTags.php:111
|
6767 |
msgid "Form ID"
|
6768 |
msgstr ""
|
6769 |
|
6774 |
|
6775 |
#: src/Logger/ListTable.php:260
|
6776 |
#: src/Logger/ListTable.php:445
|
6777 |
+
#: src/SmartTags/SmartTags.php:116
|
6778 |
msgid "Date"
|
6779 |
msgstr ""
|
6780 |
|
6812 |
msgstr ""
|
6813 |
|
6814 |
#: src/Logger/ListTable.php:483
|
6815 |
+
#: src/SmartTags/SmartTags.php:119
|
6816 |
msgid "User ID"
|
6817 |
msgstr ""
|
6818 |
|
6904 |
msgid "Missing required data in payload."
|
6905 |
msgstr ""
|
6906 |
|
6907 |
+
#: src/SmartTags/SmartTags.php:107
|
6908 |
msgid "Site Administrator Email"
|
6909 |
msgstr ""
|
6910 |
|
6911 |
+
#: src/SmartTags/SmartTags.php:108
|
6912 |
msgid "Field ID"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
+
#: src/SmartTags/SmartTags.php:109
|
6916 |
msgid "Field HTML ID"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
+
#: src/SmartTags/SmartTags.php:110
|
6920 |
msgid "Field Value"
|
6921 |
msgstr ""
|
6922 |
|
6923 |
+
#: src/SmartTags/SmartTags.php:113
|
6924 |
msgid "Embedded Post/Page Title"
|
6925 |
msgstr ""
|
6926 |
|
6927 |
+
#: src/SmartTags/SmartTags.php:114
|
6928 |
msgid "Embedded Post/Page URL"
|
6929 |
msgstr ""
|
6930 |
|
6931 |
+
#: src/SmartTags/SmartTags.php:115
|
6932 |
msgid "Embedded Post/Page ID"
|
6933 |
msgstr ""
|
6934 |
|
6935 |
+
#: src/SmartTags/SmartTags.php:117
|
6936 |
msgid "Query String Variable"
|
6937 |
msgstr ""
|
6938 |
|
6939 |
+
#: src/SmartTags/SmartTags.php:118
|
6940 |
msgid "User IP Address"
|
6941 |
msgstr ""
|
6942 |
|
6943 |
+
#: src/SmartTags/SmartTags.php:120
|
6944 |
msgid "User Display Name"
|
6945 |
msgstr ""
|
6946 |
|
6947 |
+
#: src/SmartTags/SmartTags.php:121
|
6948 |
msgid "User Full Name"
|
6949 |
msgstr ""
|
6950 |
|
6951 |
+
#: src/SmartTags/SmartTags.php:122
|
6952 |
msgid "User First Name"
|
6953 |
msgstr ""
|
6954 |
|
6955 |
+
#: src/SmartTags/SmartTags.php:123
|
6956 |
msgid "User Last Name"
|
6957 |
msgstr ""
|
6958 |
|
6959 |
+
#: src/SmartTags/SmartTags.php:124
|
6960 |
msgid "User Email"
|
6961 |
msgstr ""
|
6962 |
|
6963 |
+
#: src/SmartTags/SmartTags.php:125
|
6964 |
msgid "User Meta"
|
6965 |
msgstr ""
|
6966 |
|
6967 |
+
#: src/SmartTags/SmartTags.php:126
|
6968 |
msgid "Author ID"
|
6969 |
msgstr ""
|
6970 |
|
6971 |
+
#: src/SmartTags/SmartTags.php:127
|
6972 |
msgid "Author Name"
|
6973 |
msgstr ""
|
6974 |
|
6975 |
+
#: src/SmartTags/SmartTags.php:128
|
6976 |
msgid "Author Email"
|
6977 |
msgstr ""
|
6978 |
|
6979 |
+
#: src/SmartTags/SmartTags.php:129
|
6980 |
msgid "Referrer URL"
|
6981 |
msgstr ""
|
6982 |
|
6983 |
+
#: src/SmartTags/SmartTags.php:130
|
6984 |
msgid "Login URL"
|
6985 |
msgstr ""
|
6986 |
|
6987 |
+
#: src/SmartTags/SmartTags.php:131
|
6988 |
msgid "Logout URL"
|
6989 |
msgstr ""
|
6990 |
|
6991 |
+
#: src/SmartTags/SmartTags.php:132
|
6992 |
msgid "Register URL"
|
6993 |
msgstr ""
|
6994 |
|
6995 |
+
#: src/SmartTags/SmartTags.php:133
|
6996 |
msgid "Lost Password URL"
|
6997 |
msgstr ""
|
6998 |
|
6999 |
#: src/WPForms.php:126
|
7000 |
+
msgid "Property smart_tags was deprecated, use wpforms()->get( 'smart_tags' ) instead of wpforms()->smart_tags"
|
7001 |
msgstr ""
|
7002 |
|
7003 |
#: templates/admin/challenge/builder.php:15
|
changelog.txt
CHANGED
@@ -1,5 +1,14 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 1.6.7 =
|
4 |
- Changed: Email Summaries can now be tweaked via the hook to have multiple "To" recipients.
|
5 |
- Changed: Email Summaries subject line is changed to reduce a chance of going into spam folder.
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 1.6.7.1 =
|
4 |
+
- Changed: Improved logic of pasting a text in the fields with word and character limits.
|
5 |
+
- Changed: Updated DOMPurify lib to 2.2.9.
|
6 |
+
- Changed: Some admin notices can be dismissed on a per-user basis.
|
7 |
+
- Fixed: Smart Tags don't parse dot and comma symbols well.
|
8 |
+
- Fixed: In rare cases, WPForms functions calls are not handled correctly inside the third-party frontend AJAX calls.
|
9 |
+
- Fixed: Incorrect `wpforms_smart_tag_process` filter deprecation notice.
|
10 |
+
- Fixed: Compatibility with the Elementor 3.1.x, 3.2.x and 3.3.x.
|
11 |
+
|
12 |
= 1.6.7 =
|
13 |
- Changed: Email Summaries can now be tweaked via the hook to have multiple "To" recipients.
|
14 |
- Changed: Email Summaries subject line is changed to reduce a chance of going into spam folder.
|
includes/admin/admin.php
CHANGED
@@ -379,7 +379,7 @@ function wpforms_check_php_version() {
|
|
379 |
}
|
380 |
|
381 |
// Display the notice, finally.
|
382 |
-
|
383 |
'<p>' .
|
384 |
sprintf(
|
385 |
wp_kses(
|
379 |
}
|
380 |
|
381 |
// Display the notice, finally.
|
382 |
+
\WPForms\Admin\Notice::error(
|
383 |
'<p>' .
|
384 |
sprintf(
|
385 |
wp_kses(
|
includes/admin/ajax-actions.php
CHANGED
@@ -97,54 +97,59 @@ function wpforms_new_form() {
|
|
97 |
|
98 |
// Check for form name.
|
99 |
if ( empty( $_POST['title'] ) ) {
|
100 |
-
die( esc_html__( 'No form name provided', 'wpforms-lite' ) );
|
|
|
|
|
|
|
|
|
101 |
}
|
102 |
|
103 |
// Create form.
|
104 |
-
$form_title = sanitize_text_field( $_POST['title'] );
|
105 |
-
$form_template = sanitize_text_field( $_POST['template'] );
|
106 |
$title_exists = get_page_by_title( $form_title, 'OBJECT', 'wpforms' );
|
107 |
$form_id = wpforms()->form->add(
|
108 |
$form_title,
|
109 |
-
|
110 |
-
|
111 |
'template' => $form_template,
|
112 |
-
|
113 |
);
|
114 |
-
|
|
|
115 |
wp_update_post(
|
116 |
-
|
117 |
'ID' => $form_id,
|
118 |
'post_title' => $form_title . ' (ID #' . $form_id . ')',
|
119 |
-
|
120 |
);
|
121 |
}
|
122 |
|
123 |
if ( ! $form_id ) {
|
124 |
-
die( esc_html__( 'Error creating form', 'wpforms-lite' ) );
|
125 |
}
|
126 |
|
127 |
if ( wpforms_current_user_can( 'edit_form_single', $form_id ) ) {
|
128 |
wp_send_json_success(
|
129 |
-
|
130 |
'id' => $form_id,
|
131 |
'redirect' => add_query_arg(
|
132 |
-
|
133 |
'view' => 'fields',
|
134 |
'form_id' => $form_id,
|
135 |
'newform' => '1',
|
136 |
-
|
137 |
admin_url( 'admin.php?page=wpforms-builder' )
|
138 |
),
|
139 |
-
|
140 |
);
|
141 |
}
|
142 |
|
143 |
if ( wpforms_current_user_can( 'view_forms' ) ) {
|
144 |
-
wp_send_json_success(
|
145 |
}
|
146 |
|
147 |
-
wp_send_json_success(
|
148 |
}
|
149 |
|
150 |
add_action( 'wp_ajax_wpforms_new_form', 'wpforms_new_form' );
|
97 |
|
98 |
// Check for form name.
|
99 |
if ( empty( $_POST['title'] ) ) {
|
100 |
+
die( esc_html__( 'No form name provided.', 'wpforms-lite' ) );
|
101 |
+
}
|
102 |
+
|
103 |
+
if ( ! isset( $_POST['template'] ) ) {
|
104 |
+
$_POST['template'] = '';
|
105 |
}
|
106 |
|
107 |
// Create form.
|
108 |
+
$form_title = sanitize_text_field( wp_unslash( $_POST['title'] ) );
|
109 |
+
$form_template = sanitize_text_field( wp_unslash( $_POST['template'] ) );
|
110 |
$title_exists = get_page_by_title( $form_title, 'OBJECT', 'wpforms' );
|
111 |
$form_id = wpforms()->form->add(
|
112 |
$form_title,
|
113 |
+
[],
|
114 |
+
[
|
115 |
'template' => $form_template,
|
116 |
+
]
|
117 |
);
|
118 |
+
|
119 |
+
if ( $title_exists !== null ) {
|
120 |
wp_update_post(
|
121 |
+
[
|
122 |
'ID' => $form_id,
|
123 |
'post_title' => $form_title . ' (ID #' . $form_id . ')',
|
124 |
+
]
|
125 |
);
|
126 |
}
|
127 |
|
128 |
if ( ! $form_id ) {
|
129 |
+
die( esc_html__( 'Error creating form.', 'wpforms-lite' ) );
|
130 |
}
|
131 |
|
132 |
if ( wpforms_current_user_can( 'edit_form_single', $form_id ) ) {
|
133 |
wp_send_json_success(
|
134 |
+
[
|
135 |
'id' => $form_id,
|
136 |
'redirect' => add_query_arg(
|
137 |
+
[
|
138 |
'view' => 'fields',
|
139 |
'form_id' => $form_id,
|
140 |
'newform' => '1',
|
141 |
+
],
|
142 |
admin_url( 'admin.php?page=wpforms-builder' )
|
143 |
),
|
144 |
+
]
|
145 |
);
|
146 |
}
|
147 |
|
148 |
if ( wpforms_current_user_can( 'view_forms' ) ) {
|
149 |
+
wp_send_json_success( [ 'redirect' => admin_url( 'admin.php?page=wpforms-overview' ) ] );
|
150 |
}
|
151 |
|
152 |
+
wp_send_json_success( [ 'redirect' => admin_url() ] );
|
153 |
}
|
154 |
|
155 |
add_action( 'wp_ajax_wpforms_new_form', 'wpforms_new_form' );
|
includes/admin/builder/class-builder.php
CHANGED
@@ -311,7 +311,7 @@ class WPForms_Builder {
|
|
311 |
'dom-purify',
|
312 |
WPFORMS_PLUGIN_URL . 'assets/js/purify.min.js',
|
313 |
[],
|
314 |
-
'2.2.
|
315 |
);
|
316 |
|
317 |
if ( wp_is_mobile() ) {
|
311 |
'dom-purify',
|
312 |
WPFORMS_PLUGIN_URL . 'assets/js/purify.min.js',
|
313 |
[],
|
314 |
+
'2.2.9'
|
315 |
);
|
316 |
|
317 |
if ( wp_is_mobile() ) {
|
includes/admin/class-notices.php
CHANGED
@@ -9,9 +9,6 @@
|
|
9 |
* @example
|
10 |
* WPForms_Admin_Notice::warning( 'Do something please.' );
|
11 |
*
|
12 |
-
* @todo Persistent, dismissible notices.
|
13 |
-
* @link https://gist.github.com/monkeymonk/2ea17e2260daaecd0049c46c8d6c85fd
|
14 |
-
*
|
15 |
* @since 1.3.9
|
16 |
*/
|
17 |
class WPForms_Admin_Notice {
|
@@ -77,7 +74,7 @@ class WPForms_Admin_Notice {
|
|
77 |
* @since 1.3.9
|
78 |
*
|
79 |
* @param string $message Message to display.
|
80 |
-
* @param string $type
|
81 |
*/
|
82 |
public static function add( $message, $type = '' ) {
|
83 |
|
9 |
* @example
|
10 |
* WPForms_Admin_Notice::warning( 'Do something please.' );
|
11 |
*
|
|
|
|
|
|
|
12 |
* @since 1.3.9
|
13 |
*/
|
14 |
class WPForms_Admin_Notice {
|
74 |
* @since 1.3.9
|
75 |
*
|
76 |
* @param string $message Message to display.
|
77 |
+
* @param string $type Type of the notice (default: '').
|
78 |
*/
|
79 |
public static function add( $message, $type = '' ) {
|
80 |
|
includes/admin/class-review.php
CHANGED
@@ -15,11 +15,11 @@ class WPForms_Review {
|
|
15 |
public function __construct() {
|
16 |
|
17 |
// Admin notice requesting review.
|
18 |
-
add_action( '
|
19 |
-
add_action( 'wp_ajax_wpforms_review_dismiss',
|
20 |
|
21 |
// Admin footer text.
|
22 |
-
add_filter( 'admin_footer_text',
|
23 |
}
|
24 |
|
25 |
/**
|
@@ -41,21 +41,31 @@ class WPForms_Review {
|
|
41 |
}
|
42 |
|
43 |
// Verify that we can do a check for reviews.
|
44 |
-
$
|
45 |
-
$time
|
46 |
-
$load
|
47 |
|
48 |
-
if (
|
49 |
-
$
|
50 |
'time' => $time,
|
51 |
'dismissed' => false,
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
// If we cannot load, return early.
|
@@ -79,38 +89,35 @@ class WPForms_Review {
|
|
79 |
public function review() {
|
80 |
|
81 |
// Fetch total entries.
|
82 |
-
$entries = wpforms()->entry->get_entries(
|
83 |
|
84 |
// Only show review request if the site has collected at least 50 entries.
|
85 |
if ( empty( $entries ) || $entries < 50 ) {
|
86 |
return;
|
87 |
}
|
88 |
|
|
|
|
|
89 |
// We have a candidate! Output a review message.
|
90 |
?>
|
91 |
-
<
|
92 |
-
|
93 |
-
|
94 |
-
<
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
</p>
|
99 |
-
</div>
|
100 |
-
<script type="text/javascript">
|
101 |
-
jQuery( function ( $ ) {
|
102 |
-
$( document ).on( 'click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function ( event ) {
|
103 |
-
if ( ! $( this ).hasClass( 'wpforms-review-out' ) ) {
|
104 |
-
event.preventDefault();
|
105 |
-
}
|
106 |
-
$.post( ajaxurl, {
|
107 |
-
action: 'wpforms_review_dismiss'
|
108 |
-
} );
|
109 |
-
$( '.wpforms-review-notice' ).remove();
|
110 |
-
} );
|
111 |
-
} );
|
112 |
-
</script>
|
113 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
|
116 |
/**
|
@@ -121,7 +128,7 @@ class WPForms_Review {
|
|
121 |
public function review_lite() {
|
122 |
|
123 |
// Fetch when plugin was initially installed.
|
124 |
-
$activated = get_option( 'wpforms_activated',
|
125 |
|
126 |
if ( ! empty( $activated['lite'] ) ) {
|
127 |
// Only continue if plugin has been installed for at least 7 days.
|
@@ -130,6 +137,7 @@ class WPForms_Review {
|
|
130 |
}
|
131 |
} else {
|
132 |
$activated['lite'] = time();
|
|
|
133 |
update_option( 'wpforms_activated', $activated );
|
134 |
|
135 |
return;
|
@@ -137,6 +145,7 @@ class WPForms_Review {
|
|
137 |
|
138 |
// Only proceed with displaying if the user created at least one form.
|
139 |
$form_count = wp_count_posts( 'wpforms' );
|
|
|
140 |
if ( empty( $form_count->publish ) ) {
|
141 |
return;
|
142 |
}
|
@@ -150,45 +159,47 @@ class WPForms_Review {
|
|
150 |
return;
|
151 |
}
|
152 |
|
|
|
|
|
153 |
// We have a candidate! Output a review message.
|
154 |
?>
|
155 |
-
<
|
156 |
-
|
157 |
-
|
158 |
-
<
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
</p>
|
163 |
-
</div>
|
164 |
-
<script type="text/javascript">
|
165 |
-
jQuery( function ( $ ) {
|
166 |
-
$( document ).on( 'click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function ( event ) {
|
167 |
-
if ( ! $( this ).hasClass( 'wpforms-review-out' ) ) {
|
168 |
-
event.preventDefault();
|
169 |
-
}
|
170 |
-
$.post( ajaxurl, {
|
171 |
-
action: 'wpforms_review_dismiss'
|
172 |
-
} );
|
173 |
-
$( '.wpforms-review-notice' ).remove();
|
174 |
-
} );
|
175 |
-
} );
|
176 |
-
</script>
|
177 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
}
|
179 |
|
180 |
/**
|
181 |
-
* Dismiss the review admin notice
|
|
|
|
|
182 |
*
|
183 |
* @since 1.3.2
|
184 |
*/
|
185 |
public function review_dismiss() {
|
186 |
|
187 |
-
|
|
|
|
|
188 |
$review['time'] = time();
|
189 |
$review['dismissed'] = true;
|
190 |
|
191 |
update_option( 'wpforms_review', $review );
|
|
|
192 |
die;
|
193 |
}
|
194 |
|
@@ -198,7 +209,7 @@ class WPForms_Review {
|
|
198 |
*
|
199 |
* @since 1.3.2
|
200 |
*
|
201 |
-
* @param string $text
|
202 |
*
|
203 |
* @return string
|
204 |
*/
|
@@ -209,16 +220,15 @@ class WPForms_Review {
|
|
209 |
if ( ! empty( $current_screen->id ) && strpos( $current_screen->id, 'wpforms' ) !== false ) {
|
210 |
$url = 'https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post';
|
211 |
$text = sprintf(
|
212 |
-
wp_kses(
|
213 |
-
/* translators: $1$s - WPForms plugin name; $2$s - WP.org review link; $3$s - WP.org review link. */
|
214 |
__( 'Please rate %1$s <a href="%2$s" target="_blank" rel="noopener noreferrer">★★★★★</a> on <a href="%3$s" target="_blank" rel="noopener">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!', 'wpforms-lite' ),
|
215 |
-
|
216 |
-
'a' =>
|
217 |
-
'href' =>
|
218 |
-
'target' =>
|
219 |
-
'rel' =>
|
220 |
-
|
221 |
-
|
222 |
),
|
223 |
'<strong>WPForms</strong>',
|
224 |
$url,
|
@@ -231,4 +241,4 @@ class WPForms_Review {
|
|
231 |
|
232 |
}
|
233 |
|
234 |
-
new WPForms_Review;
|
15 |
public function __construct() {
|
16 |
|
17 |
// Admin notice requesting review.
|
18 |
+
add_action( 'admin_init', [ $this, 'review_request' ] );
|
19 |
+
add_action( 'wp_ajax_wpforms_review_dismiss', [ $this, 'review_dismiss' ] );
|
20 |
|
21 |
// Admin footer text.
|
22 |
+
add_filter( 'admin_footer_text', [ $this, 'admin_footer' ], 1, 2 );
|
23 |
}
|
24 |
|
25 |
/**
|
41 |
}
|
42 |
|
43 |
// Verify that we can do a check for reviews.
|
44 |
+
$notices = get_option( 'wpforms_admin_notices', [] );
|
45 |
+
$time = time();
|
46 |
+
$load = false;
|
47 |
|
48 |
+
if ( empty( $notices['review_request'] ) ) {
|
49 |
+
$notices['review_request'] = [
|
50 |
'time' => $time,
|
51 |
'dismissed' => false,
|
52 |
+
];
|
53 |
+
|
54 |
+
update_option( 'wpforms_admin_notices', $notices );
|
55 |
+
|
56 |
+
return;
|
57 |
+
}
|
58 |
+
|
59 |
+
// Check if it has been dismissed or not.
|
60 |
+
if (
|
61 |
+
( isset( $notices['review_request']['dismissed'] ) &&
|
62 |
+
! $notices['review_request']['dismissed'] ) &&
|
63 |
+
(
|
64 |
+
isset( $notices['review_request']['time'] ) &&
|
65 |
+
( ( $notices['review_request']['time'] + DAY_IN_SECONDS ) <= $time )
|
66 |
+
)
|
67 |
+
) {
|
68 |
+
$load = true;
|
69 |
}
|
70 |
|
71 |
// If we cannot load, return early.
|
89 |
public function review() {
|
90 |
|
91 |
// Fetch total entries.
|
92 |
+
$entries = wpforms()->entry->get_entries( [ 'number' => 50 ], true );
|
93 |
|
94 |
// Only show review request if the site has collected at least 50 entries.
|
95 |
if ( empty( $entries ) || $entries < 50 ) {
|
96 |
return;
|
97 |
}
|
98 |
|
99 |
+
ob_start();
|
100 |
+
|
101 |
// We have a candidate! Output a review message.
|
102 |
?>
|
103 |
+
<p><?php esc_html_e( 'Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms-lite' ); ?></p>
|
104 |
+
<p><strong><?php echo wp_kses( __( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms-lite' ), [ 'br' => [] ] ); ?></strong></p>
|
105 |
+
<p>
|
106 |
+
<a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-notice-dismiss wpforms-review-out" target="_blank" rel="noopener"><?php esc_html_e( 'Ok, you deserve it', 'wpforms-lite' ); ?></a><br>
|
107 |
+
<a href="#" class="wpforms-notice-dismiss" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Nope, maybe later', 'wpforms-lite' ); ?></a><br>
|
108 |
+
<a href="#" class="wpforms-notice-dismiss" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'I already did', 'wpforms-lite' ); ?></a>
|
109 |
+
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
<?php
|
111 |
+
|
112 |
+
\WPForms\Admin\Notice::info(
|
113 |
+
ob_get_clean(),
|
114 |
+
[
|
115 |
+
'dismiss' => \WPForms\Admin\Notice::DISMISS_GLOBAL,
|
116 |
+
'slug' => 'review_request',
|
117 |
+
'autop' => false,
|
118 |
+
'class' => 'wpforms-review-notice',
|
119 |
+
]
|
120 |
+
);
|
121 |
}
|
122 |
|
123 |
/**
|
128 |
public function review_lite() {
|
129 |
|
130 |
// Fetch when plugin was initially installed.
|
131 |
+
$activated = get_option( 'wpforms_activated', [] );
|
132 |
|
133 |
if ( ! empty( $activated['lite'] ) ) {
|
134 |
// Only continue if plugin has been installed for at least 7 days.
|
137 |
}
|
138 |
} else {
|
139 |
$activated['lite'] = time();
|
140 |
+
|
141 |
update_option( 'wpforms_activated', $activated );
|
142 |
|
143 |
return;
|
145 |
|
146 |
// Only proceed with displaying if the user created at least one form.
|
147 |
$form_count = wp_count_posts( 'wpforms' );
|
148 |
+
|
149 |
if ( empty( $form_count->publish ) ) {
|
150 |
return;
|
151 |
}
|
159 |
return;
|
160 |
}
|
161 |
|
162 |
+
ob_start();
|
163 |
+
|
164 |
// We have a candidate! Output a review message.
|
165 |
?>
|
166 |
+
<p><?php esc_html_e( 'Hey, I noticed you created a contact form with WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms-lite' ); ?></p>
|
167 |
+
<p><strong><?php echo wp_kses( __( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms-lite' ), [ 'br' => [] ] ); ?></strong></p>
|
168 |
+
<p>
|
169 |
+
<a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-notice-dismiss wpforms-review-out" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Ok, you deserve it', 'wpforms-lite' ); ?></a><br>
|
170 |
+
<a href="#" class="wpforms-notice-dismiss" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Nope, maybe later', 'wpforms-lite' ); ?></a><br>
|
171 |
+
<a href="#" class="wpforms-notice-dismiss" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'I already did', 'wpforms-lite' ); ?></a>
|
172 |
+
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
<?php
|
174 |
+
|
175 |
+
\WPForms\Admin\Notice::info(
|
176 |
+
ob_get_clean(),
|
177 |
+
[
|
178 |
+
'dismiss' => \WPForms\Admin\Notice::DISMISS_GLOBAL,
|
179 |
+
'slug' => 'review_lite_request',
|
180 |
+
'autop' => false,
|
181 |
+
'class' => 'wpforms-review-notice',
|
182 |
+
]
|
183 |
+
);
|
184 |
}
|
185 |
|
186 |
/**
|
187 |
+
* Dismiss the review admin notice.
|
188 |
+
*
|
189 |
+
* @deprecated 1.6.7.1
|
190 |
*
|
191 |
* @since 1.3.2
|
192 |
*/
|
193 |
public function review_dismiss() {
|
194 |
|
195 |
+
_deprecated_function( __CLASS__ . '::' . __METHOD__, '1.6.7.1 of the WPForms plugin' );
|
196 |
+
|
197 |
+
$review = get_option( 'wpforms_review', [] );
|
198 |
$review['time'] = time();
|
199 |
$review['dismissed'] = true;
|
200 |
|
201 |
update_option( 'wpforms_review', $review );
|
202 |
+
|
203 |
die;
|
204 |
}
|
205 |
|
209 |
*
|
210 |
* @since 1.3.2
|
211 |
*
|
212 |
+
* @param string $text Footer text.
|
213 |
*
|
214 |
* @return string
|
215 |
*/
|
220 |
if ( ! empty( $current_screen->id ) && strpos( $current_screen->id, 'wpforms' ) !== false ) {
|
221 |
$url = 'https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post';
|
222 |
$text = sprintf(
|
223 |
+
wp_kses( /* translators: $1$s - WPForms plugin name; $2$s - WP.org review link; $3$s - WP.org review link. */
|
|
|
224 |
__( 'Please rate %1$s <a href="%2$s" target="_blank" rel="noopener noreferrer">★★★★★</a> on <a href="%3$s" target="_blank" rel="noopener">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!', 'wpforms-lite' ),
|
225 |
+
[
|
226 |
+
'a' => [
|
227 |
+
'href' => [],
|
228 |
+
'target' => [],
|
229 |
+
'rel' => [],
|
230 |
+
],
|
231 |
+
]
|
232 |
),
|
233 |
'<strong>WPForms</strong>',
|
234 |
$url,
|
241 |
|
242 |
}
|
243 |
|
244 |
+
new WPForms_Review();
|
includes/admin/class-settings.php
CHANGED
@@ -152,7 +152,7 @@ class WPForms_Settings {
|
|
152 |
// Save settings.
|
153 |
wpforms_update_settings( $settings );
|
154 |
|
155 |
-
|
156 |
}
|
157 |
|
158 |
/**
|
152 |
// Save settings.
|
153 |
wpforms_update_settings( $settings );
|
154 |
|
155 |
+
\WPForms\Admin\Notice::success( esc_html__( 'Settings were successfully saved.', 'wpforms-lite' ) );
|
156 |
}
|
157 |
|
158 |
/**
|
includes/admin/class-tools.php
DELETED
File without changes
|
includes/admin/overview/class-overview-table.php
CHANGED
@@ -60,7 +60,7 @@ class WPForms_Overview_Table extends WP_List_Table {
|
|
60 |
*
|
61 |
* @since 1.0.0
|
62 |
*
|
63 |
-
* @param WP_Post $form
|
64 |
*
|
65 |
* @return string
|
66 |
*/
|
@@ -74,8 +74,8 @@ class WPForms_Overview_Table extends WP_List_Table {
|
|
74 |
*
|
75 |
* @since 1.0.0
|
76 |
*
|
77 |
-
* @param WP_Post $form
|
78 |
-
* @param string $column_name
|
79 |
*
|
80 |
* @return string
|
81 |
*/
|
@@ -119,7 +119,7 @@ class WPForms_Overview_Table extends WP_List_Table {
|
|
119 |
*
|
120 |
* @since 1.0.0
|
121 |
*
|
122 |
-
* @param WP_Post $form
|
123 |
*
|
124 |
* @return string
|
125 |
*/
|
60 |
*
|
61 |
* @since 1.0.0
|
62 |
*
|
63 |
+
* @param WP_Post $form Form.
|
64 |
*
|
65 |
* @return string
|
66 |
*/
|
74 |
*
|
75 |
* @since 1.0.0
|
76 |
*
|
77 |
+
* @param WP_Post $form Form.
|
78 |
+
* @param string $column_name Column Name.
|
79 |
*
|
80 |
* @return string
|
81 |
*/
|
119 |
*
|
120 |
* @since 1.0.0
|
121 |
*
|
122 |
+
* @param WP_Post $form Form.
|
123 |
*
|
124 |
* @return string
|
125 |
*/
|
includes/admin/overview/class-overview.php
CHANGED
@@ -198,7 +198,7 @@ class WPForms_Overview {
|
|
198 |
}
|
199 |
|
200 |
if ( ! empty( $notice ) ) {
|
201 |
-
|
202 |
}
|
203 |
}
|
204 |
|
198 |
}
|
199 |
|
200 |
if ( ! empty( $notice ) ) {
|
201 |
+
\WPForms\Admin\Notice::add( $notice['msg'], $notice['type'] );
|
202 |
}
|
203 |
}
|
204 |
|
includes/class-form.php
CHANGED
@@ -20,8 +20,8 @@ class WPForms_Form_Handler {
|
|
20 |
$this->register_cpt();
|
21 |
|
22 |
// Add wpforms to new-content admin bar menu.
|
23 |
-
add_action( 'admin_bar_menu',
|
24 |
-
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -34,7 +34,7 @@ class WPForms_Form_Handler {
|
|
34 |
// Custom post type arguments, which can be filtered if needed.
|
35 |
$args = apply_filters(
|
36 |
'wpforms_post_type_args',
|
37 |
-
|
38 |
'label' => 'WPForms',
|
39 |
'public' => false,
|
40 |
'exclude_from_search' => true,
|
@@ -43,10 +43,10 @@ class WPForms_Form_Handler {
|
|
43 |
'rewrite' => false,
|
44 |
'query_var' => false,
|
45 |
'can_export' => false,
|
46 |
-
'supports' =>
|
47 |
'capability_type' => 'wpforms_form', // Not using 'capability_type' anywhere. It just has to be custom for security reasons.
|
48 |
'map_meta_cap' => false, // Don't let WP to map meta caps to have a granular control over this process via 'map_meta_cap' filter.
|
49 |
-
|
50 |
);
|
51 |
|
52 |
// Register the post type.
|
@@ -66,15 +66,56 @@ class WPForms_Form_Handler {
|
|
66 |
return;
|
67 |
}
|
68 |
|
69 |
-
$args =
|
70 |
'id' => 'wpforms',
|
71 |
'title' => esc_html__( 'WPForms', 'wpforms-lite' ),
|
72 |
'href' => admin_url( 'admin.php?page=wpforms-builder' ),
|
73 |
'parent' => 'new-content',
|
74 |
-
|
|
|
75 |
$wp_admin_bar->add_node( $args );
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
/**
|
79 |
* Fetch forms.
|
80 |
*
|
@@ -85,11 +126,11 @@ class WPForms_Form_Handler {
|
|
85 |
*
|
86 |
* @return array|bool|null|WP_Post
|
87 |
*/
|
88 |
-
public function get( $id = '', $args =
|
89 |
|
90 |
$args = apply_filters( 'wpforms_get_form_args', $args, $id );
|
91 |
|
92 |
-
if (
|
93 |
return false;
|
94 |
}
|
95 |
|
@@ -112,7 +153,7 @@ class WPForms_Form_Handler {
|
|
112 |
*
|
113 |
* @return array|bool|null|WP_Post
|
114 |
*/
|
115 |
-
protected function get_single( $id = '', $args =
|
116 |
|
117 |
$args = apply_filters( 'wpforms_get_single_form_args', $args, $id );
|
118 |
|
@@ -129,7 +170,7 @@ class WPForms_Form_Handler {
|
|
129 |
$form = get_post( absint( $id ) );
|
130 |
|
131 |
if ( ! empty( $args['content_only'] ) ) {
|
132 |
-
$form = ! empty( $form ) &&
|
133 |
}
|
134 |
|
135 |
return $form;
|
@@ -144,17 +185,17 @@ class WPForms_Form_Handler {
|
|
144 |
*
|
145 |
* @return array
|
146 |
*/
|
147 |
-
protected function get_multiple( $args =
|
148 |
|
149 |
$args = apply_filters( 'wpforms_get_multiple_forms_args', $args );
|
150 |
|
151 |
// No ID provided, get multiple forms.
|
152 |
-
$defaults =
|
153 |
'orderby' => 'id',
|
154 |
'order' => 'ASC',
|
155 |
'no_found_rows' => true,
|
156 |
'nopaging' => true,
|
157 |
-
|
158 |
|
159 |
$args = wp_parse_args( $args, $defaults );
|
160 |
|
@@ -172,10 +213,10 @@ class WPForms_Form_Handler {
|
|
172 |
*
|
173 |
* @return bool
|
174 |
*/
|
175 |
-
public function delete( $ids =
|
176 |
|
177 |
if ( ! is_array( $ids ) ) {
|
178 |
-
$ids =
|
179 |
}
|
180 |
|
181 |
$ids = array_map( 'absint', $ids );
|
@@ -216,7 +257,7 @@ class WPForms_Form_Handler {
|
|
216 |
*
|
217 |
* @return mixed
|
218 |
*/
|
219 |
-
public function add( $title = '', $args =
|
220 |
|
221 |
// Must have a title.
|
222 |
if ( empty( $title ) ) {
|
@@ -236,13 +277,13 @@ class WPForms_Form_Handler {
|
|
236 |
|
237 |
$args = apply_filters( 'wpforms_create_form_args', $args, $data );
|
238 |
|
239 |
-
$form_content =
|
240 |
'field_id' => '0',
|
241 |
-
'settings' =>
|
242 |
'form_title' => sanitize_text_field( $title ),
|
243 |
'form_desc' => '',
|
244 |
-
|
245 |
-
|
246 |
|
247 |
// Prevent $args['post_content'] from overwriting predefined $form_content.
|
248 |
// Typically it happens if the form was created with a form template and a user was not redirected to a form editing screen afterwards.
|
@@ -254,12 +295,12 @@ class WPForms_Form_Handler {
|
|
254 |
// Merge args and create the form.
|
255 |
$form = wp_parse_args(
|
256 |
$args,
|
257 |
-
|
258 |
'post_title' => esc_html( $title ),
|
259 |
'post_status' => 'publish',
|
260 |
'post_type' => 'wpforms',
|
261 |
'post_content' => wpforms_encode( $form_content ),
|
262 |
-
|
263 |
);
|
264 |
|
265 |
$form_id = wp_insert_post( $form );
|
@@ -277,25 +318,25 @@ class WPForms_Form_Handler {
|
|
277 |
$form_data['settings']['submit_text'] = esc_html__( 'Submit', 'wpforms-lite' );
|
278 |
$form_data['settings']['submit_text_processing'] = esc_html__( 'Sending...', 'wpforms-lite' );
|
279 |
$form_data['settings']['notification_enable'] = '1';
|
280 |
-
$form_data['settings']['notifications'] =
|
281 |
-
'1' =>
|
282 |
'email' => '{admin_email}',
|
283 |
'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms-lite' ), esc_html( $title ) ),
|
284 |
'sender_name' => get_bloginfo( 'name' ),
|
285 |
'sender_address' => '{admin_email}',
|
286 |
'replyto' => '{field_id="1"}',
|
287 |
'message' => '{all_fields}',
|
288 |
-
|
289 |
-
|
290 |
-
$form_data['settings']['confirmations'] =
|
291 |
-
'1' =>
|
292 |
'type' => 'message',
|
293 |
'message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ),
|
294 |
'message_scroll' => '1',
|
295 |
-
|
296 |
-
|
297 |
|
298 |
-
$this->update( $form_id, $form_data,
|
299 |
}
|
300 |
|
301 |
do_action( 'wpforms_create_form', $form_id, $form, $data );
|
@@ -315,7 +356,7 @@ class WPForms_Form_Handler {
|
|
315 |
* @return mixed
|
316 |
* @internal param string $title
|
317 |
*/
|
318 |
-
public function update( $form_id = '', $data =
|
319 |
|
320 |
if ( empty( $data ) ) {
|
321 |
return false;
|
@@ -372,12 +413,12 @@ class WPForms_Form_Handler {
|
|
372 |
|
373 |
$form = apply_filters(
|
374 |
'wpforms_save_form_args',
|
375 |
-
|
376 |
'ID' => $form_id,
|
377 |
'post_title' => esc_html( $title ),
|
378 |
'post_excerpt' => $desc,
|
379 |
'post_content' => wpforms_encode( $data ),
|
380 |
-
|
381 |
$data,
|
382 |
$args
|
383 |
);
|
@@ -442,7 +483,7 @@ class WPForms_Form_Handler {
|
|
442 |
*
|
443 |
* @return bool
|
444 |
*/
|
445 |
-
public function duplicate( $ids =
|
446 |
|
447 |
// Check for permissions.
|
448 |
if ( ! wpforms_current_user_can( 'create_forms' ) ) {
|
@@ -456,7 +497,7 @@ class WPForms_Form_Handler {
|
|
456 |
remove_filter( 'content_save_pre', 'balanceTags', 50 );
|
457 |
|
458 |
if ( ! is_array( $ids ) ) {
|
459 |
-
$ids =
|
460 |
}
|
461 |
|
462 |
$ids = array_map( 'absint', $ids );
|
@@ -482,13 +523,13 @@ class WPForms_Form_Handler {
|
|
482 |
$new_form_data['settings']['form_title'] = str_replace( '(ID #' . absint( $id ) . ')', '', $new_form_data['settings']['form_title'] );
|
483 |
|
484 |
// Create the duplicate form.
|
485 |
-
$new_form =
|
486 |
'post_content' => wpforms_encode( $new_form_data ),
|
487 |
'post_excerpt' => $form->post_excerpt,
|
488 |
'post_status' => $form->post_status,
|
489 |
'post_title' => $new_form_data['settings']['form_title'],
|
490 |
'post_type' => $form->post_type,
|
491 |
-
|
492 |
$new_form_id = wp_insert_post( $new_form );
|
493 |
|
494 |
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
|
@@ -502,7 +543,7 @@ class WPForms_Form_Handler {
|
|
502 |
$new_form_data['id'] = absint( $new_form_id );
|
503 |
|
504 |
// Update new duplicate form.
|
505 |
-
$new_form_id = $this->update( $new_form_id, $new_form_data,
|
506 |
|
507 |
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
|
508 |
return false;
|
@@ -522,15 +563,15 @@ class WPForms_Form_Handler {
|
|
522 |
*
|
523 |
* @return mixed int or false
|
524 |
*/
|
525 |
-
public function next_field_id( $form_id, $args =
|
526 |
|
527 |
if ( empty( $form_id ) ) {
|
528 |
return false;
|
529 |
}
|
530 |
|
531 |
-
$defaults =
|
532 |
'content_only' => true,
|
533 |
-
|
534 |
|
535 |
if ( isset( $args['cap'] ) ) {
|
536 |
$defaults['cap'] = $args['cap'];
|
@@ -573,15 +614,15 @@ class WPForms_Form_Handler {
|
|
573 |
*
|
574 |
* @return false|array
|
575 |
*/
|
576 |
-
public function get_meta( $form_id, $field = '', $args =
|
577 |
|
578 |
if ( empty( $form_id ) ) {
|
579 |
return false;
|
580 |
}
|
581 |
|
582 |
-
$defaults =
|
583 |
'content_only' => true,
|
584 |
-
|
585 |
|
586 |
if ( isset( $args['cap'] ) ) {
|
587 |
$defaults['cap'] = $args['cap'];
|
@@ -589,12 +630,16 @@ class WPForms_Form_Handler {
|
|
589 |
|
590 |
$data = $this->get( $form_id, $defaults );
|
591 |
|
592 |
-
if ( isset( $data['meta'] ) ) {
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
|
|
|
|
|
|
|
|
598 |
}
|
599 |
|
600 |
return false;
|
@@ -610,9 +655,9 @@ class WPForms_Form_Handler {
|
|
610 |
* @param mixed $meta_value Meta value.
|
611 |
* @param array $args Additional arguments.
|
612 |
*
|
613 |
-
* @return
|
614 |
*/
|
615 |
-
public function update_meta( $form_id, $meta_key, $meta_value, $args =
|
616 |
|
617 |
if ( empty( $form_id ) || empty( $meta_key ) ) {
|
618 |
return false;
|
@@ -639,10 +684,10 @@ class WPForms_Form_Handler {
|
|
639 |
|
640 |
$data['meta'][ $meta_key ] = $meta_value;
|
641 |
|
642 |
-
$form =
|
643 |
'ID' => $form_id,
|
644 |
'post_content' => wpforms_encode( $data ),
|
645 |
-
|
646 |
$form = apply_filters( 'wpforms_update_form_meta_args', $form, $data );
|
647 |
$form_id = wp_update_post( $form );
|
648 |
|
@@ -660,9 +705,9 @@ class WPForms_Form_Handler {
|
|
660 |
* @param string $meta_key Meta key.
|
661 |
* @param array $args Additional arguments.
|
662 |
*
|
663 |
-
* @return
|
664 |
*/
|
665 |
-
public function delete_meta( $form_id, $meta_key, $args =
|
666 |
|
667 |
if ( empty( $form_id ) || empty( $meta_key ) ) {
|
668 |
return false;
|
@@ -689,10 +734,10 @@ class WPForms_Form_Handler {
|
|
689 |
|
690 |
unset( $data['meta'][ $meta_key ] );
|
691 |
|
692 |
-
$form =
|
693 |
'ID' => $form_id,
|
694 |
'post_content' => wpforms_encode( $data ),
|
695 |
-
|
696 |
$form = apply_filters( 'wpforms_delete_form_meta_args', $form, $data );
|
697 |
$form_id = wp_update_post( $form );
|
698 |
|
@@ -710,17 +755,17 @@ class WPForms_Form_Handler {
|
|
710 |
* @param string $field_id Field ID.
|
711 |
* @param array $args Additional arguments.
|
712 |
*
|
713 |
-
* @return array|
|
714 |
*/
|
715 |
-
public function get_field( $form_id, $field_id = '', $args =
|
716 |
|
717 |
if ( empty( $form_id ) ) {
|
718 |
return false;
|
719 |
}
|
720 |
|
721 |
-
$defaults =
|
722 |
'content_only' => true,
|
723 |
-
|
724 |
|
725 |
if ( isset( $args['cap'] ) ) {
|
726 |
$defaults['cap'] = $args['cap'];
|
@@ -740,11 +785,12 @@ class WPForms_Form_Handler {
|
|
740 |
* @param string $field_id Field ID.
|
741 |
* @param array $args Additional arguments.
|
742 |
*
|
743 |
-
* @return array|
|
744 |
*/
|
745 |
-
public function get_field_meta( $form_id, $field_id = '', $args =
|
746 |
|
747 |
$field = $this->get_field( $form_id, $field_id, $args );
|
|
|
748 |
if ( ! $field ) {
|
749 |
return false;
|
750 |
}
|
20 |
$this->register_cpt();
|
21 |
|
22 |
// Add wpforms to new-content admin bar menu.
|
23 |
+
add_action( 'admin_bar_menu', [ $this, 'admin_bar' ], 99 );
|
24 |
+
add_action( 'wpforms_create_form', [ $this, 'track_first_form' ], 10, 3 );
|
25 |
}
|
26 |
|
27 |
/**
|
34 |
// Custom post type arguments, which can be filtered if needed.
|
35 |
$args = apply_filters(
|
36 |
'wpforms_post_type_args',
|
37 |
+
[
|
38 |
'label' => 'WPForms',
|
39 |
'public' => false,
|
40 |
'exclude_from_search' => true,
|
43 |
'rewrite' => false,
|
44 |
'query_var' => false,
|
45 |
'can_export' => false,
|
46 |
+
'supports' => [ 'title' ],
|
47 |
'capability_type' => 'wpforms_form', // Not using 'capability_type' anywhere. It just has to be custom for security reasons.
|
48 |
'map_meta_cap' => false, // Don't let WP to map meta caps to have a granular control over this process via 'map_meta_cap' filter.
|
49 |
+
]
|
50 |
);
|
51 |
|
52 |
// Register the post type.
|
66 |
return;
|
67 |
}
|
68 |
|
69 |
+
$args = [
|
70 |
'id' => 'wpforms',
|
71 |
'title' => esc_html__( 'WPForms', 'wpforms-lite' ),
|
72 |
'href' => admin_url( 'admin.php?page=wpforms-builder' ),
|
73 |
'parent' => 'new-content',
|
74 |
+
];
|
75 |
+
|
76 |
$wp_admin_bar->add_node( $args );
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Preserve the timestamp when the very first form has been created.
|
81 |
+
*
|
82 |
+
* @since 1.6.7.1
|
83 |
+
*
|
84 |
+
* @param int $form_id Newly created form ID.
|
85 |
+
* @param array $form Array past to create a new form in wp_posts table.
|
86 |
+
* @param array $data Additional form data.
|
87 |
+
*/
|
88 |
+
public function track_first_form( $form_id, $form, $data ) {
|
89 |
+
|
90 |
+
// Do we have the value already?
|
91 |
+
$time = get_option( 'wpforms_forms_first_created' );
|
92 |
+
|
93 |
+
// Check whether we have already saved this option - skip.
|
94 |
+
if ( ! empty( $time ) ) {
|
95 |
+
return;
|
96 |
+
}
|
97 |
+
|
98 |
+
// Check whether we have any forms other than the currently created one.
|
99 |
+
$other_form = wpforms()->form->get(
|
100 |
+
'',
|
101 |
+
[
|
102 |
+
'order' => 'id',
|
103 |
+
'orderby' => 'desc',
|
104 |
+
'posts_per_page' => 1,
|
105 |
+
'nopaging' => false,
|
106 |
+
'fields' => 'ids',
|
107 |
+
'post__not_in' => [ $form_id ],
|
108 |
+
]
|
109 |
+
);
|
110 |
+
|
111 |
+
// As we have other forms - we are not certain about the situation, skip.
|
112 |
+
if ( ! empty( $other_form ) ) {
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
|
116 |
+
add_option( 'wpforms_forms_first_created', time(), '', 'no' );
|
117 |
+
}
|
118 |
+
|
119 |
/**
|
120 |
* Fetch forms.
|
121 |
*
|
126 |
*
|
127 |
* @return array|bool|null|WP_Post
|
128 |
*/
|
129 |
+
public function get( $id = '', $args = [] ) {
|
130 |
|
131 |
$args = apply_filters( 'wpforms_get_form_args', $args, $id );
|
132 |
|
133 |
+
if ( $id === false ) {
|
134 |
return false;
|
135 |
}
|
136 |
|
153 |
*
|
154 |
* @return array|bool|null|WP_Post
|
155 |
*/
|
156 |
+
protected function get_single( $id = '', $args = [] ) {
|
157 |
|
158 |
$args = apply_filters( 'wpforms_get_single_form_args', $args, $id );
|
159 |
|
170 |
$form = get_post( absint( $id ) );
|
171 |
|
172 |
if ( ! empty( $args['content_only'] ) ) {
|
173 |
+
$form = ! empty( $form ) && $form->post_type === 'wpforms' ? wpforms_decode( $form->post_content ) : false;
|
174 |
}
|
175 |
|
176 |
return $form;
|
185 |
*
|
186 |
* @return array
|
187 |
*/
|
188 |
+
protected function get_multiple( $args = [] ) {
|
189 |
|
190 |
$args = apply_filters( 'wpforms_get_multiple_forms_args', $args );
|
191 |
|
192 |
// No ID provided, get multiple forms.
|
193 |
+
$defaults = [
|
194 |
'orderby' => 'id',
|
195 |
'order' => 'ASC',
|
196 |
'no_found_rows' => true,
|
197 |
'nopaging' => true,
|
198 |
+
];
|
199 |
|
200 |
$args = wp_parse_args( $args, $defaults );
|
201 |
|
213 |
*
|
214 |
* @return bool
|
215 |
*/
|
216 |
+
public function delete( $ids = [] ) {
|
217 |
|
218 |
if ( ! is_array( $ids ) ) {
|
219 |
+
$ids = [ $ids ];
|
220 |
}
|
221 |
|
222 |
$ids = array_map( 'absint', $ids );
|
257 |
*
|
258 |
* @return mixed
|
259 |
*/
|
260 |
+
public function add( $title = '', $args = [], $data = [] ) {
|
261 |
|
262 |
// Must have a title.
|
263 |
if ( empty( $title ) ) {
|
277 |
|
278 |
$args = apply_filters( 'wpforms_create_form_args', $args, $data );
|
279 |
|
280 |
+
$form_content = [
|
281 |
'field_id' => '0',
|
282 |
+
'settings' => [
|
283 |
'form_title' => sanitize_text_field( $title ),
|
284 |
'form_desc' => '',
|
285 |
+
],
|
286 |
+
];
|
287 |
|
288 |
// Prevent $args['post_content'] from overwriting predefined $form_content.
|
289 |
// Typically it happens if the form was created with a form template and a user was not redirected to a form editing screen afterwards.
|
295 |
// Merge args and create the form.
|
296 |
$form = wp_parse_args(
|
297 |
$args,
|
298 |
+
[
|
299 |
'post_title' => esc_html( $title ),
|
300 |
'post_status' => 'publish',
|
301 |
'post_type' => 'wpforms',
|
302 |
'post_content' => wpforms_encode( $form_content ),
|
303 |
+
]
|
304 |
);
|
305 |
|
306 |
$form_id = wp_insert_post( $form );
|
318 |
$form_data['settings']['submit_text'] = esc_html__( 'Submit', 'wpforms-lite' );
|
319 |
$form_data['settings']['submit_text_processing'] = esc_html__( 'Sending...', 'wpforms-lite' );
|
320 |
$form_data['settings']['notification_enable'] = '1';
|
321 |
+
$form_data['settings']['notifications'] = [
|
322 |
+
'1' => [
|
323 |
'email' => '{admin_email}',
|
324 |
'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms-lite' ), esc_html( $title ) ),
|
325 |
'sender_name' => get_bloginfo( 'name' ),
|
326 |
'sender_address' => '{admin_email}',
|
327 |
'replyto' => '{field_id="1"}',
|
328 |
'message' => '{all_fields}',
|
329 |
+
],
|
330 |
+
];
|
331 |
+
$form_data['settings']['confirmations'] = [
|
332 |
+
'1' => [
|
333 |
'type' => 'message',
|
334 |
'message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ),
|
335 |
'message_scroll' => '1',
|
336 |
+
],
|
337 |
+
];
|
338 |
|
339 |
+
$this->update( $form_id, $form_data, [ 'cap' => 'create_forms' ] );
|
340 |
}
|
341 |
|
342 |
do_action( 'wpforms_create_form', $form_id, $form, $data );
|
356 |
* @return mixed
|
357 |
* @internal param string $title
|
358 |
*/
|
359 |
+
public function update( $form_id = '', $data = [], $args = [] ) {
|
360 |
|
361 |
if ( empty( $data ) ) {
|
362 |
return false;
|
413 |
|
414 |
$form = apply_filters(
|
415 |
'wpforms_save_form_args',
|
416 |
+
[
|
417 |
'ID' => $form_id,
|
418 |
'post_title' => esc_html( $title ),
|
419 |
'post_excerpt' => $desc,
|
420 |
'post_content' => wpforms_encode( $data ),
|
421 |
+
],
|
422 |
$data,
|
423 |
$args
|
424 |
);
|
483 |
*
|
484 |
* @return bool
|
485 |
*/
|
486 |
+
public function duplicate( $ids = [] ) {
|
487 |
|
488 |
// Check for permissions.
|
489 |
if ( ! wpforms_current_user_can( 'create_forms' ) ) {
|
497 |
remove_filter( 'content_save_pre', 'balanceTags', 50 );
|
498 |
|
499 |
if ( ! is_array( $ids ) ) {
|
500 |
+
$ids = [ $ids ];
|
501 |
}
|
502 |
|
503 |
$ids = array_map( 'absint', $ids );
|
523 |
$new_form_data['settings']['form_title'] = str_replace( '(ID #' . absint( $id ) . ')', '', $new_form_data['settings']['form_title'] );
|
524 |
|
525 |
// Create the duplicate form.
|
526 |
+
$new_form = [
|
527 |
'post_content' => wpforms_encode( $new_form_data ),
|
528 |
'post_excerpt' => $form->post_excerpt,
|
529 |
'post_status' => $form->post_status,
|
530 |
'post_title' => $new_form_data['settings']['form_title'],
|
531 |
'post_type' => $form->post_type,
|
532 |
+
];
|
533 |
$new_form_id = wp_insert_post( $new_form );
|
534 |
|
535 |
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
|
543 |
$new_form_data['id'] = absint( $new_form_id );
|
544 |
|
545 |
// Update new duplicate form.
|
546 |
+
$new_form_id = $this->update( $new_form_id, $new_form_data, [ 'cap' => 'create_forms' ] );
|
547 |
|
548 |
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
|
549 |
return false;
|
563 |
*
|
564 |
* @return mixed int or false
|
565 |
*/
|
566 |
+
public function next_field_id( $form_id, $args = [] ) {
|
567 |
|
568 |
if ( empty( $form_id ) ) {
|
569 |
return false;
|
570 |
}
|
571 |
|
572 |
+
$defaults = [
|
573 |
'content_only' => true,
|
574 |
+
];
|
575 |
|
576 |
if ( isset( $args['cap'] ) ) {
|
577 |
$defaults['cap'] = $args['cap'];
|
614 |
*
|
615 |
* @return false|array
|
616 |
*/
|
617 |
+
public function get_meta( $form_id, $field = '', $args = [] ) {
|
618 |
|
619 |
if ( empty( $form_id ) ) {
|
620 |
return false;
|
621 |
}
|
622 |
|
623 |
+
$defaults = [
|
624 |
'content_only' => true,
|
625 |
+
];
|
626 |
|
627 |
if ( isset( $args['cap'] ) ) {
|
628 |
$defaults['cap'] = $args['cap'];
|
630 |
|
631 |
$data = $this->get( $form_id, $defaults );
|
632 |
|
633 |
+
if ( ! isset( $data['meta'] ) ) {
|
634 |
+
return false;
|
635 |
+
}
|
636 |
+
|
637 |
+
if ( empty( $field ) ) {
|
638 |
+
return $data['meta'];
|
639 |
+
}
|
640 |
+
|
641 |
+
if ( isset( $data['meta'][ $field ] ) ) {
|
642 |
+
return $data['meta'][ $field ];
|
643 |
}
|
644 |
|
645 |
return false;
|
655 |
* @param mixed $meta_value Meta value.
|
656 |
* @param array $args Additional arguments.
|
657 |
*
|
658 |
+
* @return false|int|WP_Error
|
659 |
*/
|
660 |
+
public function update_meta( $form_id, $meta_key, $meta_value, $args = [] ) {
|
661 |
|
662 |
if ( empty( $form_id ) || empty( $meta_key ) ) {
|
663 |
return false;
|
684 |
|
685 |
$data['meta'][ $meta_key ] = $meta_value;
|
686 |
|
687 |
+
$form = [
|
688 |
'ID' => $form_id,
|
689 |
'post_content' => wpforms_encode( $data ),
|
690 |
+
];
|
691 |
$form = apply_filters( 'wpforms_update_form_meta_args', $form, $data );
|
692 |
$form_id = wp_update_post( $form );
|
693 |
|
705 |
* @param string $meta_key Meta key.
|
706 |
* @param array $args Additional arguments.
|
707 |
*
|
708 |
+
* @return false|int|WP_Error
|
709 |
*/
|
710 |
+
public function delete_meta( $form_id, $meta_key, $args = [] ) {
|
711 |
|
712 |
if ( empty( $form_id ) || empty( $meta_key ) ) {
|
713 |
return false;
|
734 |
|
735 |
unset( $data['meta'][ $meta_key ] );
|
736 |
|
737 |
+
$form = [
|
738 |
'ID' => $form_id,
|
739 |
'post_content' => wpforms_encode( $data ),
|
740 |
+
];
|
741 |
$form = apply_filters( 'wpforms_delete_form_meta_args', $form, $data );
|
742 |
$form_id = wp_update_post( $form );
|
743 |
|
755 |
* @param string $field_id Field ID.
|
756 |
* @param array $args Additional arguments.
|
757 |
*
|
758 |
+
* @return array|false
|
759 |
*/
|
760 |
+
public function get_field( $form_id, $field_id = '', $args = [] ) {
|
761 |
|
762 |
if ( empty( $form_id ) ) {
|
763 |
return false;
|
764 |
}
|
765 |
|
766 |
+
$defaults = [
|
767 |
'content_only' => true,
|
768 |
+
];
|
769 |
|
770 |
if ( isset( $args['cap'] ) ) {
|
771 |
$defaults['cap'] = $args['cap'];
|
785 |
* @param string $field_id Field ID.
|
786 |
* @param array $args Additional arguments.
|
787 |
*
|
788 |
+
* @return array|false
|
789 |
*/
|
790 |
+
public function get_field_meta( $form_id, $field_id = '', $args = [] ) {
|
791 |
|
792 |
$field = $this->get_field( $form_id, $field_id, $args );
|
793 |
+
|
794 |
if ( ! $field ) {
|
795 |
return false;
|
796 |
}
|
includes/class-frontend.php
CHANGED
@@ -65,32 +65,32 @@ class WPForms_Frontend {
|
|
65 |
*/
|
66 |
public function __construct() {
|
67 |
|
68 |
-
$this->forms =
|
69 |
|
70 |
// Filters.
|
71 |
-
add_filter( 'amp_skip_post',
|
72 |
|
73 |
// Actions.
|
74 |
-
add_action( 'wpforms_frontend_output_success',
|
75 |
-
add_action( 'wpforms_frontend_output',
|
76 |
-
add_action( 'wpforms_frontend_output',
|
77 |
-
add_action( 'wpforms_display_field_before',
|
78 |
-
add_action( 'wpforms_display_field_before',
|
79 |
-
add_action( 'wpforms_display_field_before',
|
80 |
-
add_action( 'wpforms_display_field_after',
|
81 |
-
add_action( 'wpforms_display_field_after',
|
82 |
-
add_action( 'wpforms_display_field_after',
|
83 |
-
add_action( 'wpforms_frontend_output',
|
84 |
-
add_action( 'wpforms_frontend_output',
|
85 |
-
add_action( 'wp_enqueue_scripts',
|
86 |
-
add_action( 'wp_enqueue_scripts',
|
87 |
-
add_action( '
|
88 |
-
add_action( 'wp_footer',
|
89 |
-
add_action( 'wp_footer',
|
90 |
-
add_action( 'wp_footer',
|
91 |
|
92 |
// Register shortcode.
|
93 |
-
add_shortcode( 'wpforms',
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -1671,7 +1671,15 @@ class WPForms_Frontend {
|
|
1671 |
*/
|
1672 |
$skip = (bool) apply_filters( 'wpforms_frontend_missing_assets_error_js_disable', false );
|
1673 |
|
1674 |
-
if ( ! wpforms_current_user_can()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1675 |
return;
|
1676 |
}
|
1677 |
|
65 |
*/
|
66 |
public function __construct() {
|
67 |
|
68 |
+
$this->forms = [];
|
69 |
|
70 |
// Filters.
|
71 |
+
add_filter( 'amp_skip_post', [ $this, 'amp_skip_post' ] );
|
72 |
|
73 |
// Actions.
|
74 |
+
add_action( 'wpforms_frontend_output_success', [ $this, 'confirmation' ], 10, 3 );
|
75 |
+
add_action( 'wpforms_frontend_output', [ $this, 'head' ], 5, 5 );
|
76 |
+
add_action( 'wpforms_frontend_output', [ $this, 'fields' ], 10, 5 );
|
77 |
+
add_action( 'wpforms_display_field_before', [ $this, 'field_container_open' ], 5, 2 );
|
78 |
+
add_action( 'wpforms_display_field_before', [ $this, 'field_label' ], 15, 2 );
|
79 |
+
add_action( 'wpforms_display_field_before', [ $this, 'field_description' ], 20, 2 );
|
80 |
+
add_action( 'wpforms_display_field_after', [ $this, 'field_error' ], 3, 2 );
|
81 |
+
add_action( 'wpforms_display_field_after', [ $this, 'field_description' ], 5, 2 );
|
82 |
+
add_action( 'wpforms_display_field_after', [ $this, 'field_container_close' ], 15, 2 );
|
83 |
+
add_action( 'wpforms_frontend_output', [ $this, 'recaptcha' ], 20, 5 );
|
84 |
+
add_action( 'wpforms_frontend_output', [ $this, 'foot' ], 25, 5 );
|
85 |
+
add_action( 'wp_enqueue_scripts', [ $this, 'assets_header' ] );
|
86 |
+
add_action( 'wp_enqueue_scripts', [ $this, 'recaptcha_noconflict' ], 9999 );
|
87 |
+
add_action( 'wp_footer', [ $this, 'missing_assets_error_js' ] );
|
88 |
+
add_action( 'wp_footer', [ $this, 'assets_footer' ], 15 );
|
89 |
+
add_action( 'wp_footer', [ $this, 'recaptcha_noconflict' ], 19 );
|
90 |
+
add_action( 'wp_footer', [ $this, 'footer_end' ], 99 );
|
91 |
|
92 |
// Register shortcode.
|
93 |
+
add_shortcode( 'wpforms', [ $this, 'shortcode' ] );
|
94 |
}
|
95 |
|
96 |
/**
|
1671 |
*/
|
1672 |
$skip = (bool) apply_filters( 'wpforms_frontend_missing_assets_error_js_disable', false );
|
1673 |
|
1674 |
+
if ( $skip || ! wpforms_current_user_can() ) {
|
1675 |
+
return;
|
1676 |
+
}
|
1677 |
+
|
1678 |
+
if ( empty( $this->forms ) && ! $this->assets_global() ) {
|
1679 |
+
return;
|
1680 |
+
}
|
1681 |
+
|
1682 |
+
if ( wpforms_is_amp() ) {
|
1683 |
return;
|
1684 |
}
|
1685 |
|
includes/class-smart-tags.php
DELETED
File without changes
|
includes/functions.php
CHANGED
@@ -2355,30 +2355,27 @@ function wpforms_get_activated_timestamp( $type = '' ) {
|
|
2355 |
*
|
2356 |
* @since 1.5.8.2
|
2357 |
* @since 1.6.5 Added filterable frontend ajax actions list as a fallback to missing referer cases.
|
|
|
2358 |
*
|
2359 |
* @return bool
|
2360 |
*/
|
2361 |
function wpforms_is_frontend_ajax() {
|
2362 |
|
2363 |
-
// It's an AJAX request.
|
2364 |
if ( ! wp_doing_ajax() ) {
|
2365 |
return false;
|
2366 |
}
|
2367 |
|
2368 |
-
//
|
2369 |
-
if (
|
2370 |
-
isset( $_SERVER['SCRIPT_FILENAME'] ) &&
|
2371 |
-
basename( sanitize_text_field( wp_unslash( $_SERVER['SCRIPT_FILENAME'] ) ) ) !== 'admin-ajax.php'
|
2372 |
-
) {
|
2373 |
return false;
|
2374 |
}
|
2375 |
|
2376 |
-
$ref
|
2377 |
-
$action = isset( $_POST['action'] ) ? sanitize_key( $_POST['action'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
|
2378 |
|
2379 |
-
// It has a frontend AJAX action name if there's no referer.
|
2380 |
if ( ! $ref ) {
|
2381 |
|
|
|
|
|
2382 |
$frontend_actions = [
|
2383 |
'wpforms_submit',
|
2384 |
'wpforms_file_upload_speed_test',
|
@@ -2391,7 +2388,9 @@ function wpforms_is_frontend_ajax() {
|
|
2391 |
'wpforms_form_abandonment',
|
2392 |
];
|
2393 |
|
2394 |
-
|
|
|
|
|
2395 |
$frontend_actions = (array) apply_filters( 'wpforms_is_frontend_ajax_frontend_actions', $frontend_actions );
|
2396 |
|
2397 |
return in_array( $action, $frontend_actions, true );
|
@@ -2400,17 +2399,8 @@ function wpforms_is_frontend_ajax() {
|
|
2400 |
$path = wp_parse_url( $ref, PHP_URL_PATH );
|
2401 |
$admin_path = wp_parse_url( admin_url(), PHP_URL_PATH );
|
2402 |
|
2403 |
-
// It
|
2404 |
-
|
2405 |
-
return false;
|
2406 |
-
}
|
2407 |
-
|
2408 |
-
// It's a WPForms request.
|
2409 |
-
if ( strpos( $action, 'wpforms' ) !== 0 ) {
|
2410 |
-
return false;
|
2411 |
-
}
|
2412 |
-
|
2413 |
-
return true;
|
2414 |
}
|
2415 |
|
2416 |
/**
|
2355 |
*
|
2356 |
* @since 1.5.8.2
|
2357 |
* @since 1.6.5 Added filterable frontend ajax actions list as a fallback to missing referer cases.
|
2358 |
+
* @since 1.6.7.1 Removed a requirement for an AJAX action to be a WPForms action if referer is not missing.
|
2359 |
*
|
2360 |
* @return bool
|
2361 |
*/
|
2362 |
function wpforms_is_frontend_ajax() {
|
2363 |
|
|
|
2364 |
if ( ! wp_doing_ajax() ) {
|
2365 |
return false;
|
2366 |
}
|
2367 |
|
2368 |
+
// Additional check to make sure the request targets admin-ajax.php.
|
2369 |
+
if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && basename( sanitize_text_field( wp_unslash( $_SERVER['SCRIPT_FILENAME'] ) ) ) !== 'admin-ajax.php' ) {
|
|
|
|
|
|
|
2370 |
return false;
|
2371 |
}
|
2372 |
|
2373 |
+
$ref = wp_get_raw_referer();
|
|
|
2374 |
|
|
|
2375 |
if ( ! $ref ) {
|
2376 |
|
2377 |
+
// Try to detect a frontend AJAX call indirectly by comparing the current action
|
2378 |
+
// with a known frontend actions list in case there's no HTTP referer.
|
2379 |
$frontend_actions = [
|
2380 |
'wpforms_submit',
|
2381 |
'wpforms_file_upload_speed_test',
|
2388 |
'wpforms_form_abandonment',
|
2389 |
];
|
2390 |
|
2391 |
+
$action = isset( $_REQUEST['action'] ) ? sanitize_key( $_REQUEST['action'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
2392 |
+
|
2393 |
+
// This filter may be running as early as "plugins_loaded" hook. Please mind the hooks order when using it.
|
2394 |
$frontend_actions = (array) apply_filters( 'wpforms_is_frontend_ajax_frontend_actions', $frontend_actions );
|
2395 |
|
2396 |
return in_array( $action, $frontend_actions, true );
|
2399 |
$path = wp_parse_url( $ref, PHP_URL_PATH );
|
2400 |
$admin_path = wp_parse_url( admin_url(), PHP_URL_PATH );
|
2401 |
|
2402 |
+
// It's a frontend AJAX call if HTTP referer doesn't contain an admin path.
|
2403 |
+
return strpos( $path, $admin_path ) === false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2404 |
}
|
2405 |
|
2406 |
/**
|
includes/providers/class-constant-contact.php
CHANGED
@@ -11,6 +11,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
11 |
* Provider access token.
|
12 |
*
|
13 |
* @since 1.3.6
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
public $access_token;
|
@@ -19,6 +20,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
19 |
* Provider API key.
|
20 |
*
|
21 |
* @since 1.3.6
|
|
|
22 |
* @var string
|
23 |
*/
|
24 |
public $api_key = 'c58xq3r27udz59h9rrq7qnvf';
|
@@ -27,6 +29,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
27 |
* Sign up link.
|
28 |
*
|
29 |
* @since 1.3.6
|
|
|
30 |
* @var string
|
31 |
*/
|
32 |
public $sign_up = 'https://constant-contact.evyy.net/c/11535/341874/3411?sharedid=wpforms';
|
@@ -46,12 +49,14 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
46 |
|
47 |
if ( is_admin() ) {
|
48 |
// Admin notice requesting connecting.
|
49 |
-
|
50 |
-
|
51 |
-
add_action( '
|
|
|
52 |
|
53 |
// Provide option to override sign up link.
|
54 |
$sign_up = get_option( 'wpforms_constant_contact_signup', false );
|
|
|
55 |
if ( $sign_up ) {
|
56 |
$this->sign_up = esc_html( $sign_up );
|
57 |
}
|
@@ -66,7 +71,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
66 |
* @param array $fields List of fields with their data and settings.
|
67 |
* @param array $entry Submitted entry values.
|
68 |
* @param array $form_data Form data and settings.
|
69 |
-
* @param int
|
70 |
*
|
71 |
* @return void
|
72 |
*/
|
@@ -625,17 +630,18 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
625 |
}
|
626 |
|
627 |
// Don't display on WPForms admin content pages.
|
628 |
-
if ( ! empty( $_GET['wpforms-page'] ) ) {
|
629 |
return;
|
630 |
}
|
631 |
|
632 |
// Don't display if user is about to connect via Settings page.
|
633 |
-
if ( ! empty( $_GET['wpforms-integration'] ) && $this->slug === $_GET['wpforms-integration'] ) {
|
634 |
return;
|
635 |
}
|
636 |
|
637 |
-
// Only display the notice
|
638 |
// there are previous Constant Contact connections created.
|
|
|
639 |
$cc_notice = get_option( 'wpforms_constant_contact', false );
|
640 |
$providers = wpforms_get_providers_options();
|
641 |
|
@@ -646,42 +652,42 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
646 |
// Output the notice message.
|
647 |
$connect = admin_url( 'admin.php?page=wpforms-settings&wpforms-integration=constant-contact#!wpforms-tab-providers' );
|
648 |
$learn_more = admin_url( 'admin.php?page=wpforms-page&wpforms-page=constant-contact' );
|
|
|
|
|
649 |
?>
|
650 |
-
<
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
<
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
</div>
|
684 |
-
<style type="text/css">
|
685 |
.wpforms-constant-contact-notice {
|
686 |
border-left-color: #1a5285;
|
687 |
}
|
@@ -700,26 +706,37 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
700 |
margin: 0 10px 0 0;
|
701 |
}
|
702 |
</style>
|
703 |
-
<script type="text/javascript">
|
704 |
-
jQuery( function ( $ ) {
|
705 |
-
$( document ).on( 'click', '.wpforms-constant-contact-notice button', function ( event ) {
|
706 |
-
event.preventDefault();
|
707 |
-
$.post( ajaxurl, { action: 'wpforms_constant_contact_dismiss' } );
|
708 |
-
$( '.wpforms-constant-contact-notice' ).remove();
|
709 |
-
} );
|
710 |
-
} );
|
711 |
-
</script>
|
712 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
713 |
}
|
714 |
|
715 |
/**
|
716 |
* Dismiss the Constant Contact admin notice.
|
717 |
*
|
718 |
* @since 1.3.6
|
|
|
|
|
|
|
719 |
*/
|
720 |
-
public function connect_dismiss() {
|
|
|
|
|
|
|
|
|
721 |
|
722 |
delete_option( 'wpforms_constant_contact' );
|
|
|
723 |
wp_send_json_success();
|
724 |
}
|
725 |
|
@@ -824,7 +841,8 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
824 |
<p><?php esc_html_e( 'It doesn't matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today.', 'wpforms-lite' ); ?></p>
|
825 |
<p><?php esc_html_e( 'With Constant Contact + WPForms, growing your list is easy.', 'wpforms-lite' ); ?></p>
|
826 |
</div>
|
827 |
-
|
|
|
828 |
.notice {
|
829 |
display: none;
|
830 |
}
|
@@ -971,4 +989,4 @@ class WPForms_Constant_Contact extends WPForms_Provider {
|
|
971 |
}
|
972 |
}
|
973 |
|
974 |
-
new WPForms_Constant_Contact;
|
11 |
* Provider access token.
|
12 |
*
|
13 |
* @since 1.3.6
|
14 |
+
*
|
15 |
* @var string
|
16 |
*/
|
17 |
public $access_token;
|
20 |
* Provider API key.
|
21 |
*
|
22 |
* @since 1.3.6
|
23 |
+
*
|
24 |
* @var string
|
25 |
*/
|
26 |
public $api_key = 'c58xq3r27udz59h9rrq7qnvf';
|
29 |
* Sign up link.
|
30 |
*
|
31 |
* @since 1.3.6
|
32 |
+
*
|
33 |
* @var string
|
34 |
*/
|
35 |
public $sign_up = 'https://constant-contact.evyy.net/c/11535/341874/3411?sharedid=wpforms';
|
49 |
|
50 |
if ( is_admin() ) {
|
51 |
// Admin notice requesting connecting.
|
52 |
+
$this->connect_request();
|
53 |
+
|
54 |
+
add_action( 'wpforms_admin_notice_dismiss_ajax', [ $this, 'connect_dismiss' ] );
|
55 |
+
add_action( 'wpforms_admin_page', [ $this, 'learn_more_page' ] );
|
56 |
|
57 |
// Provide option to override sign up link.
|
58 |
$sign_up = get_option( 'wpforms_constant_contact_signup', false );
|
59 |
+
|
60 |
if ( $sign_up ) {
|
61 |
$this->sign_up = esc_html( $sign_up );
|
62 |
}
|
71 |
* @param array $fields List of fields with their data and settings.
|
72 |
* @param array $entry Submitted entry values.
|
73 |
* @param array $form_data Form data and settings.
|
74 |
+
* @param int $entry_id Saved entry ID.
|
75 |
*
|
76 |
* @return void
|
77 |
*/
|
630 |
}
|
631 |
|
632 |
// Don't display on WPForms admin content pages.
|
633 |
+
if ( ! empty( $_GET['wpforms-page'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
634 |
return;
|
635 |
}
|
636 |
|
637 |
// Don't display if user is about to connect via Settings page.
|
638 |
+
if ( ! empty( $_GET['wpforms-integration'] ) && $this->slug === $_GET['wpforms-integration'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
639 |
return;
|
640 |
}
|
641 |
|
642 |
+
// Only display the notice if the Constant Contact option is set and
|
643 |
// there are previous Constant Contact connections created.
|
644 |
+
// Please do not delete 'wpforms_constant_contact' option check from the code.
|
645 |
$cc_notice = get_option( 'wpforms_constant_contact', false );
|
646 |
$providers = wpforms_get_providers_options();
|
647 |
|
652 |
// Output the notice message.
|
653 |
$connect = admin_url( 'admin.php?page=wpforms-settings&wpforms-integration=constant-contact#!wpforms-tab-providers' );
|
654 |
$learn_more = admin_url( 'admin.php?page=wpforms-page&wpforms-page=constant-contact' );
|
655 |
+
|
656 |
+
ob_start();
|
657 |
?>
|
658 |
+
<p>
|
659 |
+
<?php
|
660 |
+
echo wp_kses(
|
661 |
+
__( 'Get the most out of the <strong>WPForms</strong> plugin — use it with an active Constant Contact account.', 'wpforms-lite' ),
|
662 |
+
[
|
663 |
+
'strong' => [],
|
664 |
+
]
|
665 |
+
);
|
666 |
+
?>
|
667 |
+
</p>
|
668 |
+
<p>
|
669 |
+
<a href="<?php echo esc_url( $this->sign_up ); ?>" class="button-primary" target="_blank" rel="noopener noreferrer">
|
670 |
+
<?php esc_html_e( 'Try Constant Contact for Free', 'wpforms-lite' ); ?>
|
671 |
+
</a>
|
672 |
+
<a href="<?php echo esc_url( $connect ); ?>" class="button-secondary">
|
673 |
+
<?php esc_html_e( 'Connect your existing account', 'wpforms-lite' ); ?>
|
674 |
+
</a>
|
675 |
+
<?php
|
676 |
+
printf(
|
677 |
+
wp_kses( /* translators: %s - WPForms Constant Contact internal URL. */
|
678 |
+
__( 'Learn More about the <a href="%s">power of email marketing</a>', 'wpforms-lite' ),
|
679 |
+
[
|
680 |
+
'a' => [
|
681 |
+
'href' => [],
|
682 |
+
],
|
683 |
+
]
|
684 |
+
),
|
685 |
+
esc_url( $learn_more )
|
686 |
+
);
|
687 |
+
?>
|
688 |
+
</p>
|
689 |
+
|
690 |
+
<style>
|
|
|
|
|
691 |
.wpforms-constant-contact-notice {
|
692 |
border-left-color: #1a5285;
|
693 |
}
|
706 |
margin: 0 10px 0 0;
|
707 |
}
|
708 |
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
709 |
<?php
|
710 |
+
|
711 |
+
$notice = ob_get_clean();
|
712 |
+
|
713 |
+
\WPForms\Admin\Notice::info(
|
714 |
+
$notice,
|
715 |
+
[
|
716 |
+
'dismiss' => \WPForms\Admin\Notice::DISMISS_GLOBAL,
|
717 |
+
'slug' => 'constant_contact_connect',
|
718 |
+
'autop' => false,
|
719 |
+
'class' => 'wpforms-constant-contact-notice',
|
720 |
+
]
|
721 |
+
);
|
722 |
}
|
723 |
|
724 |
/**
|
725 |
* Dismiss the Constant Contact admin notice.
|
726 |
*
|
727 |
* @since 1.3.6
|
728 |
+
* @since 1.6.7.1 Added parameter $notice_id.
|
729 |
+
*
|
730 |
+
* @param string $notice_id Notice ID (slug).
|
731 |
*/
|
732 |
+
public function connect_dismiss( $notice_id = '' ) {
|
733 |
+
|
734 |
+
if ( $notice_id !== 'global-constant_contact_connect' ) {
|
735 |
+
return;
|
736 |
+
}
|
737 |
|
738 |
delete_option( 'wpforms_constant_contact' );
|
739 |
+
|
740 |
wp_send_json_success();
|
741 |
}
|
742 |
|
841 |
<p><?php esc_html_e( 'It doesn't matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today.', 'wpforms-lite' ); ?></p>
|
842 |
<p><?php esc_html_e( 'With Constant Contact + WPForms, growing your list is easy.', 'wpforms-lite' ); ?></p>
|
843 |
</div>
|
844 |
+
|
845 |
+
<style>
|
846 |
.notice {
|
847 |
display: none;
|
848 |
}
|
989 |
}
|
990 |
}
|
991 |
|
992 |
+
new WPForms_Constant_Contact();
|
lite/templates/admin/addons.php
CHANGED
@@ -18,15 +18,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
18 |
<?php esc_html_e( 'WPForms Addons', 'wpforms-lite' ); ?>
|
19 |
<input type="search" placeholder="<?php esc_html_e( 'Search Addons', 'wpforms-lite' ); ?>" id="wpforms-admin-addons-search">
|
20 |
</h1>
|
21 |
-
<div class="notice notice-info" style="display: block;">
|
22 |
-
<p><strong><?php esc_html_e( 'Form Addons are a PRO feature.', 'wpforms-lite' ); ?></strong></p>
|
23 |
-
<p><?php esc_html_e( 'Please upgrade to the PRO plan to unlock them and more awesome features.', 'wpforms-lite' ); ?></p>
|
24 |
-
<p>
|
25 |
-
<a href="<?php echo esc_url( $upgrade_link ); ?>" class="wpforms-btn wpforms-btn-orange wpforms-btn-md wpforms-upgrade-modal" target="_blank" rel="noopener noreferrer">
|
26 |
-
<?php esc_html_e( 'Upgrade Now', 'wpforms-lite' ); ?>
|
27 |
-
</a>
|
28 |
-
</p>
|
29 |
-
</div>
|
30 |
<div class="wpforms-admin-content">
|
31 |
<div id="wpforms-admin-addons-list">
|
32 |
<div class="list">
|
18 |
<?php esc_html_e( 'WPForms Addons', 'wpforms-lite' ); ?>
|
19 |
<input type="search" placeholder="<?php esc_html_e( 'Search Addons', 'wpforms-lite' ); ?>" id="wpforms-admin-addons-search">
|
20 |
</h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
<div class="wpforms-admin-content">
|
22 |
<div id="wpforms-admin-addons-list">
|
23 |
<div class="list">
|
lite/wpforms-lite.php
CHANGED
@@ -530,7 +530,7 @@ class WPForms_Lite {
|
|
530 |
}
|
531 |
?>
|
532 |
|
533 |
-
<style
|
534 |
.wpforms-admin-content {
|
535 |
-webkit-filter: blur(3px);
|
536 |
-moz-filter: blur(3px);
|
@@ -629,6 +629,7 @@ class WPForms_Lite {
|
|
629 |
float: left;
|
630 |
}
|
631 |
</style>
|
|
|
632 |
<script type="text/javascript">
|
633 |
jQuery( function ( $ ) {
|
634 |
var userAgent = window.navigator.userAgent,
|
@@ -956,7 +957,7 @@ class WPForms_Lite {
|
|
956 |
}
|
957 |
|
958 |
/**
|
959 |
-
*
|
960 |
*
|
961 |
* @since 1.0.0
|
962 |
* @deprecated 1.6.7
|
@@ -965,6 +966,10 @@ class WPForms_Lite {
|
|
965 |
|
966 |
_deprecated_function( __CLASS__ . '::' . __METHOD__, '1.6.7 of WPForms plugin', "wpforms()->get( 'addons_page' )->output()" );
|
967 |
|
|
|
|
|
|
|
|
|
968 |
wpforms()->get( 'addons_page' )->output();
|
969 |
}
|
970 |
|
530 |
}
|
531 |
?>
|
532 |
|
533 |
+
<style>
|
534 |
.wpforms-admin-content {
|
535 |
-webkit-filter: blur(3px);
|
536 |
-moz-filter: blur(3px);
|
629 |
float: left;
|
630 |
}
|
631 |
</style>
|
632 |
+
|
633 |
<script type="text/javascript">
|
634 |
jQuery( function ( $ ) {
|
635 |
var userAgent = window.navigator.userAgent,
|
957 |
}
|
958 |
|
959 |
/**
|
960 |
+
* Addons page.
|
961 |
*
|
962 |
* @since 1.0.0
|
963 |
* @deprecated 1.6.7
|
966 |
|
967 |
_deprecated_function( __CLASS__ . '::' . __METHOD__, '1.6.7 of WPForms plugin', "wpforms()->get( 'addons_page' )->output()" );
|
968 |
|
969 |
+
if ( ! wpforms_is_admin_page( 'addons' ) ) {
|
970 |
+
return;
|
971 |
+
}
|
972 |
+
|
973 |
wpforms()->get( 'addons_page' )->output();
|
974 |
}
|
975 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: wpforms, jaredatch, smub, slaFFik
|
|
3 |
Tags: contact form, contact form plugin, forms, form builder, custom form, contact button, contact me, custom contact form, form manager, form, forms builder, forms creator, captcha, recaptcha, Akismet, email form, web form, feedback form, payment form, survey form, donation form, email submit form, message form, mailchimp, mailchimp form, aweber, aweber form, paypal, paypal form, stripe, stripe form, getresponse, getresponse form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, feedback
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.7
|
6 |
-
Stable tag: 1.6.7
|
7 |
Requires PHP: 5.5
|
8 |
License: GNU General Public License v2.0 or later
|
9 |
|
@@ -418,6 +418,15 @@ Syed Balkhi
|
|
418 |
|
419 |
== Changelog ==
|
420 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
= 1.6.7 =
|
422 |
- Changed: Email Summaries can now be tweaked via the hook to have multiple "To" recipients.
|
423 |
- Changed: Email Summaries subject line is changed to reduce a chance of going into spam folder.
|
3 |
Tags: contact form, contact form plugin, forms, form builder, custom form, contact button, contact me, custom contact form, form manager, form, forms builder, forms creator, captcha, recaptcha, Akismet, email form, web form, feedback form, payment form, survey form, donation form, email submit form, message form, mailchimp, mailchimp form, aweber, aweber form, paypal, paypal form, stripe, stripe form, getresponse, getresponse form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, feedback
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.7
|
6 |
+
Stable tag: 1.6.7.1
|
7 |
Requires PHP: 5.5
|
8 |
License: GNU General Public License v2.0 or later
|
9 |
|
418 |
|
419 |
== Changelog ==
|
420 |
|
421 |
+
= 1.6.7.1 =
|
422 |
+
- Changed: Improved logic of pasting a text in the fields with word and character limits.
|
423 |
+
- Changed: Updated DOMPurify lib to 2.2.9.
|
424 |
+
- Changed: Some admin notices can be dismissed on a per-user basis.
|
425 |
+
- Fixed: Smart Tags don't parse dot and comma symbols well.
|
426 |
+
- Fixed: In rare cases, WPForms functions calls are not handled correctly inside the third-party frontend AJAX calls.
|
427 |
+
- Fixed: Incorrect `wpforms_smart_tag_process` filter deprecation notice.
|
428 |
+
- Fixed: Compatibility with the Elementor 3.1.x, 3.2.x and 3.3.x.
|
429 |
+
|
430 |
= 1.6.7 =
|
431 |
- Changed: Email Summaries can now be tweaked via the hook to have multiple "To" recipients.
|
432 |
- Changed: Email Summaries subject line is changed to reduce a chance of going into spam folder.
|
src/Admin/Notice.php
ADDED
@@ -0,0 +1,365 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WPForms\Admin;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Dismissible admin notices.
|
7 |
+
*
|
8 |
+
* @since 1.6.7.1
|
9 |
+
*
|
10 |
+
* @example Dismissible - global:
|
11 |
+
* \WPForms\Admin\Notice::error(
|
12 |
+
* 'Fatal error!',
|
13 |
+
* [
|
14 |
+
* 'dismiss' => \WPForms\Admin\Notice::DISMISS_GLOBAL,
|
15 |
+
* 'slug' => 'fatal_error_3678975',
|
16 |
+
* ]
|
17 |
+
* );
|
18 |
+
*
|
19 |
+
* @example Dismissible - per user:
|
20 |
+
* \WPForms\Admin\Notice::warning(
|
21 |
+
* 'Do something please.',
|
22 |
+
* [
|
23 |
+
* 'dismiss' => \WPForms\Admin\Notice::DISMISS_USER,
|
24 |
+
* 'slug' => 'do_something_1238943',
|
25 |
+
* ]
|
26 |
+
* );
|
27 |
+
*
|
28 |
+
* @example Dismissible - global, add custom class to output and disable auto paragraph in text:
|
29 |
+
* \WPForms\Admin\Notice::error(
|
30 |
+
* 'Fatal error!',
|
31 |
+
* [
|
32 |
+
* 'dismiss' => \WPForms\Admin\Notice::DISMISS_GLOBAL,
|
33 |
+
* 'slug' => 'fatal_error_348975',
|
34 |
+
* 'autop' => false,
|
35 |
+
* 'class' => 'some-additional-class',
|
36 |
+
* ]
|
37 |
+
* );
|
38 |
+
*
|
39 |
+
* @example Not dismissible:
|
40 |
+
* \WPForms\Admin\Notice::success( 'Everything is good!' );
|
41 |
+
*/
|
42 |
+
class Notice {
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Not dismissible.
|
46 |
+
*
|
47 |
+
* Constant attended to use as the value of the $args['dismiss'] argument.
|
48 |
+
* DISMISS_NONE means that the notice is not dismissible.
|
49 |
+
*
|
50 |
+
* @since 1.6.7.1
|
51 |
+
*/
|
52 |
+
const DISMISS_NONE = 0;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Dismissible global.
|
56 |
+
*
|
57 |
+
* Constant attended to use as the value of the $args['dismiss'] argument.
|
58 |
+
* DISMISS_GLOBAL means that the notice will have the dismiss button, and after clicking this button, the notice will be dismissed for all users.
|
59 |
+
*
|
60 |
+
* @since 1.6.7.1
|
61 |
+
*/
|
62 |
+
const DISMISS_GLOBAL = 1;
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Dismissible per user.
|
66 |
+
*
|
67 |
+
* Constant attended to use as the value of the $args['dismiss'] argument.
|
68 |
+
* DISMISS_USER means that the notice will have the dismiss button, and after clicking this button, the notice will be dismissed only for the current user..
|
69 |
+
*
|
70 |
+
* @since 1.6.7.1
|
71 |
+
*/
|
72 |
+
const DISMISS_USER = 2;
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Added notices.
|
76 |
+
*
|
77 |
+
* @since 1.6.7.1
|
78 |
+
*
|
79 |
+
* @var array
|
80 |
+
*/
|
81 |
+
private $notices = [];
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Init.
|
85 |
+
*
|
86 |
+
* @since 1.6.7.1
|
87 |
+
*/
|
88 |
+
public function init() {
|
89 |
+
|
90 |
+
$this->hooks();
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Hooks.
|
95 |
+
*
|
96 |
+
* @since 1.6.7.1
|
97 |
+
*/
|
98 |
+
public function hooks() {
|
99 |
+
|
100 |
+
add_action( 'admin_notices', [ $this, 'display' ], PHP_INT_MAX );
|
101 |
+
add_action( 'wp_ajax_wpforms_notice_dismiss', [ $this, 'dismiss_ajax' ] );
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Enqueue assets.
|
106 |
+
*
|
107 |
+
* @since 1.6.7.1
|
108 |
+
*/
|
109 |
+
private function enqueues() {
|
110 |
+
|
111 |
+
$min = wpforms_get_min_suffix();
|
112 |
+
|
113 |
+
wp_enqueue_script(
|
114 |
+
'wpforms-admin-notices',
|
115 |
+
WPFORMS_PLUGIN_URL . "assets/js/components/admin/notices{$min}.js",
|
116 |
+
[ 'jquery' ],
|
117 |
+
WPFORMS_VERSION,
|
118 |
+
true
|
119 |
+
);
|
120 |
+
|
121 |
+
wp_localize_script(
|
122 |
+
'wpforms-admin-notices',
|
123 |
+
'wpforms_admin_notices',
|
124 |
+
[
|
125 |
+
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
126 |
+
'nonce' => wp_create_nonce( 'wpforms-admin' ),
|
127 |
+
]
|
128 |
+
);
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Display the notices.
|
133 |
+
*
|
134 |
+
* @since 1.6.7.1
|
135 |
+
*/
|
136 |
+
public function display() {
|
137 |
+
|
138 |
+
$dismissed_notices = get_user_meta( get_current_user_id(), 'wpforms_admin_notices', true );
|
139 |
+
$dismissed_notices = is_array( $dismissed_notices ) ? $dismissed_notices : [];
|
140 |
+
$dismissed_notices = array_merge( $dismissed_notices, (array) get_option( 'wpforms_admin_notices', [] ) );
|
141 |
+
|
142 |
+
foreach ( $this->notices as $slug => $notice ) {
|
143 |
+
if ( isset( $dismissed_notices[ $slug ] ) && ! empty( $dismissed_notices[ $slug ]['dismissed'] ) ) {
|
144 |
+
unset( $this->notices[ $slug ] );
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
$output = implode( '', $this->notices );
|
149 |
+
|
150 |
+
echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
151 |
+
|
152 |
+
// Enqueue script only when it's needed.
|
153 |
+
if ( strpos( $output, 'is-dismissible' ) !== false ) {
|
154 |
+
$this->enqueues();
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Add notice to the registry.
|
160 |
+
*
|
161 |
+
* @since 1.6.7.1
|
162 |
+
*
|
163 |
+
* @param string $message Message to display.
|
164 |
+
* @param string $type Type of the notice. Can be [ '' (default) | 'info' | 'error' | 'success' | 'warning' ].
|
165 |
+
* @param array $args The array of additional arguments. Please see the $defaults array below.
|
166 |
+
*/
|
167 |
+
public static function add( $message, $type = '', $args = [] ) {
|
168 |
+
|
169 |
+
static $uniq_id = 0;
|
170 |
+
|
171 |
+
$defaults = [
|
172 |
+
'dismiss' => self::DISMISS_NONE, // Dismissible level: one of the self::DISMISS_* const. By default notice is not dismissible.
|
173 |
+
'slug' => '', // Slug. Should be unique if dismissible is not equal self::DISMISS_NONE.
|
174 |
+
'autop' => true, // `false` if not needed to pass message through wpautop().
|
175 |
+
'class' => '', // Additional CSS class.
|
176 |
+
];
|
177 |
+
|
178 |
+
$args = wp_parse_args( $args, $defaults );
|
179 |
+
|
180 |
+
$dismissible = (int) $args['dismiss'];
|
181 |
+
$dismissible = $dismissible > self::DISMISS_USER ? self::DISMISS_USER : $dismissible;
|
182 |
+
|
183 |
+
$class = $dismissible > self::DISMISS_NONE ? ' is-dismissible' : '';
|
184 |
+
$global = ( $dismissible === self::DISMISS_GLOBAL ) ? 'global-' : '';
|
185 |
+
$slug = sanitize_key( $args['slug'] );
|
186 |
+
|
187 |
+
++$uniq_id;
|
188 |
+
|
189 |
+
$uniq_id += ( $uniq_id === (int) $slug ) ? 1 : 0;
|
190 |
+
|
191 |
+
$id = 'wpforms-notice-' . $global;
|
192 |
+
$id .= empty( $slug ) ? $uniq_id : $slug;
|
193 |
+
$type = ! empty( $type ) ? 'notice-' . esc_attr( sanitize_key( $type ) ) : '';
|
194 |
+
$class = empty( $args['class'] ) ? $class : $class . ' ' . esc_attr( sanitize_key( $args['class'] ) );
|
195 |
+
$message = $args['autop'] ? wpautop( $message ) : $message;
|
196 |
+
$notice = sprintf(
|
197 |
+
'<div class="notice wpforms-notice %s%s" id="%s">%s</div>',
|
198 |
+
esc_attr( $type ),
|
199 |
+
esc_attr( $class ),
|
200 |
+
esc_attr( $id ),
|
201 |
+
$message
|
202 |
+
);
|
203 |
+
|
204 |
+
if ( empty( $slug ) ) {
|
205 |
+
wpforms()->get( 'notice' )->notices[] = $notice;
|
206 |
+
} else {
|
207 |
+
wpforms()->get( 'notice' )->notices[ $slug ] = $notice;
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Add info notice.
|
213 |
+
*
|
214 |
+
* @since 1.6.7.1
|
215 |
+
*
|
216 |
+
* @param string $message Message to display.
|
217 |
+
* @param array $args Array of additional arguments. Details in the self::add() method.
|
218 |
+
*/
|
219 |
+
public static function info( $message, $args = [] ) {
|
220 |
+
|
221 |
+
self::add( $message, 'info', $args );
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* Add error notice.
|
226 |
+
*
|
227 |
+
* @since 1.6.7.1
|
228 |
+
*
|
229 |
+
* @param string $message Message to display.
|
230 |
+
* @param array $args Array of additional arguments. Details in the self::add() method.
|
231 |
+
*/
|
232 |
+
public static function error( $message, $args = [] ) {
|
233 |
+
|
234 |
+
self::add( $message, 'error', $args );
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Add success notice.
|
239 |
+
*
|
240 |
+
* @since 1.6.7.1
|
241 |
+
*
|
242 |
+
* @param string $message Message to display.
|
243 |
+
* @param array $args Array of additional arguments. Details in the self::add() method.
|
244 |
+
*/
|
245 |
+
public static function success( $message, $args = [] ) {
|
246 |
+
|
247 |
+
self::add( $message, 'success', $args );
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Add warning notice.
|
252 |
+
*
|
253 |
+
* @since 1.6.7.1
|
254 |
+
*
|
255 |
+
* @param string $message Message to display.
|
256 |
+
* @param array $args Array of additional arguments. Details in the self::add() method.
|
257 |
+
*/
|
258 |
+
public static function warning( $message, $args = [] ) {
|
259 |
+
|
260 |
+
self::add( $message, 'warning', $args );
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* AJAX routine that updates dismissed notices meta data.
|
265 |
+
*
|
266 |
+
* @since 1.6.7.1
|
267 |
+
*/
|
268 |
+
public function dismiss_ajax() {
|
269 |
+
|
270 |
+
// Run a security check.
|
271 |
+
check_ajax_referer( 'wpforms-admin', 'nonce' );
|
272 |
+
|
273 |
+
// Sanitize POST data.
|
274 |
+
$post = array_map( 'sanitize_key', wp_unslash( $_POST ) );
|
275 |
+
|
276 |
+
// Update notices meta data.
|
277 |
+
if ( strpos( $post['id'], 'global-' ) !== false ) {
|
278 |
+
|
279 |
+
// Check for permissions.
|
280 |
+
if ( ! wpforms_current_user_can() ) {
|
281 |
+
wp_send_json_error();
|
282 |
+
}
|
283 |
+
|
284 |
+
$notices = $this->dismiss_global( $post['id'] );
|
285 |
+
$level = self::DISMISS_GLOBAL;
|
286 |
+
|
287 |
+
} else {
|
288 |
+
|
289 |
+
$notices = $this->dismiss_user( $post['id'] );
|
290 |
+
$level = self::DISMISS_USER;
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* Allows developers to apply additional logic to the dismissing notice process.
|
295 |
+
* Executes after updating option or user meta (according to the notice level).
|
296 |
+
*
|
297 |
+
* @since 1.6.7.1
|
298 |
+
*
|
299 |
+
* @param string $notice_id Notice ID (slug).
|
300 |
+
* @param integer $level Notice level.
|
301 |
+
* @param array $notices Dismissed notices.
|
302 |
+
*/
|
303 |
+
do_action( 'wpforms_admin_notice_dismiss_ajax', $post['id'], $level, $notices );
|
304 |
+
|
305 |
+
if ( ! wpforms_debug() ) {
|
306 |
+
wp_send_json_success();
|
307 |
+
}
|
308 |
+
|
309 |
+
wp_send_json_success(
|
310 |
+
[
|
311 |
+
'id' => $post['id'],
|
312 |
+
'time' => time(),
|
313 |
+
'level' => $level,
|
314 |
+
'notices' => $notices,
|
315 |
+
]
|
316 |
+
);
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* AJAX sub-routine that updates dismissed notices option.
|
321 |
+
*
|
322 |
+
* @since 1.6.7.1
|
323 |
+
*
|
324 |
+
* @param string $id Notice Id.
|
325 |
+
*
|
326 |
+
* @return array Notices.
|
327 |
+
*/
|
328 |
+
private function dismiss_global( $id ) {
|
329 |
+
|
330 |
+
$id = str_replace( 'global-', '', $id );
|
331 |
+
$notices = get_option( 'wpforms_admin_notices', [] );
|
332 |
+
$notices[ $id ] = [
|
333 |
+
'time' => time(),
|
334 |
+
'dismissed' => true,
|
335 |
+
];
|
336 |
+
|
337 |
+
update_option( 'wpforms_admin_notices', $notices, true );
|
338 |
+
|
339 |
+
return $notices;
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* AJAX sub-routine that updates dismissed notices user meta.
|
344 |
+
*
|
345 |
+
* @since 1.6.7.1
|
346 |
+
*
|
347 |
+
* @param string $id Notice Id.
|
348 |
+
*
|
349 |
+
* @return array Notices.
|
350 |
+
*/
|
351 |
+
private function dismiss_user( $id ) {
|
352 |
+
|
353 |
+
$user_id = get_current_user_id();
|
354 |
+
$notices = get_user_meta( $user_id, 'wpforms_admin_notices', true );
|
355 |
+
$notices = ! is_array( $notices ) ? [] : $notices;
|
356 |
+
$notices[ $id ] = [
|
357 |
+
'time' => time(),
|
358 |
+
'dismissed' => true,
|
359 |
+
];
|
360 |
+
|
361 |
+
update_user_meta( $user_id, 'wpforms_admin_notices', $notices );
|
362 |
+
|
363 |
+
return $notices;
|
364 |
+
}
|
365 |
+
}
|
src/Admin/Settings/Captcha.php
CHANGED
@@ -280,7 +280,7 @@ class Captcha {
|
|
280 |
return;
|
281 |
}
|
282 |
|
283 |
-
\
|
284 |
}
|
285 |
|
286 |
/**
|
280 |
return;
|
281 |
}
|
282 |
|
283 |
+
\WPForms\Admin\Notice::info( esc_html__( 'A preview of your CAPTCHA is displayed below. Please view to verify the CAPTCHA settings are correct.', 'wpforms-lite' ) );
|
284 |
}
|
285 |
|
286 |
/**
|
src/Integrations/UsageTracking/UsageTracking.php
CHANGED
@@ -122,11 +122,12 @@ class UsageTracking implements IntegrationInterface {
|
|
122 |
|
123 |
$theme_data = wp_get_theme();
|
124 |
$activated_dates = get_option( 'wpforms_activated', [] );
|
|
|
125 |
$forms = $this->get_all_forms();
|
126 |
$forms_total = count( $forms );
|
127 |
$entries_total = $this->get_entries_total();
|
128 |
|
129 |
-
|
130 |
// Generic data (environment).
|
131 |
'url' => home_url(),
|
132 |
'php_version' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION,
|
@@ -161,6 +162,12 @@ class UsageTracking implements IntegrationInterface {
|
|
161 |
'wpforms_multiple_notifications' => count( $this->get_forms_with_multiple_notifications( $forms ) ),
|
162 |
'wpforms_ajax_form_submissions' => count( $this->get_ajax_form_submissions( $forms ) ),
|
163 |
];
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
/**
|
@@ -228,6 +235,8 @@ class UsageTracking implements IntegrationInterface {
|
|
228 |
* We use `wp_timezone_string()` when it's available (WP 5.3+),
|
229 |
* otherwise fallback to the same code, copy-pasted.
|
230 |
*
|
|
|
|
|
231 |
* @since 1.6.1
|
232 |
*
|
233 |
* @return string
|
122 |
|
123 |
$theme_data = wp_get_theme();
|
124 |
$activated_dates = get_option( 'wpforms_activated', [] );
|
125 |
+
$first_form_date = get_option( 'wpforms_forms_first_created' );
|
126 |
$forms = $this->get_all_forms();
|
127 |
$forms_total = count( $forms );
|
128 |
$entries_total = $this->get_entries_total();
|
129 |
|
130 |
+
$data = [
|
131 |
// Generic data (environment).
|
132 |
'url' => home_url(),
|
133 |
'php_version' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION,
|
162 |
'wpforms_multiple_notifications' => count( $this->get_forms_with_multiple_notifications( $forms ) ),
|
163 |
'wpforms_ajax_form_submissions' => count( $this->get_ajax_form_submissions( $forms ) ),
|
164 |
];
|
165 |
+
|
166 |
+
if ( ! empty( $first_form_date ) ) {
|
167 |
+
$data['wpforms_forms_first_created'] = $first_form_date;
|
168 |
+
}
|
169 |
+
|
170 |
+
return $data;
|
171 |
}
|
172 |
|
173 |
/**
|
235 |
* We use `wp_timezone_string()` when it's available (WP 5.3+),
|
236 |
* otherwise fallback to the same code, copy-pasted.
|
237 |
*
|
238 |
+
* @see wp_timezone_string()
|
239 |
+
*
|
240 |
* @since 1.6.1
|
241 |
*
|
242 |
* @return string
|
src/Lite/Admin/Pages/Addons.php
CHANGED
@@ -53,6 +53,7 @@ class Addons {
|
|
53 |
public function hooks() {
|
54 |
|
55 |
add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] );
|
|
|
56 |
add_action( 'wpforms_admin_page', [ $this, 'output' ] );
|
57 |
}
|
58 |
|
@@ -79,6 +80,33 @@ class Addons {
|
|
79 |
);
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
/**
|
83 |
* Render the Addons page.
|
84 |
*
|
53 |
public function hooks() {
|
54 |
|
55 |
add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] );
|
56 |
+
add_action( 'admin_notices', [ $this, 'notices' ] );
|
57 |
add_action( 'wpforms_admin_page', [ $this, 'output' ] );
|
58 |
}
|
59 |
|
80 |
);
|
81 |
}
|
82 |
|
83 |
+
/**
|
84 |
+
* Notices.
|
85 |
+
*
|
86 |
+
* @since 1.6.7.1
|
87 |
+
*/
|
88 |
+
public function notices() {
|
89 |
+
|
90 |
+
$notice = sprintf(
|
91 |
+
'<p><strong>%1$s</strong></p>
|
92 |
+
<p>%2$s</p>
|
93 |
+
<p>
|
94 |
+
<a href="%3$s" class="wpforms-btn wpforms-btn-orange wpforms-btn-md" rel="noopener noreferrer">
|
95 |
+
%4$s
|
96 |
+
</a>
|
97 |
+
</p>',
|
98 |
+
esc_html__( 'WPForms Addons is a PRO feature.', 'wpforms-lite' ),
|
99 |
+
esc_html__( 'Please upgrade to the PRO plan to unlock them and more awesome features.', 'wpforms-lite' ),
|
100 |
+
esc_url( wpforms_admin_upgrade_link( 'addons' ) ),
|
101 |
+
esc_html__( 'Upgrade Now', 'wpforms-lite' )
|
102 |
+
);
|
103 |
+
|
104 |
+
\WPForms\Admin\Notice::info(
|
105 |
+
$notice,
|
106 |
+
[ 'autop' => false ]
|
107 |
+
);
|
108 |
+
}
|
109 |
+
|
110 |
/**
|
111 |
* Render the Addons page.
|
112 |
*
|
src/Loader.php
CHANGED
@@ -74,6 +74,10 @@ class Loader {
|
|
74 |
|
75 |
array_push(
|
76 |
$this->classes,
|
|
|
|
|
|
|
|
|
77 |
[
|
78 |
'name' => 'Admin\Addons\Addons',
|
79 |
'id' => 'addons',
|
74 |
|
75 |
array_push(
|
76 |
$this->classes,
|
77 |
+
[
|
78 |
+
'name' => 'Admin\Notice',
|
79 |
+
'id' => 'notice',
|
80 |
+
],
|
81 |
[
|
82 |
'name' => 'Admin\Addons\Addons',
|
83 |
'id' => 'addons',
|
src/SmartTags/SmartTag/Generic.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WPForms\SmartTags\SmartTag;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Generic.
|
7 |
+
*
|
8 |
+
* @since 1.6.7.1
|
9 |
+
*/
|
10 |
+
class Generic extends SmartTag {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Mock for the get_value method.
|
14 |
+
*
|
15 |
+
* @since 1.6.7.1
|
16 |
+
*
|
17 |
+
* @param array $form_data Form data.
|
18 |
+
* @param array $fields List of fields.
|
19 |
+
* @param string $entry_id Entry ID.
|
20 |
+
*
|
21 |
+
* @return null
|
22 |
+
*/
|
23 |
+
public function get_value( $form_data, $fields = [], $entry_id = '' ) {
|
24 |
+
|
25 |
+
return null;
|
26 |
+
}
|
27 |
+
}
|
src/SmartTags/SmartTag/SmartTag.php
CHANGED
@@ -60,14 +60,21 @@ abstract class SmartTag {
|
|
60 |
*
|
61 |
* @return array
|
62 |
*/
|
63 |
-
|
64 |
|
65 |
if ( ! empty( $this->attributes ) ) {
|
66 |
-
$this->attributes;
|
67 |
}
|
68 |
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
return $this->attributes;
|
73 |
}
|
60 |
*
|
61 |
* @return array
|
62 |
*/
|
63 |
+
public function get_attributes() {
|
64 |
|
65 |
if ( ! empty( $this->attributes ) ) {
|
66 |
+
return $this->attributes;
|
67 |
}
|
68 |
|
69 |
+
/**
|
70 |
+
* (\w+) an attribute name and also the first capturing group. Lowercase or uppercase letters, digits, underscore.
|
71 |
+
* = the equal sign.
|
72 |
+
* (["\']) single or double quote, the second capturing group.
|
73 |
+
* (.+?) an attribute value within the quotes, and also the third capturing group. Any number of any characters except new line. Lazy mode - match as few characters as possible to allow multiple attributes on one line.
|
74 |
+
* \2 - repeat the second capturing group.
|
75 |
+
*/
|
76 |
+
preg_match_all( '/(\w+)=(["\'])(.+?)\2/', $this->smart_tag, $attributes );
|
77 |
+
$this->attributes = array_combine( $attributes[1], $attributes[3] );
|
78 |
|
79 |
return $this->attributes;
|
80 |
}
|
src/SmartTags/SmartTags.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace WPForms\SmartTags;
|
4 |
|
|
|
|
|
|
|
5 |
/**
|
6 |
* Class SmartTags.
|
7 |
*
|
@@ -142,7 +145,14 @@ class SmartTags {
|
|
142 |
*/
|
143 |
private function get_all_smart_tags( $content ) {
|
144 |
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
return array_combine( $smart_tags[0], $smart_tags[1] );
|
148 |
}
|
@@ -168,48 +178,78 @@ class SmartTags {
|
|
168 |
}
|
169 |
|
170 |
foreach ( $smart_tags as $smart_tag => $tag_name ) {
|
171 |
-
|
172 |
-
$
|
173 |
-
|
174 |
-
if ( ! $class ) {
|
175 |
-
/**
|
176 |
-
* Modify content for unregistered smart tags.
|
177 |
-
*
|
178 |
-
* @since 1.4.0
|
179 |
-
* @deprecated 1.6.7
|
180 |
-
*
|
181 |
-
* @param string Content of the Smart Tag.
|
182 |
-
* @param string Tag name of the Smart Tag.
|
183 |
-
*/
|
184 |
-
$content = (string) apply_filters_deprecated(
|
185 |
-
'wpforms_smart_tag_process',
|
186 |
-
[ $content, $tag_name ],
|
187 |
-
'1.6.7',
|
188 |
-
'wpforms_smarttags_process_{$tag_name}_value'
|
189 |
-
);
|
190 |
-
|
191 |
-
continue;
|
192 |
-
}
|
193 |
|
194 |
/**
|
195 |
-
* Modify
|
196 |
*
|
197 |
* @since 1.6.7
|
|
|
198 |
*
|
199 |
-
* @param string Smart Tag value.
|
200 |
-
* @param array
|
201 |
-
* @param string
|
202 |
-
* @param int
|
|
|
203 |
*/
|
204 |
-
$value =
|
205 |
"wpforms_smarttags_process_{$tag_name}_value",
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
$form_data,
|
208 |
$fields,
|
209 |
-
$entry_id
|
|
|
210 |
);
|
211 |
|
212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
}
|
214 |
|
215 |
return $content;
|
@@ -241,7 +281,7 @@ class SmartTags {
|
|
241 |
protected function get_smart_tag_class_name( $smart_tag_name ) {
|
242 |
|
243 |
if ( ! $this->has_smart_tag( $smart_tag_name ) ) {
|
244 |
-
return
|
245 |
}
|
246 |
|
247 |
$class_name = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $smart_tag_name ) ) );
|
@@ -257,12 +297,12 @@ class SmartTags {
|
|
257 |
*
|
258 |
* @since 1.6.7
|
259 |
*
|
260 |
-
* @param string The value.
|
261 |
-
* @param string Smart tag name.
|
262 |
*/
|
263 |
$full_class_name = apply_filters( 'wpforms_smarttags_get_smart_tag_class_name', '', $smart_tag_name );
|
264 |
|
265 |
-
return class_exists( $full_class_name ) ? $full_class_name :
|
266 |
}
|
267 |
|
268 |
/**
|
2 |
|
3 |
namespace WPForms\SmartTags;
|
4 |
|
5 |
+
use WPForms\SmartTags\SmartTag\Generic;
|
6 |
+
use WPForms\SmartTags\SmartTag\SmartTag;
|
7 |
+
|
8 |
/**
|
9 |
* Class SmartTags.
|
10 |
*
|
145 |
*/
|
146 |
private function get_all_smart_tags( $content ) {
|
147 |
|
148 |
+
/**
|
149 |
+
* A smart tag should start and end with a curly brace.
|
150 |
+
* ([a-z0-9_]+) a smart tag name and also the first capturing group. Lowercase letters, digits, and an underscore.
|
151 |
+
* (|[ =][^\n}]*) - second capturing group:
|
152 |
+
* | no characters at all or the following:
|
153 |
+
* [ =][^\n}]* space or equal sign and any number of any characters except new line and closing curly brace.
|
154 |
+
*/
|
155 |
+
preg_match_all( '~{([a-z0-9_]+)(|[ =][^\n}]*)}~', $content, $smart_tags );
|
156 |
|
157 |
return array_combine( $smart_tags[0], $smart_tags[1] );
|
158 |
}
|
178 |
}
|
179 |
|
180 |
foreach ( $smart_tags as $smart_tag => $tag_name ) {
|
181 |
+
$class_name = $this->get_smart_tag_class_name( $tag_name );
|
182 |
+
$smart_tag_object = new $class_name( $smart_tag );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
/**
|
185 |
+
* Modify the smart tag value.
|
186 |
*
|
187 |
* @since 1.6.7
|
188 |
+
* @since 1.6.7.1 Added the 5th argument.
|
189 |
*
|
190 |
+
* @param null|string $value Smart Tag value.
|
191 |
+
* @param array $form_data Form data.
|
192 |
+
* @param string $fields List of fields.
|
193 |
+
* @param int $entry_id Entry ID.
|
194 |
+
* @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered.
|
195 |
*/
|
196 |
+
$value = apply_filters(
|
197 |
"wpforms_smarttags_process_{$tag_name}_value",
|
198 |
+
$smart_tag_object->get_value( $form_data, $fields, $entry_id ),
|
199 |
+
$form_data,
|
200 |
+
$fields,
|
201 |
+
$entry_id,
|
202 |
+
$smart_tag_object
|
203 |
+
);
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Modify a smart tag value.
|
207 |
+
*
|
208 |
+
* @since 1.6.7.1
|
209 |
+
*
|
210 |
+
* @param null|string $value Smart Tag value.
|
211 |
+
* @param string $tag_name Smart tag name.
|
212 |
+
* @param array $form_data Form data.
|
213 |
+
* @param string $fields List of fields.
|
214 |
+
* @param int $entry_id Entry ID.
|
215 |
+
* @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered.
|
216 |
+
*/
|
217 |
+
$value = apply_filters(
|
218 |
+
'wpforms_smarttags_process_value',
|
219 |
+
$value,
|
220 |
+
$tag_name,
|
221 |
$form_data,
|
222 |
$fields,
|
223 |
+
$entry_id,
|
224 |
+
$smart_tag_object
|
225 |
);
|
226 |
|
227 |
+
if ( ! is_null( $value ) ) {
|
228 |
+
$content = $this->replace( $smart_tag, $value, $content );
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Modify content with smart tags.
|
233 |
+
*
|
234 |
+
* @since 1.4.0
|
235 |
+
* @since 1.6.7.1 Added 3rd, 4th, 5th, 6th arguments.
|
236 |
+
*
|
237 |
+
* @param string $content Content of the Smart Tag.
|
238 |
+
* @param string $tag_name Tag name of the Smart Tag.
|
239 |
+
* @param array $form_data Form data.
|
240 |
+
* @param string $fields List of fields.
|
241 |
+
* @param int $entry_id Entry ID.
|
242 |
+
* @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered.
|
243 |
+
*/
|
244 |
+
$content = (string) apply_filters(
|
245 |
+
'wpforms_smart_tag_process',
|
246 |
+
$content,
|
247 |
+
$tag_name,
|
248 |
+
$form_data,
|
249 |
+
$fields,
|
250 |
+
$entry_id,
|
251 |
+
$smart_tag_object
|
252 |
+
);
|
253 |
}
|
254 |
|
255 |
return $content;
|
281 |
protected function get_smart_tag_class_name( $smart_tag_name ) {
|
282 |
|
283 |
if ( ! $this->has_smart_tag( $smart_tag_name ) ) {
|
284 |
+
return Generic::class;
|
285 |
}
|
286 |
|
287 |
$class_name = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $smart_tag_name ) ) );
|
297 |
*
|
298 |
* @since 1.6.7
|
299 |
*
|
300 |
+
* @param string $class_name The value.
|
301 |
+
* @param string $smart_tag_name Smart tag name.
|
302 |
*/
|
303 |
$full_class_name = apply_filters( 'wpforms_smarttags_get_smart_tag_class_name', '', $smart_tag_name );
|
304 |
|
305 |
+
return class_exists( $full_class_name ) ? $full_class_name : Generic::class;
|
306 |
}
|
307 |
|
308 |
/**
|
src/WPForms.php
CHANGED
@@ -98,7 +98,7 @@ namespace WPForms {
|
|
98 |
*
|
99 |
* @var array
|
100 |
*/
|
101 |
-
private $registry =
|
102 |
|
103 |
/**
|
104 |
* Paid returns true, free (Lite) returns false.
|
@@ -110,8 +110,8 @@ namespace WPForms {
|
|
110 |
public $pro = false;
|
111 |
|
112 |
/**
|
113 |
-
* Backward compatibility method for accessing the class registry in an old way
|
114 |
-
* e.g. 'wpforms()->form' or 'wpforms()->entry'
|
115 |
*
|
116 |
* @since 1.5.7
|
117 |
*
|
@@ -121,10 +121,10 @@ namespace WPForms {
|
|
121 |
*/
|
122 |
public function __get( $name ) {
|
123 |
|
124 |
-
if ( 'smart_tags'
|
125 |
trigger_error( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
126 |
esc_html__(
|
127 |
-
"Property smart_tags was deprecated use wpforms()->get( 'smart_tags' ) instead of wpforms()->smart_tags",
|
128 |
'wpforms-lite'
|
129 |
),
|
130 |
E_USER_DEPRECATED
|
@@ -147,11 +147,12 @@ namespace WPForms {
|
|
147 |
public static function instance() {
|
148 |
|
149 |
if (
|
150 |
-
|
151 |
! self::$instance instanceof self
|
152 |
) {
|
153 |
|
154 |
self::$instance = new self();
|
|
|
155 |
self::$instance->constants();
|
156 |
self::$instance->includes();
|
157 |
|
@@ -162,8 +163,8 @@ namespace WPForms {
|
|
162 |
require_once WPFORMS_PLUGIN_DIR . 'lite/wpforms-lite.php';
|
163 |
}
|
164 |
|
165 |
-
add_action( 'init',
|
166 |
-
add_action( 'plugins_loaded',
|
167 |
}
|
168 |
|
169 |
return self::$instance;
|
@@ -182,6 +183,7 @@ namespace WPForms {
|
|
182 |
// Plugin Slug - Determine plugin type and set slug accordingly.
|
183 |
if ( apply_filters( 'wpforms_allow_pro_version', file_exists( WPFORMS_PLUGIN_DIR . 'pro/wpforms-pro.php' ) ) ) {
|
184 |
$this->pro = true;
|
|
|
185 |
define( 'WPFORMS_PLUGIN_SLUG', 'wpforms' );
|
186 |
} else {
|
187 |
define( 'WPFORMS_PLUGIN_SLUG', 'wpforms-lite' );
|
@@ -277,30 +279,30 @@ namespace WPForms {
|
|
277 |
/*
|
278 |
* Load PHP 5.5 email subsystem.
|
279 |
*/
|
280 |
-
add_action( 'wpforms_loaded',
|
281 |
}
|
282 |
|
283 |
/*
|
284 |
* Load admin components. Exclude from frontend.
|
285 |
*/
|
286 |
if ( is_admin() ) {
|
287 |
-
add_action( 'wpforms_loaded',
|
288 |
}
|
289 |
|
290 |
/*
|
291 |
* Load form components.
|
292 |
*/
|
293 |
-
add_action( 'wpforms_loaded',
|
294 |
|
295 |
/*
|
296 |
* Properly init the providers loader, that will handle all the related logic and further loading.
|
297 |
*/
|
298 |
-
add_action( 'wpforms_loaded',
|
299 |
|
300 |
/*
|
301 |
* Properly init the integrations loader, that will handle all the related logic and further loading.
|
302 |
*/
|
303 |
-
add_action( 'wpforms_loaded',
|
304 |
}
|
305 |
|
306 |
/**
|
@@ -354,6 +356,7 @@ namespace WPForms {
|
|
354 |
$callback = function () use ( $full_name, $id, $run ) {
|
355 |
|
356 |
$instance = new $full_name();
|
|
|
357 |
if ( $id && ! array_key_exists( $id, $this->registry ) ) {
|
358 |
$this->registry[ $id ] = $instance;
|
359 |
}
|
@@ -418,7 +421,7 @@ namespace WPForms {
|
|
418 |
|
419 |
$tables = $wpdb->get_results( "SHOW TABLES LIKE '" . $wpdb->prefix . "wpforms_%'", 'ARRAY_N' ); // phpcs:ignore
|
420 |
|
421 |
-
return ! empty( $tables ) ? wp_list_pluck( $tables, 0 ) :
|
422 |
}
|
423 |
}
|
424 |
}
|
@@ -433,13 +436,14 @@ namespace {
|
|
433 |
* @return WPForms\WPForms
|
434 |
*/
|
435 |
function wpforms() {
|
|
|
436 |
return WPForms\WPForms::instance();
|
437 |
}
|
438 |
|
439 |
/**
|
440 |
* Adding an alias for backward-compatibility with plugins
|
441 |
-
* that still use class_exists('WPForms')
|
442 |
-
* instead of function_exists('wpforms'), which is preferred.
|
443 |
*
|
444 |
* In 1.5.0 we removed support for PHP 5.2
|
445 |
* and moved former WPForms class to a namespace: WPForms\WPForms.
|
98 |
*
|
99 |
* @var array
|
100 |
*/
|
101 |
+
private $registry = [];
|
102 |
|
103 |
/**
|
104 |
* Paid returns true, free (Lite) returns false.
|
110 |
public $pro = false;
|
111 |
|
112 |
/**
|
113 |
+
* Backward compatibility method for accessing the class registry in an old way,
|
114 |
+
* e.g. 'wpforms()->form' or 'wpforms()->entry'.
|
115 |
*
|
116 |
* @since 1.5.7
|
117 |
*
|
121 |
*/
|
122 |
public function __get( $name ) {
|
123 |
|
124 |
+
if ( $name === 'smart_tags' ) {
|
125 |
trigger_error( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
126 |
esc_html__(
|
127 |
+
"Property smart_tags was deprecated, use wpforms()->get( 'smart_tags' ) instead of wpforms()->smart_tags",
|
128 |
'wpforms-lite'
|
129 |
),
|
130 |
E_USER_DEPRECATED
|
147 |
public static function instance() {
|
148 |
|
149 |
if (
|
150 |
+
self::$instance === null ||
|
151 |
! self::$instance instanceof self
|
152 |
) {
|
153 |
|
154 |
self::$instance = new self();
|
155 |
+
|
156 |
self::$instance->constants();
|
157 |
self::$instance->includes();
|
158 |
|
163 |
require_once WPFORMS_PLUGIN_DIR . 'lite/wpforms-lite.php';
|
164 |
}
|
165 |
|
166 |
+
add_action( 'init', [ self::$instance, 'load_textdomain' ], 10 );
|
167 |
+
add_action( 'plugins_loaded', [ self::$instance, 'objects' ], 10 );
|
168 |
}
|
169 |
|
170 |
return self::$instance;
|
183 |
// Plugin Slug - Determine plugin type and set slug accordingly.
|
184 |
if ( apply_filters( 'wpforms_allow_pro_version', file_exists( WPFORMS_PLUGIN_DIR . 'pro/wpforms-pro.php' ) ) ) {
|
185 |
$this->pro = true;
|
186 |
+
|
187 |
define( 'WPFORMS_PLUGIN_SLUG', 'wpforms' );
|
188 |
} else {
|
189 |
define( 'WPFORMS_PLUGIN_SLUG', 'wpforms-lite' );
|
279 |
/*
|
280 |
* Load PHP 5.5 email subsystem.
|
281 |
*/
|
282 |
+
add_action( 'wpforms_loaded', [ '\WPForms\Emails\Summaries', 'get_instance' ] );
|
283 |
}
|
284 |
|
285 |
/*
|
286 |
* Load admin components. Exclude from frontend.
|
287 |
*/
|
288 |
if ( is_admin() ) {
|
289 |
+
add_action( 'wpforms_loaded', [ '\WPForms\Admin\Loader', 'get_instance' ] );
|
290 |
}
|
291 |
|
292 |
/*
|
293 |
* Load form components.
|
294 |
*/
|
295 |
+
add_action( 'wpforms_loaded', [ '\WPForms\Forms\Loader', 'get_instance' ] );
|
296 |
|
297 |
/*
|
298 |
* Properly init the providers loader, that will handle all the related logic and further loading.
|
299 |
*/
|
300 |
+
add_action( 'wpforms_loaded', [ '\WPForms\Providers\Loader', 'get_instance' ] );
|
301 |
|
302 |
/*
|
303 |
* Properly init the integrations loader, that will handle all the related logic and further loading.
|
304 |
*/
|
305 |
+
add_action( 'wpforms_loaded', [ '\WPForms\Integrations\Loader', 'get_instance' ] );
|
306 |
}
|
307 |
|
308 |
/**
|
356 |
$callback = function () use ( $full_name, $id, $run ) {
|
357 |
|
358 |
$instance = new $full_name();
|
359 |
+
|
360 |
if ( $id && ! array_key_exists( $id, $this->registry ) ) {
|
361 |
$this->registry[ $id ] = $instance;
|
362 |
}
|
421 |
|
422 |
$tables = $wpdb->get_results( "SHOW TABLES LIKE '" . $wpdb->prefix . "wpforms_%'", 'ARRAY_N' ); // phpcs:ignore
|
423 |
|
424 |
+
return ! empty( $tables ) ? wp_list_pluck( $tables, 0 ) : [];
|
425 |
}
|
426 |
}
|
427 |
}
|
436 |
* @return WPForms\WPForms
|
437 |
*/
|
438 |
function wpforms() {
|
439 |
+
|
440 |
return WPForms\WPForms::instance();
|
441 |
}
|
442 |
|
443 |
/**
|
444 |
* Adding an alias for backward-compatibility with plugins
|
445 |
+
* that still use class_exists( 'WPForms' )
|
446 |
+
* instead of function_exists( 'wpforms' ), which is preferred.
|
447 |
*
|
448 |
* In 1.5.0 we removed support for PHP 5.2
|
449 |
* and moved former WPForms class to a namespace: WPForms\WPForms.
|
wpforms.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* Requires PHP: 5.5
|
8 |
* Author: WPForms
|
9 |
* Author URI: https://wpforms.com
|
10 |
-
* Version: 1.6.7
|
11 |
* Text Domain: wpforms-lite
|
12 |
* Domain Path: assets/languages
|
13 |
*
|
@@ -32,7 +32,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
32 |
|
33 |
// Plugin version.
|
34 |
if ( ! defined( 'WPFORMS_VERSION' ) ) {
|
35 |
-
define( 'WPFORMS_VERSION', '1.6.7' );
|
36 |
}
|
37 |
|
38 |
// Plugin Folder Path.
|
7 |
* Requires PHP: 5.5
|
8 |
* Author: WPForms
|
9 |
* Author URI: https://wpforms.com
|
10 |
+
* Version: 1.6.7.1
|
11 |
* Text Domain: wpforms-lite
|
12 |
* Domain Path: assets/languages
|
13 |
*
|
32 |
|
33 |
// Plugin version.
|
34 |
if ( ! defined( 'WPFORMS_VERSION' ) ) {
|
35 |
+
define( 'WPFORMS_VERSION', '1.6.7.1' );
|
36 |
}
|
37 |
|
38 |
// Plugin Folder Path.
|