Version Description
Download this release
Release Info
Developer | tareq1988 |
Plugin | WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress |
Version | 3.6.0 |
Comparing to | |
See all releases |
Code changes from version 3.5.29 to 3.6.0
- admin/class-admin-settings.php +1 -1
- admin/class-admin-subscription.php +11 -9
- admin/dashboard-metabox.php +177 -0
- admin/form-builder/assets/js/components/builder-stage/index.js +6 -6
- admin/form-builder/assets/js/components/field-option-data/index.js +1 -1
- admin/form-builder/assets/js/components/form-column_field/index.js +8 -8
- admin/form-builder/assets/js/components/form-fields/index.js +1 -1
- admin/form-builder/assets/js/components/form-post_excerpt/template.php +4 -0
- admin/form-builder/assets/js/form-builder.js +1 -1
- admin/form-builder/assets/js/mixins/add-form-field.js +2 -1
- admin/form-builder/assets/js/mixins/global.js +1 -1
- admin/form-builder/assets/less/form-builder.less +25 -1
- admin/form-builder/class-wpuf-admin-form-builder.php +2 -2
- admin/form-template.php +1 -0
- admin/html/modal.php +40 -1
- admin/html/whats-new.php +34 -0
- admin/posting.php +12 -7
- admin/settings-options.php +25 -8
- assets/css/admin.css +180 -5
- assets/css/admin/wpuf-module.css +325 -0
- assets/css/frontend-forms.css +26 -10
- assets/css/wpuf-form-builder.css +21 -1
- assets/images/check.svg +3 -0
- assets/images/conditional-form.png +0 -0
- assets/images/content-restriction.png +0 -0
- assets/images/crown.svg +3 -0
- assets/images/diamond.svg +13 -0
- assets/images/modules.png +0 -0
- assets/images/profile-header-template-1.jpg +0 -0
- assets/images/profile-header-template-2.jpg +0 -0
- assets/images/profile-header-template-3.jpg +0 -0
- assets/images/templates/edd.png +0 -0
- assets/images/user-listing-template-1.jpg +0 -0
- assets/images/user-listing-template-2.jpg +0 -0
- assets/images/user-listing-template-3.jpg +0 -0
- assets/images/user-listing-template-4.jpg +0 -0
- assets/images/user-listing-template-5.jpg +0 -0
- assets/images/user-listing-template-6.jpg +0 -0
- assets/images/woocommerce-form-template.png +0 -0
- assets/images/wpuf-updates.png +0 -0
- assets/images/x.svg +4 -0
- assets/js-templates/form-components.php +4 -0
- assets/js/admin/wpuf-module.js +39 -0
- assets/js/frontend-form.js +315 -190
- assets/js/frontend-form.min.js +1 -1
- assets/js/promotion.json +6 -6
- assets/js/upload.js +1 -1
- assets/js/upload.min.js +1 -1
- assets/js/wpuf-admin.js +45 -1
- assets/js/wpuf-form-builder-components.js +16 -16
- assets/js/wpuf-form-builder-mixins.js +3 -2
- assets/js/wpuf-form-builder.js +1 -1
- assets/less/admin.less +178 -4
- assets/less/frontend-forms.less +29 -11
- assets/less/metabox-tabs.less +1 -1
- assets/vendor/sweetalert2/dist/sweetalert2.common.js +0 -1635
- assets/vendor/sweetalert2/dist/sweetalert2.css +1412 -681
- assets/vendor/sweetalert2/dist/sweetalert2.js +3949 -1512
- assets/vendor/sweetalert2/dist/sweetalert2.min.css +1 -1
- assets/vendor/sweetalert2/dist/sweetalert2.min.js +1 -1
- assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js +8 -0
- assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js.map +65 -0
- assets/vendor/swiffy-slider/swiffy-slider.min.css +8 -0
- assets/vendor/swiffy-slider/swiffy-slider.min.css.map +8 -0
- assets/vendor/swiffy-slider/swiffy-slider.min.js +8 -0
- assets/vendor/swiffy-slider/swiffy-slider.min.js.map +104 -0
- changelog.txt +12 -0
- class/admin-asset-loader.php +2 -2
- class/asset-loader.php +2 -1
- class/post-form-templates/post.php +36 -33
- includes/class-upgrades.php +50 -0
- includes/fields/class-abstract-fields.php +1 -1
- includes/fields/class-field-checkbox.php +9 -2
- includes/fields/class-field-post-content.php +12 -11
- includes/fields/class-field-post-excerpt.php +11 -10
- includes/fields/class-field-radio.php +3 -1
- includes/fields/class-field-textarea.php +1 -0
- includes/fields/class-field-url.php +1 -1
- includes/free/loader.php +1161 -4
- includes/free/post-form-templates/easy_digital_download.php +52 -0
- includes/free/post-form-templates/the_events_calendar.php +33 -30
- includes/free/post-form-templates/woocommerce.php +48 -45
- includes/free/prompt.php +11 -0
- includes/free/subscription.php +9 -2
- includes/upgrades/upgrade-3.6.0.php +32 -0
- languages/wp-user-frontend.pot +1071 -539
- lib/class.settings-api.php +100 -36
- readme.txt +79 -70
- wpuf-functions.php +81 -5
- wpuf.php +9 -11
admin/class-admin-settings.php
CHANGED
@@ -90,7 +90,7 @@ class WPUF_Admin_Settings {
|
|
90 |
$this->menu_pages[] = $post_form_submenu;
|
91 |
|
92 |
add_action( "load-$post_form_submenu", [ $this, 'post_form_menu_action' ] );
|
93 |
-
|
94 |
remove_submenu_page( 'wp-user-frontend', 'wp-user-frontend' );
|
95 |
|
96 |
/*
|
90 |
$this->menu_pages[] = $post_form_submenu;
|
91 |
|
92 |
add_action( "load-$post_form_submenu", [ $this, 'post_form_menu_action' ] );
|
93 |
+
|
94 |
remove_submenu_page( 'wp-user-frontend', 'wp-user-frontend' );
|
95 |
|
96 |
/*
|
admin/class-admin-subscription.php
CHANGED
@@ -671,16 +671,18 @@ class WPUF_Admin_Subscription {
|
|
671 |
</tr>
|
672 |
<?php } ?>
|
673 |
<?php
|
674 |
-
|
675 |
-
|
|
|
676 |
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
|
|
684 |
}
|
685 |
}
|
686 |
?>
|
671 |
</tr>
|
672 |
<?php } ?>
|
673 |
<?php
|
674 |
+
if ( ! empty( $user_sub['posts'] ) ) {
|
675 |
+
foreach ( $user_sub['posts'] as $key => $value ) {
|
676 |
+
$post_type_object = get_post_type_object( $key );
|
677 |
|
678 |
+
if ( $post_type_object ) {
|
679 |
+
?>
|
680 |
+
<tr>
|
681 |
+
<th><label><?php echo esc_html( $post_type_object->labels->name ); ?></label></th>
|
682 |
+
<td><input type="text" value="<?php echo esc_attr( $value ); ?>" name="<?php echo esc_attr( $key ); ?>" ></td>
|
683 |
+
</tr>
|
684 |
+
<?php
|
685 |
+
}
|
686 |
}
|
687 |
}
|
688 |
?>
|
admin/dashboard-metabox.php
ADDED
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Dashboard_Metabox {
|
4 |
+
const URL = 'https://wedevs.com/category/user-frontend-pro';
|
5 |
+
const OPT_KEY = 'wpuf_admin_db_mb';
|
6 |
+
const BANNER = WPUF_ASSET_URI . '/images/wpuf-updates.png';
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
add_action( 'wp_dashboard_setup', [ $this, 'add_metabox' ] );
|
10 |
+
}
|
11 |
+
|
12 |
+
public function add_metabox() {
|
13 |
+
wp_add_dashboard_widget(
|
14 |
+
self::OPT_KEY, esc_html__( 'WP User Frontend News & Updates', 'wp-user-frontend' ), [
|
15 |
+
$this,
|
16 |
+
'render_metabox',
|
17 |
+
], null, null, 'normal', 'high'
|
18 |
+
);
|
19 |
+
}
|
20 |
+
|
21 |
+
public function render_metabox() {
|
22 |
+
?>
|
23 |
+
<style>
|
24 |
+
.wpuf-db-banner > img {
|
25 |
+
max-width: 100%;
|
26 |
+
}
|
27 |
+
|
28 |
+
.wpuf-divider-bottom {
|
29 |
+
margin: 0 -12px;
|
30 |
+
border-bottom: 1px solid #f0f0f1;
|
31 |
+
}
|
32 |
+
|
33 |
+
.wpuf-db-latest-blog {
|
34 |
+
padding: 4px 0;
|
35 |
+
}
|
36 |
+
|
37 |
+
.wpuf-db-links ul {
|
38 |
+
display: flex;
|
39 |
+
margin-bottom: 0;
|
40 |
+
}
|
41 |
+
|
42 |
+
.wpuf-db-links .blog-item:not(:first-of-type) {
|
43 |
+
margin-right: 4px;
|
44 |
+
padding-left: 4px;
|
45 |
+
border-left: 1px solid #ddd;
|
46 |
+
}
|
47 |
+
</style>
|
48 |
+
<div class="wpuf-db-widget">
|
49 |
+
<div class="wpuf-db-banner">
|
50 |
+
<img src="<?php echo self::BANNER; ?>" alt="Rating Banner">
|
51 |
+
<p>
|
52 |
+
Could you please take a moment and <a
|
53 |
+
href="https://wordpress.org/support/plugin/wp-user-frontend/reviews/?filter=5" target="_blank">share your
|
54 |
+
opinion</a> on WP.org? It would motivate us a lot and help other users get decisive while
|
55 |
+
choosing WP User Frontend. Thanks in advance.
|
56 |
+
</p>
|
57 |
+
</div>
|
58 |
+
<div class="wpuf-divider-bottom"></div>
|
59 |
+
<div class="wpuf-db-latest-blog">
|
60 |
+
<ul>
|
61 |
+
<?php
|
62 |
+
$articles = $this->fetch_articles();
|
63 |
+
foreach ( $articles as $article ) {
|
64 |
+
?>
|
65 |
+
<li><a href="<?php echo esc_url( $article['href'] ); ?>" target="_blank"><?php echo $article['title']; ?></a></li>
|
66 |
+
<?php }; ?>
|
67 |
+
</ul>
|
68 |
+
</div>
|
69 |
+
<div class="wpuf-divider-bottom"></div>
|
70 |
+
<div class="wpuf-db-links">
|
71 |
+
<ul>
|
72 |
+
<?php
|
73 |
+
foreach ( $this->get_links() as $link ) {
|
74 |
+
if ( wpuf()->is_pro() && 'Go Pro' === $link['title'] ) {
|
75 |
+
continue;
|
76 |
+
}
|
77 |
+
?>
|
78 |
+
<li class="blog-item">
|
79 |
+
<a href="<?php echo $link['href']; ?>"
|
80 |
+
target="_blank"><?php esc_html_e( $link['title'], 'wp-user-frontend' ); ?>
|
81 |
+
<span aria-hidden="true" class="dashicons dashicons-external"></span></a>
|
82 |
+
</li>
|
83 |
+
<?php }; ?>
|
84 |
+
</ul>
|
85 |
+
</div>
|
86 |
+
</div>
|
87 |
+
<?php
|
88 |
+
}
|
89 |
+
|
90 |
+
private function fetch_articles() {
|
91 |
+
$article_list = get_transient( self::OPT_KEY );
|
92 |
+
|
93 |
+
if ( $article_list ) {
|
94 |
+
return $article_list;
|
95 |
+
}
|
96 |
+
|
97 |
+
$response = wp_remote_get( esc_url( self::URL ) );
|
98 |
+
|
99 |
+
if ( is_wp_error( $response ) ) {
|
100 |
+
return [];
|
101 |
+
}
|
102 |
+
|
103 |
+
$body = wp_remote_retrieve_body( $response );
|
104 |
+
|
105 |
+
$dom = new DOMDocument();
|
106 |
+
@$dom->loadHTML( $body );
|
107 |
+
|
108 |
+
$finder = new DomXPath( $dom );
|
109 |
+
|
110 |
+
$classname = 'post__title';
|
111 |
+
$nodes = $finder->query( "//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]" );
|
112 |
+
|
113 |
+
if ( empty( $nodes ) ) {
|
114 |
+
return [];
|
115 |
+
}
|
116 |
+
|
117 |
+
$url = parse_url( self::URL );
|
118 |
+
$domain = $url['scheme'] . '://' . $url['host'];
|
119 |
+
$article_list = [];
|
120 |
+
$count = 0;
|
121 |
+
|
122 |
+
foreach ( $nodes as $node ) {
|
123 |
+
$title = $node->nodeValue;
|
124 |
+
$path = $node->lastChild->attributes[0]->nodeValue;
|
125 |
+
|
126 |
+
$article = [
|
127 |
+
'title' => $title,
|
128 |
+
'href' => $domain . $path,
|
129 |
+
];
|
130 |
+
|
131 |
+
array_push( $article_list, $article );
|
132 |
+
|
133 |
+
$count ++;
|
134 |
+
|
135 |
+
if ( $count >= 5 ) {
|
136 |
+
break;
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
if ( ! empty( $article_list ) ) {
|
141 |
+
set_transient( self::OPT_KEY, $article_list, DAY_IN_SECONDS );
|
142 |
+
|
143 |
+
return $article_list;
|
144 |
+
}
|
145 |
+
|
146 |
+
return [];
|
147 |
+
}
|
148 |
+
|
149 |
+
private function get_links() {
|
150 |
+
return [
|
151 |
+
[
|
152 |
+
'title' => 'Blog',
|
153 |
+
'href' => 'https://wedevs.com/category/user-frontend-pro',
|
154 |
+
],
|
155 |
+
[
|
156 |
+
'title' => 'Docs',
|
157 |
+
'href' => 'https://wedevs.com/docs/wp-user-frontend-pro/',
|
158 |
+
],
|
159 |
+
[
|
160 |
+
'title' => 'Help',
|
161 |
+
'href' => 'https://wedevs.com/contact',
|
162 |
+
],
|
163 |
+
[
|
164 |
+
'title' => 'Go Pro',
|
165 |
+
'href' => 'https://wedevs.com/wp-user-frontend-pro/pricing/',
|
166 |
+
],
|
167 |
+
[
|
168 |
+
'title' => 'Tutorials',
|
169 |
+
'href' => 'https://www.youtube.com/watch?v=rzxdIN8ZMYc&list=PLJorZsV2RVv9G5J3kcqJQjUwgqZSwc_Hf&index=2&ab_channel=weDevs',
|
170 |
+
],
|
171 |
+
[
|
172 |
+
'title' => 'Community',
|
173 |
+
'href' => 'https://www.facebook.com/groups/weDevs',
|
174 |
+
],
|
175 |
+
];
|
176 |
+
}
|
177 |
+
}
|
admin/form-builder/assets/js/components/builder-stage/index.js
CHANGED
@@ -101,7 +101,7 @@ Vue.component('builder-stage', {
|
|
101 |
|
102 |
// check if these are already inserted
|
103 |
if ( this.isSingleInstance( field.template ) && this.containsField( field.template ) ) {
|
104 |
-
swal({
|
105 |
title: "Oops...",
|
106 |
text: "You already have this field in the form"
|
107 |
});
|
@@ -114,7 +114,7 @@ Vue.component('builder-stage', {
|
|
114 |
delete_field: function(index) {
|
115 |
var self = this;
|
116 |
|
117 |
-
swal({
|
118 |
text: self.i18n.delete_field_warn_msg,
|
119 |
type: 'warning',
|
120 |
showCancelButton: true,
|
@@ -123,10 +123,10 @@ Vue.component('builder-stage', {
|
|
123 |
cancelButtonText: self.i18n.no_cancel_it,
|
124 |
confirmButtonClass: 'btn btn-success',
|
125 |
cancelButtonClass: 'btn btn-danger',
|
126 |
-
}).then(
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
});
|
131 |
},
|
132 |
|
101 |
|
102 |
// check if these are already inserted
|
103 |
if ( this.isSingleInstance( field.template ) && this.containsField( field.template ) ) {
|
104 |
+
new swal({
|
105 |
title: "Oops...",
|
106 |
text: "You already have this field in the form"
|
107 |
});
|
114 |
delete_field: function(index) {
|
115 |
var self = this;
|
116 |
|
117 |
+
(new swal({
|
118 |
text: self.i18n.delete_field_warn_msg,
|
119 |
type: 'warning',
|
120 |
showCancelButton: true,
|
123 |
cancelButtonText: self.i18n.no_cancel_it,
|
124 |
confirmButtonClass: 'btn btn-success',
|
125 |
cancelButtonClass: 'btn btn-danger',
|
126 |
+
})).then((result) => {
|
127 |
+
if (result.isConfirmed) {
|
128 |
+
self.$store.commit('delete_form_field_element', index);
|
129 |
+
}
|
130 |
});
|
131 |
},
|
132 |
|
admin/form-builder/assets/js/components/field-option-data/index.js
CHANGED
@@ -106,7 +106,7 @@ Vue.component('field-option-data', {
|
|
106 |
i = 0;
|
107 |
|
108 |
for (i = 0; i < new_opts.length; i++) {
|
109 |
-
options[new_opts[i].value] = new_opts[i].label;
|
110 |
}
|
111 |
|
112 |
this.update_value('options', options);
|
106 |
i = 0;
|
107 |
|
108 |
for (i = 0; i < new_opts.length; i++) {
|
109 |
+
options['' + new_opts[i].value] = new_opts[i].label;
|
110 |
}
|
111 |
|
112 |
this.update_value('options', options);
|
admin/form-builder/assets/js/components/form-column_field/index.js
CHANGED
@@ -181,7 +181,7 @@ Vue.component('form-column_field', {
|
|
181 |
};
|
182 |
|
183 |
if (this.isAllowedInClolumnField(data.field_template)) {
|
184 |
-
swal({
|
185 |
title: "Oops...",
|
186 |
text: "You cannot add this field as inner column field"
|
187 |
});
|
@@ -190,7 +190,7 @@ Vue.component('form-column_field', {
|
|
190 |
|
191 |
// check if these are already inserted
|
192 |
if ( this.isSingleInstance( data.field_template ) && this.containsField( data.field_template ) ) {
|
193 |
-
swal({
|
194 |
title: "Oops...",
|
195 |
text: "You already have this field in the form"
|
196 |
});
|
@@ -258,7 +258,7 @@ Vue.component('form-column_field', {
|
|
258 |
|
259 |
// check if the field is allowed to duplicate
|
260 |
if ( self.isSingleInstance( field.template ) ) {
|
261 |
-
swal({
|
262 |
title: "Oops...",
|
263 |
text: "You already have this field in the form"
|
264 |
});
|
@@ -276,7 +276,7 @@ Vue.component('form-column_field', {
|
|
276 |
fromColumn: fromColumn
|
277 |
};
|
278 |
|
279 |
-
swal({
|
280 |
text: self.i18n.delete_field_warn_msg,
|
281 |
type: 'warning',
|
282 |
showCancelButton: true,
|
@@ -285,10 +285,10 @@ Vue.component('form-column_field', {
|
|
285 |
cancelButtonText: self.i18n.no_cancel_it,
|
286 |
confirmButtonClass: 'btn btn-success',
|
287 |
cancelButtonClass: 'btn btn-danger',
|
288 |
-
}).then(
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
});
|
293 |
},
|
294 |
|
181 |
};
|
182 |
|
183 |
if (this.isAllowedInClolumnField(data.field_template)) {
|
184 |
+
new swal({
|
185 |
title: "Oops...",
|
186 |
text: "You cannot add this field as inner column field"
|
187 |
});
|
190 |
|
191 |
// check if these are already inserted
|
192 |
if ( this.isSingleInstance( data.field_template ) && this.containsField( data.field_template ) ) {
|
193 |
+
new swal({
|
194 |
title: "Oops...",
|
195 |
text: "You already have this field in the form"
|
196 |
});
|
258 |
|
259 |
// check if the field is allowed to duplicate
|
260 |
if ( self.isSingleInstance( field.template ) ) {
|
261 |
+
new swal({
|
262 |
title: "Oops...",
|
263 |
text: "You already have this field in the form"
|
264 |
});
|
276 |
fromColumn: fromColumn
|
277 |
};
|
278 |
|
279 |
+
(new swal({
|
280 |
text: self.i18n.delete_field_warn_msg,
|
281 |
type: 'warning',
|
282 |
showCancelButton: true,
|
285 |
cancelButtonText: self.i18n.no_cancel_it,
|
286 |
confirmButtonClass: 'btn btn-success',
|
287 |
cancelButtonClass: 'btn btn-danger',
|
288 |
+
})).then((result) => {
|
289 |
+
if (result.isConfirmed) {
|
290 |
+
self.$store.commit('delete_form_field_element', index);
|
291 |
+
}
|
292 |
});
|
293 |
},
|
294 |
|
admin/form-builder/assets/js/components/form-fields/index.js
CHANGED
@@ -42,7 +42,7 @@ Vue.component('form-fields', {
|
|
42 |
alert_pro_feature: function (field) {
|
43 |
var title = this.field_settings[field].title;
|
44 |
|
45 |
-
swal({
|
46 |
title: '<i class="fa fa-lock"></i> ' + title + ' <br>' + this.i18n.is_a_pro_feature,
|
47 |
text: this.i18n.pro_feature_msg,
|
48 |
type: '',
|
42 |
alert_pro_feature: function (field) {
|
43 |
var title = this.field_settings[field].title;
|
44 |
|
45 |
+
new swal({
|
46 |
title: '<i class="fa fa-lock"></i> ' + title + ' <br>' + this.i18n.is_a_pro_feature,
|
47 |
text: this.i18n.pro_feature_msg,
|
48 |
type: '',
|
admin/form-builder/assets/js/components/form-post_excerpt/template.php
CHANGED
@@ -1,9 +1,13 @@
|
|
1 |
<div class="wpuf-fields">
|
2 |
<textarea
|
|
|
3 |
:class="class_names('textareafield')"
|
4 |
:placeholder="field.placeholder"
|
5 |
:rows="field.rows"
|
6 |
:cols="field.cols"
|
7 |
>{{ field.default }}</textarea>
|
|
|
|
|
|
|
8 |
<span v-if="field.help" class="wpuf-help" v-html="field.help" ></span>
|
9 |
</div>
|
1 |
<div class="wpuf-fields">
|
2 |
<textarea
|
3 |
+
v-if="'no' === field.rich"
|
4 |
:class="class_names('textareafield')"
|
5 |
:placeholder="field.placeholder"
|
6 |
:rows="field.rows"
|
7 |
:cols="field.cols"
|
8 |
>{{ field.default }}</textarea>
|
9 |
+
|
10 |
+
<text-editor v-if="'no' !== field.rich" :rich="field.rich" :default_text="field.default"></text-editor>
|
11 |
+
|
12 |
<span v-if="field.help" class="wpuf-help" v-html="field.help" ></span>
|
13 |
</div>
|
admin/form-builder/assets/js/form-builder.js
CHANGED
@@ -173,7 +173,7 @@
|
|
173 |
html += '<img src="' + image_two + '" alt="custom field data">';
|
174 |
html += '</div>';
|
175 |
html += '</div>';
|
176 |
-
swal({
|
177 |
title: __( 'Do you want to show custom field data inside your post ?', 'wp-user-frontend' ),
|
178 |
html: html,
|
179 |
showCancelButton: true,
|
173 |
html += '<img src="' + image_two + '" alt="custom field data">';
|
174 |
html += '</div>';
|
175 |
html += '</div>';
|
176 |
+
new swal({
|
177 |
title: __( 'Do you want to show custom field data inside your post ?', 'wp-user-frontend' ),
|
178 |
html: html,
|
179 |
showCancelButton: true,
|
admin/form-builder/assets/js/mixins/add-form-field.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
wpuf_mixins.add_form_field = {
|
2 |
methods: {
|
3 |
add_form_field: function (field_template) {
|
@@ -16,7 +17,7 @@ wpuf_mixins.add_form_field = {
|
|
16 |
|
17 |
// check if these are already inserted
|
18 |
if ( this.isSingleInstance( field_template ) && this.containsField( field_template ) ) {
|
19 |
-
|
20 |
title: "Oops...",
|
21 |
text: "You already have this field in the form"
|
22 |
});
|
1 |
+
|
2 |
wpuf_mixins.add_form_field = {
|
3 |
methods: {
|
4 |
add_form_field: function (field_template) {
|
17 |
|
18 |
// check if these are already inserted
|
19 |
if ( this.isSingleInstance( field_template ) && this.containsField( field_template ) ) {
|
20 |
+
Swal.fire({
|
21 |
title: "Oops...",
|
22 |
text: "You already have this field in the form"
|
23 |
});
|
admin/form-builder/assets/js/mixins/global.js
CHANGED
@@ -27,7 +27,7 @@ Vue.mixin({
|
|
27 |
cancelButtonText: this.i18n.cancel,
|
28 |
}, settings);
|
29 |
|
30 |
-
swal(settings, callback);
|
31 |
},
|
32 |
|
33 |
is_failed_to_validate: function (template) {
|
27 |
cancelButtonText: this.i18n.cancel,
|
28 |
}, settings);
|
29 |
|
30 |
+
new swal(settings, callback);
|
31 |
},
|
32 |
|
33 |
is_failed_to_validate: function (template) {
|
admin/form-builder/assets/less/form-builder.less
CHANGED
@@ -1226,7 +1226,7 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1226 |
text-align: center;
|
1227 |
min-height: 280px;
|
1228 |
width: 220px;
|
1229 |
-
border:
|
1230 |
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
|
1231 |
position: relative;
|
1232 |
border-radius: 3px;
|
@@ -1354,6 +1354,11 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1354 |
}
|
1355 |
}
|
1356 |
|
|
|
|
|
|
|
|
|
|
|
1357 |
&.blank-form {
|
1358 |
text-align: center;
|
1359 |
|
@@ -1373,6 +1378,18 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1373 |
|
1374 |
}
|
1375 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1376 |
}
|
1377 |
}
|
1378 |
}
|
@@ -1647,5 +1664,12 @@ and (max-device-width : 480px) {
|
|
1647 |
display: none;
|
1648 |
}
|
1649 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1650 |
@import "builder-responsive.less";
|
1651 |
|
1226 |
text-align: center;
|
1227 |
min-height: 280px;
|
1228 |
width: 220px;
|
1229 |
+
border: 0;
|
1230 |
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
|
1231 |
position: relative;
|
1232 |
border-radius: 3px;
|
1354 |
}
|
1355 |
}
|
1356 |
|
1357 |
+
&.template-inactive h3 {
|
1358 |
+
display: flex;
|
1359 |
+
justify-content: space-between;
|
1360 |
+
}
|
1361 |
+
|
1362 |
&.blank-form {
|
1363 |
text-align: center;
|
1364 |
|
1378 |
|
1379 |
}
|
1380 |
}
|
1381 |
+
|
1382 |
+
a.wpuf-button.button-upgrade-to-pro {
|
1383 |
+
padding: 10px 15px;
|
1384 |
+
background: #ff9000;
|
1385 |
+
color: #fff;
|
1386 |
+
min-height: auto;
|
1387 |
+
border-radius: 5px;
|
1388 |
+
}
|
1389 |
+
|
1390 |
+
a.wpuf-button.button-upgrade-to-pro:hover {
|
1391 |
+
background: #d07805;
|
1392 |
+
}
|
1393 |
}
|
1394 |
}
|
1395 |
}
|
1664 |
display: none;
|
1665 |
}
|
1666 |
|
1667 |
+
span.pro-icon svg {
|
1668 |
+
height: 1em;
|
1669 |
+
}
|
1670 |
+
span.pro-icon svg path {
|
1671 |
+
fill: #fff;
|
1672 |
+
}
|
1673 |
+
|
1674 |
@import "builder-responsive.less";
|
1675 |
|
admin/form-builder/class-wpuf-admin-form-builder.php
CHANGED
@@ -79,7 +79,7 @@ class WPUF_Admin_Form_Builder {
|
|
79 |
*/
|
80 |
wp_enqueue_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
81 |
wp_enqueue_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION );
|
82 |
-
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [],
|
83 |
wp_enqueue_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION );
|
84 |
wp_enqueue_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION );
|
85 |
wp_enqueue_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION );
|
@@ -101,7 +101,7 @@ class WPUF_Admin_Form_Builder {
|
|
101 |
|
102 |
wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
103 |
wp_enqueue_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
104 |
-
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [],
|
105 |
wp_enqueue_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
106 |
wp_enqueue_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
107 |
wp_enqueue_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
79 |
*/
|
80 |
wp_enqueue_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
81 |
wp_enqueue_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION );
|
82 |
+
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [], '11.4.30' );
|
83 |
wp_enqueue_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION );
|
84 |
wp_enqueue_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION );
|
85 |
wp_enqueue_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION );
|
101 |
|
102 |
wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
103 |
wp_enqueue_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
104 |
+
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [], '11.4.30', true );
|
105 |
wp_enqueue_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
106 |
wp_enqueue_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
107 |
wp_enqueue_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
admin/form-template.php
CHANGED
@@ -58,6 +58,7 @@ class WPUF_Admin_Form_Template {
|
|
58 |
}
|
59 |
|
60 |
$registry = wpuf_get_post_form_templates();
|
|
|
61 |
$blank_form_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' );
|
62 |
$action_name = 'wpuf_post_form_template';
|
63 |
$footer_help = sprintf( __( 'Want a new integration? <a href="%s" target="_blank">Let us know</a>.', 'wp-user-frontend' ), 'mailto:support@wedevs.com?subject=WPUF Custom Post Template Integration Request' );
|
58 |
}
|
59 |
|
60 |
$registry = wpuf_get_post_form_templates();
|
61 |
+
$pro_templates = wpuf_get_pro_form_previews();
|
62 |
$blank_form_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' );
|
63 |
$action_name = 'wpuf_post_form_template';
|
64 |
$footer_help = sprintf( __( 'Want a new integration? <a href="%s" target="_blank">Let us know</a>.', 'wp-user-frontend' ), 'mailto:support@wedevs.com?subject=WPUF Custom Post Template Integration Request' );
|
admin/html/modal.php
CHANGED
@@ -73,7 +73,46 @@
|
|
73 |
</li>
|
74 |
|
75 |
<?php
|
76 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
</ul>
|
78 |
</div>
|
79 |
</div>
|
73 |
</li>
|
74 |
|
75 |
<?php
|
76 |
+
}
|
77 |
+
|
78 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
79 |
+
foreach ( $pro_templates as $template ) {
|
80 |
+
$class = 'template-inactive is-pro-template';
|
81 |
+
$image = $template->get_image();
|
82 |
+
$title = $template->get_title();
|
83 |
+
?>
|
84 |
+
|
85 |
+
<li class="<?php echo esc_attr( $class ); ?>">
|
86 |
+
<h3>
|
87 |
+
<?php
|
88 |
+
echo esc_html( $title );
|
89 |
+
if ( file_exists( $crown_icon ) ) {
|
90 |
+
printf( '<span class="pro-icon-title"> %s</span>', file_get_contents( $crown_icon ) );
|
91 |
+
}
|
92 |
+
?>
|
93 |
+
</h3>
|
94 |
+
<?php if ( $image ) {
|
95 |
+
printf( '<img src="%s" alt="%s">', esc_attr( $image ), esc_attr( $title ) );
|
96 |
+
} ?>
|
97 |
+
|
98 |
+
<div class="form-create-overlay">
|
99 |
+
<a href="<?php echo esc_url( WPUF_Pro_Prompt::get_upgrade_to_pro_popup_url() ); ?>"
|
100 |
+
target="_blank"
|
101 |
+
class="wpuf-button button-upgrade-to-pro"
|
102 |
+
title="<?php echo esc_attr( $template->get_title() ); ?>" >
|
103 |
+
<?php
|
104 |
+
esc_html_e( 'Upgrade to PRO', 'wp-user-frontend' );
|
105 |
+
if ( file_exists( $crown_icon ) ) {
|
106 |
+
printf( '<span class="pro-icon"> %s</span>', file_get_contents( $crown_icon ) );
|
107 |
+
}
|
108 |
+
?>
|
109 |
+
</a>
|
110 |
+
</div>
|
111 |
+
</li>
|
112 |
+
|
113 |
+
<?php
|
114 |
+
}
|
115 |
+
?>
|
116 |
</ul>
|
117 |
</div>
|
118 |
</div>
|
admin/html/whats-new.php
CHANGED
@@ -1,5 +1,39 @@
|
|
1 |
<?php
|
2 |
$changelog = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
[
|
4 |
'version' => 'Version 3.5.29',
|
5 |
'released' => '2022-09-15',
|
1 |
<?php
|
2 |
$changelog = [
|
3 |
+
[
|
4 |
+
'version' => 'Version 3.6.0',
|
5 |
+
'released' => '2022-11-23',
|
6 |
+
'changes' => [
|
7 |
+
[
|
8 |
+
'title' => __( 'Admin dashboard news and update meta-box added', 'wp-user-frontend' ),
|
9 |
+
'type' => 'Enhancement',
|
10 |
+
],
|
11 |
+
[
|
12 |
+
'title' => __( 'Upgrade prompts design', 'wp-user-frontend' ),
|
13 |
+
'type' => 'Enhancement',
|
14 |
+
],
|
15 |
+
[
|
16 |
+
'title' => __( 'Email style handled', 'wp-user-frontend' ),
|
17 |
+
'type' => 'Fix',
|
18 |
+
],
|
19 |
+
[
|
20 |
+
'title' => __( 'text-area type selection(Normal, Rich text-area, Teeny Rich text-area) bug in field options', 'wp-user-frontend' ),
|
21 |
+
'type' => 'Fix',
|
22 |
+
],
|
23 |
+
[
|
24 |
+
'title' => __( 'Frontend form validation', 'wp-user-frontend' ),
|
25 |
+
'type' => 'Fix',
|
26 |
+
],
|
27 |
+
[
|
28 |
+
'title' => __( 'Default value not saving for radio, dropdown, checkbox', 'wp-user-frontend' ),
|
29 |
+
'type' => 'Fix',
|
30 |
+
],
|
31 |
+
[
|
32 |
+
'title' => __( 'sweetalert2 version', 'wp-user-frontend' ),
|
33 |
+
'type' => 'Update',
|
34 |
+
],
|
35 |
+
],
|
36 |
+
],
|
37 |
[
|
38 |
'version' => 'Version 3.5.29',
|
39 |
'released' => '2022-09-15',
|
admin/posting.php
CHANGED
@@ -65,8 +65,8 @@ class WPUF_Admin_Posting {
|
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [],
|
69 |
-
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [],
|
70 |
wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', ['jquery', 'plupload-handlers'] );
|
71 |
wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', [
|
72 |
'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ),
|
@@ -215,14 +215,14 @@ class WPUF_Admin_Posting {
|
|
215 |
<!-- <input type="hidden" name="wpuf_lock_editing_post_nonce" value="<?php // echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" /> -->
|
216 |
<?php wp_nonce_field( plugin_basename( __FILE__ ), 'wpuf_lock_editing_post_nonce' ); ?>
|
217 |
<p>
|
218 |
-
<?php
|
219 |
-
echo wp_kses( $msg, [
|
220 |
'a' => [
|
221 |
'href' => [],
|
222 |
'id' => [],
|
223 |
'data' => [],
|
224 |
-
]
|
225 |
-
] );
|
226 |
?>
|
227 |
</p>
|
228 |
|
@@ -327,9 +327,14 @@ class WPUF_Admin_Posting {
|
|
327 |
* you can override that by using the following filter.
|
328 |
*/
|
329 |
$hide_with_acf = class_exists( 'acf' ) ? apply_filters( 'wpuf_hide_meta_when_acf_active', true ) : false;
|
|
|
|
|
|
|
|
|
|
|
330 |
|
331 |
// hide the metabox itself if no form ID is set
|
332 |
-
if (
|
333 |
$this->hide_form();
|
334 |
|
335 |
return;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [], '11.4.30' );
|
69 |
+
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [], '11.4.30', true );
|
70 |
wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', ['jquery', 'plupload-handlers'] );
|
71 |
wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', [
|
72 |
'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ),
|
215 |
<!-- <input type="hidden" name="wpuf_lock_editing_post_nonce" value="<?php // echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" /> -->
|
216 |
<?php wp_nonce_field( plugin_basename( __FILE__ ), 'wpuf_lock_editing_post_nonce' ); ?>
|
217 |
<p>
|
218 |
+
<?php
|
219 |
+
echo wp_kses( $msg, [
|
220 |
'a' => [
|
221 |
'href' => [],
|
222 |
'id' => [],
|
223 |
'data' => [],
|
224 |
+
]
|
225 |
+
] );
|
226 |
?>
|
227 |
</p>
|
228 |
|
327 |
* you can override that by using the following filter.
|
328 |
*/
|
329 |
$hide_with_acf = class_exists( 'acf' ) ? apply_filters( 'wpuf_hide_meta_when_acf_active', true ) : false;
|
330 |
+
$acf_enable = wpuf_get_option( 'wpuf_compatibility_acf', 'wpuf_general', 'yes' );
|
331 |
+
|
332 |
+
if ( 'yes' === $acf_enable && $hide_with_acf ) {
|
333 |
+
$hide_with_acf = false;
|
334 |
+
}
|
335 |
|
336 |
// hide the metabox itself if no form ID is set
|
337 |
+
if ( ! $form_id || $hide_with_acf ) {
|
338 |
$this->hide_form();
|
339 |
|
340 |
return;
|
admin/settings-options.php
CHANGED
@@ -566,10 +566,17 @@ function wpuf_settings_field_profile( $form ) {
|
|
566 |
'post_type' => 'wpuf_profile',
|
567 |
]
|
568 |
);
|
|
|
|
|
|
|
569 |
|
570 |
$val = get_option( 'wpuf_profile', [] );
|
571 |
|
572 |
-
if ( class_exists( 'WP_User_Frontend_Pro' ) ) {
|
|
|
|
|
|
|
|
|
573 |
?>
|
574 |
|
575 |
<p style="padding-left: 10px; font-style: italic; font-size: 13px;">
|
@@ -580,15 +587,26 @@ function wpuf_settings_field_profile( $form ) {
|
|
580 |
foreach ( $user_roles as $role => $name ) {
|
581 |
$current = isset( $val['roles'][ $role ] ) ? $val['roles'][ $role ] : '';
|
582 |
?>
|
583 |
-
<tr valign="top"
|
584 |
-
<th scrope="row"><?php echo esc_attr( $name ); ?></th>
|
585 |
<td>
|
586 |
-
<select name="wpuf_profile[roles][<?php echo esc_attr( $role ); ?>]"
|
587 |
<option value=""><?php esc_html_e( '— Select —', 'wp-user-frontend' ); ?></option>
|
588 |
-
<?php
|
589 |
-
|
590 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
</select>
|
|
|
|
|
|
|
|
|
|
|
592 |
</td>
|
593 |
</tr>
|
594 |
<?php
|
@@ -596,7 +614,6 @@ function wpuf_settings_field_profile( $form ) {
|
|
596 |
?>
|
597 |
</table>
|
598 |
<?php
|
599 |
-
}
|
600 |
}
|
601 |
|
602 |
add_action( 'wsa_form_bottom_wpuf_profile', 'wpuf_settings_field_profile' );
|
566 |
'post_type' => 'wpuf_profile',
|
567 |
]
|
568 |
);
|
569 |
+
$crown_icon = '';
|
570 |
+
$class = '';
|
571 |
+
$disabled = '';
|
572 |
|
573 |
$val = get_option( 'wpuf_profile', [] );
|
574 |
|
575 |
+
if ( ! class_exists( 'WP_User_Frontend_Pro' ) ) {
|
576 |
+
$crown_icon = sprintf( '<span class="pro-icon"> %s</span>', file_get_contents( WPUF_ROOT . '/assets/images/crown.svg' ) );
|
577 |
+
$class = 'class="pro-preview"';
|
578 |
+
$disabled = 'disabled';
|
579 |
+
}
|
580 |
?>
|
581 |
|
582 |
<p style="padding-left: 10px; font-style: italic; font-size: 13px;">
|
587 |
foreach ( $user_roles as $role => $name ) {
|
588 |
$current = isset( $val['roles'][ $role ] ) ? $val['roles'][ $role ] : '';
|
589 |
?>
|
590 |
+
<tr valign="top" <?php echo $class; ?>>
|
591 |
+
<th scrope="row"><?php echo esc_attr( $name ) . $crown_icon; ?></th>
|
592 |
<td>
|
593 |
+
<select name="wpuf_profile[roles][<?php echo esc_attr( $role ); ?>]" class="regular" style="min-width: 300px;" <?php echo esc_attr( $disabled ); ?>>
|
594 |
<option value=""><?php esc_html_e( '— Select —', 'wp-user-frontend' ); ?></option>
|
595 |
+
<?php
|
596 |
+
if ( class_exists( 'WP_User_Frontend_Pro' ) ) {
|
597 |
+
foreach ( $forms as $form ) {
|
598 |
+
?>
|
599 |
+
<option value="<?php echo esc_attr( $form->ID ); ?>"<?php selected( $current, $form->ID ); ?>><?php echo esc_html( $form->post_title ); ?></option>
|
600 |
+
<?php
|
601 |
+
}
|
602 |
+
}
|
603 |
+
?>
|
604 |
</select>
|
605 |
+
<?php
|
606 |
+
if ( ! class_exists( 'WP_User_Frontend_Pro' ) ) {
|
607 |
+
echo wpuf_get_pro_preview_html();
|
608 |
+
}
|
609 |
+
?>
|
610 |
</td>
|
611 |
</tr>
|
612 |
<?php
|
614 |
?>
|
615 |
</table>
|
616 |
<?php
|
|
|
617 |
}
|
618 |
|
619 |
add_action( 'wsa_form_bottom_wpuf_profile', 'wpuf_settings_field_profile' );
|
assets/css/admin.css
CHANGED
@@ -139,8 +139,9 @@ span.wpuf_help {
|
|
139 |
}
|
140 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab {
|
141 |
float: none;
|
142 |
-
display:
|
143 |
-
|
|
|
144 |
border: none;
|
145 |
padding: 14px;
|
146 |
border-bottom: 1px solid #c8d7e1;
|
@@ -149,7 +150,7 @@ span.wpuf_help {
|
|
149 |
border-right: 1px solid #c8d7e1;
|
150 |
color: #444;
|
151 |
text-decoration: none;
|
152 |
-
margin
|
153 |
background-color: #f1f1f1;
|
154 |
}
|
155 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab.nav-tab-active {
|
@@ -189,10 +190,14 @@ span.wpuf_help {
|
|
189 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#user_directory-tab .dashicons {
|
190 |
color: #e74c3c;
|
191 |
}
|
|
|
|
|
|
|
192 |
.wpuf-settings-wrap .metabox-holder {
|
193 |
flex: 3;
|
194 |
-
margin-left: 30px;
|
195 |
margin-bottom: 30px;
|
|
|
|
|
196 |
}
|
197 |
.wpuf-settings-wrap .metabox-holder h2 {
|
198 |
border-bottom: 1px solid #c8d7e1;
|
@@ -637,6 +642,176 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
|
|
637 |
.wpuf-setup-menu-link {
|
638 |
display: none;
|
639 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
640 |
.wpuf-xmp-tag {
|
641 |
display: inline;
|
642 |
}
|
@@ -997,7 +1172,7 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
|
|
997 |
}
|
998 |
.wpuf-subscription-pack-settings nav {
|
999 |
background-color: #f1f1f1;
|
1000 |
-
min-width:
|
1001 |
border-right: 1px solid #e5e5e5;
|
1002 |
}
|
1003 |
.wpuf-subscription-pack-settings nav ul,
|
139 |
}
|
140 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab {
|
141 |
float: none;
|
142 |
+
display: flex;
|
143 |
+
-webkit-align-items: center;
|
144 |
+
align-items: center;
|
145 |
border: none;
|
146 |
padding: 14px;
|
147 |
border-bottom: 1px solid #c8d7e1;
|
150 |
border-right: 1px solid #c8d7e1;
|
151 |
color: #444;
|
152 |
text-decoration: none;
|
153 |
+
margin: 0 -1px 0 0;
|
154 |
background-color: #f1f1f1;
|
155 |
}
|
156 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab.nav-tab-active {
|
190 |
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#user_directory-tab .dashicons {
|
191 |
color: #e74c3c;
|
192 |
}
|
193 |
+
.wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab .pro-icon-title {
|
194 |
+
margin-left: auto;
|
195 |
+
}
|
196 |
.wpuf-settings-wrap .metabox-holder {
|
197 |
flex: 3;
|
|
|
198 |
margin-bottom: 30px;
|
199 |
+
padding-left: 30px;
|
200 |
+
position: relative;
|
201 |
}
|
202 |
.wpuf-settings-wrap .metabox-holder h2 {
|
203 |
border-bottom: 1px solid #c8d7e1;
|
642 |
.wpuf-setup-menu-link {
|
643 |
display: none;
|
644 |
}
|
645 |
+
tr.pro-preview td {
|
646 |
+
display: inline-block;
|
647 |
+
position: relative;
|
648 |
+
}
|
649 |
+
.pro-preview-html {
|
650 |
+
position: relative;
|
651 |
+
}
|
652 |
+
tr.pro-preview td:hover .pro-field-overlay,
|
653 |
+
.pro-preview-html:hover .pro-field-overlay {
|
654 |
+
-webkit-opacity: 1;
|
655 |
+
opacity: 1;
|
656 |
+
display: block;
|
657 |
+
}
|
658 |
+
tr.pro-preview .pro-field-overlay,
|
659 |
+
.pro-preview-html .pro-field-overlay,
|
660 |
+
.metabox-holder .pro-field-overlay {
|
661 |
+
position: absolute;
|
662 |
+
width: 100%;
|
663 |
+
height: 100%;
|
664 |
+
background: rgba(0, 0, 0, 0.4);
|
665 |
+
border-radius: 5px;
|
666 |
+
top: 0;
|
667 |
+
left: 0;
|
668 |
+
display: none;
|
669 |
+
}
|
670 |
+
tr.pro-preview-html th {
|
671 |
+
width: 50%;
|
672 |
+
}
|
673 |
+
.pro-preview-html:hover ~ .pro-field-overlay {
|
674 |
+
display: block;
|
675 |
+
}
|
676 |
+
.pro-field-overlay:hover {
|
677 |
+
display: block;
|
678 |
+
}
|
679 |
+
a.wpuf-button.button-upgrade-to-pro {
|
680 |
+
padding: 10px 15px;
|
681 |
+
background: #ff9000;
|
682 |
+
color: #fff;
|
683 |
+
min-height: auto;
|
684 |
+
border-radius: 5px;
|
685 |
+
text-decoration: none;
|
686 |
+
}
|
687 |
+
.pro-field-overlay a.wpuf-button.button-upgrade-to-pro {
|
688 |
+
position: absolute;
|
689 |
+
top: 50%;
|
690 |
+
left: 50%;
|
691 |
+
-webkit-transform: translate(-50%, -50%);
|
692 |
+
transform: translate(-50%, -50%);
|
693 |
+
}
|
694 |
+
a.wpuf-button.button-upgrade-to-pro:hover {
|
695 |
+
background: #d07805;
|
696 |
+
}
|
697 |
+
span.pro-icon svg {
|
698 |
+
height: 1em;
|
699 |
+
}
|
700 |
+
span.pro-icon.icon-white svg path {
|
701 |
+
fill: #fff;
|
702 |
+
}
|
703 |
+
label span.pro-icon svg path {
|
704 |
+
fill: #fB9a28;
|
705 |
+
}
|
706 |
+
img.profile-header,
|
707 |
+
img.user-listing {
|
708 |
+
display: block;
|
709 |
+
width: 50%;
|
710 |
+
background: #fff;
|
711 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
712 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
713 |
+
margin: -25px 0 15px 30px;
|
714 |
+
position: relative;
|
715 |
+
line-height: 0;
|
716 |
+
border: 1px solid #ededed;
|
717 |
+
padding: 4px;
|
718 |
+
-webkit-filter: grayscale(100%) opacity(0.3);
|
719 |
+
/* Safari 6.0 - 9.0 */
|
720 |
+
filter: grayscale(100%) opacity(0.3);
|
721 |
+
}
|
722 |
+
img.profile-header:hover,
|
723 |
+
input[type=radio]:checked + img.profile-header,
|
724 |
+
img.profile-header.active,
|
725 |
+
img.user-listing:hover,
|
726 |
+
input[type=radio]:checked + img.user-listing,
|
727 |
+
img.user-listing.active {
|
728 |
+
-webkit-filter: grayscale(0%) opacity(1) drop-shadow(8px 8px 5px #ccc);
|
729 |
+
/* Safari 6.0 - 9.0 */
|
730 |
+
filter: grayscale(0%) opacity(1) drop-shadow(8px 8px 5px #ccc);
|
731 |
+
}
|
732 |
+
.wpuf-pro-field-tooltip {
|
733 |
+
background: #000;
|
734 |
+
width: max-content;
|
735 |
+
padding: 25px 50px 20px 20px;
|
736 |
+
border-radius: 5px;
|
737 |
+
color: #fff;
|
738 |
+
position: absolute;
|
739 |
+
top: 0;
|
740 |
+
left: 50%;
|
741 |
+
-webkit-transform: translate(-50%, -100%);
|
742 |
+
transform: translate(-50%, -100%);
|
743 |
+
-webkit-box-sizing: border-box;
|
744 |
+
box-sizing: border-box;
|
745 |
+
z-index: 99999;
|
746 |
+
display: none;
|
747 |
+
-webkit-opacity: 0;
|
748 |
+
opacity: 0;
|
749 |
+
-webkit-transition: opacity 0.8s;
|
750 |
+
transition: opacity 0.8s;
|
751 |
+
}
|
752 |
+
h3.tooltip-header {
|
753 |
+
color: #fff;
|
754 |
+
}
|
755 |
+
.wpuf-pro-field-tooltip ul li span.tooltip-check svg path {
|
756 |
+
fill: #139F84;
|
757 |
+
}
|
758 |
+
.wpuf-pro-field-tooltip ul {
|
759 |
+
margin-bottom: 30px;
|
760 |
+
}
|
761 |
+
.wpuf-pro-field-tooltip ul li {
|
762 |
+
font-size: 1.2em;
|
763 |
+
line-height: 1.5em;
|
764 |
+
font-weight: 400;
|
765 |
+
}
|
766 |
+
span.tooltip-check {
|
767 |
+
margin-right: 10px;
|
768 |
+
}
|
769 |
+
.wpuf-pro-field-tooltip .pro-link {
|
770 |
+
display: flex;
|
771 |
+
-webkit-justify-content: center;
|
772 |
+
justify-content: center;
|
773 |
+
margin-left: 25px;
|
774 |
+
}
|
775 |
+
.wpuf-pro-field-tooltip i {
|
776 |
+
position: absolute;
|
777 |
+
top: 100%;
|
778 |
+
left: 50%;
|
779 |
+
margin-left: -12px;
|
780 |
+
width: 24px;
|
781 |
+
height: 12px;
|
782 |
+
overflow: hidden;
|
783 |
+
}
|
784 |
+
.wpuf-pro-field-tooltip i::after {
|
785 |
+
content: '';
|
786 |
+
position: absolute;
|
787 |
+
width: 12px;
|
788 |
+
height: 12px;
|
789 |
+
left: 50%;
|
790 |
+
-webkit-transform: translate(-50%, -50%) rotate(45deg);
|
791 |
+
transform: translate(-50%, -50%) rotate(45deg);
|
792 |
+
background-color: #000;
|
793 |
+
}
|
794 |
+
tr.pro-preview span.pro-icon,
|
795 |
+
tr span.pro-icon-title {
|
796 |
+
position: relative;
|
797 |
+
padding-top: 10px;
|
798 |
+
}
|
799 |
+
a span.pro-icon-title {
|
800 |
+
position: relative;
|
801 |
+
}
|
802 |
+
a span.pro-icon-title wpuf-pro-field-tooltip {
|
803 |
+
left: 185px;
|
804 |
+
}
|
805 |
+
span.pro-icon-title:hover .wpuf-pro-field-tooltip {
|
806 |
+
display: block;
|
807 |
+
-webkit-opacity: 1;
|
808 |
+
opacity: 1;
|
809 |
+
}
|
810 |
+
span.pro-icon:hover .wpuf-pro-field-tooltip {
|
811 |
+
display: block;
|
812 |
+
-webkit-opacity: 1;
|
813 |
+
opacity: 1;
|
814 |
+
}
|
815 |
.wpuf-xmp-tag {
|
816 |
display: inline;
|
817 |
}
|
1172 |
}
|
1173 |
.wpuf-subscription-pack-settings nav {
|
1174 |
background-color: #f1f1f1;
|
1175 |
+
min-width: max-content;
|
1176 |
border-right: 1px solid #e5e5e5;
|
1177 |
}
|
1178 |
.wpuf-subscription-pack-settings nav ul,
|
assets/css/admin/wpuf-module.css
ADDED
@@ -0,0 +1,325 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.font-orange {
|
2 |
+
color: #ff9000;
|
3 |
+
}
|
4 |
+
|
5 |
+
.font-gray {
|
6 |
+
color: #656668;
|
7 |
+
}
|
8 |
+
|
9 |
+
.font-black {
|
10 |
+
color: #000;
|
11 |
+
}
|
12 |
+
|
13 |
+
.font-bold {
|
14 |
+
font-weight: bold;
|
15 |
+
}
|
16 |
+
|
17 |
+
.header-one {
|
18 |
+
font-size: 30px;
|
19 |
+
font-weight: 500;
|
20 |
+
}
|
21 |
+
|
22 |
+
.header-two {
|
23 |
+
font-size: 20px;
|
24 |
+
font-weight: 400;
|
25 |
+
}
|
26 |
+
|
27 |
+
.header-three {
|
28 |
+
font-size: 20px;
|
29 |
+
font-weight: 400;
|
30 |
+
}
|
31 |
+
|
32 |
+
.modal-window h2 {
|
33 |
+
margin: 0;
|
34 |
+
padding: 0;
|
35 |
+
line-height: 1.6em;
|
36 |
+
}
|
37 |
+
|
38 |
+
.wpuf-toggle-switch {
|
39 |
+
position: relative;
|
40 |
+
display: inline-block;
|
41 |
+
width: 50px;
|
42 |
+
height: 26px;
|
43 |
+
}
|
44 |
+
|
45 |
+
.wpuf-toggle-switch input {
|
46 |
+
display: none;
|
47 |
+
}
|
48 |
+
|
49 |
+
.wpuf-toggle-switch .slider {
|
50 |
+
position: absolute;
|
51 |
+
cursor: pointer;
|
52 |
+
top: 0;
|
53 |
+
left: 0;
|
54 |
+
right: 0;
|
55 |
+
bottom: 0;
|
56 |
+
background-color: #ccc;
|
57 |
+
-webkit-transition: .4s;
|
58 |
+
transition: .4s;
|
59 |
+
}
|
60 |
+
|
61 |
+
.wpuf-toggle-switch .slider:before {
|
62 |
+
position: absolute;
|
63 |
+
content: "";
|
64 |
+
height: 18px;
|
65 |
+
width: 18px;
|
66 |
+
left: 3px;
|
67 |
+
bottom: 4px;
|
68 |
+
background-color: white;
|
69 |
+
-webkit-transition: .4s;
|
70 |
+
transition: .4s;
|
71 |
+
}
|
72 |
+
|
73 |
+
.wpuf-toggle-switch input:checked + .slider {
|
74 |
+
background-color: #0073aa;
|
75 |
+
}
|
76 |
+
|
77 |
+
.wpuf-toggle-switch input:focus + .slider {
|
78 |
+
-webkit-box-shadow: 0 0 1px #2196F3;
|
79 |
+
box-shadow: 0 0 1px #2196F3;
|
80 |
+
}
|
81 |
+
|
82 |
+
.wpuf-toggle-switch input:checked + .slider:before {
|
83 |
+
-webkit-transform: translateX(26px);
|
84 |
+
-ms-transform: translateX(26px);
|
85 |
+
transform: translateX(26px);
|
86 |
+
}
|
87 |
+
|
88 |
+
/* Rounded sliders */
|
89 |
+
.slider.round {
|
90 |
+
border-radius: 34px;
|
91 |
+
}
|
92 |
+
|
93 |
+
.slider.round:before {
|
94 |
+
border-radius: 50%;
|
95 |
+
}
|
96 |
+
|
97 |
+
.wpuf-modules .plugin-card {
|
98 |
+
border: 1px solid #e5e5e5;
|
99 |
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
100 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
101 |
+
position: relative;
|
102 |
+
}
|
103 |
+
|
104 |
+
.wpuf-modules .plugin-card .plugin-name {
|
105 |
+
color: #0073aa;
|
106 |
+
}
|
107 |
+
|
108 |
+
.wpuf-modules .plugin-card .desc,
|
109 |
+
.wpuf-modules .plugin-card .name {
|
110 |
+
margin-left: 115px;
|
111 |
+
}
|
112 |
+
|
113 |
+
.wpuf-modules .plugin-card .plugin-card-top {
|
114 |
+
min-height: 110px;
|
115 |
+
}
|
116 |
+
|
117 |
+
.wpuf-modules .plugin-card .plugin-icon {
|
118 |
+
width: 96px;
|
119 |
+
height: 96px;
|
120 |
+
margin: 0 20px 0px 0;
|
121 |
+
}
|
122 |
+
|
123 |
+
.activate-deactivate-all {
|
124 |
+
float: right;
|
125 |
+
margin-top: 15px;
|
126 |
+
}
|
127 |
+
|
128 |
+
.activate-deactivate-all span {
|
129 |
+
color: #0073aa;
|
130 |
+
cursor: pointer;
|
131 |
+
}
|
132 |
+
|
133 |
+
.wpuf-doc-link {
|
134 |
+
clear: both;
|
135 |
+
text-align: center;
|
136 |
+
padding-left: 26px;
|
137 |
+
padding-top: 26px;
|
138 |
+
}
|
139 |
+
|
140 |
+
.plugin-card:hover .form-create-overlay {
|
141 |
+
-webkit-opacity: 1;
|
142 |
+
opacity: 1;
|
143 |
+
z-index: 1;
|
144 |
+
}
|
145 |
+
.form-create-overlay {
|
146 |
+
-webkit-opacity: 0;
|
147 |
+
opacity: 0;
|
148 |
+
position: absolute;
|
149 |
+
width: 100%;
|
150 |
+
height: 100%;
|
151 |
+
content: "";
|
152 |
+
background: rgba(0, 0, 0, .5);
|
153 |
+
top: 0;
|
154 |
+
left: 0;
|
155 |
+
z-index: -1;
|
156 |
+
}
|
157 |
+
a.wpuf-button.button-upgrade-to-pro {
|
158 |
+
padding: 10px 15px;
|
159 |
+
background: #ff9000;
|
160 |
+
color: #fff;
|
161 |
+
min-height: auto;
|
162 |
+
border-radius: 5px;
|
163 |
+
}
|
164 |
+
|
165 |
+
.form-create-overlay a.wpuf-button.button-upgrade-to-pro {
|
166 |
+
position: absolute;
|
167 |
+
top: 50%;
|
168 |
+
left: 50%;
|
169 |
+
-webkit-transform: translate(-50%, -50%);
|
170 |
+
transform: translate(-50%, -50%);
|
171 |
+
}
|
172 |
+
|
173 |
+
span.pro-icon svg {
|
174 |
+
height: 1em;
|
175 |
+
}
|
176 |
+
|
177 |
+
span.pro-icon svg path {
|
178 |
+
fill: #fff;
|
179 |
+
}
|
180 |
+
|
181 |
+
.wpuf-popup-window {
|
182 |
+
display: none;
|
183 |
+
position: fixed;
|
184 |
+
z-index: 9999; /* to display over WP admin menu */
|
185 |
+
background: rgba(0, 0, 0, .5);
|
186 |
+
width: 100%;
|
187 |
+
height: 100%;
|
188 |
+
top: 0;
|
189 |
+
left: 0;
|
190 |
+
}
|
191 |
+
|
192 |
+
.wpuf-popup-window.state-show {
|
193 |
+
display: block;
|
194 |
+
}
|
195 |
+
|
196 |
+
ul.slider-container li img {
|
197 |
+
max-width: 100%;
|
198 |
+
height: auto;
|
199 |
+
}
|
200 |
+
|
201 |
+
.modal-window {
|
202 |
+
position: fixed;
|
203 |
+
line-height: initial;
|
204 |
+
background: #fff;
|
205 |
+
padding: 50px 80px 30px;
|
206 |
+
-webkit-border-radius: 5px;
|
207 |
+
border-radius: 5px;
|
208 |
+
width: 55%;
|
209 |
+
top: 50%;
|
210 |
+
left: 50%;
|
211 |
+
-webkit-transform: translate(-50%, -50%);
|
212 |
+
transform: translate(-50%, -50%);
|
213 |
+
}
|
214 |
+
|
215 |
+
.modal-window-inner {
|
216 |
+
/*display: -webkit-box;*/
|
217 |
+
display: grid;
|
218 |
+
-webkit-grid-auto-flow: column;
|
219 |
+
grid-auto-flow: column;
|
220 |
+
-webkit-grid-auto-columns: 1fr;
|
221 |
+
grid-auto-columns: 1fr;
|
222 |
+
-webkit-align-items: end;
|
223 |
+
align-items: end;
|
224 |
+
margin: 0 auto;
|
225 |
+
}
|
226 |
+
|
227 |
+
.popup-close-button {
|
228 |
+
display: block;
|
229 |
+
cursor: pointer;
|
230 |
+
position: absolute;
|
231 |
+
top: 10px;
|
232 |
+
right: 10px;
|
233 |
+
padding: 10px;
|
234 |
+
-webkit-opacity: .4;
|
235 |
+
opacity: .4;
|
236 |
+
-webkit-transition: .4s;
|
237 |
+
transition: .4s;
|
238 |
+
}
|
239 |
+
|
240 |
+
.popup-close-button:hover {
|
241 |
+
-webkit-opacity: 1;
|
242 |
+
opacity: 1;
|
243 |
+
}
|
244 |
+
|
245 |
+
.popup-diamond svg {
|
246 |
+
background: linear-gradient(220.03deg, #FFF3DD 39.57%, #FFE3AD 97.5%);
|
247 |
+
padding: 6px;
|
248 |
+
-webkit-border-radius: 5px;
|
249 |
+
border-radius: 5px;
|
250 |
+
}
|
251 |
+
|
252 |
+
.wpuf-popup-list-area {
|
253 |
+
margin-bottom: 64px;
|
254 |
+
}
|
255 |
+
|
256 |
+
.modal-window span.pro-icon {
|
257 |
+
margin-left: 5px;
|
258 |
+
}
|
259 |
+
|
260 |
+
.single-checklist {
|
261 |
+
display: flex;
|
262 |
+
}
|
263 |
+
|
264 |
+
.single-checklist p {
|
265 |
+
color: #656668;
|
266 |
+
}
|
267 |
+
|
268 |
+
.check-icon {
|
269 |
+
margin: 1em 14px 0 0;
|
270 |
+
}
|
271 |
+
|
272 |
+
.check-icon svg {
|
273 |
+
background: #139F84;
|
274 |
+
padding: 11px 10px;
|
275 |
+
-webkit-border-radius: 20px;
|
276 |
+
border-radius: 20px;
|
277 |
+
}
|
278 |
+
|
279 |
+
.modal-window a.wpuf-button.button-upgrade-to-pro {
|
280 |
+
text-decoration: none;
|
281 |
+
padding: 15px 30px;
|
282 |
+
}
|
283 |
+
|
284 |
+
.slider-area {
|
285 |
+
margin-left: 30px;
|
286 |
+
overflow: hidden;
|
287 |
+
text-align: center;
|
288 |
+
}
|
289 |
+
|
290 |
+
.slider-nav-mousedrag .slider-container {
|
291 |
+
overflow: hidden;
|
292 |
+
max-width: fit-content;
|
293 |
+
}
|
294 |
+
|
295 |
+
.slider-area .single-slider img {
|
296 |
+
width: 100%;
|
297 |
+
}
|
298 |
+
|
299 |
+
#wpuf-slider .slider-indicators {
|
300 |
+
position: initial;
|
301 |
+
}
|
302 |
+
|
303 |
+
.slider-indicators button {
|
304 |
+
-webkit-filter: invert(94%) sepia(8%) saturate(249%) hue-rotate(178deg) brightness(99%) contrast(84%);
|
305 |
+
filter: invert(94%) sepia(8%) saturate(249%) hue-rotate(178deg) brightness(99%) contrast(84%);
|
306 |
+
}
|
307 |
+
|
308 |
+
.slider-indicators button.active {
|
309 |
+
-webkit-filter: invert(62%) sepia(30%) saturate(1208%) hue-rotate(119deg) brightness(92%) contrast(80%);
|
310 |
+
filter: invert(62%) sepia(30%) saturate(1208%) hue-rotate(119deg) brightness(92%) contrast(80%);
|
311 |
+
}
|
312 |
+
|
313 |
+
.footer-feature {
|
314 |
+
display: flex;
|
315 |
+
justify-content: space-between;
|
316 |
+
margin-top: 40px;
|
317 |
+
}
|
318 |
+
|
319 |
+
.footer-feature p svg {
|
320 |
+
margin-right: 5px;
|
321 |
+
}
|
322 |
+
|
323 |
+
.footer-feature p svg path {
|
324 |
+
fill: #139F84;
|
325 |
+
}
|
assets/css/frontend-forms.css
CHANGED
@@ -189,6 +189,11 @@ body #form-preview-stage.wpuf-style ul.wpuf-form .wpuf-fields select[multiple],
|
|
189 |
body .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields select[multiple] {
|
190 |
height: auto;
|
191 |
}
|
|
|
|
|
|
|
|
|
|
|
192 |
body #form-preview-stage.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit],
|
193 |
body .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit] {
|
194 |
font-size: 16px;
|
@@ -945,9 +950,6 @@ body .pass-strength-result.strong {
|
|
945 |
background-color: #c3ff88;
|
946 |
border-color: #8dff1c !important;
|
947 |
}
|
948 |
-
body .password[type="text"] {
|
949 |
-
display: none;
|
950 |
-
}
|
951 |
body table.wpuf-table {
|
952 |
border: 1px solid #E7E7E7;
|
953 |
margin: 0 0px 10px 0;
|
@@ -1096,16 +1098,30 @@ body fieldset.wpuf-multistep-fieldset {
|
|
1096 |
body fieldset.wpuf-multistep-fieldset.field-active {
|
1097 |
display: block;
|
1098 |
}
|
1099 |
-
body fieldset.wpuf-multistep-fieldset .wpuf-multistep-
|
1100 |
-
body fieldset.wpuf-multistep-fieldset .wpuf-multistep-next-btn {
|
1101 |
position: absolute;
|
1102 |
-
bottom:
|
|
|
1103 |
}
|
1104 |
-
body fieldset.wpuf-multistep-fieldset .wpuf-multistep-prev-btn {
|
1105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1106 |
}
|
1107 |
-
body fieldset.wpuf-multistep-fieldset .wpuf-
|
1108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1109 |
}
|
1110 |
body .wpuf-multistep-progressbar {
|
1111 |
overflow: hidden;
|
189 |
body .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields select[multiple] {
|
190 |
height: auto;
|
191 |
}
|
192 |
+
body #form-preview-stage.wpuf-style ul.wpuf-form .wpuf-fields-inline,
|
193 |
+
body .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields-inline {
|
194 |
+
display: flex;
|
195 |
+
justify-content: space-between;
|
196 |
+
}
|
197 |
body #form-preview-stage.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit],
|
198 |
body .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit] {
|
199 |
font-size: 16px;
|
950 |
background-color: #c3ff88;
|
951 |
border-color: #8dff1c !important;
|
952 |
}
|
|
|
|
|
|
|
953 |
body table.wpuf-table {
|
954 |
border: 1px solid #E7E7E7;
|
955 |
margin: 0 0px 10px 0;
|
1098 |
body fieldset.wpuf-multistep-fieldset.field-active {
|
1099 |
display: block;
|
1100 |
}
|
1101 |
+
body fieldset.wpuf-multistep-fieldset button.wpuf-multistep-next-btn.btn.btn-primary {
|
|
|
1102 |
position: absolute;
|
1103 |
+
bottom: 0;
|
1104 |
+
right: 0;
|
1105 |
}
|
1106 |
+
body fieldset.wpuf-multistep-fieldset button.wpuf-multistep-prev-btn.btn.btn-primary {
|
1107 |
+
position: absolute;
|
1108 |
+
bottom: 0;
|
1109 |
+
left: 0;
|
1110 |
+
}
|
1111 |
+
body fieldset.wpuf-multistep-fieldset a#wpuf-post-draft {
|
1112 |
+
position: absolute;
|
1113 |
+
bottom: 0;
|
1114 |
+
right: calc(50% - 35px);
|
1115 |
}
|
1116 |
+
body fieldset.wpuf-multistep-fieldset span.wpuf-draft-saved {
|
1117 |
+
position: absolute;
|
1118 |
+
bottom: 0;
|
1119 |
+
right: calc(50% - 150px);
|
1120 |
+
}
|
1121 |
+
body fieldset.wpuf-multistep-fieldset span.wpuf-loading {
|
1122 |
+
position: absolute;
|
1123 |
+
bottom: 8px;
|
1124 |
+
right: calc(50% - 60px);
|
1125 |
}
|
1126 |
body .wpuf-multistep-progressbar {
|
1127 |
overflow: hidden;
|
assets/css/wpuf-form-builder.css
CHANGED
@@ -958,7 +958,7 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
958 |
text-align: center;
|
959 |
min-height: 280px;
|
960 |
width: 220px;
|
961 |
-
border:
|
962 |
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
|
963 |
position: relative;
|
964 |
border-radius: 3px;
|
@@ -1066,6 +1066,10 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1066 |
.wpuf-form-template-modal .content ul li.template-inactive .description {
|
1067 |
color: #ddd;
|
1068 |
}
|
|
|
|
|
|
|
|
|
1069 |
.wpuf-form-template-modal .content ul li.blank-form {
|
1070 |
text-align: center;
|
1071 |
}
|
@@ -1079,6 +1083,16 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1079 |
width: auto;
|
1080 |
height: auto;
|
1081 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1082 |
.wpuf-form-template-modal footer {
|
1083 |
position: absolute;
|
1084 |
left: 0;
|
@@ -1322,6 +1336,12 @@ ul.wpuf-form li .wpuf-password-field:after {
|
|
1322 |
padding: 10px;
|
1323 |
display: none;
|
1324 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
1325 |
@media (min-width: 768px) and (max-width: 991px) {
|
1326 |
#wpuf-form-builder {
|
1327 |
width: 100% !important;
|
958 |
text-align: center;
|
959 |
min-height: 280px;
|
960 |
width: 220px;
|
961 |
+
border: 0;
|
962 |
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
|
963 |
position: relative;
|
964 |
border-radius: 3px;
|
1066 |
.wpuf-form-template-modal .content ul li.template-inactive .description {
|
1067 |
color: #ddd;
|
1068 |
}
|
1069 |
+
.wpuf-form-template-modal .content ul li.template-inactive h3 {
|
1070 |
+
display: flex;
|
1071 |
+
justify-content: space-between;
|
1072 |
+
}
|
1073 |
.wpuf-form-template-modal .content ul li.blank-form {
|
1074 |
text-align: center;
|
1075 |
}
|
1083 |
width: auto;
|
1084 |
height: auto;
|
1085 |
}
|
1086 |
+
.wpuf-form-template-modal .content ul li a.wpuf-button.button-upgrade-to-pro {
|
1087 |
+
padding: 10px 15px;
|
1088 |
+
background: #ff9000;
|
1089 |
+
color: #fff;
|
1090 |
+
min-height: auto;
|
1091 |
+
border-radius: 5px;
|
1092 |
+
}
|
1093 |
+
.wpuf-form-template-modal .content ul li a.wpuf-button.button-upgrade-to-pro:hover {
|
1094 |
+
background: #d07805;
|
1095 |
+
}
|
1096 |
.wpuf-form-template-modal footer {
|
1097 |
position: absolute;
|
1098 |
left: 0;
|
1336 |
padding: 10px;
|
1337 |
display: none;
|
1338 |
}
|
1339 |
+
span.pro-icon svg {
|
1340 |
+
height: 1em;
|
1341 |
+
}
|
1342 |
+
span.pro-icon svg path {
|
1343 |
+
fill: #fff;
|
1344 |
+
}
|
1345 |
@media (min-width: 768px) and (max-width: 991px) {
|
1346 |
#wpuf-form-builder {
|
1347 |
width: 100% !important;
|
assets/images/check.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg width="10" height="8" viewBox="0 0 10 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.92671 1.13426C8.59667 0.804188 8.06162 0.804234 7.73159 1.13423L3.37421 5.49165L1.89718 4.01462C1.56712 3.68454 1.03208 3.68467 0.702082 4.0146C0.372021 4.34463 0.372046 4.8797 0.702068 5.20972L2.77666 7.28428C3.10675 7.61442 3.64199 7.61406 3.97177 7.28428L8.92668 2.32937C9.25676 1.99933 9.25668 1.46426 8.92671 1.13426ZM0.992017 4.85283C1.00166 4.86513 1.01215 4.87698 1.02348 4.88831L3.09807 6.96287C3.25053 7.11537 3.49796 7.11527 3.65036 6.96287L8.60528 2.00795C8.74649 1.86675 8.75695 1.64433 8.6367 1.49107C8.7569 1.64433 8.74643 1.86671 8.60524 2.00789L3.65032 6.96281C3.49792 7.11521 3.25048 7.11532 3.09803 6.96281L1.02343 4.88825C1.01212 4.87694 1.00165 4.86511 0.992017 4.85283Z" fill="white"/>
|
3 |
+
</svg>
|
assets/images/conditional-form.png
ADDED
Binary file
|
assets/images/content-restriction.png
ADDED
Binary file
|
assets/images/crown.svg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<svg width="20" height="15" viewBox="0 0 20 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<path d="M19.2131 4.11564C19.2161 4.16916 19.2121 4.22364 19.1983 4.27775L17.9646 10.5323C17.9024 10.7741 17.6796 10.9441 17.4235 10.9455L10.0216 10.9818H10.0188H2.61682C2.35933 10.9818 2.13495 10.8112 2.07275 10.5681L0.839103 4.29542C0.824897 4.23985 0.820785 4.18385 0.824374 4.12895C0.34714 3.98269 0 3.54829 0 3.03636C0 2.40473 0.528224 1.89091 1.17757 1.89091C1.82692 1.89091 2.35514 2.40473 2.35514 3.03636C2.35514 3.39207 2.18759 3.71033 1.92523 3.92058L3.46976 5.43433C3.86011 5.81695 4.40179 6.03629 4.95596 6.03629C5.61122 6.03629 6.23596 5.7336 6.62938 5.22647L9.1677 1.95491C8.95447 1.74764 8.82243 1.46124 8.82243 1.14545C8.82243 0.513818 9.35065 0 10 0C10.6493 0 11.1776 0.513818 11.1776 1.14545C11.1776 1.45178 11.0526 1.72982 10.8505 1.93556L10.8526 1.93811L13.3726 5.21869C13.7658 5.73069 14.3928 6.03636 15.0499 6.03636C15.6092 6.03636 16.1351 5.82451 16.5305 5.43978L18.0848 3.92793C17.8169 3.71775 17.6449 3.39644 17.6449 3.03636C17.6449 2.40473 18.1731 1.89091 18.8224 1.89091C19.4718 1.89091 20 2.40473 20 3.03636C20 3.53462 19.6707 3.9584 19.2131 4.11564ZM17.8443 12.6909C17.8443 12.3897 17.5932 12.1455 17.2835 12.1455H2.77884C2.46916 12.1455 2.21809 12.3897 2.21809 12.6909V14C2.21809 14.3012 2.46916 14.5455 2.77884 14.5455H17.2835C17.5932 14.5455 17.8443 14.3012 17.8443 14V12.6909Z" fill="#FB9A28"/>
|
3 |
+
</svg>
|
assets/images/diamond.svg
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<path d="M22.3651 16L16.0787 30L31.5338 16H22.3651Z" fill="#FBDD7E"/>
|
3 |
+
<path d="M7.11201 8L0.623596 15.3469H9.92589L7.11201 8Z" fill="#FFCD73"/>
|
4 |
+
<path d="M22.682 15.3469H31.9843L25.4958 8L22.682 15.3469Z" fill="#FCC471"/>
|
5 |
+
<path d="M22.682 15.3469L16.304 8L9.92596 15.3469H22.682Z" fill="#FCC471"/>
|
6 |
+
<path d="M16.3039 8H7.11195L9.92584 15.3469L16.3039 8Z" fill="#FFAA64"/>
|
7 |
+
<path d="M25.4958 8H16.3039L22.6819 15.3469L25.4958 8Z" fill="#FBDD7E"/>
|
8 |
+
<path d="M9.45512 16L16.0787 30L22.7023 16H9.45512Z" fill="#FFAA64"/>
|
9 |
+
<path d="M0.623596 16L16.0787 30L9.79225 16H0.623596Z" fill="#FF8C5A"/>
|
10 |
+
<path d="M15.8892 1V5" stroke="#FF8C5A" stroke-linecap="round"/>
|
11 |
+
<path d="M8.35118 2L11.4736 4.82843" stroke="#FF8C5A" stroke-linecap="round"/>
|
12 |
+
<path d="M23.4273 2L20.3049 4.82843" stroke="#FF8C5A" stroke-linecap="round"/>
|
13 |
+
</svg>
|
assets/images/modules.png
ADDED
Binary file
|
assets/images/profile-header-template-1.jpg
ADDED
Binary file
|
assets/images/profile-header-template-2.jpg
ADDED
Binary file
|
assets/images/profile-header-template-3.jpg
ADDED
Binary file
|
assets/images/templates/edd.png
ADDED
Binary file
|
assets/images/user-listing-template-1.jpg
ADDED
Binary file
|
assets/images/user-listing-template-2.jpg
ADDED
Binary file
|
assets/images/user-listing-template-3.jpg
ADDED
Binary file
|
assets/images/user-listing-template-4.jpg
ADDED
Binary file
|
assets/images/user-listing-template-5.jpg
ADDED
Binary file
|
assets/images/user-listing-template-6.jpg
ADDED
Binary file
|
assets/images/woocommerce-form-template.png
ADDED
Binary file
|
assets/images/wpuf-updates.png
ADDED
Binary file
|
assets/images/x.svg
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<path d="M0.781391 16C0.626854 16 0.47578 15.9542 0.347278 15.8684C0.218776 15.7825 0.11862 15.6605 0.0594773 15.5177C0.000334659 15.375 -0.0151368 15.2179 0.0150197 15.0663C0.0451763 14.9147 0.119606 14.7755 0.228895 14.6663L14.6663 0.228852C14.8128 0.0823204 15.0116 0 15.2188 0C15.426 0 15.6248 0.0823204 15.7713 0.228852C15.9178 0.375383 16.0001 0.574122 16.0001 0.781348C16.0001 0.988574 15.9178 1.18731 15.7713 1.33384L1.33389 15.7713C1.2614 15.8439 1.17527 15.9015 1.08046 15.9407C0.985646 15.98 0.884011 16.0001 0.781391 16Z" fill="#999999"/>
|
3 |
+
<path d="M15.2188 16C15.1161 16.0001 15.0145 15.98 14.9197 15.9407C14.8249 15.9015 14.7387 15.8439 14.6663 15.7713L0.228852 1.33384C0.0823204 1.18731 0 0.988574 0 0.781348C0 0.574122 0.0823204 0.375383 0.228852 0.228852C0.375383 0.0823204 0.574122 0 0.781348 0C0.988574 0 1.18731 0.0823204 1.33384 0.228852L15.7713 14.6663C15.8805 14.7755 15.955 14.9147 15.9851 15.0663C16.0153 15.2179 15.9998 15.375 15.9407 15.5177C15.8815 15.6605 15.7814 15.7825 15.6529 15.8684C15.5244 15.9542 15.3733 16 15.2188 16Z" fill="#999999"/>
|
4 |
+
</svg>
|
assets/js-templates/form-components.php
CHANGED
@@ -670,11 +670,15 @@
|
|
670 |
<script type="text/x-template" id="tmpl-wpuf-form-post_excerpt">
|
671 |
<div class="wpuf-fields">
|
672 |
<textarea
|
|
|
673 |
:class="class_names('textareafield')"
|
674 |
:placeholder="field.placeholder"
|
675 |
:rows="field.rows"
|
676 |
:cols="field.cols"
|
677 |
>{{ field.default }}</textarea>
|
|
|
|
|
|
|
678 |
<span v-if="field.help" class="wpuf-help" v-html="field.help" ></span>
|
679 |
</div>
|
680 |
</script>
|
670 |
<script type="text/x-template" id="tmpl-wpuf-form-post_excerpt">
|
671 |
<div class="wpuf-fields">
|
672 |
<textarea
|
673 |
+
v-if="'no' === field.rich"
|
674 |
:class="class_names('textareafield')"
|
675 |
:placeholder="field.placeholder"
|
676 |
:rows="field.rows"
|
677 |
:cols="field.cols"
|
678 |
>{{ field.default }}</textarea>
|
679 |
+
|
680 |
+
<text-editor v-if="'no' !== field.rich" :rich="field.rich" :default_text="field.default"></text-editor>
|
681 |
+
|
682 |
<span v-if="field.help" class="wpuf-help" v-html="field.help" ></span>
|
683 |
</div>
|
684 |
</script>
|
assets/js/admin/wpuf-module.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
;(function($){
|
2 |
+
$( '.button-upgrade-to-pro' ).click( function () {
|
3 |
+
let popupWindow = $( '.wpuf-popup-window' );
|
4 |
+
// append the popup window to the body for styling
|
5 |
+
$( 'body' ).css( 'position', 'relative' );
|
6 |
+
$( 'body' ).append( popupWindow );
|
7 |
+
$( '.wpuf-popup-window' ).addClass( 'state-show' );
|
8 |
+
} );
|
9 |
+
|
10 |
+
$( '.popup-close-button' ).click( function () {
|
11 |
+
closePopUp();
|
12 |
+
} );
|
13 |
+
|
14 |
+
// init swiffyslider
|
15 |
+
$( window ).on( 'load', function () {
|
16 |
+
swiffyslider.initSlider( document.getElementById( 'wpuf-slider' ) );
|
17 |
+
} );
|
18 |
+
|
19 |
+
// show the overlay on hovering over to each modules
|
20 |
+
$( '.wp-list-table.wpuf-modules .plugin-card' ).on( 'mouseover', function () {
|
21 |
+
let overlay = $( '.form-create-overlay' );
|
22 |
+
overlay.appendTo( this );
|
23 |
+
} );
|
24 |
+
|
25 |
+
$( '#wpuf-upgrade-popup' ).on( 'click', function( e ) {
|
26 |
+
let modal = $( '.modal-window' );
|
27 |
+
|
28 |
+
// clicking outside the popup modal
|
29 |
+
if ( ! modal.is( e.target ) && modal.has( e.target ).length === 0) {
|
30 |
+
closePopUp();
|
31 |
+
}
|
32 |
+
} );
|
33 |
+
|
34 |
+
// close the 'upgrade to pro' popup on the module page
|
35 |
+
function closePopUp() {
|
36 |
+
$( '.wpuf-popup-window' ).removeClass( 'state-show' );
|
37 |
+
$( 'body' ).css( 'position', 'initial' );
|
38 |
+
}
|
39 |
+
})(jQuery);
|
assets/js/frontend-form.js
CHANGED
@@ -69,7 +69,7 @@
|
|
69 |
$( ':submit[name="wpuf_user_subscription_cancel"]').click(function(e){
|
70 |
e.preventDefault();
|
71 |
|
72 |
-
swal({
|
73 |
text: wpuf_frontend.cancelSubMsg,
|
74 |
type: 'warning',
|
75 |
showCancelButton: true,
|
@@ -129,7 +129,7 @@
|
|
129 |
|
130 |
if ( typeof wp.passwordStrength != 'undefined' ) {
|
131 |
|
132 |
-
strength = wp.passwordStrength.meter( pass1, wp.passwordStrength.
|
133 |
|
134 |
switch ( strength ) {
|
135 |
case 2:
|
@@ -479,7 +479,7 @@
|
|
479 |
grecaptcha.reset();
|
480 |
}
|
481 |
|
482 |
-
swal({
|
483 |
html: res.error,
|
484 |
type: 'warning',
|
485 |
showCancelButton: false,
|
@@ -504,52 +504,68 @@
|
|
504 |
},
|
505 |
|
506 |
validateForm: function( self ) {
|
507 |
-
|
508 |
-
var
|
509 |
-
temp_val = '',
|
510 |
-
error = false,
|
511 |
-
error_type = '',
|
512 |
-
rich_texts = [];
|
513 |
|
514 |
// remove all initial errors if any
|
515 |
-
WP_User_Frontend.removeErrors(self);
|
516 |
-
WP_User_Frontend.removeErrorNotice(self);
|
517 |
|
518 |
-
|
|
|
519 |
|
520 |
visibleFields.each( function( i, item ) {
|
521 |
-
var
|
522 |
-
var
|
523 |
-
var required = $(item).data('required');
|
524 |
-
var val = '';
|
525 |
|
526 |
-
switch(
|
527 |
case 'rich':
|
528 |
-
var
|
529 |
-
|
530 |
-
|
531 |
-
var editor_id = item.data('id');
|
532 |
-
var item_name = item.data('name');
|
533 |
-
val = $.trim( tinyMCE.get(editor_id).getContent() );
|
534 |
|
535 |
if ( required === 'yes' && val === '' ) {
|
536 |
-
|
537 |
-
|
538 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
}
|
540 |
|
541 |
-
|
542 |
|
543 |
break;
|
544 |
case 'textarea':
|
545 |
case 'text':
|
546 |
-
val = $.trim( $(item).val() );
|
547 |
|
548 |
if ( required === 'yes' && val === '' ) {
|
549 |
-
|
550 |
-
|
|
|
|
|
551 |
|
552 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
|
554 |
break;
|
555 |
}
|
@@ -558,199 +574,271 @@
|
|
558 |
// Get intlTelInput instance
|
559 |
var iti = window.intlTelInputGlobals.getInstance( item );
|
560 |
if ( '' !== iti.getNumber() && ! iti.isValidNumber() ) {
|
561 |
-
|
562 |
-
|
563 |
-
|
|
|
564 |
|
565 |
break;
|
566 |
}
|
567 |
|
568 |
-
var name = $(item).attr('name');
|
569 |
var value = iti.getNumber();
|
570 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
571 |
|
572 |
break;
|
573 |
}
|
574 |
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
|
|
|
|
|
|
|
|
|
|
579 |
|
580 |
break;
|
581 |
}
|
582 |
|
583 |
-
|
584 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
585 |
break;
|
586 |
case 'password':
|
587 |
case 'confirm_password':
|
588 |
var hasRepeat = $(item).data('repeat');
|
|
|
|
|
589 |
|
590 |
val = $.trim( $(item).val() );
|
591 |
|
592 |
if ( required === 'yes' && val === '' ) {
|
593 |
-
|
594 |
-
|
595 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
596 |
|
597 |
break;
|
598 |
}
|
599 |
|
600 |
if ( hasRepeat ) {
|
601 |
-
var repeatItem = $('[data-type="confirm_password"]').eq(0)
|
602 |
|
603 |
-
if ( repeatItem.val()
|
604 |
-
|
605 |
-
|
|
|
|
|
|
|
|
|
606 |
|
607 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
608 |
}
|
609 |
}
|
|
|
610 |
break;
|
611 |
case 'select':
|
612 |
val = $(item).val();
|
613 |
|
614 |
-
if ( required === 'yes' && val
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
}
|
620 |
break;
|
621 |
case 'multiselect':
|
622 |
-
val = $(item).val();
|
623 |
|
624 |
if ( required === 'yes' && val.length === 0 ) {
|
625 |
-
|
626 |
-
|
627 |
-
|
|
|
628 |
}
|
629 |
break;
|
630 |
case 'tax-checkbox':
|
631 |
var length = $(item).children().find('input:checked').length;
|
632 |
|
633 |
if ( required === 'yes' && ! length ) {
|
634 |
-
|
635 |
-
|
636 |
-
|
|
|
637 |
}
|
638 |
break;
|
639 |
case 'radio':
|
640 |
-
|
|
|
|
|
641 |
|
642 |
if ( required === 'yes' && ! length ) {
|
643 |
-
|
644 |
-
|
645 |
-
|
|
|
646 |
}
|
|
|
647 |
break;
|
648 |
case 'file':
|
649 |
-
var length = $(item).find('ul').children().length;
|
650 |
|
651 |
if ( required === 'yes' && ! length ) {
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
WP_User_Frontend.markError( item, error_type );
|
657 |
}
|
658 |
break;
|
659 |
case 'email':
|
660 |
-
val = $(item).val();
|
661 |
|
662 |
if ( required === 'yes' && val === '' ) {
|
663 |
-
|
664 |
-
|
665 |
-
|
|
|
666 |
|
667 |
break;
|
668 |
}
|
669 |
|
670 |
if ( val !== '' && ! WP_User_Frontend.isValidEmail( val ) ) {
|
671 |
-
|
672 |
-
|
673 |
-
|
|
|
674 |
}
|
675 |
break;
|
676 |
case 'url':
|
677 |
var val = $(item).val();
|
678 |
|
679 |
if ( required === 'yes' && val === '' ) {
|
680 |
-
|
681 |
-
|
682 |
-
|
|
|
683 |
|
684 |
break;
|
685 |
}
|
686 |
|
687 |
if ( val !== '' && ! WP_User_Frontend.isValidURL( val ) ) {
|
688 |
-
|
689 |
-
|
690 |
-
|
|
|
691 |
}
|
692 |
break;
|
693 |
-
default: //
|
694 |
// if this is a Google map
|
695 |
-
if ( $(item).attr('id') && $(item).attr('id').startsWith('wpuf-map') ) {
|
696 |
-
var mapContainer = $(item).parents('.wpuf-form-google-map-container');
|
697 |
-
|
698 |
-
required = $(
|
699 |
-
val = $(
|
700 |
-
|
701 |
-
if ( required
|
702 |
-
|
703 |
-
|
704 |
-
|
|
|
705 |
}
|
706 |
}
|
707 |
-
break;
|
708 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
709 |
}
|
710 |
|
711 |
-
|
712 |
-
if ( error ) {
|
713 |
-
WP_User_Frontend.markError(item, error_type);
|
714 |
-
// WP_User_Frontend.addErrorNotice(self,'end');
|
715 |
|
716 |
-
|
|
|
|
|
|
|
|
|
717 |
}
|
718 |
-
|
|
|
|
|
|
|
|
|
|
|
719 |
|
720 |
// Fields that are conditionally hidden
|
721 |
-
var conditionallyHiddenFields = self.find('li.wpuf-el[style*="display: none"] input');
|
722 |
|
723 |
conditionallyHiddenFields.each( function( i, item ) {
|
724 |
-
var
|
725 |
|
726 |
-
switch (
|
727 |
case 'url':
|
728 |
case 'email':
|
729 |
// removing conditionally hidden fields value
|
730 |
// so that default HTML validation don't restrict those fields
|
731 |
-
$(item).val('');
|
732 |
}
|
733 |
});
|
734 |
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
return false;
|
739 |
-
}
|
740 |
-
|
741 |
-
/*// if already some error found, bail out
|
742 |
-
if (error) {
|
743 |
-
// add error notice
|
744 |
-
WP_User_Frontend.addErrorNotice(self,'end');
|
745 |
-
|
746 |
-
return false;
|
747 |
-
}*/
|
748 |
-
|
749 |
-
var form_data = self.serialize();
|
750 |
|
751 |
// append them to the form var
|
752 |
-
|
753 |
-
return
|
754 |
},
|
755 |
|
756 |
/**
|
@@ -771,43 +859,47 @@
|
|
771 |
$(form).find('.wpuf-errors').remove();
|
772 |
},
|
773 |
|
774 |
-
markError: function(item, error_type) {
|
775 |
$(item).closest('div').addClass('has-error');
|
776 |
|
777 |
-
if ( error_type ) {
|
778 |
-
|
779 |
-
|
780 |
-
if ( address_field_label ) {
|
781 |
-
error_string = address_field_label;
|
782 |
-
} else {
|
783 |
-
error_string = $(item).closest('li').data('label');
|
784 |
-
}
|
785 |
-
switch ( error_type ) {
|
786 |
-
case 'required' :
|
787 |
-
error_string = error_string + ' ' + error_str_obj[error_type];
|
788 |
-
break;
|
789 |
-
case 'mismatch' :
|
790 |
-
error_string = error_string + ' ' + error_str_obj[error_type];
|
791 |
-
break;
|
792 |
-
case 'validation' :
|
793 |
-
error_string = error_string + ' ' + error_str_obj[error_type];
|
794 |
-
break
|
795 |
-
case 'limit':
|
796 |
-
error_string = '';
|
797 |
-
break
|
798 |
-
}
|
799 |
-
$(item).siblings('.wpuf-error-msg').remove();
|
800 |
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
}
|
808 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
809 |
|
810 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
811 |
},
|
812 |
|
813 |
removeErrors: function(item) {
|
@@ -989,45 +1081,53 @@
|
|
989 |
var fieldType = (typeof(data[2]) !== "undefined" && data[2] !== null) ? (data[2]).trim() : '';
|
990 |
var limit_type = (typeof(data[3]) !== "undefined" && data[3] !== null) ? (data[3]).trim() : '';
|
991 |
var limit_to = (typeof(data[4]) !== "undefined" && data[4] !== null) ? (data[4]).trim() : '';
|
992 |
-
var limit_label =
|
993 |
|
994 |
if ( 'word' === limit_type ) {
|
995 |
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).words;
|
|
|
996 |
} else {
|
997 |
-
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).chars
|
|
|
998 |
}
|
999 |
|
1000 |
var errorMessage = wpuf_frontend['word_'+limit_to ] + ' ' + limit;
|
1001 |
|
1002 |
-
if
|
|
|
|
|
|
|
|
|
|
|
1003 |
WP_User_Frontend.markError( field, 'limit' );
|
1004 |
-
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[
|
1005 |
|
1006 |
return true;
|
1007 |
-
} else if ( (numWords < limit) && ('min' === limit_to)
|
1008 |
WP_User_Frontend.markError( field, 'limit' );
|
1009 |
-
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[
|
1010 |
|
1011 |
return true;
|
1012 |
-
} else {
|
1013 |
-
if ($(field).hasClass('has-error')) {
|
1014 |
-
$(field).removeClass('has-error');
|
1015 |
-
}
|
1016 |
-
|
1017 |
-
return false;
|
1018 |
}
|
1019 |
},
|
1020 |
|
1021 |
-
|
1022 |
-
var fieldId = $(field).
|
|
|
1023 |
var isTinymce = false;
|
1024 |
var ed = null;
|
|
|
1025 |
var numWords = 0;
|
1026 |
var data = '';
|
1027 |
|
|
|
|
|
|
|
|
|
|
|
1028 |
if ( typeof tinyMCE !== 'undefined' && tinyMCE.get(fieldId) !== null ) {
|
1029 |
isTinymce = true;
|
1030 |
-
ed = tinyMCE.get(fieldId);
|
1031 |
|
1032 |
ed.focus();
|
1033 |
}
|
@@ -1045,30 +1145,42 @@
|
|
1045 |
}
|
1046 |
|
1047 |
var limit = (typeof(data[0]) !== "undefined" && data[0] !== null) ? parseInt(data[0]) : 0;
|
1048 |
-
var fieldId = (typeof(data[1]) !== "undefined" && data[1] !== null) ? (data[1]).trim() : '';
|
1049 |
-
var fieldType = (typeof(data[2]) !== "undefined" && data[2] !== null) ? (data[2]).trim() : '';
|
1050 |
var limit_type = (typeof(data[3]) !== "undefined" && data[3] !== null) ? (data[3]).trim() : '';
|
1051 |
var limit_to = (typeof(data[4]) !== "undefined" && data[4] !== null) ? (data[4]).trim() : '';
|
1052 |
var limit_label = ( 'word' === limit_type ) ? 'Word Limit : ' : 'Character Limit : ';
|
1053 |
|
1054 |
-
|
|
|
1055 |
|
1056 |
-
|
|
|
|
|
|
|
1057 |
|
1058 |
-
if (
|
1059 |
-
|
|
|
1060 |
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
|
1065 |
-
|
|
|
1066 |
} else {
|
1067 |
-
if (
|
1068 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1069 |
}
|
1070 |
-
return false;
|
1071 |
}
|
|
|
|
|
|
|
1072 |
},
|
1073 |
|
1074 |
tinymce: {
|
@@ -1078,29 +1190,37 @@
|
|
1078 |
|
1079 |
return {
|
1080 |
chars: text.length,
|
1081 |
-
words: text.split(/[\w\u2019\'-]+/).length
|
1082 |
};
|
1083 |
},
|
1084 |
|
1085 |
onKeyDown: function(ed, event, limit, limit_type, limit_to ) {
|
1086 |
var field = $('.wpuf-fields.wpuf_'+ed.id);
|
1087 |
|
|
|
|
|
|
|
|
|
|
|
1088 |
var numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).chars + 1,
|
1089 |
-
limit_label =
|
1090 |
|
1091 |
if ( 'word' === limit_type ) {
|
1092 |
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).words;
|
|
|
|
|
|
|
|
|
1093 |
}
|
1094 |
|
1095 |
if ( limit && numWords > limit && 'max' === limit_to ) {
|
1096 |
WP_User_Frontend.editorLimit.blockTyping(event);
|
1097 |
WP_User_Frontend.markError( field, 'limit' );
|
1098 |
-
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[
|
1099 |
} else if ( limit && numWords < limit && 'min' === limit_to ) {
|
1100 |
WP_User_Frontend.markError( field, 'limit' );
|
1101 |
-
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[
|
1102 |
} else {
|
1103 |
-
field.removeClass('has-error')
|
1104 |
jQuery('.mce-path-item.mce-last', ed.container).html('');
|
1105 |
}
|
1106 |
},
|
@@ -1121,16 +1241,21 @@
|
|
1121 |
content_length = self.val().length + 1;
|
1122 |
var content = self.val();
|
1123 |
|
|
|
|
|
|
|
|
|
|
|
1124 |
if ( 'word' === limit_type ) {
|
1125 |
content_length = self.val().split(' ').length;
|
1126 |
}
|
|
|
1127 |
if ( limit && content_length > limit && 'max' === limit_to ) {
|
1128 |
WP_User_Frontend.content_limit_message( self, limit_type, limit_to, limit );
|
1129 |
WP_User_Frontend.editorLimit.blockTyping(event);
|
1130 |
}else if ( limit && content_length < limit && 'min' === limit_to ) {
|
1131 |
WP_User_Frontend.content_limit_message( self, limit_type, limit_to, limit )
|
1132 |
}else {
|
1133 |
-
self.closest('li').removeClass('has-error')
|
1134 |
self.closest('.wpuf-fields').find('span.wpuf-wordlimit-message').html('');
|
1135 |
}
|
1136 |
|
69 |
$( ':submit[name="wpuf_user_subscription_cancel"]').click(function(e){
|
70 |
e.preventDefault();
|
71 |
|
72 |
+
new swal({
|
73 |
text: wpuf_frontend.cancelSubMsg,
|
74 |
type: 'warning',
|
75 |
showCancelButton: true,
|
129 |
|
130 |
if ( typeof wp.passwordStrength != 'undefined' ) {
|
131 |
|
132 |
+
strength = wp.passwordStrength.meter( pass1, wp.passwordStrength.userInputDisallowedList(), pass1 );
|
133 |
|
134 |
switch ( strength ) {
|
135 |
case 2:
|
479 |
grecaptcha.reset();
|
480 |
}
|
481 |
|
482 |
+
new swal({
|
483 |
html: res.error,
|
484 |
type: 'warning',
|
485 |
showCancelButton: false,
|
504 |
},
|
505 |
|
506 |
validateForm: function( self ) {
|
507 |
+
var richTexts = [];
|
508 |
+
var errors = [];
|
|
|
|
|
|
|
|
|
509 |
|
510 |
// remove all initial errors if any
|
511 |
+
WP_User_Frontend.removeErrors( self );
|
512 |
+
WP_User_Frontend.removeErrorNotice( self );
|
513 |
|
514 |
+
// get all the visible fields
|
515 |
+
var visibleFields = self.find( 'input:visible, textarea:visible, select:visible, div.br-widget:visible, .wpuf-rich-validation:visible, div.wpuf-attachment-upload-filelist:visible' );
|
516 |
|
517 |
visibleFields.each( function( i, item ) {
|
518 |
+
var container = '';
|
519 |
+
var dataType = $( item ).data( 'type' );
|
520 |
+
var required = $( item ).data( 'required' );
|
|
|
521 |
|
522 |
+
switch( dataType ) {
|
523 |
case 'rich':
|
524 |
+
var editor_id = $( item ).data( 'id' );
|
525 |
+
var item_name = $( item ).data( 'name' );
|
526 |
+
val = $.trim( tinyMCE.get( editor_id ).getContent() );
|
|
|
|
|
|
|
527 |
|
528 |
if ( required === 'yes' && val === '' ) {
|
529 |
+
errors.push({
|
530 |
+
type: 'required',
|
531 |
+
container: item
|
532 |
+
});
|
533 |
+
}
|
534 |
+
|
535 |
+
var isRestrictionFailed = WP_User_Frontend.editorLimit.isRestrictionFailed( item );
|
536 |
+
|
537 |
+
if ( isRestrictionFailed ) {
|
538 |
+
errors.push({
|
539 |
+
type: 'limit',
|
540 |
+
container: item
|
541 |
+
});
|
542 |
+
|
543 |
+
break;
|
544 |
}
|
545 |
|
546 |
+
richTexts.push( item_name + '=' + encodeURIComponent( val ) );
|
547 |
|
548 |
break;
|
549 |
case 'textarea':
|
550 |
case 'text':
|
551 |
+
val = $.trim( $( item ).val() );
|
552 |
|
553 |
if ( required === 'yes' && val === '' ) {
|
554 |
+
errors.push({
|
555 |
+
type: 'required',
|
556 |
+
container: item
|
557 |
+
});
|
558 |
|
559 |
+
break;
|
560 |
+
}
|
561 |
+
|
562 |
+
var isRestrictionFailed = WP_User_Frontend.editorLimit.isRestrictionFailed( item );
|
563 |
+
|
564 |
+
if ( isRestrictionFailed ) {
|
565 |
+
errors.push({
|
566 |
+
type: 'limit',
|
567 |
+
container: item
|
568 |
+
});
|
569 |
|
570 |
break;
|
571 |
}
|
574 |
// Get intlTelInput instance
|
575 |
var iti = window.intlTelInputGlobals.getInstance( item );
|
576 |
if ( '' !== iti.getNumber() && ! iti.isValidNumber() ) {
|
577 |
+
errors.push({
|
578 |
+
type: 'validation',
|
579 |
+
container: item
|
580 |
+
});
|
581 |
|
582 |
break;
|
583 |
}
|
584 |
|
585 |
+
var name = $( item ).attr( 'name' );
|
586 |
var value = iti.getNumber();
|
587 |
+
|
588 |
+
// append the mobile number with country code
|
589 |
+
$( '<input>' )
|
590 |
+
.attr( 'type', 'hidden' )
|
591 |
+
.attr( 'name', name )
|
592 |
+
.attr( 'value', value )
|
593 |
+
.appendTo( self );
|
594 |
|
595 |
break;
|
596 |
}
|
597 |
|
598 |
+
break;
|
599 |
+
case 'url':
|
600 |
+
val = $.trim( $( item ).val() );
|
601 |
+
|
602 |
+
if ( required === 'yes' && val === '' ) {
|
603 |
+
errors.push({
|
604 |
+
type: 'required',
|
605 |
+
container: item
|
606 |
+
});
|
607 |
|
608 |
break;
|
609 |
}
|
610 |
|
611 |
+
if ( val !== '' && ! WP_User_Frontend.isValidURL( val ) ) {
|
612 |
+
errors.push({
|
613 |
+
type: 'validation',
|
614 |
+
container: item
|
615 |
+
});
|
616 |
+
|
617 |
+
break;
|
618 |
+
}
|
619 |
break;
|
620 |
case 'password':
|
621 |
case 'confirm_password':
|
622 |
var hasRepeat = $(item).data('repeat');
|
623 |
+
var strength = $(item).data('strength');
|
624 |
+
var min_length = $(item).data('minimum-length');
|
625 |
|
626 |
val = $.trim( $(item).val() );
|
627 |
|
628 |
if ( required === 'yes' && val === '' ) {
|
629 |
+
errors.push({
|
630 |
+
type: 'required',
|
631 |
+
container: item
|
632 |
+
});
|
633 |
+
|
634 |
+
break;
|
635 |
+
}
|
636 |
+
|
637 |
+
if ( val.length < min_length ) {
|
638 |
+
errors.push({
|
639 |
+
type: 'custom',
|
640 |
+
container: item,
|
641 |
+
message: 'Minimum ' + min_length + ' character is required'
|
642 |
+
});
|
643 |
|
644 |
break;
|
645 |
}
|
646 |
|
647 |
if ( hasRepeat ) {
|
648 |
+
var repeatItem = $('[data-type="confirm_password"]').eq(0);
|
649 |
|
650 |
+
if ( repeatItem.val() !== val ) {
|
651 |
+
errors.push({
|
652 |
+
error_type: 'mismatch',
|
653 |
+
container: item
|
654 |
+
});
|
655 |
+
}
|
656 |
+
}
|
657 |
|
658 |
+
if ( strength ) {
|
659 |
+
var strengthMeter = wp.passwordStrength.meter(val, wp.passwordStrength.userInputDisallowedList());
|
660 |
+
|
661 |
+
if (strength === 'weak' && strengthMeter < 2) {
|
662 |
+
errors.push({
|
663 |
+
type: 'custom',
|
664 |
+
container: item,
|
665 |
+
message: 'Password minimum strength should be weak'
|
666 |
+
});
|
667 |
+
} else if (strength === 'medium' && strengthMeter < 3) {
|
668 |
+
errors.push({
|
669 |
+
type: 'custom',
|
670 |
+
container: item,
|
671 |
+
message: 'Password minimum strength should be medium'
|
672 |
+
});
|
673 |
+
} else if (strength === 'strong' && strengthMeter < 4) {
|
674 |
+
errors.push({
|
675 |
+
type: 'custom',
|
676 |
+
container: item,
|
677 |
+
message: 'Password strength should be strong'
|
678 |
+
});
|
679 |
}
|
680 |
}
|
681 |
+
|
682 |
break;
|
683 |
case 'select':
|
684 |
val = $(item).val();
|
685 |
|
686 |
+
if ( required === 'yes' && val === '-1' ) {
|
687 |
+
errors.push({
|
688 |
+
type: 'required',
|
689 |
+
container: item
|
690 |
+
});
|
691 |
}
|
692 |
break;
|
693 |
case 'multiselect':
|
694 |
+
val = $( item ).val();
|
695 |
|
696 |
if ( required === 'yes' && val.length === 0 ) {
|
697 |
+
errors.push({
|
698 |
+
type: 'required',
|
699 |
+
container: item
|
700 |
+
});
|
701 |
}
|
702 |
break;
|
703 |
case 'tax-checkbox':
|
704 |
var length = $(item).children().find('input:checked').length;
|
705 |
|
706 |
if ( required === 'yes' && ! length ) {
|
707 |
+
errors.push({
|
708 |
+
type: 'required',
|
709 |
+
container: item
|
710 |
+
});
|
711 |
}
|
712 |
break;
|
713 |
case 'radio':
|
714 |
+
case 'checkbox':
|
715 |
+
container = $( item ).parents( '.wpuf-fields' );
|
716 |
+
length = $( container ).find( 'input:checked' ).length;
|
717 |
|
718 |
if ( required === 'yes' && ! length ) {
|
719 |
+
errors.push({
|
720 |
+
type: 'required',
|
721 |
+
container: item
|
722 |
+
});
|
723 |
}
|
724 |
+
|
725 |
break;
|
726 |
case 'file':
|
727 |
+
var length = $( item ).find('ul').children().length;
|
728 |
|
729 |
if ( required === 'yes' && ! length ) {
|
730 |
+
errors.push({
|
731 |
+
type: 'required',
|
732 |
+
container: $( item ).closest( '.wpuf-fields' )
|
733 |
+
});
|
|
|
734 |
}
|
735 |
break;
|
736 |
case 'email':
|
737 |
+
val = $( item ).val();
|
738 |
|
739 |
if ( required === 'yes' && val === '' ) {
|
740 |
+
errors.push({
|
741 |
+
type: 'required',
|
742 |
+
container: item
|
743 |
+
});
|
744 |
|
745 |
break;
|
746 |
}
|
747 |
|
748 |
if ( val !== '' && ! WP_User_Frontend.isValidEmail( val ) ) {
|
749 |
+
errors.push({
|
750 |
+
type: 'validation',
|
751 |
+
container: item
|
752 |
+
});
|
753 |
}
|
754 |
break;
|
755 |
case 'url':
|
756 |
var val = $(item).val();
|
757 |
|
758 |
if ( required === 'yes' && val === '' ) {
|
759 |
+
errors.push({
|
760 |
+
type: 'validation',
|
761 |
+
container: item
|
762 |
+
});
|
763 |
|
764 |
break;
|
765 |
}
|
766 |
|
767 |
if ( val !== '' && ! WP_User_Frontend.isValidURL( val ) ) {
|
768 |
+
errors.push({
|
769 |
+
type: 'validation',
|
770 |
+
container: item
|
771 |
+
});
|
772 |
}
|
773 |
break;
|
774 |
+
default: // Google map etc.
|
775 |
// if this is a Google map
|
776 |
+
if ( $( item ).attr( 'id' ) && $( item ).attr( 'id' ).startsWith( 'wpuf-map' ) ) {
|
777 |
+
var mapContainer = $( item ).parents( '.wpuf-form-google-map-container' );
|
778 |
+
mapField = $( mapContainer ).find( 'input[id^="wpuf-map-lat"]' );
|
779 |
+
required = $( mapField ).data( 'required' );
|
780 |
+
val = $( mapField ).val(); // needs to grab from parent to get all the data
|
781 |
+
|
782 |
+
if ( required === 'yes' && val === '' ) {
|
783 |
+
errors.push({
|
784 |
+
type: 'required',
|
785 |
+
container: mapContainer
|
786 |
+
});
|
787 |
}
|
788 |
}
|
|
|
789 |
|
790 |
+
// if rating field
|
791 |
+
if ( $( item ).hasClass( 'br-widget' ) ) {
|
792 |
+
container = $( item ).parents('.wpuf-fields');
|
793 |
+
required = $( container ).find( 'select.wpuf-ratings' ).data( 'required' );
|
794 |
+
length = $( item ).find('.br-selected').length;
|
795 |
+
|
796 |
+
if ( required === 'yes' && ! length ) {
|
797 |
+
errors.push({
|
798 |
+
type: 'required',
|
799 |
+
container: item
|
800 |
+
});
|
801 |
+
}
|
802 |
+
}
|
803 |
}
|
804 |
|
805 |
+
});
|
|
|
|
|
|
|
806 |
|
807 |
+
if ( errors.length ) {
|
808 |
+
var i;
|
809 |
+
var length = errors.length;
|
810 |
+
for ( i = 0; i < length; i++ ) {
|
811 |
+
WP_User_Frontend.markError( errors[i].container, errors[i].type, errors[i].message );
|
812 |
}
|
813 |
+
|
814 |
+
WP_User_Frontend.addErrorNotice( self,'end' );
|
815 |
+
$( errors[0].container ).focus();
|
816 |
+
|
817 |
+
return false;
|
818 |
+
}
|
819 |
|
820 |
// Fields that are conditionally hidden
|
821 |
+
var conditionallyHiddenFields = self.find( 'li.wpuf-el[style*="display: none"] input' );
|
822 |
|
823 |
conditionallyHiddenFields.each( function( i, item ) {
|
824 |
+
var inputType = $( item ).attr( 'type' );
|
825 |
|
826 |
+
switch ( inputType ) {
|
827 |
case 'url':
|
828 |
case 'email':
|
829 |
// removing conditionally hidden fields value
|
830 |
// so that default HTML validation don't restrict those fields
|
831 |
+
$( item ).val( '' );
|
832 |
}
|
833 |
});
|
834 |
|
835 |
+
var disable_fields = self.find(":disabled").removeAttr("disabled");
|
836 |
+
var formData = self.serialize();
|
837 |
+
disable_fields.attr("disabled", "disabled");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
838 |
|
839 |
// append them to the form var
|
840 |
+
formData = formData + '&' + richTexts.join( '&' );
|
841 |
+
return formData;
|
842 |
},
|
843 |
|
844 |
/**
|
859 |
$(form).find('.wpuf-errors').remove();
|
860 |
},
|
861 |
|
862 |
+
markError: function(item, error_type, error_message) {
|
863 |
$(item).closest('div').addClass('has-error');
|
864 |
|
865 |
+
if ( ! error_type ) {
|
866 |
+
return;
|
867 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
868 |
|
869 |
+
var error_string = '';
|
870 |
+
var address_field_label = $( item ).data( 'label' );
|
871 |
+
if ( address_field_label ) {
|
872 |
+
error_string = address_field_label;
|
873 |
+
} else {
|
874 |
+
error_string = $(item).closest('li').data('label');
|
|
|
875 |
}
|
876 |
+
switch ( error_type ) {
|
877 |
+
case 'required' :
|
878 |
+
error_string = error_string + ' ' + error_str_obj[error_type];
|
879 |
+
break;
|
880 |
+
case 'mismatch' :
|
881 |
+
error_string = error_string + ' ' + error_str_obj[error_type];
|
882 |
+
break;
|
883 |
+
case 'validation' :
|
884 |
+
error_string = error_string + ' ' + error_str_obj[error_type];
|
885 |
+
break;
|
886 |
+
case 'limit':
|
887 |
+
error_string = '';
|
888 |
+
break;
|
889 |
+
case 'custom' :
|
890 |
+
error_string = error_message;
|
891 |
+
break;
|
892 |
+
}
|
893 |
+
$(item).siblings('.wpuf-error-msg').remove();
|
894 |
|
895 |
+
// for address fields
|
896 |
+
if ( $( item ).closest( '.wpuf-fields.wpuf-fields-address' ).length ) {
|
897 |
+
$( item ).closest( 'div.wpuf-sub-fields' ).find( 'div.wpuf-error-msg' ).remove();
|
898 |
+
$( item ).closest( 'div.wpuf-sub-fields' ).append( '<div class="wpuf-error-msg">' + error_string + '</div>' );
|
899 |
+
} else {
|
900 |
+
$( item ).closest( 'div.wpuf-fields' ).find( 'div.wpuf-error-msg' ).remove();
|
901 |
+
$( item ).closest( 'div.wpuf-fields' ).append( '<div class="wpuf-error-msg">' + error_string + '</div>' );
|
902 |
+
}
|
903 |
},
|
904 |
|
905 |
removeErrors: function(item) {
|
1081 |
var fieldType = (typeof(data[2]) !== "undefined" && data[2] !== null) ? (data[2]).trim() : '';
|
1082 |
var limit_type = (typeof(data[3]) !== "undefined" && data[3] !== null) ? (data[3]).trim() : '';
|
1083 |
var limit_to = (typeof(data[4]) !== "undefined" && data[4] !== null) ? (data[4]).trim() : '';
|
1084 |
+
var limit_label = '';
|
1085 |
|
1086 |
if ( 'word' === limit_type ) {
|
1087 |
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).words;
|
1088 |
+
limit_label = 'word_' + limit_to;
|
1089 |
} else {
|
1090 |
+
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).chars;
|
1091 |
+
limit_label = 'char_' + limit_to;
|
1092 |
}
|
1093 |
|
1094 |
var errorMessage = wpuf_frontend['word_'+limit_to ] + ' ' + limit;
|
1095 |
|
1096 |
+
// if blank field, no need to check for content restriction
|
1097 |
+
if ( numWords === 0 ) {
|
1098 |
+
return false;
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
if ( (numWords > limit) && ('max' === limit_to) ) {
|
1102 |
WP_User_Frontend.markError( field, 'limit' );
|
1103 |
+
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[ limit_label ] + ' ' + numWords +'/'+ limit );
|
1104 |
|
1105 |
return true;
|
1106 |
+
} else if ( (numWords < limit) && ('min' === limit_to) ) {
|
1107 |
WP_User_Frontend.markError( field, 'limit' );
|
1108 |
+
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[ limit_label ] + ' ' + numWords +'/'+ limit );
|
1109 |
|
1110 |
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
1111 |
}
|
1112 |
},
|
1113 |
|
1114 |
+
isRestrictionFailed: function( field ) {
|
1115 |
+
var fieldId = $( field ).data( 'id' );
|
1116 |
+
var fieldType = $( field ).data( 'type' );
|
1117 |
var isTinymce = false;
|
1118 |
var ed = null;
|
1119 |
+
var numChars = 0;
|
1120 |
var numWords = 0;
|
1121 |
var data = '';
|
1122 |
|
1123 |
+
// clear previous style
|
1124 |
+
if ( $( field ).closest( 'div.wpuf-fields' ).hasClass( 'has-error' ) ) {
|
1125 |
+
$( field ).closest( 'div.wpuf-fields' ).removeClass( 'has-error' )
|
1126 |
+
}
|
1127 |
+
|
1128 |
if ( typeof tinyMCE !== 'undefined' && tinyMCE.get(fieldId) !== null ) {
|
1129 |
isTinymce = true;
|
1130 |
+
ed = tinyMCE.get( fieldId );
|
1131 |
|
1132 |
ed.focus();
|
1133 |
}
|
1145 |
}
|
1146 |
|
1147 |
var limit = (typeof(data[0]) !== "undefined" && data[0] !== null) ? parseInt(data[0]) : 0;
|
|
|
|
|
1148 |
var limit_type = (typeof(data[3]) !== "undefined" && data[3] !== null) ? (data[3]).trim() : '';
|
1149 |
var limit_to = (typeof(data[4]) !== "undefined" && data[4] !== null) ? (data[4]).trim() : '';
|
1150 |
var limit_label = ( 'word' === limit_type ) ? 'Word Limit : ' : 'Character Limit : ';
|
1151 |
|
1152 |
+
numChars = $(field).val().trim().length;
|
1153 |
+
numWords = $(field).val().trim().split(' ').length;
|
1154 |
|
1155 |
+
// if blank field, no need to check for content restriction
|
1156 |
+
if ( numChars === 0 ) {
|
1157 |
+
return false;
|
1158 |
+
}
|
1159 |
|
1160 |
+
if ( limit_type === 'word' ) {
|
1161 |
+
if ( ( numWords > limit ) && ( 'max' === limit_to ) ) {
|
1162 |
+
WP_User_Frontend.markError( field, 'limit' );
|
1163 |
|
1164 |
+
return true;
|
1165 |
+
} else if ( ( numWords < limit ) && ( 'min' === limit_to ) ) {
|
1166 |
+
WP_User_Frontend.markError( field, 'limit' );
|
1167 |
|
1168 |
+
return true;
|
1169 |
+
}
|
1170 |
} else {
|
1171 |
+
if ( ( numChars > limit ) && ( 'max' === limit_to ) ) {
|
1172 |
+
WP_User_Frontend.markError( field, 'limit' );
|
1173 |
+
|
1174 |
+
return true;
|
1175 |
+
} else if ( ( numChars < limit ) && ( 'min' === limit_to ) ) {
|
1176 |
+
WP_User_Frontend.markError( field, 'limit' );
|
1177 |
+
|
1178 |
+
return true;
|
1179 |
}
|
|
|
1180 |
}
|
1181 |
+
|
1182 |
+
return false;
|
1183 |
+
|
1184 |
},
|
1185 |
|
1186 |
tinymce: {
|
1190 |
|
1191 |
return {
|
1192 |
chars: text.length,
|
1193 |
+
words: text.split(/[\w\u2019\'-]+/).length - 1 // -1 to remove counting of blank or empty string
|
1194 |
};
|
1195 |
},
|
1196 |
|
1197 |
onKeyDown: function(ed, event, limit, limit_type, limit_to ) {
|
1198 |
var field = $('.wpuf-fields.wpuf_'+ed.id);
|
1199 |
|
1200 |
+
// remove previous errors
|
1201 |
+
if ( field.closest('.wpuf-fields').hasClass('has-error') ) {
|
1202 |
+
field.closest('.wpuf-fields').removeClass('has-error');
|
1203 |
+
}
|
1204 |
+
|
1205 |
var numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).chars + 1,
|
1206 |
+
limit_label = '';
|
1207 |
|
1208 |
if ( 'word' === limit_type ) {
|
1209 |
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).words;
|
1210 |
+
limit_label = 'word_' + limit_to;
|
1211 |
+
} else {
|
1212 |
+
numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).chars;
|
1213 |
+
limit_label = 'char_' + limit_to;
|
1214 |
}
|
1215 |
|
1216 |
if ( limit && numWords > limit && 'max' === limit_to ) {
|
1217 |
WP_User_Frontend.editorLimit.blockTyping(event);
|
1218 |
WP_User_Frontend.markError( field, 'limit' );
|
1219 |
+
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[ limit_label ] + ' ' + numWords + '/' + limit );
|
1220 |
} else if ( limit && numWords < limit && 'min' === limit_to ) {
|
1221 |
WP_User_Frontend.markError( field, 'limit' );
|
1222 |
+
jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend[ limit_label ] + ' ' + numWords + '/' + limit );
|
1223 |
} else {
|
|
|
1224 |
jQuery('.mce-path-item.mce-last', ed.container).html('');
|
1225 |
}
|
1226 |
},
|
1241 |
content_length = self.val().length + 1;
|
1242 |
var content = self.val();
|
1243 |
|
1244 |
+
// remove previous errors
|
1245 |
+
if ( self.closest('.wpuf-fields').hasClass('has-error') ) {
|
1246 |
+
self.closest('.wpuf-fields').removeClass('has-error');
|
1247 |
+
}
|
1248 |
+
|
1249 |
if ( 'word' === limit_type ) {
|
1250 |
content_length = self.val().split(' ').length;
|
1251 |
}
|
1252 |
+
|
1253 |
if ( limit && content_length > limit && 'max' === limit_to ) {
|
1254 |
WP_User_Frontend.content_limit_message( self, limit_type, limit_to, limit );
|
1255 |
WP_User_Frontend.editorLimit.blockTyping(event);
|
1256 |
}else if ( limit && content_length < limit && 'min' === limit_to ) {
|
1257 |
WP_User_Frontend.content_limit_message( self, limit_type, limit_to, limit )
|
1258 |
}else {
|
|
|
1259 |
self.closest('.wpuf-fields').find('span.wpuf-wordlimit-message').html('');
|
1260 |
}
|
1261 |
|
assets/js/frontend-form.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),b.matchMedia("(max-width: 600px)").matches&&(a("table.items-table tr td .post-edit-icon").click(function(b){b.preventDefault(),a(this).parents("tr").find(".data-column").toggleClass("flex-column"),a(this).toggleClass("toggle-icon")}),a(".wpuf-dashboard-navigation ul li:first-child").after().click(function(b){b.preventDefault(),a(".wpuf-dashboard-navigation ul li").not(":first").toggle()})),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),swal({text:wpuf_frontend.cancelSubMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(b){if(!b)return!1;a("#wpuf_cancel_subscription").submit()})}),this.warningOnExit(),this.handleReadOnly()},warningOnExit:function(){a('input[name="submit"], #wpuf-post-draft').on("click",function(){b.onbeforeunload=null}),a(".wpuf-form-add").on("change",function(){a(".wpuf-form-add input, .wpuf-form-add select, .wpuf-form-add textarea").each(function(c){"hidden"===a(this).attr("type")&&"submit"===a(this).attr("type")&&-1===a(this).val()||(b.onbeforeunload=function(){return"you have changes"})})})},handleReadOnly:function(){a(".wpuf-form .read-only").each(function(){a("input, select, textarea",this).each(function(){a(this).attr("disabled",!0)})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html(" "),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputBlacklist(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('<div class="wpuf-progress-percentage"></div>');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='<ul class="wpuf-step-wizard">',a(".wpuf-multistep-fieldset",this).each(function(){d+="<li>"+a.trim(a("legend",this).text())+"</li>",a("legend",this).hide()}),d+="</ul>",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('<div id="'+g+'" level="'+c+'"></div>'),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().addBack().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' <span class="wpuf-loading"></span>'),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='<input type="hidden" name="post_id" value="'+b.post_id+'">';e+='<input type="hidden" name="post_date" value="'+b.date+'">',e+='<input type="hidden" name="post_author" value="'+b.post_author+'">',e+='<input type="hidden" name="comment_status" value="'+b.comment_status+'">',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('<span class="wpuf-draft-saved"> '+b.message+"</span>"),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b,d=(c.find("input[type=submit]"),WP_User_Frontend.validateForm(c));return 0==d&&WP_User_Frontend.addErrorNotice(self,"bottom"),d},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append('<span class="wpuf-loading"></span>'),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('<div class="wpuf-success">'+c.message+"</div>"),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),swal({html:c.error,type:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",cancelButtonClass:"btn btn-danger"}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},isTelephoneField:function(b){return a(b).hasClass("wpuf_telephone")&&"yes"===a(b).data("show-list")},validateForm:function(c){var d=!1,e="",f=[];if(WP_User_Frontend.removeErrors(c),WP_User_Frontend.removeErrorNotice(c),c.find("input:visible, textarea:visible, select:visible, .wpuf-rich-validation").each(function(g,h){var i=a(h).attr("type"),j=a(h).data("type"),k=a(h).data("required"),l="";switch(j){case"rich":var m=a(h).data("id"),h=a(h),n=h.data("id"),o=h.data("name");l=a.trim(tinyMCE.get(n).getContent()),"yes"===k&&""===l&&(d=!0,e="required",WP_User_Frontend.markError(h)),f.push(o+"="+encodeURIComponent(l));break;case"textarea":case"text":if(l=a.trim(a(h).val()),"yes"===k&&""===l){d=!0,e="required",WP_User_Frontend.markError(h,e);break}if(WP_User_Frontend.isTelephoneField(h)){var p=b.intlTelInputGlobals.getInstance(h);if(""!==p.getNumber()&&!p.isValidNumber()){d=!0,e="validation",WP_User_Frontend.markError(h,e);break}var m=a(h).attr("name"),q=p.getNumber();a("<input>").attr("type","hidden").attr("name",m).attr("value",q).appendTo(c);break}if("url"===i&&""!==l&&!WP_User_Frontend.isValidURL(l)){d=!0,e="validation",WP_User_Frontend.markError(h,e);break}d=WP_User_Frontend.editorLimit.checkRestrictionError(h);break;case"password":case"confirm_password":var r=a(h).data("repeat");if(l=a.trim(a(h).val()),"yes"===k&&""===l){d=!0,e="required",WP_User_Frontend.markError(h,e);break}if(r){var s=a('[data-type="confirm_password"]').eq(0);s.val()!=l&&(d=!0,e="mismatch",WP_User_Frontend.markError(s,e))}break;case"select":l=a(h).val(),"yes"===k&&"-1"==l&&(d=!0,e="required",WP_User_Frontend.markError(h,e));break;case"multiselect":l=a(h).val(),"yes"===k&&0===l.length&&(d=!0,e="required",WP_User_Frontend.markError(h,e));break;case"tax-checkbox":var t=a(h).children().find("input:checked").length;"yes"!==k||t||(d=!0,e="required",WP_User_Frontend.markError(h,e));break;case"radio":var t=a(h).find("input:checked").length;"yes"!==k||t||(d=!0,e="required",WP_User_Frontend.markError(h,e));break;case"file":var t=a(h).find("ul").children().length;"yes"!==k||t||(d=!0,e="required",WP_User_Frontend.markError(h,e));break;case"email":if(l=a(h).val(),"yes"===k&&""===l){d=!0,e="required",WP_User_Frontend.markError(h,e);break}""===l||WP_User_Frontend.isValidEmail(l)||(d=!0,e="validation",WP_User_Frontend.markError(h,e));break;case"url":var l=a(h).val();if("yes"===k&&""===l){d=!0,e="required",WP_User_Frontend.markError(h,e);break}""===l||WP_User_Frontend.isValidURL(l)||(d=!0,e="validation",WP_User_Frontend.markError(h,e));break;default:if(a(h).attr("id")&&a(h).attr("id").startsWith("wpuf-map")){var u=a(h).parents(".wpuf-form-google-map-container");map_field=a(u).find('input[id^="wpuf-map-lat"]'),k=a(map_field).data("required"),l=a(map_field).val(),"yes"==k&&""==l&&(d=!0,e="required",WP_User_Frontend.markError(u,e))}}if(d)return WP_User_Frontend.markError(h,e),!1}),c.find('li.wpuf-el[style*="display: none"] input').each(function(b,c){switch(a(c).attr("type")){case"url":case"email":a(c).val("")}}),d)return WP_User_Frontend.addErrorNotice(c,"end"),!1;var g=c.serialize();return g=g+"&"+f.join("&")},addErrorNotice:function(b,c){"bottom"==c?a(".wpuf-multistep-fieldset:visible").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>"):a(b).find("li.wpuf-submit").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c){if(a(b).closest("div").addClass("has-error"),c){var d="",e=a(b).data("label");switch(d=e||a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":d=d+" "+error_str_obj[c];break;case"limit":d=""}a(b).siblings(".wpuf-error-msg").remove(),"DIV"!==a(b).prev().prop("nodeName")||a(b).hasClass("wpuf_telephone")?a(b).after('<div class="wpuf-error-msg">'+d+"</div>"):a(b).append('<div class="wpuf-error-msg">'+d+"</div>")}a(b).focus()},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/){1}[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,20}(:[0-9]{1,20})?(\\/.*)?$").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:wpuf_frontend_upload.max_filesize,url:wpuf_frontend_upload.plupload.url,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('<div class="upload-item" id="'+b.id+'"><div class="progress progress-striped active"><div class="bar"></div></div></div>')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d,e,f){"no"===d?(a("textarea#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).change(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyDown.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyDown(a,c,b,e,f)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b,e,f)},100)})},1e3)},checkTinyMCERestriction:function(b,c,d){var e=0,f=void 0!==c[0]&&null!==c[0]?parseInt(c[0]):0,g=(void 0!==c[1]&&null!==c[1]&&c[1].trim(),void 0!==c[2]&&null!==c[2]&&c[2].trim(),void 0!==c[3]&&null!==c[3]?c[3].trim():""),h=void 0!==c[4]&&null!==c[4]?c[4].trim():"";e="word"===g?WP_User_Frontend.editorLimit.tinymce.getStats(d).words:WP_User_Frontend.editorLimit.tinymce.getStats(d).chars+1;wpuf_frontend["word_"+h];return e>1&&e>f&&"max"===h?(WP_User_Frontend.markError(b,"limit"),jQuery(".mce-path-item.mce-last",d.container).html(wpuf_frontend["word_"+h]+" "+e+"/"+f),!0):e<f&&"min"===h&&e>1?(WP_User_Frontend.markError(b,"limit"),jQuery(".mce-path-item.mce-last",d.container).html(wpuf_frontend["word_"+h]+" "+e+"/"+f),!0):(a(b).hasClass("has-error")&&a(b).removeClass("has-error"),!1)},checkRestrictionError:function(b){var c=a(b).attr("id"),d=!1,e=null,f=0,g="";if("undefined"!=typeof tinyMCE&&null!==tinyMCE.get(c)&&(d=!0,e=tinyMCE.get(c),e.focus()),a(b).closest("li.wpuf-el").find("script").html()){var h=a(b).closest("li.wpuf-el").find("script").html();g=h.match(/(?:bind\()(.*?(?=\)))/)?h.match(/(?:bind\()(.*?(?=\)))/)[1].replace(/['"]/g,"").split(","):""}if(d)return WP_User_Frontend.editorLimit.checkTinyMCERestriction(b,g,e);var i=void 0!==g[0]&&null!==g[0]?parseInt(g[0]):0,c=void 0!==g[1]&&null!==g[1]?g[1].trim():"",j=(void 0!==g[2]&&null!==g[2]&&g[2].trim(),void 0!==g[3]&&null!==g[3]&&g[3].trim(),void 0!==g[4]&&null!==g[4]?g[4].trim():"");f=a(b).val().length;wpuf_frontend["word_"+j];return f>1&&f>i&&"max"===j?(WP_User_Frontend.markError(b,"limit"),!0):f<i&&"min"===j&&f>1?(WP_User_Frontend.markError(b,"limit"),!0):(a(b).hasClass("has-error")&&a(b).removeClass("has-error"),!1)},tinymce:{getStats:function(a){var b=a.getBody(),c=tinymce.trim(b.innerText||b.textContent);return{chars:c.length,words:c.split(/[\w\u2019\'-]+/).length}},onKeyDown:function(b,c,d,e,f){var g=a(".wpuf-fields.wpuf_"+b.id),h=WP_User_Frontend.editorLimit.tinymce.getStats(b).chars+1;"word"===e&&(h=WP_User_Frontend.editorLimit.tinymce.getStats(b).words),d&&h>d&&"max"===f?(WP_User_Frontend.editorLimit.blockTyping(c),WP_User_Frontend.markError(g,"limit"),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend["word_"+f]+" "+h+"/"+d)):d&&h<d&&"min"===f?(WP_User_Frontend.markError(g,"limit"),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend["word_"+f]+" "+h+"/"+d)):(g.removeClass("has-error"),jQuery(".mce-path-item.mce-last",b.container).html(""))},onPaste:function(a,b,c){var d=a.getContent().split(" ").slice(0,c).join(" ");a.setContent(d),WP_User_Frontend.editorLimit.make_media_embed_code(d,a)}},textLimit:function(b,c,d,e){var f=a(this),g=f.val().length+1,h=f.val();"word"===d&&(g=f.val().split(" ").length),c&&g>c&&"max"===e?(WP_User_Frontend.content_limit_message(f,d,e,c),WP_User_Frontend.editorLimit.blockTyping(b)):c&&g<c&&"min"===e?WP_User_Frontend.content_limit_message(f,d,e,c):(f.closest("li").removeClass("has-error"),f.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html("")),"paste"===b.type&&(f.val(h.substring(0,c)),"word"===d&&f.val(h.slice(0,c).join(" ")))},blockTyping:function(b){-1!==a.inArray(b.keyCode,[46,8,9,27,13,110,190,189])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}},doUncheckRadioBtn:function(a){a.checked=!1},content_limit_message:function(a,b,c,d){WP_User_Frontend.markError(a,"limit");var e="";"word"===b&&(e=wpuf_frontend["word_"+c]+" "+d),"character"===b&&(e=wpuf_frontend["char_"+c]+" "+d),a.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(e)}},a(function(){if(WP_User_Frontend.init(),a("ul.wpuf-payment-gateways").on("click","input[type=radio]",function(b){a(".wpuf-payment-instruction").slideUp(250),a(this).parents("li").find(".wpuf-payment-instruction").slideDown(250)}),a("ul.wpuf-payment-gateways li").find("input[type=radio]").is(":checked")){a("ul.wpuf-payment-gateways li").find("input[type=radio]:checked").parents("li").find(".wpuf-payment-instruction").slideDown(250)}else a("ul.wpuf-payment-gateways li").first().find("input[type=radio]").click()}),a(function(){a('input[name="first_name"], input[name="last_name"]').on("change keyup",function(){var b,c=a.makeArray(a('input[name="first_name"], input[name="last_name"]').map(function(){if(b=a(this).val())return b})).join(" ");a('input[name="display_name"]').val(c)})}),a(function(a){a('.wpuf-form-add input[name="dokan_store_name"]').on("focusout",function(){var b=a(this).val().toLowerCase().replace(/-+/g,"").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");a('input[name="shopurl"]').val(b),a("#url-alart").text(b),a('input[name="shopurl"]').focus()}),a('.wpuf-form-add input[name="shopurl"]').keydown(function(b){a(this).val();-1!==a.inArray(b.keyCode,[46,8,9,27,13,91,109,110,173,189,190])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window);
|
1 |
+
!function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),b.matchMedia("(max-width: 600px)").matches&&(a("table.items-table tr td .post-edit-icon").click(function(b){b.preventDefault(),a(this).parents("tr").find(".data-column").toggleClass("flex-column"),a(this).toggleClass("toggle-icon")}),a(".wpuf-dashboard-navigation ul li:first-child").after().click(function(b){b.preventDefault(),a(".wpuf-dashboard-navigation ul li").not(":first").toggle()})),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),new swal({text:wpuf_frontend.cancelSubMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(b){if(!b)return!1;a("#wpuf_cancel_subscription").submit()})}),this.warningOnExit(),this.handleReadOnly()},warningOnExit:function(){a('input[name="submit"], #wpuf-post-draft').on("click",function(){b.onbeforeunload=null}),a(".wpuf-form-add").on("change",function(){a(".wpuf-form-add input, .wpuf-form-add select, .wpuf-form-add textarea").each(function(c){"hidden"===a(this).attr("type")&&"submit"===a(this).attr("type")&&-1===a(this).val()||(b.onbeforeunload=function(){return"you have changes"})})})},handleReadOnly:function(){a(".wpuf-form .read-only").each(function(){a("input, select, textarea",this).each(function(){a(this).attr("disabled",!0)})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html(" "),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputDisallowedList(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('<div class="wpuf-progress-percentage"></div>');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='<ul class="wpuf-step-wizard">',a(".wpuf-multistep-fieldset",this).each(function(){d+="<li>"+a.trim(a("legend",this).text())+"</li>",a("legend",this).hide()}),d+="</ul>",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('<div id="'+g+'" level="'+c+'"></div>'),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().addBack().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' <span class="wpuf-loading"></span>'),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='<input type="hidden" name="post_id" value="'+b.post_id+'">';e+='<input type="hidden" name="post_date" value="'+b.date+'">',e+='<input type="hidden" name="post_author" value="'+b.post_author+'">',e+='<input type="hidden" name="comment_status" value="'+b.comment_status+'">',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('<span class="wpuf-draft-saved"> '+b.message+"</span>"),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b,d=(c.find("input[type=submit]"),WP_User_Frontend.validateForm(c));return 0==d&&WP_User_Frontend.addErrorNotice(self,"bottom"),d},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append('<span class="wpuf-loading"></span>'),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('<div class="wpuf-success">'+c.message+"</div>"),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),new swal({html:c.error,type:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",cancelButtonClass:"btn btn-danger"}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},isTelephoneField:function(b){return a(b).hasClass("wpuf_telephone")&&"yes"===a(b).data("show-list")},validateForm:function(c){var d=[],e=[];if(WP_User_Frontend.removeErrors(c),WP_User_Frontend.removeErrorNotice(c),c.find("input:visible, textarea:visible, select:visible, div.br-widget:visible, .wpuf-rich-validation:visible, div.wpuf-attachment-upload-filelist:visible").each(function(f,g){var h="",i=a(g).data("type"),j=a(g).data("required");switch(i){case"rich":var k=a(g).data("id"),l=a(g).data("name");v=a.trim(tinyMCE.get(k).getContent()),"yes"===j&&""===v&&e.push({type:"required",container:g});var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}d.push(l+"="+encodeURIComponent(v));break;case"textarea":case"text":if(v=a.trim(a(g).val()),"yes"===j&&""===v){e.push({type:"required",container:g});break}var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}if(WP_User_Frontend.isTelephoneField(g)){var n=b.intlTelInputGlobals.getInstance(g);if(""!==n.getNumber()&&!n.isValidNumber()){e.push({type:"validation",container:g});break}var o=a(g).attr("name"),p=n.getNumber();a("<input>").attr("type","hidden").attr("name",o).attr("value",p).appendTo(c);break}break;case"url":if(v=a.trim(a(g).val()),"yes"===j&&""===v){e.push({type:"required",container:g});break}if(""!==v&&!WP_User_Frontend.isValidURL(v)){e.push({type:"validation",container:g});break}break;case"password":case"confirm_password":var q=a(g).data("repeat"),r=a(g).data("strength"),s=a(g).data("minimum-length");if(v=a.trim(a(g).val()),"yes"===j&&""===v){e.push({type:"required",container:g});break}if(v.length<s){e.push({type:"custom",container:g,message:"Minimum "+s+" character is required"});break}if(q&&a('[data-type="confirm_password"]').eq(0).val()!==v&&e.push({error_type:"mismatch",container:g}),r){var t=wp.passwordStrength.meter(v,wp.passwordStrength.userInputDisallowedList());"weak"===r&&t<2?e.push({type:"custom",container:g,message:"Password minimum strength should be weak"}):"medium"===r&&t<3?e.push({type:"custom",container:g,message:"Password minimum strength should be medium"}):"strong"===r&&t<4&&e.push({type:"custom",container:g,message:"Password strength should be strong"})}break;case"select":v=a(g).val(),"yes"===j&&"-1"===v&&e.push({type:"required",container:g});break;case"multiselect":v=a(g).val(),"yes"===j&&0===v.length&&e.push({type:"required",container:g});break;case"tax-checkbox":var u=a(g).children().find("input:checked").length;"yes"!==j||u||e.push({type:"required",container:g});break;case"radio":case"checkbox":h=a(g).parents(".wpuf-fields"),u=a(h).find("input:checked").length,"yes"!==j||u||e.push({type:"required",container:g});break;case"file":var u=a(g).find("ul").children().length;"yes"!==j||u||e.push({type:"required",container:a(g).closest(".wpuf-fields")});break;case"email":if(v=a(g).val(),"yes"===j&&""===v){e.push({type:"required",container:g});break}""===v||WP_User_Frontend.isValidEmail(v)||e.push({type:"validation",container:g});break;case"url":var v=a(g).val();if("yes"===j&&""===v){e.push({type:"validation",container:g});break}""===v||WP_User_Frontend.isValidURL(v)||e.push({type:"validation",container:g});break;default:if(a(g).attr("id")&&a(g).attr("id").startsWith("wpuf-map")){var w=a(g).parents(".wpuf-form-google-map-container");mapField=a(w).find('input[id^="wpuf-map-lat"]'),j=a(mapField).data("required"),v=a(mapField).val(),"yes"===j&&""===v&&e.push({type:"required",container:w})}a(g).hasClass("br-widget")&&(h=a(g).parents(".wpuf-fields"),j=a(h).find("select.wpuf-ratings").data("required"),u=a(g).find(".br-selected").length,"yes"!==j||u||e.push({type:"required",container:g}))}}),e.length){var f,g=e.length;for(f=0;f<g;f++)WP_User_Frontend.markError(e[f].container,e[f].type,e[f].message);return WP_User_Frontend.addErrorNotice(c,"end"),a(e[0].container).focus(),!1}c.find('li.wpuf-el[style*="display: none"] input').each(function(b,c){switch(a(c).attr("type")){case"url":case"email":a(c).val("")}});var h=c.find(":disabled").removeAttr("disabled"),i=c.serialize();return h.attr("disabled","disabled"),i=i+"&"+d.join("&")},addErrorNotice:function(b,c){"bottom"==c?a(".wpuf-multistep-fieldset:visible").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>"):a(b).find("li.wpuf-submit").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c,d){if(a(b).closest("div").addClass("has-error"),c){var e="",f=a(b).data("label");switch(e=f||a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":e=e+" "+error_str_obj[c];break;case"limit":e="";break;case"custom":e=d}a(b).siblings(".wpuf-error-msg").remove(),a(b).closest(".wpuf-fields.wpuf-fields-address").length?(a(b).closest("div.wpuf-sub-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-sub-fields").append('<div class="wpuf-error-msg">'+e+"</div>")):(a(b).closest("div.wpuf-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-fields").append('<div class="wpuf-error-msg">'+e+"</div>"))}},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/){1}[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,20}(:[0-9]{1,20})?(\\/.*)?$").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:wpuf_frontend_upload.max_filesize,url:wpuf_frontend_upload.plupload.url,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('<div class="upload-item" id="'+b.id+'"><div class="progress progress-striped active"><div class="bar"></div></div></div>')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d,e,f){"no"===d?(a("textarea#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).change(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyDown.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyDown(a,c,b,e,f)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b,e,f)},100)})},1e3)},checkTinyMCERestriction:function(a,b,c){var d=0,e=void 0!==b[0]&&null!==b[0]?parseInt(b[0]):0,f=(void 0!==b[1]&&null!==b[1]&&b[1].trim(),void 0!==b[2]&&null!==b[2]&&b[2].trim(),void 0!==b[3]&&null!==b[3]?b[3].trim():""),g=void 0!==b[4]&&null!==b[4]?b[4].trim():"",h="";"word"===f?(d=WP_User_Frontend.editorLimit.tinymce.getStats(c).words,h="word_"+g):(d=WP_User_Frontend.editorLimit.tinymce.getStats(c).chars,h="char_"+g);wpuf_frontend["word_"+g];return 0!==d&&(d>e&&"max"===g?(WP_User_Frontend.markError(a,"limit"),jQuery(".mce-path-item.mce-last",c.container).html(wpuf_frontend[h]+" "+d+"/"+e),!0):d<e&&"min"===g?(WP_User_Frontend.markError(a,"limit"),jQuery(".mce-path-item.mce-last",c.container).html(wpuf_frontend[h]+" "+d+"/"+e),!0):void 0)},isRestrictionFailed:function(b){var c=a(b).data("id"),d=(a(b).data("type"),!1),e=null,f=0,g=0,h="";if(a(b).closest("div.wpuf-fields").hasClass("has-error")&&a(b).closest("div.wpuf-fields").removeClass("has-error"),"undefined"!=typeof tinyMCE&&null!==tinyMCE.get(c)&&(d=!0,e=tinyMCE.get(c),e.focus()),a(b).closest("li.wpuf-el").find("script").html()){var i=a(b).closest("li.wpuf-el").find("script").html();h=i.match(/(?:bind\()(.*?(?=\)))/)?i.match(/(?:bind\()(.*?(?=\)))/)[1].replace(/['"]/g,"").split(","):""}if(d)return WP_User_Frontend.editorLimit.checkTinyMCERestriction(b,h,e);var j=void 0!==h[0]&&null!==h[0]?parseInt(h[0]):0,k=void 0!==h[3]&&null!==h[3]?h[3].trim():"",l=void 0!==h[4]&&null!==h[4]?h[4].trim():"";if(f=a(b).val().trim().length,g=a(b).val().trim().split(" ").length,0===f)return!1;if("word"===k){if(g>j&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(g<j&&"min"===l)return WP_User_Frontend.markError(b,"limit"),!0}else{if(f>j&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(f<j&&"min"===l)return WP_User_Frontend.markError(b,"limit"),!0}return!1},tinymce:{getStats:function(a){var b=a.getBody(),c=tinymce.trim(b.innerText||b.textContent);return{chars:c.length,words:c.split(/[\w\u2019\'-]+/).length-1}},onKeyDown:function(b,c,d,e,f){var g=a(".wpuf-fields.wpuf_"+b.id);g.closest(".wpuf-fields").hasClass("has-error")&&g.closest(".wpuf-fields").removeClass("has-error");var h=WP_User_Frontend.editorLimit.tinymce.getStats(b).chars+1,i="";"word"===e?(h=WP_User_Frontend.editorLimit.tinymce.getStats(b).words,i="word_"+f):(h=WP_User_Frontend.editorLimit.tinymce.getStats(b).chars,i="char_"+f),d&&h>d&&"max"===f?(WP_User_Frontend.editorLimit.blockTyping(c),WP_User_Frontend.markError(g,"limit"),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend[i]+" "+h+"/"+d)):d&&h<d&&"min"===f?(WP_User_Frontend.markError(g,"limit"),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend[i]+" "+h+"/"+d)):jQuery(".mce-path-item.mce-last",b.container).html("")},onPaste:function(a,b,c){var d=a.getContent().split(" ").slice(0,c).join(" ");a.setContent(d),WP_User_Frontend.editorLimit.make_media_embed_code(d,a)}},textLimit:function(b,c,d,e){var f=a(this),g=f.val().length+1,h=f.val();f.closest(".wpuf-fields").hasClass("has-error")&&f.closest(".wpuf-fields").removeClass("has-error"),"word"===d&&(g=f.val().split(" ").length),c&&g>c&&"max"===e?(WP_User_Frontend.content_limit_message(f,d,e,c),WP_User_Frontend.editorLimit.blockTyping(b)):c&&g<c&&"min"===e?WP_User_Frontend.content_limit_message(f,d,e,c):f.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(""),"paste"===b.type&&(f.val(h.substring(0,c)),"word"===d&&f.val(h.slice(0,c).join(" ")))},blockTyping:function(b){-1!==a.inArray(b.keyCode,[46,8,9,27,13,110,190,189])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}},doUncheckRadioBtn:function(a){a.checked=!1},content_limit_message:function(a,b,c,d){WP_User_Frontend.markError(a,"limit");var e="";"word"===b&&(e=wpuf_frontend["word_"+c]+" "+d),"character"===b&&(e=wpuf_frontend["char_"+c]+" "+d),a.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(e)}},a(function(){if(WP_User_Frontend.init(),a("ul.wpuf-payment-gateways").on("click","input[type=radio]",function(b){a(".wpuf-payment-instruction").slideUp(250),a(this).parents("li").find(".wpuf-payment-instruction").slideDown(250)}),a("ul.wpuf-payment-gateways li").find("input[type=radio]").is(":checked")){a("ul.wpuf-payment-gateways li").find("input[type=radio]:checked").parents("li").find(".wpuf-payment-instruction").slideDown(250)}else a("ul.wpuf-payment-gateways li").first().find("input[type=radio]").click()}),a(function(){a('input[name="first_name"], input[name="last_name"]').on("change keyup",function(){var b,c=a.makeArray(a('input[name="first_name"], input[name="last_name"]').map(function(){if(b=a(this).val())return b})).join(" ");a('input[name="display_name"]').val(c)})}),a(function(a){a('.wpuf-form-add input[name="dokan_store_name"]').on("focusout",function(){var b=a(this).val().toLowerCase().replace(/-+/g,"").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");a('input[name="shopurl"]').val(b),a("#url-alart").text(b),a('input[name="shopurl"]').focus()}),a('.wpuf-form-add input[name="shopurl"]').keydown(function(b){a(this).val();-1!==a.inArray(b.keyCode,[46,8,9,27,13,91,109,110,173,189,190])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window);
|
assets/js/promotion.json
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
{
|
2 |
-
"key": "wpdashboard-
|
3 |
-
"start_date": "2022-
|
4 |
-
"end_date": "2022-
|
5 |
-
"title": "
|
6 |
-
"content": "
|
7 |
-
"action_url": "https://wedevs.com/wp-user-frontend-pro/pricing
|
8 |
"action_title": "Get Now"
|
9 |
}
|
1 |
{
|
2 |
+
"key": "wpdashboard-halloween-2022",
|
3 |
+
"start_date": "2022-10-27 8:00:00 EST",
|
4 |
+
"end_date": "2022-11-04 01:59:00 EST",
|
5 |
+
"title": "Deals too good to turn down.",
|
6 |
+
"content": "Get up to 40% OFF WP User Frontend this Halloween!",
|
7 |
+
"action_url": "https://wedevs.com/wp-user-frontend-pro/pricing/",
|
8 |
"action_title": "Get Now"
|
9 |
}
|
assets/js/upload.js
CHANGED
@@ -202,7 +202,7 @@
|
|
202 |
var self = this,
|
203 |
el = $(e.currentTarget);
|
204 |
|
205 |
-
swal({
|
206 |
text: wpuf_frontend_upload.confirmMsg,
|
207 |
type: 'warning',
|
208 |
showCancelButton: true,
|
202 |
var self = this,
|
203 |
el = $(e.currentTarget);
|
204 |
|
205 |
+
new swal({
|
206 |
text: wpuf_frontend_upload.confirmMsg,
|
207 |
type: 'warning',
|
208 |
showCancelButton: true,
|
assets/js/upload.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(a){window.WPUF_Uploader=function(b,c,d,e,f,g){if(this.removed_files=[],this.container=c,this.browse_button=b,this.max=d||1,this.count=a("#"+c).find(".wpuf-attachment-list > li").length,this.perFileCount=0,this.UploadedFiles=0,a("#"+b).length)return a("ul.wpuf-attachment-list").sortable({placeholder:"highlight"}),a("ul.wpuf-attachment-list").disableSelection(),this.uploader=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:c,multipart:!0,multipart_params:{action:"wpuf_upload_file",form_id:a("#"+b).data("form_id")},urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:g+"kb",url:wpuf_frontend_upload.plupload.url+"&type="+e,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:f}]}),this.uploader.bind("Init",a.proxy(this,"init")),this.uploader.bind("FilesAdded",a.proxy(this,"added")),this.uploader.bind("QueueChanged",a.proxy(this,"upload")),this.uploader.bind("UploadProgress",a.proxy(this,"progress")),this.uploader.bind("Error",a.proxy(this,"error")),this.uploader.bind("FileUploaded",a.proxy(this,"uploaded")),this.uploader.init(),a("#"+c).on("click","a.attachment-delete",a.proxy(this.removeAttachment,this)),this.uploader},WPUF_Uploader.prototype={init:function(b,c){this.showHide(),a("#"+this.container).prepend('<div class="wpuf-file-warning"></div>')},showHide:function(){if(this.count>=this.max)return this.count,this.max,a("#"+this.container+" .wpuf-file-warning").html(wpuf_frontend_upload.warning),void a("#"+this.container).find(".file-selector").hide();a("#"+this.container+" .wpuf-file-warning").html(""),a("#"+this.container).find(".file-selector").show()},added:function(b,c){var d=a("#"+this.container).find(".wpuf-attachment-upload-filelist");this.showHide(),a.each(c,function(b,c){a(".wpuf-submit-button").attr("disabled","disabled"),d.append('<div class="upload-item" id="'+c.id+'"><div class="progress progress-striped active"><div class="bar"></div></div><div class="filename original">'+c.name+" ("+plupload.formatSize(c.size)+") <b></b></div></div>")}),b.refresh(),b.start()},upload:function(a){this.count=a.files.length-this.removed_files.length,this.showHide()},progress:function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")},error:function(b,c){a("#"+this.container).find("#"+c.file.id).remove();var d="";switch(c.code){case-600:d=wpuf_frontend_upload.plupload.size_error;break;case-601:d=wpuf_frontend_upload.plupload.type_error;break;default:d="Error #"+c.code+": "+c.message}alert(d),this.count-=1,this.showHide(),this.uploader.refresh()},uploaded:function(b,c,d){try{var e=a.parseJSON(d.response)}catch(a){var f=!0}var g=this;if(a("#"+c.id+" b").html("100%"),a("#"+c.id).remove(),f){this.perFileCount++,this.UploadedFiles++;var h=a("#"+this.container).find(".wpuf-attachment-list");if(h.append(d.response),this.perFileCount>this.max){var i=a(".wpuf-image-wrap:last a.attachment-delete",h).data("attach-id");g.removeExtraAttachment(i),a(".wpuf-image-wrap",h).last().remove(),this.perFileCount--}}else alert(e.data.replace(/(<([^>]+)>)/gi,"")),b.files.pop(),this.count-=1,this.showHide();var j=this.UploadedFiles,k=b.files.length;if(this.count>=this.max&&a("#"+this.container).find(".file-selector").hide(),k===j){if("undefined"!=typeof grecaptcha&&a(".wpuf-form-add #g-recaptcha-response").length&&!grecaptcha.getResponse().length)return;a(".wpuf-submit-button").removeAttr("disabled")}},removeAttachment:function(b){b.preventDefault();var c=this,d=a(b.currentTarget);swal({text:wpuf_frontend_upload.confirmMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend_upload.delete_it,cancelButtonText:wpuf_frontend_upload.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(){var a={attach_id:d.data("attach-id"),nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};c.removed_files.push(a),jQuery("#del_attach").val(d.data("attach-id")),jQuery.post(wpuf_frontend_upload.ajaxurl,a,function(){c.perFileCount--,d.parent().parent().remove(),c.count-=1,c.showHide(),c.uploader.refresh()})})},removeExtraAttachment:function(a){var b=this,c={attach_id:a,nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};this.removed_files.push(c),jQuery.post(wpuf_frontend_upload.ajaxurl,c,function(){b.count-=1,b.showHide(),b.uploader.refresh()})}}}(jQuery);
|
1 |
+
!function(a){window.WPUF_Uploader=function(b,c,d,e,f,g){if(this.removed_files=[],this.container=c,this.browse_button=b,this.max=d||1,this.count=a("#"+c).find(".wpuf-attachment-list > li").length,this.perFileCount=0,this.UploadedFiles=0,a("#"+b).length)return a("ul.wpuf-attachment-list").sortable({placeholder:"highlight"}),a("ul.wpuf-attachment-list").disableSelection(),this.uploader=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:c,multipart:!0,multipart_params:{action:"wpuf_upload_file",form_id:a("#"+b).data("form_id")},urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:g+"kb",url:wpuf_frontend_upload.plupload.url+"&type="+e,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:f}]}),this.uploader.bind("Init",a.proxy(this,"init")),this.uploader.bind("FilesAdded",a.proxy(this,"added")),this.uploader.bind("QueueChanged",a.proxy(this,"upload")),this.uploader.bind("UploadProgress",a.proxy(this,"progress")),this.uploader.bind("Error",a.proxy(this,"error")),this.uploader.bind("FileUploaded",a.proxy(this,"uploaded")),this.uploader.init(),a("#"+c).on("click","a.attachment-delete",a.proxy(this.removeAttachment,this)),this.uploader},WPUF_Uploader.prototype={init:function(b,c){this.showHide(),a("#"+this.container).prepend('<div class="wpuf-file-warning"></div>')},showHide:function(){if(this.count>=this.max)return this.count,this.max,a("#"+this.container+" .wpuf-file-warning").html(wpuf_frontend_upload.warning),void a("#"+this.container).find(".file-selector").hide();a("#"+this.container+" .wpuf-file-warning").html(""),a("#"+this.container).find(".file-selector").show()},added:function(b,c){var d=a("#"+this.container).find(".wpuf-attachment-upload-filelist");this.showHide(),a.each(c,function(b,c){a(".wpuf-submit-button").attr("disabled","disabled"),d.append('<div class="upload-item" id="'+c.id+'"><div class="progress progress-striped active"><div class="bar"></div></div><div class="filename original">'+c.name+" ("+plupload.formatSize(c.size)+") <b></b></div></div>")}),b.refresh(),b.start()},upload:function(a){this.count=a.files.length-this.removed_files.length,this.showHide()},progress:function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")},error:function(b,c){a("#"+this.container).find("#"+c.file.id).remove();var d="";switch(c.code){case-600:d=wpuf_frontend_upload.plupload.size_error;break;case-601:d=wpuf_frontend_upload.plupload.type_error;break;default:d="Error #"+c.code+": "+c.message}alert(d),this.count-=1,this.showHide(),this.uploader.refresh()},uploaded:function(b,c,d){try{var e=a.parseJSON(d.response)}catch(a){var f=!0}var g=this;if(a("#"+c.id+" b").html("100%"),a("#"+c.id).remove(),f){this.perFileCount++,this.UploadedFiles++;var h=a("#"+this.container).find(".wpuf-attachment-list");if(h.append(d.response),this.perFileCount>this.max){var i=a(".wpuf-image-wrap:last a.attachment-delete",h).data("attach-id");g.removeExtraAttachment(i),a(".wpuf-image-wrap",h).last().remove(),this.perFileCount--}}else alert(e.data.replace(/(<([^>]+)>)/gi,"")),b.files.pop(),this.count-=1,this.showHide();var j=this.UploadedFiles,k=b.files.length;if(this.count>=this.max&&a("#"+this.container).find(".file-selector").hide(),k===j){if("undefined"!=typeof grecaptcha&&a(".wpuf-form-add #g-recaptcha-response").length&&!grecaptcha.getResponse().length)return;a(".wpuf-submit-button").removeAttr("disabled")}},removeAttachment:function(b){b.preventDefault();var c=this,d=a(b.currentTarget);new swal({text:wpuf_frontend_upload.confirmMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend_upload.delete_it,cancelButtonText:wpuf_frontend_upload.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(){var a={attach_id:d.data("attach-id"),nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};c.removed_files.push(a),jQuery("#del_attach").val(d.data("attach-id")),jQuery.post(wpuf_frontend_upload.ajaxurl,a,function(){c.perFileCount--,d.parent().parent().remove(),c.count-=1,c.showHide(),c.uploader.refresh()})})},removeExtraAttachment:function(a){var b=this,c={attach_id:a,nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};this.removed_files.push(c),jQuery.post(wpuf_frontend_upload.ajaxurl,c,function(){b.count-=1,b.showHide(),b.uploader.refresh()})}}}(jQuery);
|
assets/js/wpuf-admin.js
CHANGED
@@ -44,7 +44,7 @@ jQuery(function($) {
|
|
44 |
'post_id' : post_id
|
45 |
},
|
46 |
success:function(data) {
|
47 |
-
swal({
|
48 |
type: 'success',
|
49 |
title: wpuf_admin_script.cleared_schedule_lock,
|
50 |
showConfirmButton: false,
|
@@ -57,4 +57,48 @@ jQuery(function($) {
|
|
57 |
});
|
58 |
$(this).closest("p").hide();
|
59 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
});
|
44 |
'post_id' : post_id
|
45 |
},
|
46 |
success:function(data) {
|
47 |
+
new swal({
|
48 |
type: 'success',
|
49 |
title: wpuf_admin_script.cleared_schedule_lock,
|
50 |
showConfirmButton: false,
|
57 |
});
|
58 |
$(this).closest("p").hide();
|
59 |
});
|
60 |
+
|
61 |
+
// override settings tab preventDefault action on lib/class.settings-api.php for tooltip link
|
62 |
+
$('.button-upgrade-to-pro').click(function(e) {
|
63 |
+
e.stopPropagation();
|
64 |
+
});
|
65 |
+
|
66 |
+
// show tooltips on crown icons
|
67 |
+
$('th span.pro-icon, td label span.pro-icon-title, th label span.pro-icon-title, a span.pro-icon-title').on('mouseover', function() {
|
68 |
+
let tooltip = $( '.wpuf-pro-field-tooltip' );
|
69 |
+
let windowWidth = $( window ).width();
|
70 |
+
let windowHeight = $( window ).height();
|
71 |
+
let iconBounding = $( this )[0].getBoundingClientRect();
|
72 |
+
let spaceTop = iconBounding.y;
|
73 |
+
let iconBoundingRight = iconBounding.right;
|
74 |
+
let iconBoundingBottom = iconBounding.bottom;
|
75 |
+
let spaceRight = windowWidth - iconBoundingRight;
|
76 |
+
let spaceBottom = windowHeight - iconBoundingBottom;
|
77 |
+
let tooltipHeight = tooltip.outerHeight();
|
78 |
+
let tooltipWidth = tooltip.outerWidth();
|
79 |
+
|
80 |
+
if ( spaceTop > tooltipHeight ) {
|
81 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'left', '50%' );
|
82 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'top', '100%' );
|
83 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'transform', 'initial' );
|
84 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'left', '50%' );
|
85 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'top', '0' );
|
86 |
+
} else if ( spaceTop < tooltipHeight && spaceRight > tooltipWidth ) {
|
87 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'left', '-5px' );
|
88 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'top', '22px' );
|
89 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'transform', 'rotate(90deg)' );
|
90 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'left', '185px' );
|
91 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'top', '310px' );
|
92 |
+
$( 'a span.pro-icon-title .wpuf-pro-field-tooltip' ).css( 'left', '170px' );
|
93 |
+
$( 'a span.pro-icon-title .wpuf-pro-field-tooltip i' ).css( 'top', '15px' );
|
94 |
+
} else if ( spaceBottom > tooltipHeight ) {
|
95 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'left', '10px' );
|
96 |
+
$( '.wpuf-pro-field-tooltip' ).css( 'top', '360px' );
|
97 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'top', '-10px' );
|
98 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'left', '150px' );
|
99 |
+
$( '.wpuf-pro-field-tooltip i' ).css( 'transform', 'rotate(180deg)' );
|
100 |
+
}
|
101 |
+
|
102 |
+
tooltip.appendTo( this );
|
103 |
+
});
|
104 |
});
|
assets/js/wpuf-form-builder-components.js
CHANGED
@@ -104,7 +104,7 @@ Vue.component('builder-stage', {
|
|
104 |
|
105 |
// check if these are already inserted
|
106 |
if ( this.isSingleInstance( field.template ) && this.containsField( field.template ) ) {
|
107 |
-
swal({
|
108 |
title: "Oops...",
|
109 |
text: "You already have this field in the form"
|
110 |
});
|
@@ -117,7 +117,7 @@ Vue.component('builder-stage', {
|
|
117 |
delete_field: function(index) {
|
118 |
var self = this;
|
119 |
|
120 |
-
swal({
|
121 |
text: self.i18n.delete_field_warn_msg,
|
122 |
type: 'warning',
|
123 |
showCancelButton: true,
|
@@ -126,10 +126,10 @@ Vue.component('builder-stage', {
|
|
126 |
cancelButtonText: self.i18n.no_cancel_it,
|
127 |
confirmButtonClass: 'btn btn-success',
|
128 |
cancelButtonClass: 'btn btn-danger',
|
129 |
-
}).then(
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
});
|
134 |
},
|
135 |
|
@@ -387,7 +387,7 @@ Vue.component('field-option-data', {
|
|
387 |
i = 0;
|
388 |
|
389 |
for (i = 0; i < new_opts.length; i++) {
|
390 |
-
options[new_opts[i].value] = new_opts[i].label;
|
391 |
}
|
392 |
|
393 |
this.update_value('options', options);
|
@@ -945,7 +945,7 @@ Vue.component('form-column_field', {
|
|
945 |
};
|
946 |
|
947 |
if (this.isAllowedInClolumnField(data.field_template)) {
|
948 |
-
swal({
|
949 |
title: "Oops...",
|
950 |
text: "You cannot add this field as inner column field"
|
951 |
});
|
@@ -954,7 +954,7 @@ Vue.component('form-column_field', {
|
|
954 |
|
955 |
// check if these are already inserted
|
956 |
if ( this.isSingleInstance( data.field_template ) && this.containsField( data.field_template ) ) {
|
957 |
-
swal({
|
958 |
title: "Oops...",
|
959 |
text: "You already have this field in the form"
|
960 |
});
|
@@ -1022,7 +1022,7 @@ Vue.component('form-column_field', {
|
|
1022 |
|
1023 |
// check if the field is allowed to duplicate
|
1024 |
if ( self.isSingleInstance( field.template ) ) {
|
1025 |
-
swal({
|
1026 |
title: "Oops...",
|
1027 |
text: "You already have this field in the form"
|
1028 |
});
|
@@ -1040,7 +1040,7 @@ Vue.component('form-column_field', {
|
|
1040 |
fromColumn: fromColumn
|
1041 |
};
|
1042 |
|
1043 |
-
swal({
|
1044 |
text: self.i18n.delete_field_warn_msg,
|
1045 |
type: 'warning',
|
1046 |
showCancelButton: true,
|
@@ -1049,10 +1049,10 @@ Vue.component('form-column_field', {
|
|
1049 |
cancelButtonText: self.i18n.no_cancel_it,
|
1050 |
confirmButtonClass: 'btn btn-success',
|
1051 |
cancelButtonClass: 'btn btn-danger',
|
1052 |
-
}).then(
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
});
|
1057 |
},
|
1058 |
|
@@ -1263,7 +1263,7 @@ Vue.component('form-fields', {
|
|
1263 |
alert_pro_feature: function (field) {
|
1264 |
var title = this.field_settings[field].title;
|
1265 |
|
1266 |
-
swal({
|
1267 |
title: '<i class="fa fa-lock"></i> ' + title + ' <br>' + this.i18n.is_a_pro_feature,
|
1268 |
text: this.i18n.pro_feature_msg,
|
1269 |
type: '',
|
104 |
|
105 |
// check if these are already inserted
|
106 |
if ( this.isSingleInstance( field.template ) && this.containsField( field.template ) ) {
|
107 |
+
new swal({
|
108 |
title: "Oops...",
|
109 |
text: "You already have this field in the form"
|
110 |
});
|
117 |
delete_field: function(index) {
|
118 |
var self = this;
|
119 |
|
120 |
+
(new swal({
|
121 |
text: self.i18n.delete_field_warn_msg,
|
122 |
type: 'warning',
|
123 |
showCancelButton: true,
|
126 |
cancelButtonText: self.i18n.no_cancel_it,
|
127 |
confirmButtonClass: 'btn btn-success',
|
128 |
cancelButtonClass: 'btn btn-danger',
|
129 |
+
})).then((result) => {
|
130 |
+
if (result.isConfirmed) {
|
131 |
+
self.$store.commit('delete_form_field_element', index);
|
132 |
+
}
|
133 |
});
|
134 |
},
|
135 |
|
387 |
i = 0;
|
388 |
|
389 |
for (i = 0; i < new_opts.length; i++) {
|
390 |
+
options['' + new_opts[i].value] = new_opts[i].label;
|
391 |
}
|
392 |
|
393 |
this.update_value('options', options);
|
945 |
};
|
946 |
|
947 |
if (this.isAllowedInClolumnField(data.field_template)) {
|
948 |
+
new swal({
|
949 |
title: "Oops...",
|
950 |
text: "You cannot add this field as inner column field"
|
951 |
});
|
954 |
|
955 |
// check if these are already inserted
|
956 |
if ( this.isSingleInstance( data.field_template ) && this.containsField( data.field_template ) ) {
|
957 |
+
new swal({
|
958 |
title: "Oops...",
|
959 |
text: "You already have this field in the form"
|
960 |
});
|
1022 |
|
1023 |
// check if the field is allowed to duplicate
|
1024 |
if ( self.isSingleInstance( field.template ) ) {
|
1025 |
+
new swal({
|
1026 |
title: "Oops...",
|
1027 |
text: "You already have this field in the form"
|
1028 |
});
|
1040 |
fromColumn: fromColumn
|
1041 |
};
|
1042 |
|
1043 |
+
(new swal({
|
1044 |
text: self.i18n.delete_field_warn_msg,
|
1045 |
type: 'warning',
|
1046 |
showCancelButton: true,
|
1049 |
cancelButtonText: self.i18n.no_cancel_it,
|
1050 |
confirmButtonClass: 'btn btn-success',
|
1051 |
cancelButtonClass: 'btn btn-danger',
|
1052 |
+
})).then((result) => {
|
1053 |
+
if (result.isConfirmed) {
|
1054 |
+
self.$store.commit('delete_form_field_element', index);
|
1055 |
+
}
|
1056 |
});
|
1057 |
},
|
1058 |
|
1263 |
alert_pro_feature: function (field) {
|
1264 |
var title = this.field_settings[field].title;
|
1265 |
|
1266 |
+
new swal({
|
1267 |
title: '<i class="fa fa-lock"></i> ' + title + ' <br>' + this.i18n.is_a_pro_feature,
|
1268 |
text: this.i18n.pro_feature_msg,
|
1269 |
type: '',
|
assets/js/wpuf-form-builder-mixins.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
;(function($) {
|
2 |
'use strict';
|
3 |
|
|
|
4 |
wpuf_mixins.add_form_field = {
|
5 |
methods: {
|
6 |
add_form_field: function (field_template) {
|
@@ -19,7 +20,7 @@ wpuf_mixins.add_form_field = {
|
|
19 |
|
20 |
// check if these are already inserted
|
21 |
if ( this.isSingleInstance( field_template ) && this.containsField( field_template ) ) {
|
22 |
-
|
23 |
title: "Oops...",
|
24 |
text: "You already have this field in the form"
|
25 |
});
|
@@ -133,7 +134,7 @@ Vue.mixin({
|
|
133 |
cancelButtonText: this.i18n.cancel,
|
134 |
}, settings);
|
135 |
|
136 |
-
swal(settings, callback);
|
137 |
},
|
138 |
|
139 |
is_failed_to_validate: function (template) {
|
1 |
;(function($) {
|
2 |
'use strict';
|
3 |
|
4 |
+
|
5 |
wpuf_mixins.add_form_field = {
|
6 |
methods: {
|
7 |
add_form_field: function (field_template) {
|
20 |
|
21 |
// check if these are already inserted
|
22 |
if ( this.isSingleInstance( field_template ) && this.containsField( field_template ) ) {
|
23 |
+
Swal.fire({
|
24 |
title: "Oops...",
|
25 |
text: "You already have this field in the form"
|
26 |
});
|
134 |
cancelButtonText: this.i18n.cancel,
|
135 |
}, settings);
|
136 |
|
137 |
+
new swal(settings, callback);
|
138 |
},
|
139 |
|
140 |
is_failed_to_validate: function (template) {
|
assets/js/wpuf-form-builder.js
CHANGED
@@ -173,7 +173,7 @@
|
|
173 |
html += '<img src="' + image_two + '" alt="custom field data">';
|
174 |
html += '</div>';
|
175 |
html += '</div>';
|
176 |
-
swal({
|
177 |
title: __( 'Do you want to show custom field data inside your post ?', 'wp-user-frontend' ),
|
178 |
html: html,
|
179 |
showCancelButton: true,
|
173 |
html += '<img src="' + image_two + '" alt="custom field data">';
|
174 |
html += '</div>';
|
175 |
html += '</div>';
|
176 |
+
new swal({
|
177 |
title: __( 'Do you want to show custom field data inside your post ?', 'wp-user-frontend' ),
|
178 |
html: html,
|
179 |
showCancelButton: true,
|
assets/less/admin.less
CHANGED
@@ -181,8 +181,9 @@ span {
|
|
181 |
|
182 |
a.nav-tab {
|
183 |
float: none;
|
184 |
-
display:
|
185 |
-
|
|
|
186 |
border: none;
|
187 |
padding: 14px;
|
188 |
border-bottom: 1px solid #c8d7e1;
|
@@ -191,7 +192,7 @@ span {
|
|
191 |
border-right: 1px solid #c8d7e1;
|
192 |
color: #444;
|
193 |
text-decoration: none;
|
194 |
-
margin
|
195 |
background-color: #f1f1f1;
|
196 |
|
197 |
&.nav-tab-active {
|
@@ -242,13 +243,18 @@ span {
|
|
242 |
&#user_directory-tab .dashicons {
|
243 |
color: #e74c3c;
|
244 |
}
|
|
|
|
|
|
|
|
|
245 |
}
|
246 |
}
|
247 |
|
248 |
.metabox-holder {
|
249 |
flex: 3;
|
250 |
-
margin-left: 30px;
|
251 |
margin-bottom: 30px;
|
|
|
|
|
252 |
|
253 |
h2 {
|
254 |
border-bottom: 1px solid #c8d7e1;
|
@@ -831,6 +837,174 @@ ul.wpuf-form{
|
|
831 |
display: none;
|
832 |
}
|
833 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
834 |
.wpuf-xmp-tag{
|
835 |
display: inline;
|
836 |
}
|
181 |
|
182 |
a.nav-tab {
|
183 |
float: none;
|
184 |
+
display: flex;
|
185 |
+
-webkit-align-items: center;
|
186 |
+
align-items: center;
|
187 |
border: none;
|
188 |
padding: 14px;
|
189 |
border-bottom: 1px solid #c8d7e1;
|
192 |
border-right: 1px solid #c8d7e1;
|
193 |
color: #444;
|
194 |
text-decoration: none;
|
195 |
+
margin: 0 -1px 0 0;
|
196 |
background-color: #f1f1f1;
|
197 |
|
198 |
&.nav-tab-active {
|
243 |
&#user_directory-tab .dashicons {
|
244 |
color: #e74c3c;
|
245 |
}
|
246 |
+
|
247 |
+
.pro-icon-title {
|
248 |
+
margin-left: auto;
|
249 |
+
}
|
250 |
}
|
251 |
}
|
252 |
|
253 |
.metabox-holder {
|
254 |
flex: 3;
|
|
|
255 |
margin-bottom: 30px;
|
256 |
+
padding-left: 30px;
|
257 |
+
position: relative;
|
258 |
|
259 |
h2 {
|
260 |
border-bottom: 1px solid #c8d7e1;
|
837 |
display: none;
|
838 |
}
|
839 |
|
840 |
+
tr.pro-preview td {
|
841 |
+
display: inline-block;
|
842 |
+
position: relative;
|
843 |
+
}
|
844 |
+
.pro-preview-html {
|
845 |
+
position: relative;
|
846 |
+
}
|
847 |
+
tr.pro-preview td:hover .pro-field-overlay,
|
848 |
+
.pro-preview-html:hover .pro-field-overlay {
|
849 |
+
-webkit-opacity: 1;
|
850 |
+
opacity: 1;
|
851 |
+
display: block;
|
852 |
+
}
|
853 |
+
tr.pro-preview .pro-field-overlay,
|
854 |
+
.pro-preview-html .pro-field-overlay,
|
855 |
+
.metabox-holder .pro-field-overlay {
|
856 |
+
position: absolute;
|
857 |
+
width: 100%;
|
858 |
+
height: 100%;
|
859 |
+
background: rgba(0, 0, 0, .4);
|
860 |
+
border-radius: 5px;
|
861 |
+
top: 0;
|
862 |
+
left: 0;
|
863 |
+
display: none;
|
864 |
+
}
|
865 |
+
tr.pro-preview-html th {
|
866 |
+
width: 50%;
|
867 |
+
}
|
868 |
+
.pro-preview-html:hover ~ .pro-field-overlay {
|
869 |
+
display: block;
|
870 |
+
}
|
871 |
+
.pro-field-overlay:hover {
|
872 |
+
display: block;
|
873 |
+
}
|
874 |
+
a.wpuf-button.button-upgrade-to-pro {
|
875 |
+
padding: 10px 15px;
|
876 |
+
background: #ff9000;
|
877 |
+
color: #fff;
|
878 |
+
min-height: auto;
|
879 |
+
border-radius: 5px;
|
880 |
+
text-decoration: none;
|
881 |
+
}
|
882 |
+
.pro-field-overlay a.wpuf-button.button-upgrade-to-pro {
|
883 |
+
position: absolute;
|
884 |
+
top: 50%;
|
885 |
+
left: 50%;
|
886 |
+
-webkit-transform: translate(-50%, -50%);
|
887 |
+
transform: translate(-50%, -50%);
|
888 |
+
}
|
889 |
+
a.wpuf-button.button-upgrade-to-pro:hover {
|
890 |
+
background: #d07805;
|
891 |
+
}
|
892 |
+
span.pro-icon svg {
|
893 |
+
height: 1em;
|
894 |
+
}
|
895 |
+
span.pro-icon.icon-white svg path {
|
896 |
+
fill: #fff;
|
897 |
+
}
|
898 |
+
label span.pro-icon svg path {
|
899 |
+
fill: #fB9a28;
|
900 |
+
}
|
901 |
+
img.profile-header, img.user-listing {
|
902 |
+
display: block;
|
903 |
+
width: 50%;
|
904 |
+
background: #fff;
|
905 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
906 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
907 |
+
margin: -25px 0 15px 30px;
|
908 |
+
position: relative;
|
909 |
+
line-height: 0;
|
910 |
+
border: 1px solid #ededed;
|
911 |
+
padding: 4px;
|
912 |
+
-webkit-filter: grayscale(100%) opacity(.3); /* Safari 6.0 - 9.0 */
|
913 |
+
filter: grayscale(100%) opacity(.3);
|
914 |
+
}
|
915 |
+
img.profile-header:hover, input[type=radio]:checked + img.profile-header, img.profile-header.active,
|
916 |
+
img.user-listing:hover, input[type=radio]:checked + img.user-listing, img.user-listing.active {
|
917 |
+
-webkit-filter: grayscale(0%) opacity(1) drop-shadow(8px 8px 5px #ccc); /* Safari 6.0 - 9.0 */
|
918 |
+
filter: grayscale(0%) opacity(1) drop-shadow(8px 8px 5px #ccc);
|
919 |
+
}
|
920 |
+
.wpuf-pro-field-tooltip {
|
921 |
+
background: #000;
|
922 |
+
width: max-content;
|
923 |
+
padding: 25px 50px 20px 20px;
|
924 |
+
border-radius: 5px;
|
925 |
+
color: #fff;
|
926 |
+
position: absolute;
|
927 |
+
top: 0;
|
928 |
+
left: 50%;
|
929 |
+
-webkit-transform: translate(-50%, -100%);
|
930 |
+
transform: translate(-50%, -100%);
|
931 |
+
-webkit-box-sizing: border-box;
|
932 |
+
box-sizing: border-box;
|
933 |
+
z-index: 99999;
|
934 |
+
display: none;
|
935 |
+
-webkit-opacity: 0;
|
936 |
+
opacity: 0;
|
937 |
+
-webkit-transition: opacity 0.8s;
|
938 |
+
transition: opacity 0.8s;
|
939 |
+
}
|
940 |
+
h3.tooltip-header {
|
941 |
+
color: #fff;
|
942 |
+
}
|
943 |
+
.wpuf-pro-field-tooltip ul li span.tooltip-check svg path {
|
944 |
+
fill: #139F84;
|
945 |
+
}
|
946 |
+
.wpuf-pro-field-tooltip ul {
|
947 |
+
margin-bottom: 30px;
|
948 |
+
}
|
949 |
+
.wpuf-pro-field-tooltip ul li {
|
950 |
+
font-size: 1.2em;
|
951 |
+
line-height: 1.5em;
|
952 |
+
font-weight: 400;
|
953 |
+
}
|
954 |
+
span.tooltip-check {
|
955 |
+
margin-right: 10px;
|
956 |
+
}
|
957 |
+
.wpuf-pro-field-tooltip .pro-link {
|
958 |
+
display: flex;
|
959 |
+
-webkit-justify-content: center;
|
960 |
+
justify-content: center;
|
961 |
+
margin-left: 25px;
|
962 |
+
}
|
963 |
+
.wpuf-pro-field-tooltip i {
|
964 |
+
position: absolute;
|
965 |
+
top: 100%;
|
966 |
+
left: 50%;
|
967 |
+
margin-left: -12px;
|
968 |
+
width: 24px;
|
969 |
+
height: 12px;
|
970 |
+
overflow: hidden;
|
971 |
+
}
|
972 |
+
.wpuf-pro-field-tooltip i::after {
|
973 |
+
content: '';
|
974 |
+
position: absolute;
|
975 |
+
width: 12px;
|
976 |
+
height: 12px;
|
977 |
+
left: 50%;
|
978 |
+
-webkit-transform: translate(-50%, -50%) rotate(45deg);
|
979 |
+
transform: translate(-50%, -50%) rotate(45deg);
|
980 |
+
background-color: #000;
|
981 |
+
}
|
982 |
+
tr.pro-preview span.pro-icon,
|
983 |
+
tr span.pro-icon-title {
|
984 |
+
position: relative;
|
985 |
+
padding-top: 10px;
|
986 |
+
}
|
987 |
+
|
988 |
+
a span.pro-icon-title {
|
989 |
+
position: relative;
|
990 |
+
}
|
991 |
+
|
992 |
+
a span.pro-icon-title wpuf-pro-field-tooltip {
|
993 |
+
left: 185px;
|
994 |
+
}
|
995 |
+
|
996 |
+
span.pro-icon-title:hover .wpuf-pro-field-tooltip {
|
997 |
+
display: block;
|
998 |
+
-webkit-opacity: 1;
|
999 |
+
opacity: 1;
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
span.pro-icon:hover .wpuf-pro-field-tooltip {
|
1003 |
+
display: block;
|
1004 |
+
-webkit-opacity: 1;
|
1005 |
+
opacity: 1;
|
1006 |
+
}
|
1007 |
+
|
1008 |
.wpuf-xmp-tag{
|
1009 |
display: inline;
|
1010 |
}
|
assets/less/frontend-forms.less
CHANGED
@@ -212,6 +212,11 @@ body {
|
|
212 |
}
|
213 |
}
|
214 |
|
|
|
|
|
|
|
|
|
|
|
215 |
.wpuf-submit{
|
216 |
|
217 |
input[type=submit] {
|
@@ -1041,10 +1046,6 @@ ul.wpuf_packs {
|
|
1041 |
}
|
1042 |
}
|
1043 |
|
1044 |
-
.password[type="text"]{
|
1045 |
-
display: none;
|
1046 |
-
}
|
1047 |
-
|
1048 |
table.wpuf-table {
|
1049 |
border: 1px solid #E7E7E7;
|
1050 |
margin: 0 0px 10px 0;
|
@@ -1213,16 +1214,33 @@ table.wpuf-table {
|
|
1213 |
display: block;
|
1214 |
}
|
1215 |
|
1216 |
-
.wpuf-multistep-
|
1217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1218 |
position: absolute;
|
1219 |
-
bottom:
|
|
|
1220 |
}
|
1221 |
-
|
1222 |
-
|
|
|
|
|
|
|
1223 |
}
|
1224 |
-
.wpuf-
|
1225 |
-
|
|
|
|
|
1226 |
}
|
1227 |
}
|
1228 |
|
212 |
}
|
213 |
}
|
214 |
|
215 |
+
.wpuf-fields-inline {
|
216 |
+
display: flex;
|
217 |
+
justify-content: space-between;
|
218 |
+
}
|
219 |
+
|
220 |
.wpuf-submit{
|
221 |
|
222 |
input[type=submit] {
|
1046 |
}
|
1047 |
}
|
1048 |
|
|
|
|
|
|
|
|
|
1049 |
table.wpuf-table {
|
1050 |
border: 1px solid #E7E7E7;
|
1051 |
margin: 0 0px 10px 0;
|
1214 |
display: block;
|
1215 |
}
|
1216 |
|
1217 |
+
button.wpuf-multistep-next-btn.btn.btn-primary {
|
1218 |
+
position: absolute;
|
1219 |
+
bottom: 0;
|
1220 |
+
right: 0;
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
button.wpuf-multistep-prev-btn.btn.btn-primary {
|
1224 |
+
position: absolute;
|
1225 |
+
bottom: 0;
|
1226 |
+
left: 0;
|
1227 |
+
}
|
1228 |
+
|
1229 |
+
a#wpuf-post-draft {
|
1230 |
position: absolute;
|
1231 |
+
bottom: 0;
|
1232 |
+
right: ~"calc(50% - 35px)";
|
1233 |
}
|
1234 |
+
|
1235 |
+
span.wpuf-draft-saved {
|
1236 |
+
position: absolute;
|
1237 |
+
bottom: 0;
|
1238 |
+
right: ~"calc(50% - 150px)";
|
1239 |
}
|
1240 |
+
span.wpuf-loading {
|
1241 |
+
position: absolute;
|
1242 |
+
bottom: 8px;
|
1243 |
+
right: ~"calc(50% - 60px)";
|
1244 |
}
|
1245 |
}
|
1246 |
|
assets/less/metabox-tabs.less
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
|
9 |
nav {
|
10 |
background-color: #f1f1f1;
|
11 |
-
min-width:
|
12 |
border-right: 1px solid #e5e5e5;
|
13 |
|
14 |
ul,
|
8 |
|
9 |
nav {
|
10 |
background-color: #f1f1f1;
|
11 |
+
min-width: max-content;
|
12 |
border-right: 1px solid #e5e5e5;
|
13 |
|
14 |
ul,
|
assets/vendor/sweetalert2/dist/sweetalert2.common.js
DELETED
@@ -1,1635 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
* sweetalert2 v6.6.4
|
3 |
-
* Released under the MIT License.
|
4 |
-
*/
|
5 |
-
'use strict';
|
6 |
-
|
7 |
-
var defaultParams = {
|
8 |
-
title: '',
|
9 |
-
titleText: '',
|
10 |
-
text: '',
|
11 |
-
html: '',
|
12 |
-
type: null,
|
13 |
-
customClass: '',
|
14 |
-
target: 'body',
|
15 |
-
animation: true,
|
16 |
-
allowOutsideClick: true,
|
17 |
-
allowEscapeKey: true,
|
18 |
-
allowEnterKey: true,
|
19 |
-
showConfirmButton: true,
|
20 |
-
showCancelButton: false,
|
21 |
-
preConfirm: null,
|
22 |
-
confirmButtonText: 'OK',
|
23 |
-
confirmButtonColor: '#3085d6',
|
24 |
-
confirmButtonClass: null,
|
25 |
-
cancelButtonText: 'Cancel',
|
26 |
-
cancelButtonColor: '#aaa',
|
27 |
-
cancelButtonClass: null,
|
28 |
-
buttonsStyling: true,
|
29 |
-
reverseButtons: false,
|
30 |
-
focusCancel: false,
|
31 |
-
showCloseButton: false,
|
32 |
-
showLoaderOnConfirm: false,
|
33 |
-
imageUrl: null,
|
34 |
-
imageWidth: null,
|
35 |
-
imageHeight: null,
|
36 |
-
imageClass: null,
|
37 |
-
timer: null,
|
38 |
-
width: 500,
|
39 |
-
padding: 20,
|
40 |
-
background: '#fff',
|
41 |
-
input: null,
|
42 |
-
inputPlaceholder: '',
|
43 |
-
inputValue: '',
|
44 |
-
inputOptions: {},
|
45 |
-
inputAutoTrim: true,
|
46 |
-
inputClass: null,
|
47 |
-
inputAttributes: {},
|
48 |
-
inputValidator: null,
|
49 |
-
progressSteps: [],
|
50 |
-
currentProgressStep: null,
|
51 |
-
progressStepsDistance: '40px',
|
52 |
-
onOpen: null,
|
53 |
-
onClose: null,
|
54 |
-
useRejections: true
|
55 |
-
};
|
56 |
-
|
57 |
-
var swalPrefix = 'swal2-';
|
58 |
-
|
59 |
-
var prefix = function prefix(items) {
|
60 |
-
var result = {};
|
61 |
-
for (var i in items) {
|
62 |
-
result[items[i]] = swalPrefix + items[i];
|
63 |
-
}
|
64 |
-
return result;
|
65 |
-
};
|
66 |
-
|
67 |
-
var swalClasses = prefix(['container', 'shown', 'iosfix', 'modal', 'overlay', 'fade', 'show', 'hide', 'noanimation', 'close', 'title', 'content', 'buttonswrapper', 'confirm', 'cancel', 'icon', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea', 'inputerror', 'validationerror', 'progresssteps', 'activeprogressstep', 'progresscircle', 'progressline', 'loading', 'styled']);
|
68 |
-
|
69 |
-
var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
|
70 |
-
|
71 |
-
/*
|
72 |
-
* Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
|
73 |
-
*/
|
74 |
-
var colorLuminance = function colorLuminance(hex, lum) {
|
75 |
-
// Validate hex string
|
76 |
-
hex = String(hex).replace(/[^0-9a-f]/gi, '');
|
77 |
-
if (hex.length < 6) {
|
78 |
-
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
|
79 |
-
}
|
80 |
-
lum = lum || 0;
|
81 |
-
|
82 |
-
// Convert to decimal and change luminosity
|
83 |
-
var rgb = '#';
|
84 |
-
for (var i = 0; i < 3; i++) {
|
85 |
-
var c = parseInt(hex.substr(i * 2, 2), 16);
|
86 |
-
c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);
|
87 |
-
rgb += ('00' + c).substr(c.length);
|
88 |
-
}
|
89 |
-
|
90 |
-
return rgb;
|
91 |
-
};
|
92 |
-
|
93 |
-
var uniqueArray = function uniqueArray(arr) {
|
94 |
-
var result = [];
|
95 |
-
for (var i in arr) {
|
96 |
-
if (result.indexOf(arr[i]) === -1) {
|
97 |
-
result.push(arr[i]);
|
98 |
-
}
|
99 |
-
}
|
100 |
-
return result;
|
101 |
-
};
|
102 |
-
|
103 |
-
/* global MouseEvent */
|
104 |
-
|
105 |
-
// Remember state in cases where opening and handling a modal will fiddle with it.
|
106 |
-
var states = {
|
107 |
-
previousWindowKeyDown: null,
|
108 |
-
previousActiveElement: null,
|
109 |
-
previousBodyPadding: null
|
110 |
-
};
|
111 |
-
|
112 |
-
/*
|
113 |
-
* Add modal + overlay to DOM
|
114 |
-
*/
|
115 |
-
var init = function init(params) {
|
116 |
-
if (typeof document === 'undefined') {
|
117 |
-
console.error('SweetAlert2 requires document to initialize');
|
118 |
-
return;
|
119 |
-
}
|
120 |
-
|
121 |
-
var container = document.createElement('div');
|
122 |
-
container.className = swalClasses.container;
|
123 |
-
container.innerHTML = sweetHTML;
|
124 |
-
|
125 |
-
var targetElement = document.querySelector(params.target);
|
126 |
-
if (!targetElement) {
|
127 |
-
console.warn('SweetAlert2: Can\'t find the target "' + params.target + '"');
|
128 |
-
targetElement = document.body;
|
129 |
-
}
|
130 |
-
targetElement.appendChild(container);
|
131 |
-
|
132 |
-
var modal = getModal();
|
133 |
-
var input = getChildByClass(modal, swalClasses.input);
|
134 |
-
var file = getChildByClass(modal, swalClasses.file);
|
135 |
-
var range = modal.querySelector('.' + swalClasses.range + ' input');
|
136 |
-
var rangeOutput = modal.querySelector('.' + swalClasses.range + ' output');
|
137 |
-
var select = getChildByClass(modal, swalClasses.select);
|
138 |
-
var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input');
|
139 |
-
var textarea = getChildByClass(modal, swalClasses.textarea);
|
140 |
-
|
141 |
-
input.oninput = function () {
|
142 |
-
sweetAlert.resetValidationError();
|
143 |
-
};
|
144 |
-
|
145 |
-
input.onkeydown = function (event) {
|
146 |
-
setTimeout(function () {
|
147 |
-
if (event.keyCode === 13 && params.allowEnterKey) {
|
148 |
-
event.stopPropagation();
|
149 |
-
sweetAlert.clickConfirm();
|
150 |
-
}
|
151 |
-
}, 0);
|
152 |
-
};
|
153 |
-
|
154 |
-
file.onchange = function () {
|
155 |
-
sweetAlert.resetValidationError();
|
156 |
-
};
|
157 |
-
|
158 |
-
range.oninput = function () {
|
159 |
-
sweetAlert.resetValidationError();
|
160 |
-
rangeOutput.value = range.value;
|
161 |
-
};
|
162 |
-
|
163 |
-
range.onchange = function () {
|
164 |
-
sweetAlert.resetValidationError();
|
165 |
-
range.previousSibling.value = range.value;
|
166 |
-
};
|
167 |
-
|
168 |
-
select.onchange = function () {
|
169 |
-
sweetAlert.resetValidationError();
|
170 |
-
};
|
171 |
-
|
172 |
-
checkbox.onchange = function () {
|
173 |
-
sweetAlert.resetValidationError();
|
174 |
-
};
|
175 |
-
|
176 |
-
textarea.oninput = function () {
|
177 |
-
sweetAlert.resetValidationError();
|
178 |
-
};
|
179 |
-
|
180 |
-
return modal;
|
181 |
-
};
|
182 |
-
|
183 |
-
/*
|
184 |
-
* Manipulate DOM
|
185 |
-
*/
|
186 |
-
|
187 |
-
var sweetHTML = ('\n <div role="dialog" aria-labelledby="' + swalClasses.title + '" aria-describedby="' + swalClasses.content + '" class="' + swalClasses.modal + '" tabindex="-1">\n <ul class="' + swalClasses.progresssteps + '"></ul>\n <div class="' + swalClasses.icon + ' ' + iconTypes.error + '">\n <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.question + '">?</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.warning + '">!</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.info + '">i</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.success + '">\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n </div>\n <img class="' + swalClasses.image + '">\n <h2 class="' + swalClasses.title + '" id="' + swalClasses.title + '"></h2>\n <div id="' + swalClasses.content + '" class="' + swalClasses.content + '"></div>\n <input class="' + swalClasses.input + '">\n <input type="file" class="' + swalClasses.file + '">\n <div class="' + swalClasses.range + '">\n <output></output>\n <input type="range">\n </div>\n <select class="' + swalClasses.select + '"></select>\n <div class="' + swalClasses.radio + '"></div>\n <label for="' + swalClasses.checkbox + '" class="' + swalClasses.checkbox + '">\n <input type="checkbox">\n </label>\n <textarea class="' + swalClasses.textarea + '"></textarea>\n <div class="' + swalClasses.validationerror + '"></div>\n <div class="' + swalClasses.buttonswrapper + '">\n <button type="button" class="' + swalClasses.confirm + '">OK</button>\n <button type="button" class="' + swalClasses.cancel + '">Cancel</button>\n </div>\n <button type="button" class="' + swalClasses.close + '" aria-label="Close this dialog">×</button>\n </div>\n').replace(/(^|\n)\s*/g, '');
|
188 |
-
|
189 |
-
var getContainer = function getContainer() {
|
190 |
-
return document.body.querySelector('.' + swalClasses.container);
|
191 |
-
};
|
192 |
-
|
193 |
-
var getModal = function getModal() {
|
194 |
-
return getContainer() ? getContainer().querySelector('.' + swalClasses.modal) : null;
|
195 |
-
};
|
196 |
-
|
197 |
-
var getIcons = function getIcons() {
|
198 |
-
var modal = getModal();
|
199 |
-
return modal.querySelectorAll('.' + swalClasses.icon);
|
200 |
-
};
|
201 |
-
|
202 |
-
var elementByClass = function elementByClass(className) {
|
203 |
-
return getContainer() ? getContainer().querySelector('.' + className) : null;
|
204 |
-
};
|
205 |
-
|
206 |
-
var getTitle = function getTitle() {
|
207 |
-
return elementByClass(swalClasses.title);
|
208 |
-
};
|
209 |
-
|
210 |
-
var getContent = function getContent() {
|
211 |
-
return elementByClass(swalClasses.content);
|
212 |
-
};
|
213 |
-
|
214 |
-
var getImage = function getImage() {
|
215 |
-
return elementByClass(swalClasses.image);
|
216 |
-
};
|
217 |
-
|
218 |
-
var getButtonsWrapper = function getButtonsWrapper() {
|
219 |
-
return elementByClass(swalClasses.buttonswrapper);
|
220 |
-
};
|
221 |
-
|
222 |
-
var getProgressSteps = function getProgressSteps() {
|
223 |
-
return elementByClass(swalClasses.progresssteps);
|
224 |
-
};
|
225 |
-
|
226 |
-
var getValidationError = function getValidationError() {
|
227 |
-
return elementByClass(swalClasses.validationerror);
|
228 |
-
};
|
229 |
-
|
230 |
-
var getConfirmButton = function getConfirmButton() {
|
231 |
-
return elementByClass(swalClasses.confirm);
|
232 |
-
};
|
233 |
-
|
234 |
-
var getCancelButton = function getCancelButton() {
|
235 |
-
return elementByClass(swalClasses.cancel);
|
236 |
-
};
|
237 |
-
|
238 |
-
var getCloseButton = function getCloseButton() {
|
239 |
-
return elementByClass(swalClasses.close);
|
240 |
-
};
|
241 |
-
|
242 |
-
var getFocusableElements = function getFocusableElements(focusCancel) {
|
243 |
-
var buttons = [getConfirmButton(), getCancelButton()];
|
244 |
-
if (focusCancel) {
|
245 |
-
buttons.reverse();
|
246 |
-
}
|
247 |
-
var focusableElements = buttons.concat(Array.prototype.slice.call(getModal().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])')));
|
248 |
-
return uniqueArray(focusableElements);
|
249 |
-
};
|
250 |
-
|
251 |
-
var hasClass = function hasClass(elem, className) {
|
252 |
-
if (elem.classList) {
|
253 |
-
return elem.classList.contains(className);
|
254 |
-
}
|
255 |
-
return false;
|
256 |
-
};
|
257 |
-
|
258 |
-
var focusInput = function focusInput(input) {
|
259 |
-
input.focus();
|
260 |
-
|
261 |
-
// place cursor at end of text in text input
|
262 |
-
if (input.type !== 'file') {
|
263 |
-
// http://stackoverflow.com/a/2345915/1331425
|
264 |
-
var val = input.value;
|
265 |
-
input.value = '';
|
266 |
-
input.value = val;
|
267 |
-
}
|
268 |
-
};
|
269 |
-
|
270 |
-
var addClass = function addClass(elem, className) {
|
271 |
-
if (!elem || !className) {
|
272 |
-
return;
|
273 |
-
}
|
274 |
-
var classes = className.split(/\s+/).filter(Boolean);
|
275 |
-
classes.forEach(function (className) {
|
276 |
-
elem.classList.add(className);
|
277 |
-
});
|
278 |
-
};
|
279 |
-
|
280 |
-
var removeClass = function removeClass(elem, className) {
|
281 |
-
if (!elem || !className) {
|
282 |
-
return;
|
283 |
-
}
|
284 |
-
var classes = className.split(/\s+/).filter(Boolean);
|
285 |
-
classes.forEach(function (className) {
|
286 |
-
elem.classList.remove(className);
|
287 |
-
});
|
288 |
-
};
|
289 |
-
|
290 |
-
var getChildByClass = function getChildByClass(elem, className) {
|
291 |
-
for (var i = 0; i < elem.childNodes.length; i++) {
|
292 |
-
if (hasClass(elem.childNodes[i], className)) {
|
293 |
-
return elem.childNodes[i];
|
294 |
-
}
|
295 |
-
}
|
296 |
-
};
|
297 |
-
|
298 |
-
var show = function show(elem, display) {
|
299 |
-
if (!display) {
|
300 |
-
display = 'block';
|
301 |
-
}
|
302 |
-
elem.style.opacity = '';
|
303 |
-
elem.style.display = display;
|
304 |
-
};
|
305 |
-
|
306 |
-
var hide = function hide(elem) {
|
307 |
-
elem.style.opacity = '';
|
308 |
-
elem.style.display = 'none';
|
309 |
-
};
|
310 |
-
|
311 |
-
var empty = function empty(elem) {
|
312 |
-
while (elem.firstChild) {
|
313 |
-
elem.removeChild(elem.firstChild);
|
314 |
-
}
|
315 |
-
};
|
316 |
-
|
317 |
-
// borrowed from jqeury $(elem).is(':visible') implementation
|
318 |
-
var isVisible = function isVisible(elem) {
|
319 |
-
return elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length;
|
320 |
-
};
|
321 |
-
|
322 |
-
var removeStyleProperty = function removeStyleProperty(elem, property) {
|
323 |
-
if (elem.style.removeProperty) {
|
324 |
-
elem.style.removeProperty(property);
|
325 |
-
} else {
|
326 |
-
elem.style.removeAttribute(property);
|
327 |
-
}
|
328 |
-
};
|
329 |
-
|
330 |
-
var fireClick = function fireClick(node) {
|
331 |
-
if (!isVisible(node)) {
|
332 |
-
return false;
|
333 |
-
}
|
334 |
-
|
335 |
-
// Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/
|
336 |
-
// Then fixed for today's Chrome browser.
|
337 |
-
if (typeof MouseEvent === 'function') {
|
338 |
-
// Up-to-date approach
|
339 |
-
var mevt = new MouseEvent('click', {
|
340 |
-
view: window,
|
341 |
-
bubbles: false,
|
342 |
-
cancelable: true
|
343 |
-
});
|
344 |
-
node.dispatchEvent(mevt);
|
345 |
-
} else if (document.createEvent) {
|
346 |
-
// Fallback
|
347 |
-
var evt = document.createEvent('MouseEvents');
|
348 |
-
evt.initEvent('click', false, false);
|
349 |
-
node.dispatchEvent(evt);
|
350 |
-
} else if (document.createEventObject) {
|
351 |
-
node.fireEvent('onclick');
|
352 |
-
} else if (typeof node.onclick === 'function') {
|
353 |
-
node.onclick();
|
354 |
-
}
|
355 |
-
};
|
356 |
-
|
357 |
-
var animationEndEvent = function () {
|
358 |
-
var testEl = document.createElement('div');
|
359 |
-
var transEndEventNames = {
|
360 |
-
'WebkitAnimation': 'webkitAnimationEnd',
|
361 |
-
'OAnimation': 'oAnimationEnd oanimationend',
|
362 |
-
'msAnimation': 'MSAnimationEnd',
|
363 |
-
'animation': 'animationend'
|
364 |
-
};
|
365 |
-
for (var i in transEndEventNames) {
|
366 |
-
if (transEndEventNames.hasOwnProperty(i) && testEl.style[i] !== undefined) {
|
367 |
-
return transEndEventNames[i];
|
368 |
-
}
|
369 |
-
}
|
370 |
-
|
371 |
-
return false;
|
372 |
-
}();
|
373 |
-
|
374 |
-
// Reset previous window keydown handler and focued element
|
375 |
-
var resetPrevState = function resetPrevState() {
|
376 |
-
window.onkeydown = states.previousWindowKeyDown;
|
377 |
-
if (states.previousActiveElement && states.previousActiveElement.focus) {
|
378 |
-
var x = window.scrollX;
|
379 |
-
var y = window.scrollY;
|
380 |
-
states.previousActiveElement.focus();
|
381 |
-
if (x && y) {
|
382 |
-
// IE has no scrollX/scrollY support
|
383 |
-
window.scrollTo(x, y);
|
384 |
-
}
|
385 |
-
}
|
386 |
-
};
|
387 |
-
|
388 |
-
// Measure width of scrollbar
|
389 |
-
// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286
|
390 |
-
var measureScrollbar = function measureScrollbar() {
|
391 |
-
var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
|
392 |
-
if (supportsTouch) {
|
393 |
-
return 0;
|
394 |
-
}
|
395 |
-
var scrollDiv = document.createElement('div');
|
396 |
-
scrollDiv.style.width = '50px';
|
397 |
-
scrollDiv.style.height = '50px';
|
398 |
-
scrollDiv.style.overflow = 'scroll';
|
399 |
-
document.body.appendChild(scrollDiv);
|
400 |
-
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
401 |
-
document.body.removeChild(scrollDiv);
|
402 |
-
return scrollbarWidth;
|
403 |
-
};
|
404 |
-
|
405 |
-
// JavaScript Debounce Function
|
406 |
-
// Simplivied version of https://davidwalsh.name/javascript-debounce-function
|
407 |
-
var debounce = function debounce(func, wait) {
|
408 |
-
var timeout = void 0;
|
409 |
-
return function () {
|
410 |
-
var later = function later() {
|
411 |
-
timeout = null;
|
412 |
-
func();
|
413 |
-
};
|
414 |
-
clearTimeout(timeout);
|
415 |
-
timeout = setTimeout(later, wait);
|
416 |
-
};
|
417 |
-
};
|
418 |
-
|
419 |
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
|
420 |
-
return typeof obj;
|
421 |
-
} : function (obj) {
|
422 |
-
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
423 |
-
};
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
var _extends = Object.assign || function (target) {
|
446 |
-
for (var i = 1; i < arguments.length; i++) {
|
447 |
-
var source = arguments[i];
|
448 |
-
|
449 |
-
for (var key in source) {
|
450 |
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
451 |
-
target[key] = source[key];
|
452 |
-
}
|
453 |
-
}
|
454 |
-
}
|
455 |
-
|
456 |
-
return target;
|
457 |
-
};
|
458 |
-
|
459 |
-
var modalParams = _extends({}, defaultParams);
|
460 |
-
var queue = [];
|
461 |
-
var swal2Observer = void 0;
|
462 |
-
|
463 |
-
/*
|
464 |
-
* Set type, text and actions on modal
|
465 |
-
*/
|
466 |
-
var setParameters = function setParameters(params) {
|
467 |
-
var modal = getModal() || init(params);
|
468 |
-
|
469 |
-
for (var param in params) {
|
470 |
-
if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
|
471 |
-
console.warn('SweetAlert2: Unknown parameter "' + param + '"');
|
472 |
-
}
|
473 |
-
}
|
474 |
-
|
475 |
-
// Set modal width
|
476 |
-
modal.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width;
|
477 |
-
|
478 |
-
modal.style.padding = params.padding + 'px';
|
479 |
-
modal.style.background = params.background;
|
480 |
-
var successIconParts = modal.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
|
481 |
-
for (var i = 0; i < successIconParts.length; i++) {
|
482 |
-
successIconParts[i].style.background = params.background;
|
483 |
-
}
|
484 |
-
|
485 |
-
var title = getTitle();
|
486 |
-
var content = getContent();
|
487 |
-
var buttonsWrapper = getButtonsWrapper();
|
488 |
-
var confirmButton = getConfirmButton();
|
489 |
-
var cancelButton = getCancelButton();
|
490 |
-
var closeButton = getCloseButton();
|
491 |
-
|
492 |
-
// Title
|
493 |
-
if (params.titleText) {
|
494 |
-
title.innerText = params.titleText;
|
495 |
-
} else {
|
496 |
-
title.innerHTML = params.title.split('\n').join('<br>');
|
497 |
-
}
|
498 |
-
|
499 |
-
// Content
|
500 |
-
if (params.text || params.html) {
|
501 |
-
if (_typeof(params.html) === 'object') {
|
502 |
-
content.innerHTML = '';
|
503 |
-
if (0 in params.html) {
|
504 |
-
for (var _i = 0; _i in params.html; _i++) {
|
505 |
-
content.appendChild(params.html[_i].cloneNode(true));
|
506 |
-
}
|
507 |
-
} else {
|
508 |
-
content.appendChild(params.html.cloneNode(true));
|
509 |
-
}
|
510 |
-
} else if (params.html) {
|
511 |
-
content.innerHTML = params.html;
|
512 |
-
} else if (params.text) {
|
513 |
-
content.textContent = params.text;
|
514 |
-
}
|
515 |
-
show(content);
|
516 |
-
} else {
|
517 |
-
hide(content);
|
518 |
-
}
|
519 |
-
|
520 |
-
// Close button
|
521 |
-
if (params.showCloseButton) {
|
522 |
-
show(closeButton);
|
523 |
-
} else {
|
524 |
-
hide(closeButton);
|
525 |
-
}
|
526 |
-
|
527 |
-
// Custom Class
|
528 |
-
modal.className = swalClasses.modal;
|
529 |
-
if (params.customClass) {
|
530 |
-
addClass(modal, params.customClass);
|
531 |
-
}
|
532 |
-
|
533 |
-
// Progress steps
|
534 |
-
var progressStepsContainer = getProgressSteps();
|
535 |
-
var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);
|
536 |
-
if (params.progressSteps.length) {
|
537 |
-
show(progressStepsContainer);
|
538 |
-
empty(progressStepsContainer);
|
539 |
-
if (currentProgressStep >= params.progressSteps.length) {
|
540 |
-
console.warn('SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
|
541 |
-
}
|
542 |
-
params.progressSteps.forEach(function (step, index) {
|
543 |
-
var circle = document.createElement('li');
|
544 |
-
addClass(circle, swalClasses.progresscircle);
|
545 |
-
circle.innerHTML = step;
|
546 |
-
if (index === currentProgressStep) {
|
547 |
-
addClass(circle, swalClasses.activeprogressstep);
|
548 |
-
}
|
549 |
-
progressStepsContainer.appendChild(circle);
|
550 |
-
if (index !== params.progressSteps.length - 1) {
|
551 |
-
var line = document.createElement('li');
|
552 |
-
addClass(line, swalClasses.progressline);
|
553 |
-
line.style.width = params.progressStepsDistance;
|
554 |
-
progressStepsContainer.appendChild(line);
|
555 |
-
}
|
556 |
-
});
|
557 |
-
} else {
|
558 |
-
hide(progressStepsContainer);
|
559 |
-
}
|
560 |
-
|
561 |
-
// Icon
|
562 |
-
var icons = getIcons();
|
563 |
-
for (var _i2 = 0; _i2 < icons.length; _i2++) {
|
564 |
-
hide(icons[_i2]);
|
565 |
-
}
|
566 |
-
if (params.type) {
|
567 |
-
var validType = false;
|
568 |
-
for (var iconType in iconTypes) {
|
569 |
-
if (params.type === iconType) {
|
570 |
-
validType = true;
|
571 |
-
break;
|
572 |
-
}
|
573 |
-
}
|
574 |
-
if (!validType) {
|
575 |
-
console.error('SweetAlert2: Unknown alert type: ' + params.type);
|
576 |
-
return false;
|
577 |
-
}
|
578 |
-
var icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);
|
579 |
-
show(icon);
|
580 |
-
|
581 |
-
// Animate icon
|
582 |
-
if (params.animation) {
|
583 |
-
switch (params.type) {
|
584 |
-
case 'success':
|
585 |
-
addClass(icon, 'swal2-animate-success-icon');
|
586 |
-
addClass(icon.querySelector('.swal2-success-line-tip'), 'swal2-animate-success-line-tip');
|
587 |
-
addClass(icon.querySelector('.swal2-success-line-long'), 'swal2-animate-success-line-long');
|
588 |
-
break;
|
589 |
-
case 'error':
|
590 |
-
addClass(icon, 'swal2-animate-error-icon');
|
591 |
-
addClass(icon.querySelector('.swal2-x-mark'), 'swal2-animate-x-mark');
|
592 |
-
break;
|
593 |
-
default:
|
594 |
-
break;
|
595 |
-
}
|
596 |
-
}
|
597 |
-
}
|
598 |
-
|
599 |
-
// Custom image
|
600 |
-
var image = getImage();
|
601 |
-
if (params.imageUrl) {
|
602 |
-
image.setAttribute('src', params.imageUrl);
|
603 |
-
show(image);
|
604 |
-
|
605 |
-
if (params.imageWidth) {
|
606 |
-
image.setAttribute('width', params.imageWidth);
|
607 |
-
} else {
|
608 |
-
image.removeAttribute('width');
|
609 |
-
}
|
610 |
-
|
611 |
-
if (params.imageHeight) {
|
612 |
-
image.setAttribute('height', params.imageHeight);
|
613 |
-
} else {
|
614 |
-
image.removeAttribute('height');
|
615 |
-
}
|
616 |
-
|
617 |
-
image.className = swalClasses.image;
|
618 |
-
if (params.imageClass) {
|
619 |
-
addClass(image, params.imageClass);
|
620 |
-
}
|
621 |
-
} else {
|
622 |
-
hide(image);
|
623 |
-
}
|
624 |
-
|
625 |
-
// Cancel button
|
626 |
-
if (params.showCancelButton) {
|
627 |
-
cancelButton.style.display = 'inline-block';
|
628 |
-
} else {
|
629 |
-
hide(cancelButton);
|
630 |
-
}
|
631 |
-
|
632 |
-
// Confirm button
|
633 |
-
if (params.showConfirmButton) {
|
634 |
-
removeStyleProperty(confirmButton, 'display');
|
635 |
-
} else {
|
636 |
-
hide(confirmButton);
|
637 |
-
}
|
638 |
-
|
639 |
-
// Buttons wrapper
|
640 |
-
if (!params.showConfirmButton && !params.showCancelButton) {
|
641 |
-
hide(buttonsWrapper);
|
642 |
-
} else {
|
643 |
-
show(buttonsWrapper);
|
644 |
-
}
|
645 |
-
|
646 |
-
// Edit text on cancel and confirm buttons
|
647 |
-
confirmButton.innerHTML = params.confirmButtonText;
|
648 |
-
cancelButton.innerHTML = params.cancelButtonText;
|
649 |
-
|
650 |
-
// Set buttons to selected background colors
|
651 |
-
if (params.buttonsStyling) {
|
652 |
-
confirmButton.style.backgroundColor = params.confirmButtonColor;
|
653 |
-
cancelButton.style.backgroundColor = params.cancelButtonColor;
|
654 |
-
}
|
655 |
-
|
656 |
-
// Add buttons custom classes
|
657 |
-
confirmButton.className = swalClasses.confirm;
|
658 |
-
addClass(confirmButton, params.confirmButtonClass);
|
659 |
-
cancelButton.className = swalClasses.cancel;
|
660 |
-
addClass(cancelButton, params.cancelButtonClass);
|
661 |
-
|
662 |
-
// Buttons styling
|
663 |
-
if (params.buttonsStyling) {
|
664 |
-
addClass(confirmButton, swalClasses.styled);
|
665 |
-
addClass(cancelButton, swalClasses.styled);
|
666 |
-
} else {
|
667 |
-
removeClass(confirmButton, swalClasses.styled);
|
668 |
-
removeClass(cancelButton, swalClasses.styled);
|
669 |
-
|
670 |
-
confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
|
671 |
-
cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
|
672 |
-
}
|
673 |
-
|
674 |
-
// CSS animation
|
675 |
-
if (params.animation === true) {
|
676 |
-
removeClass(modal, swalClasses.noanimation);
|
677 |
-
} else {
|
678 |
-
addClass(modal, swalClasses.noanimation);
|
679 |
-
}
|
680 |
-
};
|
681 |
-
|
682 |
-
/*
|
683 |
-
* Animations
|
684 |
-
*/
|
685 |
-
var openModal = function openModal(animation, onComplete) {
|
686 |
-
var container = getContainer();
|
687 |
-
var modal = getModal();
|
688 |
-
|
689 |
-
if (animation) {
|
690 |
-
addClass(modal, swalClasses.show);
|
691 |
-
addClass(container, swalClasses.fade);
|
692 |
-
removeClass(modal, swalClasses.hide);
|
693 |
-
} else {
|
694 |
-
removeClass(modal, swalClasses.fade);
|
695 |
-
}
|
696 |
-
show(modal);
|
697 |
-
|
698 |
-
// scrolling is 'hidden' until animation is done, after that 'auto'
|
699 |
-
container.style.overflowY = 'hidden';
|
700 |
-
if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
|
701 |
-
modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
|
702 |
-
modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
|
703 |
-
container.style.overflowY = 'auto';
|
704 |
-
});
|
705 |
-
} else {
|
706 |
-
container.style.overflowY = 'auto';
|
707 |
-
}
|
708 |
-
|
709 |
-
addClass(document.documentElement, swalClasses.shown);
|
710 |
-
addClass(document.body, swalClasses.shown);
|
711 |
-
addClass(container, swalClasses.shown);
|
712 |
-
fixScrollbar();
|
713 |
-
iOSfix();
|
714 |
-
states.previousActiveElement = document.activeElement;
|
715 |
-
if (onComplete !== null && typeof onComplete === 'function') {
|
716 |
-
setTimeout(function () {
|
717 |
-
onComplete(modal);
|
718 |
-
});
|
719 |
-
}
|
720 |
-
};
|
721 |
-
|
722 |
-
var fixScrollbar = function fixScrollbar() {
|
723 |
-
// for queues, do not do this more than once
|
724 |
-
if (states.previousBodyPadding !== null) {
|
725 |
-
return;
|
726 |
-
}
|
727 |
-
// if the body has overflow
|
728 |
-
if (document.body.scrollHeight > window.innerHeight) {
|
729 |
-
// add padding so the content doesn't shift after removal of scrollbar
|
730 |
-
states.previousBodyPadding = document.body.style.paddingRight;
|
731 |
-
document.body.style.paddingRight = measureScrollbar() + 'px';
|
732 |
-
}
|
733 |
-
};
|
734 |
-
|
735 |
-
var undoScrollbar = function undoScrollbar() {
|
736 |
-
if (states.previousBodyPadding !== null) {
|
737 |
-
document.body.style.paddingRight = states.previousBodyPadding;
|
738 |
-
states.previousBodyPadding = null;
|
739 |
-
}
|
740 |
-
};
|
741 |
-
|
742 |
-
// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
|
743 |
-
var iOSfix = function iOSfix() {
|
744 |
-
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
745 |
-
if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
|
746 |
-
var offset = document.body.scrollTop;
|
747 |
-
document.body.style.top = offset * -1 + 'px';
|
748 |
-
addClass(document.body, swalClasses.iosfix);
|
749 |
-
}
|
750 |
-
};
|
751 |
-
|
752 |
-
var undoIOSfix = function undoIOSfix() {
|
753 |
-
if (hasClass(document.body, swalClasses.iosfix)) {
|
754 |
-
var offset = parseInt(document.body.style.top, 10);
|
755 |
-
removeClass(document.body, swalClasses.iosfix);
|
756 |
-
document.body.style.top = '';
|
757 |
-
document.body.scrollTop = offset * -1;
|
758 |
-
}
|
759 |
-
};
|
760 |
-
|
761 |
-
// SweetAlert entry point
|
762 |
-
var sweetAlert = function sweetAlert() {
|
763 |
-
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
764 |
-
args[_key] = arguments[_key];
|
765 |
-
}
|
766 |
-
|
767 |
-
if (args[0] === undefined) {
|
768 |
-
console.error('SweetAlert2 expects at least 1 attribute!');
|
769 |
-
return false;
|
770 |
-
}
|
771 |
-
|
772 |
-
var params = _extends({}, modalParams);
|
773 |
-
|
774 |
-
switch (_typeof(args[0])) {
|
775 |
-
case 'string':
|
776 |
-
params.title = args[0];
|
777 |
-
params.html = args[1];
|
778 |
-
params.type = args[2];
|
779 |
-
|
780 |
-
break;
|
781 |
-
|
782 |
-
case 'object':
|
783 |
-
_extends(params, args[0]);
|
784 |
-
params.extraParams = args[0].extraParams;
|
785 |
-
|
786 |
-
if (params.input === 'email' && params.inputValidator === null) {
|
787 |
-
params.inputValidator = function (email) {
|
788 |
-
return new Promise(function (resolve, reject) {
|
789 |
-
var emailRegex = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
|
790 |
-
if (emailRegex.test(email)) {
|
791 |
-
resolve();
|
792 |
-
} else {
|
793 |
-
reject('Invalid email address');
|
794 |
-
}
|
795 |
-
});
|
796 |
-
};
|
797 |
-
}
|
798 |
-
|
799 |
-
if (params.input === 'url' && params.inputValidator === null) {
|
800 |
-
params.inputValidator = function (url) {
|
801 |
-
return new Promise(function (resolve, reject) {
|
802 |
-
var urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
|
803 |
-
if (urlRegex.test(url)) {
|
804 |
-
resolve();
|
805 |
-
} else {
|
806 |
-
reject('Invalid URL');
|
807 |
-
}
|
808 |
-
});
|
809 |
-
};
|
810 |
-
}
|
811 |
-
break;
|
812 |
-
|
813 |
-
default:
|
814 |
-
console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + _typeof(args[0]));
|
815 |
-
return false;
|
816 |
-
}
|
817 |
-
|
818 |
-
setParameters(params);
|
819 |
-
|
820 |
-
var container = getContainer();
|
821 |
-
var modal = getModal();
|
822 |
-
|
823 |
-
return new Promise(function (resolve, reject) {
|
824 |
-
// Close on timer
|
825 |
-
if (params.timer) {
|
826 |
-
modal.timeout = setTimeout(function () {
|
827 |
-
sweetAlert.closeModal(params.onClose);
|
828 |
-
if (params.useRejections) {
|
829 |
-
reject('timer');
|
830 |
-
} else {
|
831 |
-
resolve({ dismiss: 'timer' });
|
832 |
-
}
|
833 |
-
}, params.timer);
|
834 |
-
}
|
835 |
-
|
836 |
-
// Get input element by specified type or, if type isn't specified, by params.input
|
837 |
-
var getInput = function getInput(inputType) {
|
838 |
-
inputType = inputType || params.input;
|
839 |
-
if (!inputType) {
|
840 |
-
return null;
|
841 |
-
}
|
842 |
-
switch (inputType) {
|
843 |
-
case 'select':
|
844 |
-
case 'textarea':
|
845 |
-
case 'file':
|
846 |
-
return getChildByClass(modal, swalClasses[inputType]);
|
847 |
-
case 'checkbox':
|
848 |
-
return modal.querySelector('.' + swalClasses.checkbox + ' input');
|
849 |
-
case 'radio':
|
850 |
-
return modal.querySelector('.' + swalClasses.radio + ' input:checked') || modal.querySelector('.' + swalClasses.radio + ' input:first-child');
|
851 |
-
case 'range':
|
852 |
-
return modal.querySelector('.' + swalClasses.range + ' input');
|
853 |
-
default:
|
854 |
-
return getChildByClass(modal, swalClasses.input);
|
855 |
-
}
|
856 |
-
};
|
857 |
-
|
858 |
-
// Get the value of the modal input
|
859 |
-
var getInputValue = function getInputValue() {
|
860 |
-
var input = getInput();
|
861 |
-
if (!input) {
|
862 |
-
return null;
|
863 |
-
}
|
864 |
-
switch (params.input) {
|
865 |
-
case 'checkbox':
|
866 |
-
return input.checked ? 1 : 0;
|
867 |
-
case 'radio':
|
868 |
-
return input.checked ? input.value : null;
|
869 |
-
case 'file':
|
870 |
-
return input.files.length ? input.files[0] : null;
|
871 |
-
default:
|
872 |
-
return params.inputAutoTrim ? input.value.trim() : input.value;
|
873 |
-
}
|
874 |
-
};
|
875 |
-
|
876 |
-
// input autofocus
|
877 |
-
if (params.input) {
|
878 |
-
setTimeout(function () {
|
879 |
-
var input = getInput();
|
880 |
-
if (input) {
|
881 |
-
focusInput(input);
|
882 |
-
}
|
883 |
-
}, 0);
|
884 |
-
}
|
885 |
-
|
886 |
-
var confirm = function confirm(value) {
|
887 |
-
if (params.showLoaderOnConfirm) {
|
888 |
-
sweetAlert.showLoading();
|
889 |
-
}
|
890 |
-
|
891 |
-
if (params.preConfirm) {
|
892 |
-
params.preConfirm(value, params.extraParams).then(function (preConfirmValue) {
|
893 |
-
sweetAlert.closeModal(params.onClose);
|
894 |
-
resolve(preConfirmValue || value);
|
895 |
-
}, function (error) {
|
896 |
-
sweetAlert.hideLoading();
|
897 |
-
if (error) {
|
898 |
-
sweetAlert.showValidationError(error);
|
899 |
-
}
|
900 |
-
});
|
901 |
-
} else {
|
902 |
-
sweetAlert.closeModal(params.onClose);
|
903 |
-
if (params.useRejections) {
|
904 |
-
resolve(value);
|
905 |
-
} else {
|
906 |
-
resolve({ value: value });
|
907 |
-
}
|
908 |
-
}
|
909 |
-
};
|
910 |
-
|
911 |
-
// Mouse interactions
|
912 |
-
var onButtonEvent = function onButtonEvent(event) {
|
913 |
-
var e = event || window.event;
|
914 |
-
var target = e.target || e.srcElement;
|
915 |
-
var confirmButton = getConfirmButton();
|
916 |
-
var cancelButton = getCancelButton();
|
917 |
-
var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target));
|
918 |
-
var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target));
|
919 |
-
|
920 |
-
switch (e.type) {
|
921 |
-
case 'mouseover':
|
922 |
-
case 'mouseup':
|
923 |
-
if (params.buttonsStyling) {
|
924 |
-
if (targetedConfirm) {
|
925 |
-
confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1);
|
926 |
-
} else if (targetedCancel) {
|
927 |
-
cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1);
|
928 |
-
}
|
929 |
-
}
|
930 |
-
break;
|
931 |
-
case 'mouseout':
|
932 |
-
if (params.buttonsStyling) {
|
933 |
-
if (targetedConfirm) {
|
934 |
-
confirmButton.style.backgroundColor = params.confirmButtonColor;
|
935 |
-
} else if (targetedCancel) {
|
936 |
-
cancelButton.style.backgroundColor = params.cancelButtonColor;
|
937 |
-
}
|
938 |
-
}
|
939 |
-
break;
|
940 |
-
case 'mousedown':
|
941 |
-
if (params.buttonsStyling) {
|
942 |
-
if (targetedConfirm) {
|
943 |
-
confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2);
|
944 |
-
} else if (targetedCancel) {
|
945 |
-
cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2);
|
946 |
-
}
|
947 |
-
}
|
948 |
-
break;
|
949 |
-
case 'click':
|
950 |
-
// Clicked 'confirm'
|
951 |
-
if (targetedConfirm && sweetAlert.isVisible()) {
|
952 |
-
sweetAlert.disableButtons();
|
953 |
-
if (params.input) {
|
954 |
-
var inputValue = getInputValue();
|
955 |
-
|
956 |
-
if (params.inputValidator) {
|
957 |
-
sweetAlert.disableInput();
|
958 |
-
params.inputValidator(inputValue, params.extraParams).then(function () {
|
959 |
-
sweetAlert.enableButtons();
|
960 |
-
sweetAlert.enableInput();
|
961 |
-
confirm(inputValue);
|
962 |
-
}, function (error) {
|
963 |
-
sweetAlert.enableButtons();
|
964 |
-
sweetAlert.enableInput();
|
965 |
-
if (error) {
|
966 |
-
sweetAlert.showValidationError(error);
|
967 |
-
}
|
968 |
-
});
|
969 |
-
} else {
|
970 |
-
confirm(inputValue);
|
971 |
-
}
|
972 |
-
} else {
|
973 |
-
confirm(true);
|
974 |
-
}
|
975 |
-
|
976 |
-
// Clicked 'cancel'
|
977 |
-
} else if (targetedCancel && sweetAlert.isVisible()) {
|
978 |
-
sweetAlert.disableButtons();
|
979 |
-
sweetAlert.closeModal(params.onClose);
|
980 |
-
if (params.useRejections) {
|
981 |
-
reject('cancel');
|
982 |
-
} else {
|
983 |
-
resolve({ dismiss: 'cancel' });
|
984 |
-
}
|
985 |
-
}
|
986 |
-
break;
|
987 |
-
default:
|
988 |
-
}
|
989 |
-
};
|
990 |
-
|
991 |
-
var buttons = modal.querySelectorAll('button');
|
992 |
-
for (var i = 0; i < buttons.length; i++) {
|
993 |
-
buttons[i].onclick = onButtonEvent;
|
994 |
-
buttons[i].onmouseover = onButtonEvent;
|
995 |
-
buttons[i].onmouseout = onButtonEvent;
|
996 |
-
buttons[i].onmousedown = onButtonEvent;
|
997 |
-
}
|
998 |
-
|
999 |
-
// Closing modal by close button
|
1000 |
-
getCloseButton().onclick = function () {
|
1001 |
-
sweetAlert.closeModal(params.onClose);
|
1002 |
-
if (params.useRejections) {
|
1003 |
-
reject('close');
|
1004 |
-
} else {
|
1005 |
-
resolve({ dismiss: 'close' });
|
1006 |
-
}
|
1007 |
-
};
|
1008 |
-
|
1009 |
-
// Closing modal by overlay click
|
1010 |
-
container.onclick = function (e) {
|
1011 |
-
if (e.target !== container) {
|
1012 |
-
return;
|
1013 |
-
}
|
1014 |
-
if (params.allowOutsideClick) {
|
1015 |
-
sweetAlert.closeModal(params.onClose);
|
1016 |
-
if (params.useRejections) {
|
1017 |
-
reject('overlay');
|
1018 |
-
} else {
|
1019 |
-
resolve({ dismiss: 'overlay' });
|
1020 |
-
}
|
1021 |
-
}
|
1022 |
-
};
|
1023 |
-
|
1024 |
-
var buttonsWrapper = getButtonsWrapper();
|
1025 |
-
var confirmButton = getConfirmButton();
|
1026 |
-
var cancelButton = getCancelButton();
|
1027 |
-
|
1028 |
-
// Reverse buttons (Confirm on the right side)
|
1029 |
-
if (params.reverseButtons) {
|
1030 |
-
confirmButton.parentNode.insertBefore(cancelButton, confirmButton);
|
1031 |
-
} else {
|
1032 |
-
confirmButton.parentNode.insertBefore(confirmButton, cancelButton);
|
1033 |
-
}
|
1034 |
-
|
1035 |
-
// Focus handling
|
1036 |
-
var setFocus = function setFocus(index, increment) {
|
1037 |
-
var focusableElements = getFocusableElements(params.focusCancel);
|
1038 |
-
// search for visible elements and select the next possible match
|
1039 |
-
for (var _i3 = 0; _i3 < focusableElements.length; _i3++) {
|
1040 |
-
index = index + increment;
|
1041 |
-
|
1042 |
-
// rollover to first item
|
1043 |
-
if (index === focusableElements.length) {
|
1044 |
-
index = 0;
|
1045 |
-
|
1046 |
-
// go to last item
|
1047 |
-
} else if (index === -1) {
|
1048 |
-
index = focusableElements.length - 1;
|
1049 |
-
}
|
1050 |
-
|
1051 |
-
// determine if element is visible
|
1052 |
-
var el = focusableElements[index];
|
1053 |
-
if (isVisible(el)) {
|
1054 |
-
return el.focus();
|
1055 |
-
}
|
1056 |
-
}
|
1057 |
-
};
|
1058 |
-
|
1059 |
-
var handleKeyDown = function handleKeyDown(event) {
|
1060 |
-
var e = event || window.event;
|
1061 |
-
var keyCode = e.keyCode || e.which;
|
1062 |
-
|
1063 |
-
if ([9, 13, 32, 27, 37, 38, 39, 40].indexOf(keyCode) === -1) {
|
1064 |
-
// Don't do work on keys we don't care about.
|
1065 |
-
return;
|
1066 |
-
}
|
1067 |
-
|
1068 |
-
var targetElement = e.target || e.srcElement;
|
1069 |
-
|
1070 |
-
var focusableElements = getFocusableElements(params.focusCancel);
|
1071 |
-
var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.
|
1072 |
-
for (var _i4 = 0; _i4 < focusableElements.length; _i4++) {
|
1073 |
-
if (targetElement === focusableElements[_i4]) {
|
1074 |
-
btnIndex = _i4;
|
1075 |
-
break;
|
1076 |
-
}
|
1077 |
-
}
|
1078 |
-
|
1079 |
-
// TAB
|
1080 |
-
if (keyCode === 9) {
|
1081 |
-
if (!e.shiftKey) {
|
1082 |
-
// Cycle to the next button
|
1083 |
-
setFocus(btnIndex, 1);
|
1084 |
-
} else {
|
1085 |
-
// Cycle to the prev button
|
1086 |
-
setFocus(btnIndex, -1);
|
1087 |
-
}
|
1088 |
-
e.stopPropagation();
|
1089 |
-
e.preventDefault();
|
1090 |
-
|
1091 |
-
// ARROWS - switch focus between buttons
|
1092 |
-
} else if (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40) {
|
1093 |
-
// focus Cancel button if Confirm button is currently focused
|
1094 |
-
if (document.activeElement === confirmButton && isVisible(cancelButton)) {
|
1095 |
-
cancelButton.focus();
|
1096 |
-
// and vice versa
|
1097 |
-
} else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
|
1098 |
-
confirmButton.focus();
|
1099 |
-
}
|
1100 |
-
|
1101 |
-
// ENTER/SPACE
|
1102 |
-
} else if (keyCode === 13 || keyCode === 32) {
|
1103 |
-
if (btnIndex === -1 && params.allowEnterKey) {
|
1104 |
-
// ENTER/SPACE clicked outside of a button.
|
1105 |
-
if (params.focusCancel) {
|
1106 |
-
fireClick(cancelButton, e);
|
1107 |
-
} else {
|
1108 |
-
fireClick(confirmButton, e);
|
1109 |
-
}
|
1110 |
-
e.stopPropagation();
|
1111 |
-
e.preventDefault();
|
1112 |
-
}
|
1113 |
-
|
1114 |
-
// ESC
|
1115 |
-
} else if (keyCode === 27 && params.allowEscapeKey === true) {
|
1116 |
-
sweetAlert.closeModal(params.onClose);
|
1117 |
-
if (params.useRejections) {
|
1118 |
-
reject('esc');
|
1119 |
-
} else {
|
1120 |
-
resolve({ dismiss: 'esc' });
|
1121 |
-
}
|
1122 |
-
}
|
1123 |
-
};
|
1124 |
-
|
1125 |
-
if (!window.onkeydown || window.onkeydown.toString() !== handleKeyDown.toString()) {
|
1126 |
-
states.previousWindowKeyDown = window.onkeydown;
|
1127 |
-
window.onkeydown = handleKeyDown;
|
1128 |
-
}
|
1129 |
-
|
1130 |
-
// Loading state
|
1131 |
-
if (params.buttonsStyling) {
|
1132 |
-
confirmButton.style.borderLeftColor = params.confirmButtonColor;
|
1133 |
-
confirmButton.style.borderRightColor = params.confirmButtonColor;
|
1134 |
-
}
|
1135 |
-
|
1136 |
-
/**
|
1137 |
-
* Show spinner instead of Confirm button and disable Cancel button
|
1138 |
-
*/
|
1139 |
-
sweetAlert.hideLoading = sweetAlert.disableLoading = function () {
|
1140 |
-
if (!params.showConfirmButton) {
|
1141 |
-
hide(confirmButton);
|
1142 |
-
if (!params.showCancelButton) {
|
1143 |
-
hide(getButtonsWrapper());
|
1144 |
-
}
|
1145 |
-
}
|
1146 |
-
removeClass(buttonsWrapper, swalClasses.loading);
|
1147 |
-
removeClass(modal, swalClasses.loading);
|
1148 |
-
confirmButton.disabled = false;
|
1149 |
-
cancelButton.disabled = false;
|
1150 |
-
};
|
1151 |
-
|
1152 |
-
sweetAlert.getTitle = function () {
|
1153 |
-
return getTitle();
|
1154 |
-
};
|
1155 |
-
sweetAlert.getContent = function () {
|
1156 |
-
return getContent();
|
1157 |
-
};
|
1158 |
-
sweetAlert.getInput = function () {
|
1159 |
-
return getInput();
|
1160 |
-
};
|
1161 |
-
sweetAlert.getImage = function () {
|
1162 |
-
return getImage();
|
1163 |
-
};
|
1164 |
-
sweetAlert.getButtonsWrapper = function () {
|
1165 |
-
return getButtonsWrapper();
|
1166 |
-
};
|
1167 |
-
sweetAlert.getConfirmButton = function () {
|
1168 |
-
return getConfirmButton();
|
1169 |
-
};
|
1170 |
-
sweetAlert.getCancelButton = function () {
|
1171 |
-
return getCancelButton();
|
1172 |
-
};
|
1173 |
-
|
1174 |
-
sweetAlert.enableButtons = function () {
|
1175 |
-
confirmButton.disabled = false;
|
1176 |
-
cancelButton.disabled = false;
|
1177 |
-
};
|
1178 |
-
|
1179 |
-
sweetAlert.disableButtons = function () {
|
1180 |
-
confirmButton.disabled = true;
|
1181 |
-
cancelButton.disabled = true;
|
1182 |
-
};
|
1183 |
-
|
1184 |
-
sweetAlert.enableConfirmButton = function () {
|
1185 |
-
confirmButton.disabled = false;
|
1186 |
-
};
|
1187 |
-
|
1188 |
-
sweetAlert.disableConfirmButton = function () {
|
1189 |
-
confirmButton.disabled = true;
|
1190 |
-
};
|
1191 |
-
|
1192 |
-
sweetAlert.enableInput = function () {
|
1193 |
-
var input = getInput();
|
1194 |
-
if (!input) {
|
1195 |
-
return false;
|
1196 |
-
}
|
1197 |
-
if (input.type === 'radio') {
|
1198 |
-
var radiosContainer = input.parentNode.parentNode;
|
1199 |
-
var radios = radiosContainer.querySelectorAll('input');
|
1200 |
-
for (var _i5 = 0; _i5 < radios.length; _i5++) {
|
1201 |
-
radios[_i5].disabled = false;
|
1202 |
-
}
|
1203 |
-
} else {
|
1204 |
-
input.disabled = false;
|
1205 |
-
}
|
1206 |
-
};
|
1207 |
-
|
1208 |
-
sweetAlert.disableInput = function () {
|
1209 |
-
var input = getInput();
|
1210 |
-
if (!input) {
|
1211 |
-
return false;
|
1212 |
-
}
|
1213 |
-
if (input && input.type === 'radio') {
|
1214 |
-
var radiosContainer = input.parentNode.parentNode;
|
1215 |
-
var radios = radiosContainer.querySelectorAll('input');
|
1216 |
-
for (var _i6 = 0; _i6 < radios.length; _i6++) {
|
1217 |
-
radios[_i6].disabled = true;
|
1218 |
-
}
|
1219 |
-
} else {
|
1220 |
-
input.disabled = true;
|
1221 |
-
}
|
1222 |
-
};
|
1223 |
-
|
1224 |
-
// Set modal min-height to disable scrolling inside the modal
|
1225 |
-
sweetAlert.recalculateHeight = debounce(function () {
|
1226 |
-
var modal = getModal();
|
1227 |
-
if (!modal) {
|
1228 |
-
return;
|
1229 |
-
}
|
1230 |
-
var prevState = modal.style.display;
|
1231 |
-
modal.style.minHeight = '';
|
1232 |
-
show(modal);
|
1233 |
-
modal.style.minHeight = modal.scrollHeight + 1 + 'px';
|
1234 |
-
modal.style.display = prevState;
|
1235 |
-
}, 50);
|
1236 |
-
|
1237 |
-
// Show block with validation error
|
1238 |
-
sweetAlert.showValidationError = function (error) {
|
1239 |
-
var validationError = getValidationError();
|
1240 |
-
validationError.innerHTML = error;
|
1241 |
-
show(validationError);
|
1242 |
-
|
1243 |
-
var input = getInput();
|
1244 |
-
if (input) {
|
1245 |
-
focusInput(input);
|
1246 |
-
addClass(input, swalClasses.inputerror);
|
1247 |
-
}
|
1248 |
-
};
|
1249 |
-
|
1250 |
-
// Hide block with validation error
|
1251 |
-
sweetAlert.resetValidationError = function () {
|
1252 |
-
var validationError = getValidationError();
|
1253 |
-
hide(validationError);
|
1254 |
-
sweetAlert.recalculateHeight();
|
1255 |
-
|
1256 |
-
var input = getInput();
|
1257 |
-
if (input) {
|
1258 |
-
removeClass(input, swalClasses.inputerror);
|
1259 |
-
}
|
1260 |
-
};
|
1261 |
-
|
1262 |
-
sweetAlert.getProgressSteps = function () {
|
1263 |
-
return params.progressSteps;
|
1264 |
-
};
|
1265 |
-
|
1266 |
-
sweetAlert.setProgressSteps = function (progressSteps) {
|
1267 |
-
params.progressSteps = progressSteps;
|
1268 |
-
setParameters(params);
|
1269 |
-
};
|
1270 |
-
|
1271 |
-
sweetAlert.showProgressSteps = function () {
|
1272 |
-
show(getProgressSteps());
|
1273 |
-
};
|
1274 |
-
|
1275 |
-
sweetAlert.hideProgressSteps = function () {
|
1276 |
-
hide(getProgressSteps());
|
1277 |
-
};
|
1278 |
-
|
1279 |
-
sweetAlert.enableButtons();
|
1280 |
-
sweetAlert.hideLoading();
|
1281 |
-
sweetAlert.resetValidationError();
|
1282 |
-
|
1283 |
-
// inputs
|
1284 |
-
var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
|
1285 |
-
var input = void 0;
|
1286 |
-
for (var _i7 = 0; _i7 < inputTypes.length; _i7++) {
|
1287 |
-
var inputClass = swalClasses[inputTypes[_i7]];
|
1288 |
-
var inputContainer = getChildByClass(modal, inputClass);
|
1289 |
-
input = getInput(inputTypes[_i7]);
|
1290 |
-
|
1291 |
-
// set attributes
|
1292 |
-
if (input) {
|
1293 |
-
for (var j in input.attributes) {
|
1294 |
-
if (input.attributes.hasOwnProperty(j)) {
|
1295 |
-
var attrName = input.attributes[j].name;
|
1296 |
-
if (attrName !== 'type' && attrName !== 'value') {
|
1297 |
-
input.removeAttribute(attrName);
|
1298 |
-
}
|
1299 |
-
}
|
1300 |
-
}
|
1301 |
-
for (var attr in params.inputAttributes) {
|
1302 |
-
input.setAttribute(attr, params.inputAttributes[attr]);
|
1303 |
-
}
|
1304 |
-
}
|
1305 |
-
|
1306 |
-
// set class
|
1307 |
-
inputContainer.className = inputClass;
|
1308 |
-
if (params.inputClass) {
|
1309 |
-
addClass(inputContainer, params.inputClass);
|
1310 |
-
}
|
1311 |
-
|
1312 |
-
hide(inputContainer);
|
1313 |
-
}
|
1314 |
-
|
1315 |
-
var populateInputOptions = void 0;
|
1316 |
-
switch (params.input) {
|
1317 |
-
case 'text':
|
1318 |
-
case 'email':
|
1319 |
-
case 'password':
|
1320 |
-
case 'number':
|
1321 |
-
case 'tel':
|
1322 |
-
case 'url':
|
1323 |
-
input = getChildByClass(modal, swalClasses.input);
|
1324 |
-
input.value = params.inputValue;
|
1325 |
-
input.placeholder = params.inputPlaceholder;
|
1326 |
-
input.type = params.input;
|
1327 |
-
show(input);
|
1328 |
-
break;
|
1329 |
-
case 'file':
|
1330 |
-
input = getChildByClass(modal, swalClasses.file);
|
1331 |
-
input.placeholder = params.inputPlaceholder;
|
1332 |
-
input.type = params.input;
|
1333 |
-
show(input);
|
1334 |
-
break;
|
1335 |
-
case 'range':
|
1336 |
-
var range = getChildByClass(modal, swalClasses.range);
|
1337 |
-
var rangeInput = range.querySelector('input');
|
1338 |
-
var rangeOutput = range.querySelector('output');
|
1339 |
-
rangeInput.value = params.inputValue;
|
1340 |
-
rangeInput.type = params.input;
|
1341 |
-
rangeOutput.value = params.inputValue;
|
1342 |
-
show(range);
|
1343 |
-
break;
|
1344 |
-
case 'select':
|
1345 |
-
var select = getChildByClass(modal, swalClasses.select);
|
1346 |
-
select.innerHTML = '';
|
1347 |
-
if (params.inputPlaceholder) {
|
1348 |
-
var placeholder = document.createElement('option');
|
1349 |
-
placeholder.innerHTML = params.inputPlaceholder;
|
1350 |
-
placeholder.value = '';
|
1351 |
-
placeholder.disabled = true;
|
1352 |
-
placeholder.selected = true;
|
1353 |
-
select.appendChild(placeholder);
|
1354 |
-
}
|
1355 |
-
populateInputOptions = function populateInputOptions(inputOptions) {
|
1356 |
-
for (var optionValue in inputOptions) {
|
1357 |
-
var option = document.createElement('option');
|
1358 |
-
option.value = optionValue;
|
1359 |
-
option.innerHTML = inputOptions[optionValue];
|
1360 |
-
if (params.inputValue === optionValue) {
|
1361 |
-
option.selected = true;
|
1362 |
-
}
|
1363 |
-
select.appendChild(option);
|
1364 |
-
}
|
1365 |
-
show(select);
|
1366 |
-
select.focus();
|
1367 |
-
};
|
1368 |
-
break;
|
1369 |
-
case 'radio':
|
1370 |
-
var radio = getChildByClass(modal, swalClasses.radio);
|
1371 |
-
radio.innerHTML = '';
|
1372 |
-
populateInputOptions = function populateInputOptions(inputOptions) {
|
1373 |
-
for (var radioValue in inputOptions) {
|
1374 |
-
var radioInput = document.createElement('input');
|
1375 |
-
var radioLabel = document.createElement('label');
|
1376 |
-
var radioLabelSpan = document.createElement('span');
|
1377 |
-
radioInput.type = 'radio';
|
1378 |
-
radioInput.name = swalClasses.radio;
|
1379 |
-
radioInput.value = radioValue;
|
1380 |
-
if (params.inputValue === radioValue) {
|
1381 |
-
radioInput.checked = true;
|
1382 |
-
}
|
1383 |
-
radioLabelSpan.innerHTML = inputOptions[radioValue];
|
1384 |
-
radioLabel.appendChild(radioInput);
|
1385 |
-
radioLabel.appendChild(radioLabelSpan);
|
1386 |
-
radioLabel.for = radioInput.id;
|
1387 |
-
radio.appendChild(radioLabel);
|
1388 |
-
}
|
1389 |
-
show(radio);
|
1390 |
-
var radios = radio.querySelectorAll('input');
|
1391 |
-
if (radios.length) {
|
1392 |
-
radios[0].focus();
|
1393 |
-
}
|
1394 |
-
};
|
1395 |
-
break;
|
1396 |
-
case 'checkbox':
|
1397 |
-
var checkbox = getChildByClass(modal, swalClasses.checkbox);
|
1398 |
-
var checkboxInput = getInput('checkbox');
|
1399 |
-
checkboxInput.type = 'checkbox';
|
1400 |
-
checkboxInput.value = 1;
|
1401 |
-
checkboxInput.id = swalClasses.checkbox;
|
1402 |
-
checkboxInput.checked = Boolean(params.inputValue);
|
1403 |
-
var label = checkbox.getElementsByTagName('span');
|
1404 |
-
if (label.length) {
|
1405 |
-
checkbox.removeChild(label[0]);
|
1406 |
-
}
|
1407 |
-
label = document.createElement('span');
|
1408 |
-
label.innerHTML = params.inputPlaceholder;
|
1409 |
-
checkbox.appendChild(label);
|
1410 |
-
show(checkbox);
|
1411 |
-
break;
|
1412 |
-
case 'textarea':
|
1413 |
-
var textarea = getChildByClass(modal, swalClasses.textarea);
|
1414 |
-
textarea.value = params.inputValue;
|
1415 |
-
textarea.placeholder = params.inputPlaceholder;
|
1416 |
-
show(textarea);
|
1417 |
-
break;
|
1418 |
-
case null:
|
1419 |
-
break;
|
1420 |
-
default:
|
1421 |
-
console.error('SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"');
|
1422 |
-
break;
|
1423 |
-
}
|
1424 |
-
|
1425 |
-
if (params.input === 'select' || params.input === 'radio') {
|
1426 |
-
if (params.inputOptions instanceof Promise) {
|
1427 |
-
sweetAlert.showLoading();
|
1428 |
-
params.inputOptions.then(function (inputOptions) {
|
1429 |
-
sweetAlert.hideLoading();
|
1430 |
-
populateInputOptions(inputOptions);
|
1431 |
-
});
|
1432 |
-
} else if (_typeof(params.inputOptions) === 'object') {
|
1433 |
-
populateInputOptions(params.inputOptions);
|
1434 |
-
} else {
|
1435 |
-
console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + _typeof(params.inputOptions));
|
1436 |
-
}
|
1437 |
-
}
|
1438 |
-
|
1439 |
-
openModal(params.animation, params.onOpen);
|
1440 |
-
|
1441 |
-
// Focus the first element (input or button)
|
1442 |
-
if (params.allowEnterKey) {
|
1443 |
-
setFocus(-1, 1);
|
1444 |
-
} else {
|
1445 |
-
if (document.activeElement) {
|
1446 |
-
document.activeElement.blur();
|
1447 |
-
}
|
1448 |
-
}
|
1449 |
-
|
1450 |
-
// fix scroll
|
1451 |
-
getContainer().scrollTop = 0;
|
1452 |
-
|
1453 |
-
// Observe changes inside the modal and adjust height
|
1454 |
-
if (typeof MutationObserver !== 'undefined' && !swal2Observer) {
|
1455 |
-
swal2Observer = new MutationObserver(sweetAlert.recalculateHeight);
|
1456 |
-
swal2Observer.observe(modal, { childList: true, characterData: true, subtree: true });
|
1457 |
-
}
|
1458 |
-
});
|
1459 |
-
};
|
1460 |
-
|
1461 |
-
/*
|
1462 |
-
* Global function to determine if swal2 modal is shown
|
1463 |
-
*/
|
1464 |
-
sweetAlert.isVisible = function () {
|
1465 |
-
return !!getModal();
|
1466 |
-
};
|
1467 |
-
|
1468 |
-
/*
|
1469 |
-
* Global function for chaining sweetAlert modals
|
1470 |
-
*/
|
1471 |
-
sweetAlert.queue = function (steps) {
|
1472 |
-
queue = steps;
|
1473 |
-
var resetQueue = function resetQueue() {
|
1474 |
-
queue = [];
|
1475 |
-
document.body.removeAttribute('data-swal2-queue-step');
|
1476 |
-
};
|
1477 |
-
var queueResult = [];
|
1478 |
-
return new Promise(function (resolve, reject) {
|
1479 |
-
(function step(i, callback) {
|
1480 |
-
if (i < queue.length) {
|
1481 |
-
document.body.setAttribute('data-swal2-queue-step', i);
|
1482 |
-
|
1483 |
-
sweetAlert(queue[i]).then(function (result) {
|
1484 |
-
queueResult.push(result);
|
1485 |
-
step(i + 1, callback);
|
1486 |
-
}, function (dismiss) {
|
1487 |
-
resetQueue();
|
1488 |
-
reject(dismiss);
|
1489 |
-
});
|
1490 |
-
} else {
|
1491 |
-
resetQueue();
|
1492 |
-
resolve(queueResult);
|
1493 |
-
}
|
1494 |
-
})(0);
|
1495 |
-
});
|
1496 |
-
};
|
1497 |
-
|
1498 |
-
/*
|
1499 |
-
* Global function for getting the index of current modal in queue
|
1500 |
-
*/
|
1501 |
-
sweetAlert.getQueueStep = function () {
|
1502 |
-
return document.body.getAttribute('data-swal2-queue-step');
|
1503 |
-
};
|
1504 |
-
|
1505 |
-
/*
|
1506 |
-
* Global function for inserting a modal to the queue
|
1507 |
-
*/
|
1508 |
-
sweetAlert.insertQueueStep = function (step, index) {
|
1509 |
-
if (index && index < queue.length) {
|
1510 |
-
return queue.splice(index, 0, step);
|
1511 |
-
}
|
1512 |
-
return queue.push(step);
|
1513 |
-
};
|
1514 |
-
|
1515 |
-
/*
|
1516 |
-
* Global function for deleting a modal from the queue
|
1517 |
-
*/
|
1518 |
-
sweetAlert.deleteQueueStep = function (index) {
|
1519 |
-
if (typeof queue[index] !== 'undefined') {
|
1520 |
-
queue.splice(index, 1);
|
1521 |
-
}
|
1522 |
-
};
|
1523 |
-
|
1524 |
-
/*
|
1525 |
-
* Global function to close sweetAlert
|
1526 |
-
*/
|
1527 |
-
sweetAlert.close = sweetAlert.closeModal = function (onComplete) {
|
1528 |
-
var container = getContainer();
|
1529 |
-
var modal = getModal();
|
1530 |
-
if (!modal) {
|
1531 |
-
return;
|
1532 |
-
}
|
1533 |
-
removeClass(modal, swalClasses.show);
|
1534 |
-
addClass(modal, swalClasses.hide);
|
1535 |
-
clearTimeout(modal.timeout);
|
1536 |
-
|
1537 |
-
resetPrevState();
|
1538 |
-
|
1539 |
-
var removeModalAndResetState = function removeModalAndResetState() {
|
1540 |
-
if (container.parentNode) {
|
1541 |
-
container.parentNode.removeChild(container);
|
1542 |
-
}
|
1543 |
-
removeClass(document.documentElement, swalClasses.shown);
|
1544 |
-
removeClass(document.body, swalClasses.shown);
|
1545 |
-
undoScrollbar();
|
1546 |
-
undoIOSfix();
|
1547 |
-
};
|
1548 |
-
|
1549 |
-
// If animation is supported, animate
|
1550 |
-
if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
|
1551 |
-
modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
|
1552 |
-
modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
|
1553 |
-
if (hasClass(modal, swalClasses.hide)) {
|
1554 |
-
removeModalAndResetState();
|
1555 |
-
}
|
1556 |
-
});
|
1557 |
-
} else {
|
1558 |
-
// Otherwise, remove immediately
|
1559 |
-
removeModalAndResetState();
|
1560 |
-
}
|
1561 |
-
if (onComplete !== null && typeof onComplete === 'function') {
|
1562 |
-
setTimeout(function () {
|
1563 |
-
onComplete(modal);
|
1564 |
-
});
|
1565 |
-
}
|
1566 |
-
};
|
1567 |
-
|
1568 |
-
/*
|
1569 |
-
* Global function to click 'Confirm' button
|
1570 |
-
*/
|
1571 |
-
sweetAlert.clickConfirm = function () {
|
1572 |
-
return getConfirmButton().click();
|
1573 |
-
};
|
1574 |
-
|
1575 |
-
/*
|
1576 |
-
* Global function to click 'Cancel' button
|
1577 |
-
*/
|
1578 |
-
sweetAlert.clickCancel = function () {
|
1579 |
-
return getCancelButton().click();
|
1580 |
-
};
|
1581 |
-
|
1582 |
-
/**
|
1583 |
-
* Show spinner instead of Confirm button and disable Cancel button
|
1584 |
-
*/
|
1585 |
-
sweetAlert.showLoading = sweetAlert.enableLoading = function () {
|
1586 |
-
var modal = getModal();
|
1587 |
-
if (!modal) {
|
1588 |
-
sweetAlert('');
|
1589 |
-
}
|
1590 |
-
var buttonsWrapper = getButtonsWrapper();
|
1591 |
-
var confirmButton = getConfirmButton();
|
1592 |
-
var cancelButton = getCancelButton();
|
1593 |
-
|
1594 |
-
show(buttonsWrapper);
|
1595 |
-
show(confirmButton, 'inline-block');
|
1596 |
-
addClass(buttonsWrapper, swalClasses.loading);
|
1597 |
-
addClass(modal, swalClasses.loading);
|
1598 |
-
confirmButton.disabled = true;
|
1599 |
-
cancelButton.disabled = true;
|
1600 |
-
};
|
1601 |
-
|
1602 |
-
/**
|
1603 |
-
* Set default params for each popup
|
1604 |
-
* @param {Object} userParams
|
1605 |
-
*/
|
1606 |
-
sweetAlert.setDefaults = function (userParams) {
|
1607 |
-
if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {
|
1608 |
-
return console.error('SweetAlert2: the argument for setDefaults() is required and has to be a object');
|
1609 |
-
}
|
1610 |
-
|
1611 |
-
for (var param in userParams) {
|
1612 |
-
if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
|
1613 |
-
console.warn('SweetAlert2: Unknown parameter "' + param + '"');
|
1614 |
-
delete userParams[param];
|
1615 |
-
}
|
1616 |
-
}
|
1617 |
-
|
1618 |
-
_extends(modalParams, userParams);
|
1619 |
-
};
|
1620 |
-
|
1621 |
-
/**
|
1622 |
-
* Reset default params for each popup
|
1623 |
-
*/
|
1624 |
-
sweetAlert.resetDefaults = function () {
|
1625 |
-
modalParams = _extends({}, defaultParams);
|
1626 |
-
};
|
1627 |
-
|
1628 |
-
sweetAlert.noop = function () {};
|
1629 |
-
|
1630 |
-
sweetAlert.version = '6.6.4';
|
1631 |
-
|
1632 |
-
sweetAlert.default = sweetAlert;
|
1633 |
-
|
1634 |
-
module.exports = sweetAlert;
|
1635 |
-
if (window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/vendor/sweetalert2/dist/sweetalert2.css
CHANGED
@@ -1,717 +1,1448 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
.swal2-container {
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
-webkit-
|
26 |
-
|
27 |
-
|
28 |
-
background
|
29 |
-
|
30 |
-
.swal2-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
font-weight: 600;
|
|
|
53 |
text-transform: none;
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
padding: 0;
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
border: 3px solid #999999;
|
95 |
-
-webkit-box-shadow: 1px 1px 1px #fff;
|
96 |
-
box-shadow: 1px 1px 1px #fff;
|
97 |
-
border-right-color: transparent;
|
98 |
-
border-radius: 50%;
|
99 |
-
-webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
|
100 |
-
animation: rotate-loading 1.5s linear 0s infinite normal; }
|
101 |
-
.swal2-modal .swal2-styled {
|
102 |
border: 0;
|
103 |
-
border-radius:
|
104 |
-
|
105 |
-
|
106 |
color: #fff;
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
margin: 20px auto;
|
114 |
-
max-width: 100%; }
|
115 |
-
.swal2-modal .swal2-close {
|
116 |
-
background: transparent;
|
117 |
border: 0;
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
padding: 0;
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
124 |
font-family: serif;
|
125 |
-
|
126 |
-
|
127 |
-
right: 8px;
|
128 |
cursor: pointer;
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
margin: 0;
|
148 |
padding: 0;
|
|
|
|
|
|
|
|
|
149 |
line-height: normal;
|
150 |
-
|
151 |
-
word-wrap: break-word;
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
167 |
border: 1px solid #d9d9d9;
|
168 |
-
-
|
169 |
-
|
170 |
-
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
.swal2-modal .swal2-file::-webkit-input-placeholder,
|
205 |
-
.swal2-modal .swal2-textarea::-webkit-input-placeholder {
|
206 |
-
color: #e6e6e6; }
|
207 |
-
.swal2-modal .swal2-input:-ms-input-placeholder,
|
208 |
-
.swal2-modal .swal2-file:-ms-input-placeholder,
|
209 |
-
.swal2-modal .swal2-textarea:-ms-input-placeholder {
|
210 |
-
color: #e6e6e6; }
|
211 |
-
.swal2-modal .swal2-input::placeholder,
|
212 |
-
.swal2-modal .swal2-file::placeholder,
|
213 |
-
.swal2-modal .swal2-textarea::placeholder {
|
214 |
-
color: #e6e6e6; }
|
215 |
-
.swal2-modal .swal2-range input {
|
216 |
-
float: left;
|
217 |
-
width: 80%; }
|
218 |
-
.swal2-modal .swal2-range output {
|
219 |
-
float: right;
|
220 |
width: 20%;
|
221 |
-
|
222 |
font-weight: 600;
|
223 |
-
text-align: center;
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
font-size:
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
.
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
overflow: hidden;
|
265 |
-
|
266 |
-
color:
|
267 |
-
font-size:
|
268 |
font-weight: 300;
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
width: 100% !important; }
|
285 |
-
.swal2-range output {
|
286 |
-
display: none; } }
|
287 |
-
|
288 |
-
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
|
289 |
-
.swal2-range input {
|
290 |
-
width: 100% !important; }
|
291 |
-
.swal2-range output {
|
292 |
-
display: none; } }
|
293 |
|
294 |
.swal2-icon {
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
border-color: #facea8;
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
340 |
border-color: #9de0f6;
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
|
|
|
|
|
|
|
|
|
|
347 |
border-color: #c9dae1;
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
display: inline-block;
|
422 |
-
position: relative;
|
423 |
-
|
424 |
-
|
|
|
|
|
|
|
|
|
425 |
border-radius: 2em;
|
|
|
426 |
color: #fff;
|
427 |
-
height: 2em;
|
428 |
line-height: 2em;
|
429 |
text-align: center;
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
|
|
445 |
margin: 0 -1px;
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
0% {
|
453 |
-
-webkit-transform: scale(0.7);
|
454 |
-
transform: scale(0.7); }
|
455 |
-
45% {
|
456 |
-
-webkit-transform: scale(1.05);
|
457 |
-
transform: scale(1.05); }
|
458 |
-
80% {
|
459 |
-
-webkit-transform: scale(0.95);
|
460 |
-
transform: scale(0.95); }
|
461 |
-
100% {
|
462 |
-
-webkit-transform: scale(1);
|
463 |
-
transform: scale(1); } }
|
464 |
-
|
465 |
-
@keyframes showSweetAlert {
|
466 |
-
0% {
|
467 |
-
-webkit-transform: scale(0.7);
|
468 |
-
transform: scale(0.7); }
|
469 |
-
45% {
|
470 |
-
-webkit-transform: scale(1.05);
|
471 |
-
transform: scale(1.05); }
|
472 |
-
80% {
|
473 |
-
-webkit-transform: scale(0.95);
|
474 |
-
transform: scale(0.95); }
|
475 |
-
100% {
|
476 |
-
-webkit-transform: scale(1);
|
477 |
-
transform: scale(1); } }
|
478 |
-
|
479 |
-
@-webkit-keyframes hideSweetAlert {
|
480 |
-
0% {
|
481 |
-
-webkit-transform: scale(1);
|
482 |
-
transform: scale(1);
|
483 |
-
opacity: 1; }
|
484 |
-
100% {
|
485 |
-
-webkit-transform: scale(0.5);
|
486 |
-
transform: scale(0.5);
|
487 |
-
opacity: 0; } }
|
488 |
-
|
489 |
-
@keyframes hideSweetAlert {
|
490 |
-
0% {
|
491 |
-
-webkit-transform: scale(1);
|
492 |
-
transform: scale(1);
|
493 |
-
opacity: 1; }
|
494 |
-
100% {
|
495 |
-
-webkit-transform: scale(0.5);
|
496 |
-
transform: scale(0.5);
|
497 |
-
opacity: 0; } }
|
498 |
|
499 |
.swal2-show {
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
-webkit-animation: none;
|
504 |
-
animation: none; }
|
505 |
|
506 |
.swal2-hide {
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
top:
|
518 |
-
54% {
|
519 |
-
width: 0;
|
520 |
-
left: 1px;
|
521 |
-
top: 19px; }
|
522 |
-
70% {
|
523 |
-
width: 50px;
|
524 |
-
left: -8px;
|
525 |
-
top: 37px; }
|
526 |
-
84% {
|
527 |
-
width: 17px;
|
528 |
-
left: 21px;
|
529 |
-
top: 48px; }
|
530 |
-
100% {
|
531 |
-
width: 25px;
|
532 |
-
left: 14px;
|
533 |
-
top: 45px; } }
|
534 |
-
|
535 |
-
@keyframes animate-success-tip {
|
536 |
-
0% {
|
537 |
-
width: 0;
|
538 |
-
left: 1px;
|
539 |
-
top: 19px; }
|
540 |
-
54% {
|
541 |
-
width: 0;
|
542 |
-
left: 1px;
|
543 |
-
top: 19px; }
|
544 |
-
70% {
|
545 |
width: 50px;
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
top: 45px; } }
|
556 |
-
|
557 |
-
@-webkit-keyframes animate-success-long {
|
558 |
-
0% {
|
559 |
-
width: 0;
|
560 |
-
right: 46px;
|
561 |
-
top: 54px; }
|
562 |
-
65% {
|
563 |
-
width: 0;
|
564 |
-
right: 46px;
|
565 |
-
top: 54px; }
|
566 |
-
84% {
|
567 |
-
width: 55px;
|
568 |
right: 0;
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
width: 0;
|
578 |
-
right: 46px;
|
579 |
-
top: 54px; }
|
580 |
-
65% {
|
581 |
-
width: 0;
|
582 |
-
right: 46px;
|
583 |
-
top: 54px; }
|
584 |
-
84% {
|
585 |
-
width: 55px;
|
586 |
right: 0;
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
-
|
596 |
-
|
597 |
-
|
598 |
-
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
.
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
@-webkit-keyframes
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
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 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.swal2-popup.swal2-toast {
|
2 |
+
box-sizing: border-box;
|
3 |
+
grid-column: 1/4 !important;
|
4 |
+
grid-row: 1/4 !important;
|
5 |
+
grid-template-columns: 1fr 99fr 1fr;
|
6 |
+
padding: 1em;
|
7 |
+
overflow-y: hidden;
|
8 |
+
background: #fff;
|
9 |
+
box-shadow: 0 0 1px hsla(0deg, 0%, 0%, 0.075), 0 1px 2px hsla(0deg, 0%, 0%, 0.075), 1px 2px 4px hsla(0deg, 0%, 0%, 0.075), 1px 3px 8px hsla(0deg, 0%, 0%, 0.075), 2px 4px 16px hsla(0deg, 0%, 0%, 0.075);
|
10 |
+
pointer-events: all;
|
11 |
+
}
|
12 |
+
.swal2-popup.swal2-toast > * {
|
13 |
+
grid-column: 2;
|
14 |
+
}
|
15 |
+
.swal2-popup.swal2-toast .swal2-title {
|
16 |
+
margin: 0.5em 1em;
|
17 |
+
padding: 0;
|
18 |
+
font-size: 1em;
|
19 |
+
text-align: initial;
|
20 |
+
}
|
21 |
+
.swal2-popup.swal2-toast .swal2-loading {
|
22 |
+
justify-content: center;
|
23 |
+
}
|
24 |
+
.swal2-popup.swal2-toast .swal2-input {
|
25 |
+
height: 2em;
|
26 |
+
margin: 0.5em;
|
27 |
+
font-size: 1em;
|
28 |
+
}
|
29 |
+
.swal2-popup.swal2-toast .swal2-validation-message {
|
30 |
+
font-size: 1em;
|
31 |
+
}
|
32 |
+
.swal2-popup.swal2-toast .swal2-footer {
|
33 |
+
margin: 0.5em 0 0;
|
34 |
+
padding: 0.5em 0 0;
|
35 |
+
font-size: 0.8em;
|
36 |
+
}
|
37 |
+
.swal2-popup.swal2-toast .swal2-close {
|
38 |
+
grid-column: 3/3;
|
39 |
+
grid-row: 1/99;
|
40 |
+
align-self: center;
|
41 |
+
width: 0.8em;
|
42 |
+
height: 0.8em;
|
43 |
+
margin: 0;
|
44 |
+
font-size: 2em;
|
45 |
+
}
|
46 |
+
.swal2-popup.swal2-toast .swal2-html-container {
|
47 |
+
margin: 0.5em 1em;
|
48 |
+
padding: 0;
|
49 |
+
overflow: initial;
|
50 |
+
font-size: 1em;
|
51 |
+
text-align: initial;
|
52 |
+
}
|
53 |
+
.swal2-popup.swal2-toast .swal2-html-container:empty {
|
54 |
+
padding: 0;
|
55 |
+
}
|
56 |
+
.swal2-popup.swal2-toast .swal2-loader {
|
57 |
+
grid-column: 1;
|
58 |
+
grid-row: 1/99;
|
59 |
+
align-self: center;
|
60 |
+
width: 2em;
|
61 |
+
height: 2em;
|
62 |
+
margin: 0.25em;
|
63 |
+
}
|
64 |
+
.swal2-popup.swal2-toast .swal2-icon {
|
65 |
+
grid-column: 1;
|
66 |
+
grid-row: 1/99;
|
67 |
+
align-self: center;
|
68 |
+
width: 2em;
|
69 |
+
min-width: 2em;
|
70 |
+
height: 2em;
|
71 |
+
margin: 0 0.5em 0 0;
|
72 |
+
}
|
73 |
+
.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {
|
74 |
+
display: flex;
|
75 |
+
align-items: center;
|
76 |
+
font-size: 1.8em;
|
77 |
+
font-weight: bold;
|
78 |
+
}
|
79 |
+
.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {
|
80 |
+
width: 2em;
|
81 |
+
height: 2em;
|
82 |
+
}
|
83 |
+
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
|
84 |
+
top: 0.875em;
|
85 |
+
width: 1.375em;
|
86 |
+
}
|
87 |
+
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
|
88 |
+
left: 0.3125em;
|
89 |
+
}
|
90 |
+
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
|
91 |
+
right: 0.3125em;
|
92 |
+
}
|
93 |
+
.swal2-popup.swal2-toast .swal2-actions {
|
94 |
+
justify-content: flex-start;
|
95 |
+
height: auto;
|
96 |
+
margin: 0;
|
97 |
+
margin-top: 0.5em;
|
98 |
+
padding: 0 0.5em;
|
99 |
+
}
|
100 |
+
.swal2-popup.swal2-toast .swal2-styled {
|
101 |
+
margin: 0.25em 0.5em;
|
102 |
+
padding: 0.4em 0.6em;
|
103 |
+
font-size: 1em;
|
104 |
+
}
|
105 |
+
.swal2-popup.swal2-toast .swal2-success {
|
106 |
+
border-color: #a5dc86;
|
107 |
+
}
|
108 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] {
|
109 |
+
position: absolute;
|
110 |
+
width: 1.6em;
|
111 |
+
height: 3em;
|
112 |
+
transform: rotate(45deg);
|
113 |
+
border-radius: 50%;
|
114 |
+
}
|
115 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] {
|
116 |
+
top: -0.8em;
|
117 |
+
left: -0.5em;
|
118 |
+
transform: rotate(-45deg);
|
119 |
+
transform-origin: 2em 2em;
|
120 |
+
border-radius: 4em 0 0 4em;
|
121 |
+
}
|
122 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] {
|
123 |
+
top: -0.25em;
|
124 |
+
left: 0.9375em;
|
125 |
+
transform-origin: 0 1.5em;
|
126 |
+
border-radius: 0 4em 4em 0;
|
127 |
+
}
|
128 |
+
.swal2-popup.swal2-toast .swal2-success .swal2-success-ring {
|
129 |
+
width: 2em;
|
130 |
+
height: 2em;
|
131 |
+
}
|
132 |
+
.swal2-popup.swal2-toast .swal2-success .swal2-success-fix {
|
133 |
+
top: 0;
|
134 |
+
left: 0.4375em;
|
135 |
+
width: 0.4375em;
|
136 |
+
height: 2.6875em;
|
137 |
+
}
|
138 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] {
|
139 |
+
height: 0.3125em;
|
140 |
+
}
|
141 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] {
|
142 |
+
top: 1.125em;
|
143 |
+
left: 0.1875em;
|
144 |
+
width: 0.75em;
|
145 |
+
}
|
146 |
+
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] {
|
147 |
+
top: 0.9375em;
|
148 |
+
right: 0.1875em;
|
149 |
+
width: 1.375em;
|
150 |
+
}
|
151 |
+
.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {
|
152 |
+
-webkit-animation: swal2-toast-animate-success-line-tip 0.75s;
|
153 |
+
animation: swal2-toast-animate-success-line-tip 0.75s;
|
154 |
+
}
|
155 |
+
.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {
|
156 |
+
-webkit-animation: swal2-toast-animate-success-line-long 0.75s;
|
157 |
+
animation: swal2-toast-animate-success-line-long 0.75s;
|
158 |
+
}
|
159 |
+
.swal2-popup.swal2-toast.swal2-show {
|
160 |
+
-webkit-animation: swal2-toast-show 0.5s;
|
161 |
+
animation: swal2-toast-show 0.5s;
|
162 |
+
}
|
163 |
+
.swal2-popup.swal2-toast.swal2-hide {
|
164 |
+
-webkit-animation: swal2-toast-hide 0.1s forwards;
|
165 |
+
animation: swal2-toast-hide 0.1s forwards;
|
166 |
+
}
|
167 |
|
168 |
.swal2-container {
|
169 |
+
display: grid;
|
170 |
+
position: fixed;
|
171 |
+
z-index: 1060;
|
172 |
+
top: 0;
|
173 |
+
right: 0;
|
174 |
+
bottom: 0;
|
175 |
+
left: 0;
|
176 |
+
box-sizing: border-box;
|
177 |
+
grid-template-areas: "top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";
|
178 |
+
grid-template-rows: minmax(-webkit-min-content, auto) minmax(-webkit-min-content, auto) minmax(-webkit-min-content, auto);
|
179 |
+
grid-template-rows: minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);
|
180 |
+
height: 100%;
|
181 |
+
padding: 0.625em;
|
182 |
+
overflow-x: hidden;
|
183 |
+
transition: background-color 0.1s;
|
184 |
+
-webkit-overflow-scrolling: touch;
|
185 |
+
}
|
186 |
+
.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {
|
187 |
+
background: rgba(0, 0, 0, 0.4);
|
188 |
+
}
|
189 |
+
.swal2-container.swal2-backdrop-hide {
|
190 |
+
background: transparent !important;
|
191 |
+
}
|
192 |
+
.swal2-container.swal2-top-start, .swal2-container.swal2-center-start, .swal2-container.swal2-bottom-start {
|
193 |
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
194 |
+
}
|
195 |
+
.swal2-container.swal2-top, .swal2-container.swal2-center, .swal2-container.swal2-bottom {
|
196 |
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
197 |
+
}
|
198 |
+
.swal2-container.swal2-top-end, .swal2-container.swal2-center-end, .swal2-container.swal2-bottom-end {
|
199 |
+
grid-template-columns: auto auto minmax(0, 1fr);
|
200 |
+
}
|
201 |
+
.swal2-container.swal2-top-start > .swal2-popup {
|
202 |
+
align-self: start;
|
203 |
+
}
|
204 |
+
.swal2-container.swal2-top > .swal2-popup {
|
205 |
+
grid-column: 2;
|
206 |
+
align-self: start;
|
207 |
+
justify-self: center;
|
208 |
+
}
|
209 |
+
.swal2-container.swal2-top-end > .swal2-popup, .swal2-container.swal2-top-right > .swal2-popup {
|
210 |
+
grid-column: 3;
|
211 |
+
align-self: start;
|
212 |
+
justify-self: end;
|
213 |
+
}
|
214 |
+
.swal2-container.swal2-center-start > .swal2-popup, .swal2-container.swal2-center-left > .swal2-popup {
|
215 |
+
grid-row: 2;
|
216 |
+
align-self: center;
|
217 |
+
}
|
218 |
+
.swal2-container.swal2-center > .swal2-popup {
|
219 |
+
grid-column: 2;
|
220 |
+
grid-row: 2;
|
221 |
+
align-self: center;
|
222 |
+
justify-self: center;
|
223 |
+
}
|
224 |
+
.swal2-container.swal2-center-end > .swal2-popup, .swal2-container.swal2-center-right > .swal2-popup {
|
225 |
+
grid-column: 3;
|
226 |
+
grid-row: 2;
|
227 |
+
align-self: center;
|
228 |
+
justify-self: end;
|
229 |
+
}
|
230 |
+
.swal2-container.swal2-bottom-start > .swal2-popup, .swal2-container.swal2-bottom-left > .swal2-popup {
|
231 |
+
grid-column: 1;
|
232 |
+
grid-row: 3;
|
233 |
+
align-self: end;
|
234 |
+
}
|
235 |
+
.swal2-container.swal2-bottom > .swal2-popup {
|
236 |
+
grid-column: 2;
|
237 |
+
grid-row: 3;
|
238 |
+
justify-self: center;
|
239 |
+
align-self: end;
|
240 |
+
}
|
241 |
+
.swal2-container.swal2-bottom-end > .swal2-popup, .swal2-container.swal2-bottom-right > .swal2-popup {
|
242 |
+
grid-column: 3;
|
243 |
+
grid-row: 3;
|
244 |
+
align-self: end;
|
245 |
+
justify-self: end;
|
246 |
+
}
|
247 |
+
.swal2-container.swal2-grow-row > .swal2-popup, .swal2-container.swal2-grow-fullscreen > .swal2-popup {
|
248 |
+
grid-column: 1/4;
|
249 |
+
width: 100%;
|
250 |
+
}
|
251 |
+
.swal2-container.swal2-grow-column > .swal2-popup, .swal2-container.swal2-grow-fullscreen > .swal2-popup {
|
252 |
+
grid-row: 1/4;
|
253 |
+
align-self: stretch;
|
254 |
+
}
|
255 |
+
.swal2-container.swal2-no-transition {
|
256 |
+
transition: none !important;
|
257 |
+
}
|
258 |
+
|
259 |
+
.swal2-popup {
|
260 |
+
display: none;
|
261 |
+
position: relative;
|
262 |
+
box-sizing: border-box;
|
263 |
+
grid-template-columns: minmax(0, 100%);
|
264 |
+
width: 32em;
|
265 |
+
max-width: 100%;
|
266 |
+
padding: 0 0 1.25em;
|
267 |
+
border: none;
|
268 |
+
border-radius: 5px;
|
269 |
+
background: #fff;
|
270 |
+
color: #545454;
|
271 |
+
font-family: inherit;
|
272 |
+
font-size: 1rem;
|
273 |
+
}
|
274 |
+
.swal2-popup:focus {
|
275 |
+
outline: none;
|
276 |
+
}
|
277 |
+
.swal2-popup.swal2-loading {
|
278 |
+
overflow-y: hidden;
|
279 |
+
}
|
280 |
+
|
281 |
+
.swal2-title {
|
282 |
+
position: relative;
|
283 |
+
max-width: 100%;
|
284 |
+
margin: 0;
|
285 |
+
padding: 0.8em 1em 0;
|
286 |
+
color: inherit;
|
287 |
+
font-size: 1.875em;
|
288 |
font-weight: 600;
|
289 |
+
text-align: center;
|
290 |
text-transform: none;
|
291 |
+
word-wrap: break-word;
|
292 |
+
}
|
293 |
+
|
294 |
+
.swal2-actions {
|
295 |
+
display: flex;
|
296 |
+
z-index: 1;
|
297 |
+
box-sizing: border-box;
|
298 |
+
flex-wrap: wrap;
|
299 |
+
align-items: center;
|
300 |
+
justify-content: center;
|
301 |
+
width: auto;
|
302 |
+
margin: 1.25em auto 0;
|
303 |
padding: 0;
|
304 |
+
}
|
305 |
+
.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {
|
306 |
+
opacity: 0.4;
|
307 |
+
}
|
308 |
+
.swal2-actions:not(.swal2-loading) .swal2-styled:hover {
|
309 |
+
background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1));
|
310 |
+
}
|
311 |
+
.swal2-actions:not(.swal2-loading) .swal2-styled:active {
|
312 |
+
background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
|
313 |
+
}
|
314 |
+
|
315 |
+
.swal2-loader {
|
316 |
+
display: none;
|
317 |
+
align-items: center;
|
318 |
+
justify-content: center;
|
319 |
+
width: 2.2em;
|
320 |
+
height: 2.2em;
|
321 |
+
margin: 0 1.875em;
|
322 |
+
-webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;
|
323 |
+
animation: swal2-rotate-loading 1.5s linear 0s infinite normal;
|
324 |
+
border-width: 0.25em;
|
325 |
+
border-style: solid;
|
326 |
+
border-radius: 100%;
|
327 |
+
border-color: #2778c4 transparent #2778c4 transparent;
|
328 |
+
}
|
329 |
+
|
330 |
+
.swal2-styled {
|
331 |
+
margin: 0.3125em;
|
332 |
+
padding: 0.625em 1.1em;
|
333 |
+
transition: box-shadow 0.1s;
|
334 |
+
box-shadow: 0 0 0 3px transparent;
|
335 |
+
font-weight: 500;
|
336 |
+
}
|
337 |
+
.swal2-styled:not([disabled]) {
|
338 |
+
cursor: pointer;
|
339 |
+
}
|
340 |
+
.swal2-styled.swal2-confirm {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
border: 0;
|
342 |
+
border-radius: 0.25em;
|
343 |
+
background: initial;
|
344 |
+
background-color: #7066e0;
|
345 |
color: #fff;
|
346 |
+
font-size: 1em;
|
347 |
+
}
|
348 |
+
.swal2-styled.swal2-confirm:focus {
|
349 |
+
box-shadow: 0 0 0 3px rgba(112, 102, 224, 0.5);
|
350 |
+
}
|
351 |
+
.swal2-styled.swal2-deny {
|
|
|
|
|
|
|
|
|
352 |
border: 0;
|
353 |
+
border-radius: 0.25em;
|
354 |
+
background: initial;
|
355 |
+
background-color: #dc3741;
|
356 |
+
color: #fff;
|
357 |
+
font-size: 1em;
|
358 |
+
}
|
359 |
+
.swal2-styled.swal2-deny:focus {
|
360 |
+
box-shadow: 0 0 0 3px rgba(220, 55, 65, 0.5);
|
361 |
+
}
|
362 |
+
.swal2-styled.swal2-cancel {
|
363 |
+
border: 0;
|
364 |
+
border-radius: 0.25em;
|
365 |
+
background: initial;
|
366 |
+
background-color: #6e7881;
|
367 |
+
color: #fff;
|
368 |
+
font-size: 1em;
|
369 |
+
}
|
370 |
+
.swal2-styled.swal2-cancel:focus {
|
371 |
+
box-shadow: 0 0 0 3px rgba(110, 120, 129, 0.5);
|
372 |
+
}
|
373 |
+
.swal2-styled.swal2-default-outline:focus {
|
374 |
+
box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5);
|
375 |
+
}
|
376 |
+
.swal2-styled:focus {
|
377 |
+
outline: none;
|
378 |
+
}
|
379 |
+
.swal2-styled::-moz-focus-inner {
|
380 |
+
border: 0;
|
381 |
+
}
|
382 |
+
|
383 |
+
.swal2-footer {
|
384 |
+
justify-content: center;
|
385 |
+
margin: 1em 0 0;
|
386 |
+
padding: 1em 1em 0;
|
387 |
+
border-top: 1px solid #eee;
|
388 |
+
color: inherit;
|
389 |
+
font-size: 1em;
|
390 |
+
}
|
391 |
+
|
392 |
+
.swal2-timer-progress-bar-container {
|
393 |
+
position: absolute;
|
394 |
+
right: 0;
|
395 |
+
bottom: 0;
|
396 |
+
left: 0;
|
397 |
+
grid-column: auto !important;
|
398 |
+
overflow: hidden;
|
399 |
+
border-bottom-right-radius: 5px;
|
400 |
+
border-bottom-left-radius: 5px;
|
401 |
+
}
|
402 |
+
|
403 |
+
.swal2-timer-progress-bar {
|
404 |
+
width: 100%;
|
405 |
+
height: 0.25em;
|
406 |
+
background: rgba(0, 0, 0, 0.2);
|
407 |
+
}
|
408 |
+
|
409 |
+
.swal2-image {
|
410 |
+
max-width: 100%;
|
411 |
+
margin: 2em auto 1em;
|
412 |
+
}
|
413 |
+
|
414 |
+
.swal2-close {
|
415 |
+
z-index: 2;
|
416 |
+
align-items: center;
|
417 |
+
justify-content: center;
|
418 |
+
width: 1.2em;
|
419 |
+
height: 1.2em;
|
420 |
+
margin-top: 0;
|
421 |
+
margin-right: 0;
|
422 |
+
margin-bottom: -1.2em;
|
423 |
padding: 0;
|
424 |
+
overflow: hidden;
|
425 |
+
transition: color 0.1s, box-shadow 0.1s;
|
426 |
+
border: none;
|
427 |
+
border-radius: 5px;
|
428 |
+
background: transparent;
|
429 |
+
color: #ccc;
|
430 |
font-family: serif;
|
431 |
+
font-family: monospace;
|
432 |
+
font-size: 2.5em;
|
|
|
433 |
cursor: pointer;
|
434 |
+
justify-self: end;
|
435 |
+
}
|
436 |
+
.swal2-close:hover {
|
437 |
+
transform: none;
|
438 |
+
background: transparent;
|
439 |
+
color: #f27474;
|
440 |
+
}
|
441 |
+
.swal2-close:focus {
|
442 |
+
outline: none;
|
443 |
+
box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5);
|
444 |
+
}
|
445 |
+
.swal2-close::-moz-focus-inner {
|
446 |
+
border: 0;
|
447 |
+
}
|
448 |
+
|
449 |
+
.swal2-html-container {
|
450 |
+
z-index: 1;
|
451 |
+
justify-content: center;
|
452 |
+
margin: 1em 1.6em 0.3em;
|
453 |
padding: 0;
|
454 |
+
overflow: auto;
|
455 |
+
color: inherit;
|
456 |
+
font-size: 1.125em;
|
457 |
+
font-weight: normal;
|
458 |
line-height: normal;
|
459 |
+
text-align: center;
|
460 |
+
word-wrap: break-word;
|
461 |
+
word-break: break-word;
|
462 |
+
}
|
463 |
+
|
464 |
+
.swal2-input,
|
465 |
+
.swal2-file,
|
466 |
+
.swal2-textarea,
|
467 |
+
.swal2-select,
|
468 |
+
.swal2-radio,
|
469 |
+
.swal2-checkbox {
|
470 |
+
margin: 1em 2em 3px;
|
471 |
+
}
|
472 |
+
|
473 |
+
.swal2-input,
|
474 |
+
.swal2-file,
|
475 |
+
.swal2-textarea {
|
476 |
+
box-sizing: border-box;
|
477 |
+
width: auto;
|
478 |
+
transition: border-color 0.1s, box-shadow 0.1s;
|
479 |
border: 1px solid #d9d9d9;
|
480 |
+
border-radius: 0.1875em;
|
481 |
+
background: transparent;
|
482 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;
|
483 |
+
color: inherit;
|
484 |
+
font-size: 1.125em;
|
485 |
+
}
|
486 |
+
.swal2-input.swal2-inputerror,
|
487 |
+
.swal2-file.swal2-inputerror,
|
488 |
+
.swal2-textarea.swal2-inputerror {
|
489 |
+
border-color: #f27474 !important;
|
490 |
+
box-shadow: 0 0 2px #f27474 !important;
|
491 |
+
}
|
492 |
+
.swal2-input:focus,
|
493 |
+
.swal2-file:focus,
|
494 |
+
.swal2-textarea:focus {
|
495 |
+
border: 1px solid #b4dbed;
|
496 |
+
outline: none;
|
497 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5);
|
498 |
+
}
|
499 |
+
.swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder {
|
500 |
+
color: #ccc;
|
501 |
+
}
|
502 |
+
.swal2-input::placeholder,
|
503 |
+
.swal2-file::placeholder,
|
504 |
+
.swal2-textarea::placeholder {
|
505 |
+
color: #ccc;
|
506 |
+
}
|
507 |
+
|
508 |
+
.swal2-range {
|
509 |
+
margin: 1em 2em 3px;
|
510 |
+
background: #fff;
|
511 |
+
}
|
512 |
+
.swal2-range input {
|
513 |
+
width: 80%;
|
514 |
+
}
|
515 |
+
.swal2-range output {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
516 |
width: 20%;
|
517 |
+
color: inherit;
|
518 |
font-weight: 600;
|
519 |
+
text-align: center;
|
520 |
+
}
|
521 |
+
.swal2-range input,
|
522 |
+
.swal2-range output {
|
523 |
+
height: 2.625em;
|
524 |
+
padding: 0;
|
525 |
+
font-size: 1.125em;
|
526 |
+
line-height: 2.625em;
|
527 |
+
}
|
528 |
+
|
529 |
+
.swal2-input {
|
530 |
+
height: 2.625em;
|
531 |
+
padding: 0 0.75em;
|
532 |
+
}
|
533 |
+
|
534 |
+
.swal2-file {
|
535 |
+
width: 75%;
|
536 |
+
margin-right: auto;
|
537 |
+
margin-left: auto;
|
538 |
+
background: transparent;
|
539 |
+
font-size: 1.125em;
|
540 |
+
}
|
541 |
+
|
542 |
+
.swal2-textarea {
|
543 |
+
height: 6.75em;
|
544 |
+
padding: 0.75em;
|
545 |
+
}
|
546 |
+
|
547 |
+
.swal2-select {
|
548 |
+
min-width: 50%;
|
549 |
+
max-width: 100%;
|
550 |
+
padding: 0.375em 0.625em;
|
551 |
+
background: transparent;
|
552 |
+
color: inherit;
|
553 |
+
font-size: 1.125em;
|
554 |
+
}
|
555 |
+
|
556 |
+
.swal2-radio,
|
557 |
+
.swal2-checkbox {
|
558 |
+
align-items: center;
|
559 |
+
justify-content: center;
|
560 |
+
background: #fff;
|
561 |
+
color: inherit;
|
562 |
+
}
|
563 |
+
.swal2-radio label,
|
564 |
+
.swal2-checkbox label {
|
565 |
+
margin: 0 0.6em;
|
566 |
+
font-size: 1.125em;
|
567 |
+
}
|
568 |
+
.swal2-radio input,
|
569 |
+
.swal2-checkbox input {
|
570 |
+
flex-shrink: 0;
|
571 |
+
margin: 0 0.4em;
|
572 |
+
}
|
573 |
+
|
574 |
+
.swal2-input-label {
|
575 |
+
display: flex;
|
576 |
+
justify-content: center;
|
577 |
+
margin: 1em auto 0;
|
578 |
+
}
|
579 |
+
|
580 |
+
.swal2-validation-message {
|
581 |
+
align-items: center;
|
582 |
+
justify-content: center;
|
583 |
+
margin: 1em 0 0;
|
584 |
+
padding: 0.625em;
|
585 |
overflow: hidden;
|
586 |
+
background: #f0f0f0;
|
587 |
+
color: #666666;
|
588 |
+
font-size: 1em;
|
589 |
font-weight: 300;
|
590 |
+
}
|
591 |
+
.swal2-validation-message::before {
|
592 |
+
content: "!";
|
593 |
+
display: inline-block;
|
594 |
+
width: 1.5em;
|
595 |
+
min-width: 1.5em;
|
596 |
+
height: 1.5em;
|
597 |
+
margin: 0 0.625em;
|
598 |
+
border-radius: 50%;
|
599 |
+
background-color: #f27474;
|
600 |
+
color: #fff;
|
601 |
+
font-weight: 600;
|
602 |
+
line-height: 1.5em;
|
603 |
+
text-align: center;
|
604 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
605 |
|
606 |
.swal2-icon {
|
607 |
+
position: relative;
|
608 |
+
box-sizing: content-box;
|
609 |
+
justify-content: center;
|
610 |
+
width: 5em;
|
611 |
+
height: 5em;
|
612 |
+
margin: 2.5em auto 0.6em;
|
613 |
+
border: 0.25em solid transparent;
|
614 |
+
border-radius: 50%;
|
615 |
+
border-color: #000;
|
616 |
+
font-family: inherit;
|
617 |
+
line-height: 5em;
|
618 |
+
cursor: default;
|
619 |
+
-webkit-user-select: none;
|
620 |
+
-moz-user-select: none;
|
621 |
+
user-select: none;
|
622 |
+
}
|
623 |
+
.swal2-icon .swal2-icon-content {
|
624 |
+
display: flex;
|
625 |
+
align-items: center;
|
626 |
+
font-size: 3.75em;
|
627 |
+
}
|
628 |
+
.swal2-icon.swal2-error {
|
629 |
+
border-color: #f27474;
|
630 |
+
color: #f27474;
|
631 |
+
}
|
632 |
+
.swal2-icon.swal2-error .swal2-x-mark {
|
633 |
+
position: relative;
|
634 |
+
flex-grow: 1;
|
635 |
+
}
|
636 |
+
.swal2-icon.swal2-error [class^=swal2-x-mark-line] {
|
637 |
+
display: block;
|
638 |
+
position: absolute;
|
639 |
+
top: 2.3125em;
|
640 |
+
width: 2.9375em;
|
641 |
+
height: 0.3125em;
|
642 |
+
border-radius: 0.125em;
|
643 |
+
background-color: #f27474;
|
644 |
+
}
|
645 |
+
.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
|
646 |
+
left: 1.0625em;
|
647 |
+
transform: rotate(45deg);
|
648 |
+
}
|
649 |
+
.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
|
650 |
+
right: 1em;
|
651 |
+
transform: rotate(-45deg);
|
652 |
+
}
|
653 |
+
.swal2-icon.swal2-error.swal2-icon-show {
|
654 |
+
-webkit-animation: swal2-animate-error-icon 0.5s;
|
655 |
+
animation: swal2-animate-error-icon 0.5s;
|
656 |
+
}
|
657 |
+
.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {
|
658 |
+
-webkit-animation: swal2-animate-error-x-mark 0.5s;
|
659 |
+
animation: swal2-animate-error-x-mark 0.5s;
|
660 |
+
}
|
661 |
+
.swal2-icon.swal2-warning {
|
662 |
border-color: #facea8;
|
663 |
+
color: #f8bb86;
|
664 |
+
}
|
665 |
+
.swal2-icon.swal2-warning.swal2-icon-show {
|
666 |
+
-webkit-animation: swal2-animate-error-icon 0.5s;
|
667 |
+
animation: swal2-animate-error-icon 0.5s;
|
668 |
+
}
|
669 |
+
.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content {
|
670 |
+
-webkit-animation: swal2-animate-i-mark 0.5s;
|
671 |
+
animation: swal2-animate-i-mark 0.5s;
|
672 |
+
}
|
673 |
+
.swal2-icon.swal2-info {
|
674 |
border-color: #9de0f6;
|
675 |
+
color: #3fc3ee;
|
676 |
+
}
|
677 |
+
.swal2-icon.swal2-info.swal2-icon-show {
|
678 |
+
-webkit-animation: swal2-animate-error-icon 0.5s;
|
679 |
+
animation: swal2-animate-error-icon 0.5s;
|
680 |
+
}
|
681 |
+
.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content {
|
682 |
+
-webkit-animation: swal2-animate-i-mark 0.8s;
|
683 |
+
animation: swal2-animate-i-mark 0.8s;
|
684 |
+
}
|
685 |
+
.swal2-icon.swal2-question {
|
686 |
border-color: #c9dae1;
|
687 |
+
color: #87adbd;
|
688 |
+
}
|
689 |
+
.swal2-icon.swal2-question.swal2-icon-show {
|
690 |
+
-webkit-animation: swal2-animate-error-icon 0.5s;
|
691 |
+
animation: swal2-animate-error-icon 0.5s;
|
692 |
+
}
|
693 |
+
.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content {
|
694 |
+
-webkit-animation: swal2-animate-question-mark 0.8s;
|
695 |
+
animation: swal2-animate-question-mark 0.8s;
|
696 |
+
}
|
697 |
+
.swal2-icon.swal2-success {
|
698 |
+
border-color: #a5dc86;
|
699 |
+
color: #a5dc86;
|
700 |
+
}
|
701 |
+
.swal2-icon.swal2-success [class^=swal2-success-circular-line] {
|
702 |
+
position: absolute;
|
703 |
+
width: 3.75em;
|
704 |
+
height: 7.5em;
|
705 |
+
transform: rotate(45deg);
|
706 |
+
border-radius: 50%;
|
707 |
+
}
|
708 |
+
.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
|
709 |
+
top: -0.4375em;
|
710 |
+
left: -2.0635em;
|
711 |
+
transform: rotate(-45deg);
|
712 |
+
transform-origin: 3.75em 3.75em;
|
713 |
+
border-radius: 7.5em 0 0 7.5em;
|
714 |
+
}
|
715 |
+
.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
|
716 |
+
top: -0.6875em;
|
717 |
+
left: 1.875em;
|
718 |
+
transform: rotate(-45deg);
|
719 |
+
transform-origin: 0 3.75em;
|
720 |
+
border-radius: 0 7.5em 7.5em 0;
|
721 |
+
}
|
722 |
+
.swal2-icon.swal2-success .swal2-success-ring {
|
723 |
+
position: absolute;
|
724 |
+
z-index: 2;
|
725 |
+
top: -0.25em;
|
726 |
+
left: -0.25em;
|
727 |
+
box-sizing: content-box;
|
728 |
+
width: 100%;
|
729 |
+
height: 100%;
|
730 |
+
border: 0.25em solid rgba(165, 220, 134, 0.3);
|
731 |
+
border-radius: 50%;
|
732 |
+
}
|
733 |
+
.swal2-icon.swal2-success .swal2-success-fix {
|
734 |
+
position: absolute;
|
735 |
+
z-index: 1;
|
736 |
+
top: 0.5em;
|
737 |
+
left: 1.625em;
|
738 |
+
width: 0.4375em;
|
739 |
+
height: 5.625em;
|
740 |
+
transform: rotate(-45deg);
|
741 |
+
}
|
742 |
+
.swal2-icon.swal2-success [class^=swal2-success-line] {
|
743 |
+
display: block;
|
744 |
+
position: absolute;
|
745 |
+
z-index: 2;
|
746 |
+
height: 0.3125em;
|
747 |
+
border-radius: 0.125em;
|
748 |
+
background-color: #a5dc86;
|
749 |
+
}
|
750 |
+
.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {
|
751 |
+
top: 2.875em;
|
752 |
+
left: 0.8125em;
|
753 |
+
width: 1.5625em;
|
754 |
+
transform: rotate(45deg);
|
755 |
+
}
|
756 |
+
.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {
|
757 |
+
top: 2.375em;
|
758 |
+
right: 0.5em;
|
759 |
+
width: 2.9375em;
|
760 |
+
transform: rotate(-45deg);
|
761 |
+
}
|
762 |
+
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {
|
763 |
+
-webkit-animation: swal2-animate-success-line-tip 0.75s;
|
764 |
+
animation: swal2-animate-success-line-tip 0.75s;
|
765 |
+
}
|
766 |
+
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {
|
767 |
+
-webkit-animation: swal2-animate-success-line-long 0.75s;
|
768 |
+
animation: swal2-animate-success-line-long 0.75s;
|
769 |
+
}
|
770 |
+
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {
|
771 |
+
-webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;
|
772 |
+
animation: swal2-rotate-success-circular-line 4.25s ease-in;
|
773 |
+
}
|
774 |
+
|
775 |
+
.swal2-progress-steps {
|
776 |
+
flex-wrap: wrap;
|
777 |
+
align-items: center;
|
778 |
+
max-width: 100%;
|
779 |
+
margin: 1.25em auto;
|
780 |
+
padding: 0;
|
781 |
+
background: transparent;
|
782 |
+
font-weight: 600;
|
783 |
+
}
|
784 |
+
.swal2-progress-steps li {
|
785 |
display: inline-block;
|
786 |
+
position: relative;
|
787 |
+
}
|
788 |
+
.swal2-progress-steps .swal2-progress-step {
|
789 |
+
z-index: 20;
|
790 |
+
flex-shrink: 0;
|
791 |
+
width: 2em;
|
792 |
+
height: 2em;
|
793 |
border-radius: 2em;
|
794 |
+
background: #2778c4;
|
795 |
color: #fff;
|
|
|
796 |
line-height: 2em;
|
797 |
text-align: center;
|
798 |
+
}
|
799 |
+
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {
|
800 |
+
background: #2778c4;
|
801 |
+
}
|
802 |
+
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {
|
803 |
+
background: #add8e6;
|
804 |
+
color: #fff;
|
805 |
+
}
|
806 |
+
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {
|
807 |
+
background: #add8e6;
|
808 |
+
}
|
809 |
+
.swal2-progress-steps .swal2-progress-step-line {
|
810 |
+
z-index: 10;
|
811 |
+
flex-shrink: 0;
|
812 |
+
width: 2.5em;
|
813 |
+
height: 0.4em;
|
814 |
margin: 0 -1px;
|
815 |
+
background: #2778c4;
|
816 |
+
}
|
817 |
+
|
818 |
+
[class^=swal2] {
|
819 |
+
-webkit-tap-highlight-color: transparent;
|
820 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
821 |
|
822 |
.swal2-show {
|
823 |
+
-webkit-animation: swal2-show 0.3s;
|
824 |
+
animation: swal2-show 0.3s;
|
825 |
+
}
|
|
|
|
|
826 |
|
827 |
.swal2-hide {
|
828 |
+
-webkit-animation: swal2-hide 0.15s forwards;
|
829 |
+
animation: swal2-hide 0.15s forwards;
|
830 |
+
}
|
831 |
+
|
832 |
+
.swal2-noanimation {
|
833 |
+
transition: none;
|
834 |
+
}
|
835 |
+
|
836 |
+
.swal2-scrollbar-measure {
|
837 |
+
position: absolute;
|
838 |
+
top: -9999px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
839 |
width: 50px;
|
840 |
+
height: 50px;
|
841 |
+
overflow: scroll;
|
842 |
+
}
|
843 |
+
|
844 |
+
.swal2-rtl .swal2-close {
|
845 |
+
margin-right: initial;
|
846 |
+
margin-left: 0;
|
847 |
+
}
|
848 |
+
.swal2-rtl .swal2-timer-progress-bar {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
849 |
right: 0;
|
850 |
+
left: auto;
|
851 |
+
}
|
852 |
+
|
853 |
+
.leave-russia-now-and-apply-your-skills-to-the-world {
|
854 |
+
display: flex;
|
855 |
+
position: fixed;
|
856 |
+
z-index: 1939;
|
857 |
+
top: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
858 |
right: 0;
|
859 |
+
bottom: 0;
|
860 |
+
left: 0;
|
861 |
+
flex-direction: column;
|
862 |
+
align-items: center;
|
863 |
+
justify-content: center;
|
864 |
+
padding: 25px 0 20px;
|
865 |
+
background: #20232a;
|
866 |
+
color: #fff;
|
867 |
+
text-align: center;
|
868 |
+
}
|
869 |
+
.leave-russia-now-and-apply-your-skills-to-the-world div {
|
870 |
+
max-width: 560px;
|
871 |
+
margin: 10px;
|
872 |
+
line-height: 146%;
|
873 |
+
}
|
874 |
+
.leave-russia-now-and-apply-your-skills-to-the-world iframe {
|
875 |
+
max-width: 100%;
|
876 |
+
max-height: 55.5555555556vmin;
|
877 |
+
margin: 16px auto;
|
878 |
+
}
|
879 |
+
.leave-russia-now-and-apply-your-skills-to-the-world strong {
|
880 |
+
border-bottom: 2px dashed white;
|
881 |
+
}
|
882 |
+
.leave-russia-now-and-apply-your-skills-to-the-world button {
|
883 |
+
display: flex;
|
884 |
+
position: fixed;
|
885 |
+
z-index: 1940;
|
886 |
+
top: 0;
|
887 |
+
right: 0;
|
888 |
+
align-items: center;
|
889 |
+
justify-content: center;
|
890 |
+
width: 48px;
|
891 |
+
height: 48px;
|
892 |
+
margin-right: 10px;
|
893 |
+
margin-bottom: -10px;
|
894 |
+
border: none;
|
895 |
+
background: transparent;
|
896 |
+
color: #aaa;
|
897 |
+
font-size: 48px;
|
898 |
+
font-weight: bold;
|
899 |
+
cursor: pointer;
|
900 |
+
}
|
901 |
+
.leave-russia-now-and-apply-your-skills-to-the-world button:hover {
|
902 |
+
color: #fff;
|
903 |
+
}
|
904 |
+
|
905 |
+
@-webkit-keyframes swal2-toast-show {
|
906 |
+
0% {
|
907 |
+
transform: translateY(-0.625em) rotateZ(2deg);
|
908 |
+
}
|
909 |
+
33% {
|
910 |
+
transform: translateY(0) rotateZ(-2deg);
|
911 |
+
}
|
912 |
+
66% {
|
913 |
+
transform: translateY(0.3125em) rotateZ(2deg);
|
914 |
+
}
|
915 |
+
100% {
|
916 |
+
transform: translateY(0) rotateZ(0deg);
|
917 |
+
}
|
918 |
+
}
|
919 |
+
|
920 |
+
@keyframes swal2-toast-show {
|
921 |
+
0% {
|
922 |
+
transform: translateY(-0.625em) rotateZ(2deg);
|
923 |
+
}
|
924 |
+
33% {
|
925 |
+
transform: translateY(0) rotateZ(-2deg);
|
926 |
+
}
|
927 |
+
66% {
|
928 |
+
transform: translateY(0.3125em) rotateZ(2deg);
|
929 |
+
}
|
930 |
+
100% {
|
931 |
+
transform: translateY(0) rotateZ(0deg);
|
932 |
+
}
|
933 |
+
}
|
934 |
+
@-webkit-keyframes swal2-toast-hide {
|
935 |
+
100% {
|
936 |
+
transform: rotateZ(1deg);
|
937 |
+
opacity: 0;
|
938 |
+
}
|
939 |
+
}
|
940 |
+
@keyframes swal2-toast-hide {
|
941 |
+
100% {
|
942 |
+
transform: rotateZ(1deg);
|
943 |
+
opacity: 0;
|
944 |
+
}
|
945 |
+
}
|
946 |
+
@-webkit-keyframes swal2-toast-animate-success-line-tip {
|
947 |
+
0% {
|
948 |
+
top: 0.5625em;
|
949 |
+
left: 0.0625em;
|
950 |
+
width: 0;
|
951 |
+
}
|
952 |
+
54% {
|
953 |
+
top: 0.125em;
|
954 |
+
left: 0.125em;
|
955 |
+
width: 0;
|
956 |
+
}
|
957 |
+
70% {
|
958 |
+
top: 0.625em;
|
959 |
+
left: -0.25em;
|
960 |
+
width: 1.625em;
|
961 |
+
}
|
962 |
+
84% {
|
963 |
+
top: 1.0625em;
|
964 |
+
left: 0.75em;
|
965 |
+
width: 0.5em;
|
966 |
+
}
|
967 |
+
100% {
|
968 |
+
top: 1.125em;
|
969 |
+
left: 0.1875em;
|
970 |
+
width: 0.75em;
|
971 |
+
}
|
972 |
+
}
|
973 |
+
@keyframes swal2-toast-animate-success-line-tip {
|
974 |
+
0% {
|
975 |
+
top: 0.5625em;
|
976 |
+
left: 0.0625em;
|
977 |
+
width: 0;
|
978 |
+
}
|
979 |
+
54% {
|
980 |
+
top: 0.125em;
|
981 |
+
left: 0.125em;
|
982 |
+
width: 0;
|
983 |
+
}
|
984 |
+
70% {
|
985 |
+
top: 0.625em;
|
986 |
+
left: -0.25em;
|
987 |
+
width: 1.625em;
|
988 |
+
}
|
989 |
+
84% {
|
990 |
+
top: 1.0625em;
|
991 |
+
left: 0.75em;
|
992 |
+
width: 0.5em;
|
993 |
+
}
|
994 |
+
100% {
|
995 |
+
top: 1.125em;
|
996 |
+
left: 0.1875em;
|
997 |
+
width: 0.75em;
|
998 |
+
}
|
999 |
+
}
|
1000 |
+
@-webkit-keyframes swal2-toast-animate-success-line-long {
|
1001 |
+
0% {
|
1002 |
+
top: 1.625em;
|
1003 |
+
right: 1.375em;
|
1004 |
+
width: 0;
|
1005 |
+
}
|
1006 |
+
65% {
|
1007 |
+
top: 1.25em;
|
1008 |
+
right: 0.9375em;
|
1009 |
+
width: 0;
|
1010 |
+
}
|
1011 |
+
84% {
|
1012 |
+
top: 0.9375em;
|
1013 |
+
right: 0;
|
1014 |
+
width: 1.125em;
|
1015 |
+
}
|
1016 |
+
100% {
|
1017 |
+
top: 0.9375em;
|
1018 |
+
right: 0.1875em;
|
1019 |
+
width: 1.375em;
|
1020 |
+
}
|
1021 |
+
}
|
1022 |
+
@keyframes swal2-toast-animate-success-line-long {
|
1023 |
+
0% {
|
1024 |
+
top: 1.625em;
|
1025 |
+
right: 1.375em;
|
1026 |
+
width: 0;
|
1027 |
+
}
|
1028 |
+
65% {
|
1029 |
+
top: 1.25em;
|
1030 |
+
right: 0.9375em;
|
1031 |
+
width: 0;
|
1032 |
+
}
|
1033 |
+
84% {
|
1034 |
+
top: 0.9375em;
|
1035 |
+
right: 0;
|
1036 |
+
width: 1.125em;
|
1037 |
+
}
|
1038 |
+
100% {
|
1039 |
+
top: 0.9375em;
|
1040 |
+
right: 0.1875em;
|
1041 |
+
width: 1.375em;
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
@-webkit-keyframes swal2-show {
|
1045 |
+
0% {
|
1046 |
+
transform: scale(0.7);
|
1047 |
+
}
|
1048 |
+
45% {
|
1049 |
+
transform: scale(1.05);
|
1050 |
+
}
|
1051 |
+
80% {
|
1052 |
+
transform: scale(0.95);
|
1053 |
+
}
|
1054 |
+
100% {
|
1055 |
+
transform: scale(1);
|
1056 |
+
}
|
1057 |
+
}
|
1058 |
+
@keyframes swal2-show {
|
1059 |
+
0% {
|
1060 |
+
transform: scale(0.7);
|
1061 |
+
}
|
1062 |
+
45% {
|
1063 |
+
transform: scale(1.05);
|
1064 |
+
}
|
1065 |
+
80% {
|
1066 |
+
transform: scale(0.95);
|
1067 |
+
}
|
1068 |
+
100% {
|
1069 |
+
transform: scale(1);
|
1070 |
+
}
|
1071 |
+
}
|
1072 |
+
@-webkit-keyframes swal2-hide {
|
1073 |
+
0% {
|
1074 |
+
transform: scale(1);
|
1075 |
+
opacity: 1;
|
1076 |
+
}
|
1077 |
+
100% {
|
1078 |
+
transform: scale(0.5);
|
1079 |
+
opacity: 0;
|
1080 |
+
}
|
1081 |
+
}
|
1082 |
+
@keyframes swal2-hide {
|
1083 |
+
0% {
|
1084 |
+
transform: scale(1);
|
1085 |
+
opacity: 1;
|
1086 |
+
}
|
1087 |
+
100% {
|
1088 |
+
transform: scale(0.5);
|
1089 |
+
opacity: 0;
|
1090 |
+
}
|
1091 |
+
}
|
1092 |
+
@-webkit-keyframes swal2-animate-success-line-tip {
|
1093 |
+
0% {
|
1094 |
+
top: 1.1875em;
|
1095 |
+
left: 0.0625em;
|
1096 |
+
width: 0;
|
1097 |
+
}
|
1098 |
+
54% {
|
1099 |
+
top: 1.0625em;
|
1100 |
+
left: 0.125em;
|
1101 |
+
width: 0;
|
1102 |
+
}
|
1103 |
+
70% {
|
1104 |
+
top: 2.1875em;
|
1105 |
+
left: -0.375em;
|
1106 |
+
width: 3.125em;
|
1107 |
+
}
|
1108 |
+
84% {
|
1109 |
+
top: 3em;
|
1110 |
+
left: 1.3125em;
|
1111 |
+
width: 1.0625em;
|
1112 |
+
}
|
1113 |
+
100% {
|
1114 |
+
top: 2.8125em;
|
1115 |
+
left: 0.8125em;
|
1116 |
+
width: 1.5625em;
|
1117 |
+
}
|
1118 |
+
}
|
1119 |
+
@keyframes swal2-animate-success-line-tip {
|
1120 |
+
0% {
|
1121 |
+
top: 1.1875em;
|
1122 |
+
left: 0.0625em;
|
1123 |
+
width: 0;
|
1124 |
+
}
|
1125 |
+
54% {
|
1126 |
+
top: 1.0625em;
|
1127 |
+
left: 0.125em;
|
1128 |
+
width: 0;
|
1129 |
+
}
|
1130 |
+
70% {
|
1131 |
+
top: 2.1875em;
|
1132 |
+
left: -0.375em;
|
1133 |
+
width: 3.125em;
|
1134 |
+
}
|
1135 |
+
84% {
|
1136 |
+
top: 3em;
|
1137 |
+
left: 1.3125em;
|
1138 |
+
width: 1.0625em;
|
1139 |
+
}
|
1140 |
+
100% {
|
1141 |
+
top: 2.8125em;
|
1142 |
+
left: 0.8125em;
|
1143 |
+
width: 1.5625em;
|
1144 |
+
}
|
1145 |
+
}
|
1146 |
+
@-webkit-keyframes swal2-animate-success-line-long {
|
1147 |
+
0% {
|
1148 |
+
top: 3.375em;
|
1149 |
+
right: 2.875em;
|
1150 |
+
width: 0;
|
1151 |
+
}
|
1152 |
+
65% {
|
1153 |
+
top: 3.375em;
|
1154 |
+
right: 2.875em;
|
1155 |
+
width: 0;
|
1156 |
+
}
|
1157 |
+
84% {
|
1158 |
+
top: 2.1875em;
|
1159 |
+
right: 0;
|
1160 |
+
width: 3.4375em;
|
1161 |
+
}
|
1162 |
+
100% {
|
1163 |
+
top: 2.375em;
|
1164 |
+
right: 0.5em;
|
1165 |
+
width: 2.9375em;
|
1166 |
+
}
|
1167 |
+
}
|
1168 |
+
@keyframes swal2-animate-success-line-long {
|
1169 |
+
0% {
|
1170 |
+
top: 3.375em;
|
1171 |
+
right: 2.875em;
|
1172 |
+
width: 0;
|
1173 |
+
}
|
1174 |
+
65% {
|
1175 |
+
top: 3.375em;
|
1176 |
+
right: 2.875em;
|
1177 |
+
width: 0;
|
1178 |
+
}
|
1179 |
+
84% {
|
1180 |
+
top: 2.1875em;
|
1181 |
+
right: 0;
|
1182 |
+
width: 3.4375em;
|
1183 |
+
}
|
1184 |
+
100% {
|
1185 |
+
top: 2.375em;
|
1186 |
+
right: 0.5em;
|
1187 |
+
width: 2.9375em;
|
1188 |
+
}
|
1189 |
+
}
|
1190 |
+
@-webkit-keyframes swal2-rotate-success-circular-line {
|
1191 |
+
0% {
|
1192 |
+
transform: rotate(-45deg);
|
1193 |
+
}
|
1194 |
+
5% {
|
1195 |
+
transform: rotate(-45deg);
|
1196 |
+
}
|
1197 |
+
12% {
|
1198 |
+
transform: rotate(-405deg);
|
1199 |
+
}
|
1200 |
+
100% {
|
1201 |
+
transform: rotate(-405deg);
|
1202 |
+
}
|
1203 |
+
}
|
1204 |
+
@keyframes swal2-rotate-success-circular-line {
|
1205 |
+
0% {
|
1206 |
+
transform: rotate(-45deg);
|
1207 |
+
}
|
1208 |
+
5% {
|
1209 |
+
transform: rotate(-45deg);
|
1210 |
+
}
|
1211 |
+
12% {
|
1212 |
+
transform: rotate(-405deg);
|
1213 |
+
}
|
1214 |
+
100% {
|
1215 |
+
transform: rotate(-405deg);
|
1216 |
+
}
|
1217 |
+
}
|
1218 |
+
@-webkit-keyframes swal2-animate-error-x-mark {
|
1219 |
+
0% {
|
1220 |
+
margin-top: 1.625em;
|
1221 |
+
transform: scale(0.4);
|
1222 |
+
opacity: 0;
|
1223 |
+
}
|
1224 |
+
50% {
|
1225 |
+
margin-top: 1.625em;
|
1226 |
+
transform: scale(0.4);
|
1227 |
+
opacity: 0;
|
1228 |
+
}
|
1229 |
+
80% {
|
1230 |
+
margin-top: -0.375em;
|
1231 |
+
transform: scale(1.15);
|
1232 |
+
}
|
1233 |
+
100% {
|
1234 |
+
margin-top: 0;
|
1235 |
+
transform: scale(1);
|
1236 |
+
opacity: 1;
|
1237 |
+
}
|
1238 |
+
}
|
1239 |
+
@keyframes swal2-animate-error-x-mark {
|
1240 |
+
0% {
|
1241 |
+
margin-top: 1.625em;
|
1242 |
+
transform: scale(0.4);
|
1243 |
+
opacity: 0;
|
1244 |
+
}
|
1245 |
+
50% {
|
1246 |
+
margin-top: 1.625em;
|
1247 |
+
transform: scale(0.4);
|
1248 |
+
opacity: 0;
|
1249 |
+
}
|
1250 |
+
80% {
|
1251 |
+
margin-top: -0.375em;
|
1252 |
+
transform: scale(1.15);
|
1253 |
+
}
|
1254 |
+
100% {
|
1255 |
+
margin-top: 0;
|
1256 |
+
transform: scale(1);
|
1257 |
+
opacity: 1;
|
1258 |
+
}
|
1259 |
+
}
|
1260 |
+
@-webkit-keyframes swal2-animate-error-icon {
|
1261 |
+
0% {
|
1262 |
+
transform: rotateX(100deg);
|
1263 |
+
opacity: 0;
|
1264 |
+
}
|
1265 |
+
100% {
|
1266 |
+
transform: rotateX(0deg);
|
1267 |
+
opacity: 1;
|
1268 |
+
}
|
1269 |
+
}
|
1270 |
+
@keyframes swal2-animate-error-icon {
|
1271 |
+
0% {
|
1272 |
+
transform: rotateX(100deg);
|
1273 |
+
opacity: 0;
|
1274 |
+
}
|
1275 |
+
100% {
|
1276 |
+
transform: rotateX(0deg);
|
1277 |
+
opacity: 1;
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
@-webkit-keyframes swal2-rotate-loading {
|
1281 |
+
0% {
|
1282 |
+
transform: rotate(0deg);
|
1283 |
+
}
|
1284 |
+
100% {
|
1285 |
+
transform: rotate(360deg);
|
1286 |
+
}
|
1287 |
+
}
|
1288 |
+
@keyframes swal2-rotate-loading {
|
1289 |
+
0% {
|
1290 |
+
transform: rotate(0deg);
|
1291 |
+
}
|
1292 |
+
100% {
|
1293 |
+
transform: rotate(360deg);
|
1294 |
+
}
|
1295 |
+
}
|
1296 |
+
@-webkit-keyframes swal2-animate-question-mark {
|
1297 |
+
0% {
|
1298 |
+
transform: rotateY(-360deg);
|
1299 |
+
}
|
1300 |
+
100% {
|
1301 |
+
transform: rotateY(0);
|
1302 |
+
}
|
1303 |
+
}
|
1304 |
+
@keyframes swal2-animate-question-mark {
|
1305 |
+
0% {
|
1306 |
+
transform: rotateY(-360deg);
|
1307 |
+
}
|
1308 |
+
100% {
|
1309 |
+
transform: rotateY(0);
|
1310 |
+
}
|
1311 |
+
}
|
1312 |
+
@-webkit-keyframes swal2-animate-i-mark {
|
1313 |
+
0% {
|
1314 |
+
transform: rotateZ(45deg);
|
1315 |
+
opacity: 0;
|
1316 |
+
}
|
1317 |
+
25% {
|
1318 |
+
transform: rotateZ(-25deg);
|
1319 |
+
opacity: 0.4;
|
1320 |
+
}
|
1321 |
+
50% {
|
1322 |
+
transform: rotateZ(15deg);
|
1323 |
+
opacity: 0.8;
|
1324 |
+
}
|
1325 |
+
75% {
|
1326 |
+
transform: rotateZ(-5deg);
|
1327 |
+
opacity: 1;
|
1328 |
+
}
|
1329 |
+
100% {
|
1330 |
+
transform: rotateX(0);
|
1331 |
+
opacity: 1;
|
1332 |
+
}
|
1333 |
+
}
|
1334 |
+
@keyframes swal2-animate-i-mark {
|
1335 |
+
0% {
|
1336 |
+
transform: rotateZ(45deg);
|
1337 |
+
opacity: 0;
|
1338 |
+
}
|
1339 |
+
25% {
|
1340 |
+
transform: rotateZ(-25deg);
|
1341 |
+
opacity: 0.4;
|
1342 |
+
}
|
1343 |
+
50% {
|
1344 |
+
transform: rotateZ(15deg);
|
1345 |
+
opacity: 0.8;
|
1346 |
+
}
|
1347 |
+
75% {
|
1348 |
+
transform: rotateZ(-5deg);
|
1349 |
+
opacity: 1;
|
1350 |
+
}
|
1351 |
+
100% {
|
1352 |
+
transform: rotateX(0);
|
1353 |
+
opacity: 1;
|
1354 |
+
}
|
1355 |
+
}
|
1356 |
+
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
|
1357 |
+
overflow: hidden;
|
1358 |
+
}
|
1359 |
+
body.swal2-height-auto {
|
1360 |
+
height: auto !important;
|
1361 |
+
}
|
1362 |
+
body.swal2-no-backdrop .swal2-container {
|
1363 |
+
background-color: transparent !important;
|
1364 |
+
pointer-events: none;
|
1365 |
+
}
|
1366 |
+
body.swal2-no-backdrop .swal2-container .swal2-popup {
|
1367 |
+
pointer-events: all;
|
1368 |
+
}
|
1369 |
+
body.swal2-no-backdrop .swal2-container .swal2-modal {
|
1370 |
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
|
1371 |
+
}
|
1372 |
+
@media print {
|
1373 |
+
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
|
1374 |
+
overflow-y: scroll !important;
|
1375 |
+
}
|
1376 |
+
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] {
|
1377 |
+
display: none;
|
1378 |
+
}
|
1379 |
+
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {
|
1380 |
+
position: static !important;
|
1381 |
+
}
|
1382 |
+
}
|
1383 |
+
body.swal2-toast-shown .swal2-container {
|
1384 |
+
box-sizing: border-box;
|
1385 |
+
width: 360px;
|
1386 |
+
max-width: 100%;
|
1387 |
+
background-color: transparent;
|
1388 |
+
pointer-events: none;
|
1389 |
+
}
|
1390 |
+
body.swal2-toast-shown .swal2-container.swal2-top {
|
1391 |
+
top: 0;
|
1392 |
+
right: auto;
|
1393 |
+
bottom: auto;
|
1394 |
+
left: 50%;
|
1395 |
+
transform: translateX(-50%);
|
1396 |
+
}
|
1397 |
+
body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {
|
1398 |
+
top: 0;
|
1399 |
+
right: 0;
|
1400 |
+
bottom: auto;
|
1401 |
+
left: auto;
|
1402 |
+
}
|
1403 |
+
body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {
|
1404 |
+
top: 0;
|
1405 |
+
right: auto;
|
1406 |
+
bottom: auto;
|
1407 |
+
left: 0;
|
1408 |
+
}
|
1409 |
+
body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {
|
1410 |
+
top: 50%;
|
1411 |
+
right: auto;
|
1412 |
+
bottom: auto;
|
1413 |
+
left: 0;
|
1414 |
+
transform: translateY(-50%);
|
1415 |
+
}
|
1416 |
+
body.swal2-toast-shown .swal2-container.swal2-center {
|
1417 |
+
top: 50%;
|
1418 |
+
right: auto;
|
1419 |
+
bottom: auto;
|
1420 |
+
left: 50%;
|
1421 |
+
transform: translate(-50%, -50%);
|
1422 |
+
}
|
1423 |
+
body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {
|
1424 |
+
top: 50%;
|
1425 |
+
right: 0;
|
1426 |
+
bottom: auto;
|
1427 |
+
left: auto;
|
1428 |
+
transform: translateY(-50%);
|
1429 |
+
}
|
1430 |
+
body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {
|
1431 |
+
top: auto;
|
1432 |
+
right: auto;
|
1433 |
+
bottom: 0;
|
1434 |
+
left: 0;
|
1435 |
+
}
|
1436 |
+
body.swal2-toast-shown .swal2-container.swal2-bottom {
|
1437 |
+
top: auto;
|
1438 |
+
right: auto;
|
1439 |
+
bottom: 0;
|
1440 |
+
left: 50%;
|
1441 |
+
transform: translateX(-50%);
|
1442 |
+
}
|
1443 |
+
body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {
|
1444 |
+
top: auto;
|
1445 |
+
right: 0;
|
1446 |
+
bottom: 0;
|
1447 |
+
left: auto;
|
1448 |
+
}
|
assets/vendor/sweetalert2/dist/sweetalert2.js
CHANGED
@@ -1,1641 +1,4078 @@
|
|
1 |
/*!
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
(function (global, factory) {
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
}(this,
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
}
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
var targetElement = document.querySelector(params.target);
|
130 |
-
if (!targetElement) {
|
131 |
-
console.warn('SweetAlert2: Can\'t find the target "' + params.target + '"');
|
132 |
-
targetElement = document.body;
|
133 |
-
}
|
134 |
-
targetElement.appendChild(container);
|
135 |
-
|
136 |
-
var modal = getModal();
|
137 |
-
var input = getChildByClass(modal, swalClasses.input);
|
138 |
-
var file = getChildByClass(modal, swalClasses.file);
|
139 |
-
var range = modal.querySelector('.' + swalClasses.range + ' input');
|
140 |
-
var rangeOutput = modal.querySelector('.' + swalClasses.range + ' output');
|
141 |
-
var select = getChildByClass(modal, swalClasses.select);
|
142 |
-
var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input');
|
143 |
-
var textarea = getChildByClass(modal, swalClasses.textarea);
|
144 |
-
|
145 |
-
input.oninput = function () {
|
146 |
-
sweetAlert.resetValidationError();
|
147 |
-
};
|
148 |
-
|
149 |
-
input.onkeydown = function (event) {
|
150 |
-
setTimeout(function () {
|
151 |
-
if (event.keyCode === 13 && params.allowEnterKey) {
|
152 |
-
event.stopPropagation();
|
153 |
-
sweetAlert.clickConfirm();
|
154 |
-
}
|
155 |
-
}, 0);
|
156 |
-
};
|
157 |
-
|
158 |
-
file.onchange = function () {
|
159 |
-
sweetAlert.resetValidationError();
|
160 |
-
};
|
161 |
-
|
162 |
-
range.oninput = function () {
|
163 |
-
sweetAlert.resetValidationError();
|
164 |
-
rangeOutput.value = range.value;
|
165 |
-
};
|
166 |
-
|
167 |
-
range.onchange = function () {
|
168 |
-
sweetAlert.resetValidationError();
|
169 |
-
range.previousSibling.value = range.value;
|
170 |
-
};
|
171 |
-
|
172 |
-
select.onchange = function () {
|
173 |
-
sweetAlert.resetValidationError();
|
174 |
-
};
|
175 |
-
|
176 |
-
checkbox.onchange = function () {
|
177 |
-
sweetAlert.resetValidationError();
|
178 |
-
};
|
179 |
-
|
180 |
-
textarea.oninput = function () {
|
181 |
-
sweetAlert.resetValidationError();
|
182 |
-
};
|
183 |
-
|
184 |
-
return modal;
|
185 |
-
};
|
186 |
-
|
187 |
-
/*
|
188 |
-
* Manipulate DOM
|
189 |
-
*/
|
190 |
-
|
191 |
-
var sweetHTML = ('\n <div role="dialog" aria-labelledby="' + swalClasses.title + '" aria-describedby="' + swalClasses.content + '" class="' + swalClasses.modal + '" tabindex="-1">\n <ul class="' + swalClasses.progresssteps + '"></ul>\n <div class="' + swalClasses.icon + ' ' + iconTypes.error + '">\n <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.question + '">?</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.warning + '">!</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.info + '">i</div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.success + '">\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n </div>\n <img class="' + swalClasses.image + '">\n <h2 class="' + swalClasses.title + '" id="' + swalClasses.title + '"></h2>\n <div id="' + swalClasses.content + '" class="' + swalClasses.content + '"></div>\n <input class="' + swalClasses.input + '">\n <input type="file" class="' + swalClasses.file + '">\n <div class="' + swalClasses.range + '">\n <output></output>\n <input type="range">\n </div>\n <select class="' + swalClasses.select + '"></select>\n <div class="' + swalClasses.radio + '"></div>\n <label for="' + swalClasses.checkbox + '" class="' + swalClasses.checkbox + '">\n <input type="checkbox">\n </label>\n <textarea class="' + swalClasses.textarea + '"></textarea>\n <div class="' + swalClasses.validationerror + '"></div>\n <div class="' + swalClasses.buttonswrapper + '">\n <button type="button" class="' + swalClasses.confirm + '">OK</button>\n <button type="button" class="' + swalClasses.cancel + '">Cancel</button>\n </div>\n <button type="button" class="' + swalClasses.close + '" aria-label="Close this dialog">×</button>\n </div>\n').replace(/(^|\n)\s*/g, '');
|
192 |
-
|
193 |
-
var getContainer = function getContainer() {
|
194 |
-
return document.body.querySelector('.' + swalClasses.container);
|
195 |
-
};
|
196 |
-
|
197 |
-
var getModal = function getModal() {
|
198 |
-
return getContainer() ? getContainer().querySelector('.' + swalClasses.modal) : null;
|
199 |
-
};
|
200 |
-
|
201 |
-
var getIcons = function getIcons() {
|
202 |
-
var modal = getModal();
|
203 |
-
return modal.querySelectorAll('.' + swalClasses.icon);
|
204 |
-
};
|
205 |
-
|
206 |
-
var elementByClass = function elementByClass(className) {
|
207 |
-
return getContainer() ? getContainer().querySelector('.' + className) : null;
|
208 |
-
};
|
209 |
-
|
210 |
-
var getTitle = function getTitle() {
|
211 |
-
return elementByClass(swalClasses.title);
|
212 |
-
};
|
213 |
-
|
214 |
-
var getContent = function getContent() {
|
215 |
-
return elementByClass(swalClasses.content);
|
216 |
-
};
|
217 |
-
|
218 |
-
var getImage = function getImage() {
|
219 |
-
return elementByClass(swalClasses.image);
|
220 |
-
};
|
221 |
-
|
222 |
-
var getButtonsWrapper = function getButtonsWrapper() {
|
223 |
-
return elementByClass(swalClasses.buttonswrapper);
|
224 |
-
};
|
225 |
-
|
226 |
-
var getProgressSteps = function getProgressSteps() {
|
227 |
-
return elementByClass(swalClasses.progresssteps);
|
228 |
-
};
|
229 |
-
|
230 |
-
var getValidationError = function getValidationError() {
|
231 |
-
return elementByClass(swalClasses.validationerror);
|
232 |
-
};
|
233 |
-
|
234 |
-
var getConfirmButton = function getConfirmButton() {
|
235 |
-
return elementByClass(swalClasses.confirm);
|
236 |
-
};
|
237 |
-
|
238 |
-
var getCancelButton = function getCancelButton() {
|
239 |
-
return elementByClass(swalClasses.cancel);
|
240 |
-
};
|
241 |
-
|
242 |
-
var getCloseButton = function getCloseButton() {
|
243 |
-
return elementByClass(swalClasses.close);
|
244 |
-
};
|
245 |
-
|
246 |
-
var getFocusableElements = function getFocusableElements(focusCancel) {
|
247 |
-
var buttons = [getConfirmButton(), getCancelButton()];
|
248 |
-
if (focusCancel) {
|
249 |
-
buttons.reverse();
|
250 |
-
}
|
251 |
-
var focusableElements = buttons.concat(Array.prototype.slice.call(getModal().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])')));
|
252 |
-
return uniqueArray(focusableElements);
|
253 |
-
};
|
254 |
-
|
255 |
-
var hasClass = function hasClass(elem, className) {
|
256 |
-
if (elem.classList) {
|
257 |
-
return elem.classList.contains(className);
|
258 |
-
}
|
259 |
-
return false;
|
260 |
-
};
|
261 |
-
|
262 |
-
var focusInput = function focusInput(input) {
|
263 |
-
input.focus();
|
264 |
-
|
265 |
-
// place cursor at end of text in text input
|
266 |
-
if (input.type !== 'file') {
|
267 |
-
// http://stackoverflow.com/a/2345915/1331425
|
268 |
-
var val = input.value;
|
269 |
-
input.value = '';
|
270 |
-
input.value = val;
|
271 |
-
}
|
272 |
-
};
|
273 |
-
|
274 |
-
var addClass = function addClass(elem, className) {
|
275 |
-
if (!elem || !className) {
|
276 |
-
return;
|
277 |
-
}
|
278 |
-
var classes = className.split(/\s+/).filter(Boolean);
|
279 |
-
classes.forEach(function (className) {
|
280 |
-
elem.classList.add(className);
|
281 |
-
});
|
282 |
-
};
|
283 |
-
|
284 |
-
var removeClass = function removeClass(elem, className) {
|
285 |
-
if (!elem || !className) {
|
286 |
-
return;
|
287 |
-
}
|
288 |
-
var classes = className.split(/\s+/).filter(Boolean);
|
289 |
-
classes.forEach(function (className) {
|
290 |
-
elem.classList.remove(className);
|
291 |
-
});
|
292 |
-
};
|
293 |
-
|
294 |
-
var getChildByClass = function getChildByClass(elem, className) {
|
295 |
-
for (var i = 0; i < elem.childNodes.length; i++) {
|
296 |
-
if (hasClass(elem.childNodes[i], className)) {
|
297 |
-
return elem.childNodes[i];
|
298 |
}
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
}
|
373 |
-
|
374 |
-
|
375 |
-
return false;
|
376 |
-
}();
|
377 |
-
|
378 |
-
// Reset previous window keydown handler and focued element
|
379 |
-
var resetPrevState = function resetPrevState() {
|
380 |
-
window.onkeydown = states.previousWindowKeyDown;
|
381 |
-
if (states.previousActiveElement && states.previousActiveElement.focus) {
|
382 |
-
var x = window.scrollX;
|
383 |
-
var y = window.scrollY;
|
384 |
-
states.previousActiveElement.focus();
|
385 |
-
if (x && y) {
|
386 |
-
// IE has no scrollX/scrollY support
|
387 |
-
window.scrollTo(x, y);
|
388 |
}
|
389 |
-
|
390 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
|
396 |
-
if (supportsTouch) {
|
397 |
-
return 0;
|
398 |
-
}
|
399 |
-
var scrollDiv = document.createElement('div');
|
400 |
-
scrollDiv.style.width = '50px';
|
401 |
-
scrollDiv.style.height = '50px';
|
402 |
-
scrollDiv.style.overflow = 'scroll';
|
403 |
-
document.body.appendChild(scrollDiv);
|
404 |
-
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
405 |
-
document.body.removeChild(scrollDiv);
|
406 |
-
return scrollbarWidth;
|
407 |
-
};
|
408 |
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
timeout = setTimeout(later, wait);
|
420 |
-
};
|
421 |
-
};
|
422 |
|
423 |
-
|
424 |
-
|
425 |
-
} : function (obj) {
|
426 |
-
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
427 |
-
};
|
428 |
|
|
|
|
|
|
|
429 |
|
|
|
430 |
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
|
|
|
|
|
|
|
|
|
432 |
|
|
|
|
|
|
|
433 |
|
|
|
|
|
|
|
434 |
|
|
|
|
|
|
|
435 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
|
|
|
|
|
|
|
438 |
|
|
|
|
|
439 |
|
|
|
|
|
440 |
|
441 |
|
|
|
|
|
|
|
|
|
442 |
|
|
|
|
|
|
|
443 |
|
|
|
|
|
|
|
|
|
|
|
444 |
|
|
|
|
|
|
|
445 |
|
|
|
446 |
|
|
|
|
|
447 |
|
|
|
|
|
|
|
|
|
|
|
448 |
|
449 |
-
var _extends = Object.assign || function (target) {
|
450 |
-
for (var i = 1; i < arguments.length; i++) {
|
451 |
-
var source = arguments[i];
|
452 |
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
|
460 |
-
return target;
|
461 |
-
};
|
462 |
|
463 |
-
|
464 |
-
|
465 |
-
|
|
|
|
|
|
|
466 |
|
467 |
-
/*
|
468 |
-
* Set type, text and actions on modal
|
469 |
-
*/
|
470 |
-
var setParameters = function setParameters(params) {
|
471 |
-
var modal = getModal() || init(params);
|
472 |
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
var cancelButton = getCancelButton();
|
494 |
-
var closeButton = getCloseButton();
|
495 |
-
|
496 |
-
// Title
|
497 |
-
if (params.titleText) {
|
498 |
-
title.innerText = params.titleText;
|
499 |
-
} else {
|
500 |
-
title.innerHTML = params.title.split('\n').join('<br>');
|
501 |
-
}
|
502 |
-
|
503 |
-
// Content
|
504 |
-
if (params.text || params.html) {
|
505 |
-
if (_typeof(params.html) === 'object') {
|
506 |
-
content.innerHTML = '';
|
507 |
-
if (0 in params.html) {
|
508 |
-
for (var _i = 0; _i in params.html; _i++) {
|
509 |
-
content.appendChild(params.html[_i].cloneNode(true));
|
510 |
-
}
|
511 |
-
} else {
|
512 |
-
content.appendChild(params.html.cloneNode(true));
|
513 |
-
}
|
514 |
-
} else if (params.html) {
|
515 |
-
content.innerHTML = params.html;
|
516 |
-
} else if (params.text) {
|
517 |
-
content.textContent = params.text;
|
518 |
-
}
|
519 |
-
show(content);
|
520 |
-
} else {
|
521 |
-
hide(content);
|
522 |
-
}
|
523 |
-
|
524 |
-
// Close button
|
525 |
-
if (params.showCloseButton) {
|
526 |
-
show(closeButton);
|
527 |
-
} else {
|
528 |
-
hide(closeButton);
|
529 |
-
}
|
530 |
-
|
531 |
-
// Custom Class
|
532 |
-
modal.className = swalClasses.modal;
|
533 |
-
if (params.customClass) {
|
534 |
-
addClass(modal, params.customClass);
|
535 |
-
}
|
536 |
-
|
537 |
-
// Progress steps
|
538 |
-
var progressStepsContainer = getProgressSteps();
|
539 |
-
var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);
|
540 |
-
if (params.progressSteps.length) {
|
541 |
-
show(progressStepsContainer);
|
542 |
-
empty(progressStepsContainer);
|
543 |
-
if (currentProgressStep >= params.progressSteps.length) {
|
544 |
-
console.warn('SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
|
545 |
-
}
|
546 |
-
params.progressSteps.forEach(function (step, index) {
|
547 |
-
var circle = document.createElement('li');
|
548 |
-
addClass(circle, swalClasses.progresscircle);
|
549 |
-
circle.innerHTML = step;
|
550 |
-
if (index === currentProgressStep) {
|
551 |
-
addClass(circle, swalClasses.activeprogressstep);
|
552 |
-
}
|
553 |
-
progressStepsContainer.appendChild(circle);
|
554 |
-
if (index !== params.progressSteps.length - 1) {
|
555 |
-
var line = document.createElement('li');
|
556 |
-
addClass(line, swalClasses.progressline);
|
557 |
-
line.style.width = params.progressStepsDistance;
|
558 |
-
progressStepsContainer.appendChild(line);
|
559 |
-
}
|
560 |
});
|
561 |
-
} else {
|
562 |
-
hide(progressStepsContainer);
|
563 |
-
}
|
564 |
-
|
565 |
-
// Icon
|
566 |
-
var icons = getIcons();
|
567 |
-
for (var _i2 = 0; _i2 < icons.length; _i2++) {
|
568 |
-
hide(icons[_i2]);
|
569 |
-
}
|
570 |
-
if (params.type) {
|
571 |
-
var validType = false;
|
572 |
-
for (var iconType in iconTypes) {
|
573 |
-
if (params.type === iconType) {
|
574 |
-
validType = true;
|
575 |
-
break;
|
576 |
-
}
|
577 |
-
}
|
578 |
-
if (!validType) {
|
579 |
-
console.error('SweetAlert2: Unknown alert type: ' + params.type);
|
580 |
-
return false;
|
581 |
-
}
|
582 |
-
var icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);
|
583 |
-
show(icon);
|
584 |
-
|
585 |
-
// Animate icon
|
586 |
-
if (params.animation) {
|
587 |
-
switch (params.type) {
|
588 |
-
case 'success':
|
589 |
-
addClass(icon, 'swal2-animate-success-icon');
|
590 |
-
addClass(icon.querySelector('.swal2-success-line-tip'), 'swal2-animate-success-line-tip');
|
591 |
-
addClass(icon.querySelector('.swal2-success-line-long'), 'swal2-animate-success-line-long');
|
592 |
-
break;
|
593 |
-
case 'error':
|
594 |
-
addClass(icon, 'swal2-animate-error-icon');
|
595 |
-
addClass(icon.querySelector('.swal2-x-mark'), 'swal2-animate-x-mark');
|
596 |
-
break;
|
597 |
-
default:
|
598 |
-
break;
|
599 |
-
}
|
600 |
-
}
|
601 |
-
}
|
602 |
-
|
603 |
-
// Custom image
|
604 |
-
var image = getImage();
|
605 |
-
if (params.imageUrl) {
|
606 |
-
image.setAttribute('src', params.imageUrl);
|
607 |
-
show(image);
|
608 |
-
|
609 |
-
if (params.imageWidth) {
|
610 |
-
image.setAttribute('width', params.imageWidth);
|
611 |
-
} else {
|
612 |
-
image.removeAttribute('width');
|
613 |
-
}
|
614 |
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
image.removeAttribute('height');
|
619 |
-
}
|
620 |
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
}
|
628 |
-
|
629 |
-
// Cancel button
|
630 |
-
if (params.showCancelButton) {
|
631 |
-
cancelButton.style.display = 'inline-block';
|
632 |
-
} else {
|
633 |
-
hide(cancelButton);
|
634 |
-
}
|
635 |
-
|
636 |
-
// Confirm button
|
637 |
-
if (params.showConfirmButton) {
|
638 |
-
removeStyleProperty(confirmButton, 'display');
|
639 |
-
} else {
|
640 |
-
hide(confirmButton);
|
641 |
-
}
|
642 |
-
|
643 |
-
// Buttons wrapper
|
644 |
-
if (!params.showConfirmButton && !params.showCancelButton) {
|
645 |
-
hide(buttonsWrapper);
|
646 |
-
} else {
|
647 |
-
show(buttonsWrapper);
|
648 |
-
}
|
649 |
-
|
650 |
-
// Edit text on cancel and confirm buttons
|
651 |
-
confirmButton.innerHTML = params.confirmButtonText;
|
652 |
-
cancelButton.innerHTML = params.cancelButtonText;
|
653 |
-
|
654 |
-
// Set buttons to selected background colors
|
655 |
-
if (params.buttonsStyling) {
|
656 |
-
confirmButton.style.backgroundColor = params.confirmButtonColor;
|
657 |
-
cancelButton.style.backgroundColor = params.cancelButtonColor;
|
658 |
-
}
|
659 |
-
|
660 |
-
// Add buttons custom classes
|
661 |
-
confirmButton.className = swalClasses.confirm;
|
662 |
-
addClass(confirmButton, params.confirmButtonClass);
|
663 |
-
cancelButton.className = swalClasses.cancel;
|
664 |
-
addClass(cancelButton, params.cancelButtonClass);
|
665 |
-
|
666 |
-
// Buttons styling
|
667 |
-
if (params.buttonsStyling) {
|
668 |
-
addClass(confirmButton, swalClasses.styled);
|
669 |
-
addClass(cancelButton, swalClasses.styled);
|
670 |
-
} else {
|
671 |
-
removeClass(confirmButton, swalClasses.styled);
|
672 |
-
removeClass(cancelButton, swalClasses.styled);
|
673 |
-
|
674 |
-
confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
|
675 |
-
cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
|
676 |
-
}
|
677 |
-
|
678 |
-
// CSS animation
|
679 |
-
if (params.animation === true) {
|
680 |
-
removeClass(modal, swalClasses.noanimation);
|
681 |
-
} else {
|
682 |
-
addClass(modal, swalClasses.noanimation);
|
683 |
-
}
|
684 |
-
};
|
685 |
-
|
686 |
-
/*
|
687 |
-
* Animations
|
688 |
-
*/
|
689 |
-
var openModal = function openModal(animation, onComplete) {
|
690 |
-
var container = getContainer();
|
691 |
-
var modal = getModal();
|
692 |
-
|
693 |
-
if (animation) {
|
694 |
-
addClass(modal, swalClasses.show);
|
695 |
-
addClass(container, swalClasses.fade);
|
696 |
-
removeClass(modal, swalClasses.hide);
|
697 |
-
} else {
|
698 |
-
removeClass(modal, swalClasses.fade);
|
699 |
-
}
|
700 |
-
show(modal);
|
701 |
-
|
702 |
-
// scrolling is 'hidden' until animation is done, after that 'auto'
|
703 |
-
container.style.overflowY = 'hidden';
|
704 |
-
if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
|
705 |
-
modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
|
706 |
-
modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
|
707 |
-
container.style.overflowY = 'auto';
|
708 |
-
});
|
709 |
-
} else {
|
710 |
-
container.style.overflowY = 'auto';
|
711 |
-
}
|
712 |
-
|
713 |
-
addClass(document.documentElement, swalClasses.shown);
|
714 |
-
addClass(document.body, swalClasses.shown);
|
715 |
-
addClass(container, swalClasses.shown);
|
716 |
-
fixScrollbar();
|
717 |
-
iOSfix();
|
718 |
-
states.previousActiveElement = document.activeElement;
|
719 |
-
if (onComplete !== null && typeof onComplete === 'function') {
|
720 |
-
setTimeout(function () {
|
721 |
-
onComplete(modal);
|
722 |
-
});
|
723 |
-
}
|
724 |
-
};
|
725 |
-
|
726 |
-
var fixScrollbar = function fixScrollbar() {
|
727 |
-
// for queues, do not do this more than once
|
728 |
-
if (states.previousBodyPadding !== null) {
|
729 |
-
return;
|
730 |
-
}
|
731 |
-
// if the body has overflow
|
732 |
-
if (document.body.scrollHeight > window.innerHeight) {
|
733 |
-
// add padding so the content doesn't shift after removal of scrollbar
|
734 |
-
states.previousBodyPadding = document.body.style.paddingRight;
|
735 |
-
document.body.style.paddingRight = measureScrollbar() + 'px';
|
736 |
-
}
|
737 |
-
};
|
738 |
-
|
739 |
-
var undoScrollbar = function undoScrollbar() {
|
740 |
-
if (states.previousBodyPadding !== null) {
|
741 |
-
document.body.style.paddingRight = states.previousBodyPadding;
|
742 |
-
states.previousBodyPadding = null;
|
743 |
-
}
|
744 |
-
};
|
745 |
-
|
746 |
-
// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
|
747 |
-
var iOSfix = function iOSfix() {
|
748 |
-
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
749 |
-
if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
|
750 |
-
var offset = document.body.scrollTop;
|
751 |
-
document.body.style.top = offset * -1 + 'px';
|
752 |
-
addClass(document.body, swalClasses.iosfix);
|
753 |
-
}
|
754 |
-
};
|
755 |
-
|
756 |
-
var undoIOSfix = function undoIOSfix() {
|
757 |
-
if (hasClass(document.body, swalClasses.iosfix)) {
|
758 |
-
var offset = parseInt(document.body.style.top, 10);
|
759 |
-
removeClass(document.body, swalClasses.iosfix);
|
760 |
-
document.body.style.top = '';
|
761 |
-
document.body.scrollTop = offset * -1;
|
762 |
-
}
|
763 |
-
};
|
764 |
-
|
765 |
-
// SweetAlert entry point
|
766 |
-
var sweetAlert = function sweetAlert() {
|
767 |
-
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
768 |
-
args[_key] = arguments[_key];
|
769 |
-
}
|
770 |
-
|
771 |
-
if (args[0] === undefined) {
|
772 |
-
console.error('SweetAlert2 expects at least 1 attribute!');
|
773 |
-
return false;
|
774 |
-
}
|
775 |
-
|
776 |
-
var params = _extends({}, modalParams);
|
777 |
-
|
778 |
-
switch (_typeof(args[0])) {
|
779 |
-
case 'string':
|
780 |
-
params.title = args[0];
|
781 |
-
params.html = args[1];
|
782 |
-
params.type = args[2];
|
783 |
-
|
784 |
-
break;
|
785 |
-
|
786 |
-
case 'object':
|
787 |
-
_extends(params, args[0]);
|
788 |
-
params.extraParams = args[0].extraParams;
|
789 |
-
|
790 |
-
if (params.input === 'email' && params.inputValidator === null) {
|
791 |
-
params.inputValidator = function (email) {
|
792 |
-
return new Promise(function (resolve, reject) {
|
793 |
-
var emailRegex = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
|
794 |
-
if (emailRegex.test(email)) {
|
795 |
-
resolve();
|
796 |
-
} else {
|
797 |
-
reject('Invalid email address');
|
798 |
-
}
|
799 |
-
});
|
800 |
-
};
|
801 |
-
}
|
802 |
-
|
803 |
-
if (params.input === 'url' && params.inputValidator === null) {
|
804 |
-
params.inputValidator = function (url) {
|
805 |
-
return new Promise(function (resolve, reject) {
|
806 |
-
var urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
|
807 |
-
if (urlRegex.test(url)) {
|
808 |
-
resolve();
|
809 |
-
} else {
|
810 |
-
reject('Invalid URL');
|
811 |
-
}
|
812 |
-
});
|
813 |
-
};
|
814 |
-
}
|
815 |
-
break;
|
816 |
-
|
817 |
-
default:
|
818 |
-
console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + _typeof(args[0]));
|
819 |
-
return false;
|
820 |
-
}
|
821 |
-
|
822 |
-
setParameters(params);
|
823 |
-
|
824 |
-
var container = getContainer();
|
825 |
-
var modal = getModal();
|
826 |
-
|
827 |
-
return new Promise(function (resolve, reject) {
|
828 |
-
// Close on timer
|
829 |
-
if (params.timer) {
|
830 |
-
modal.timeout = setTimeout(function () {
|
831 |
-
sweetAlert.closeModal(params.onClose);
|
832 |
-
if (params.useRejections) {
|
833 |
-
reject('timer');
|
834 |
} else {
|
835 |
-
|
836 |
}
|
837 |
-
|
838 |
-
|
|
|
|
|
839 |
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
if (!inputType) {
|
844 |
-
return null;
|
845 |
-
}
|
846 |
-
switch (inputType) {
|
847 |
-
case 'select':
|
848 |
-
case 'textarea':
|
849 |
-
case 'file':
|
850 |
-
return getChildByClass(modal, swalClasses[inputType]);
|
851 |
-
case 'checkbox':
|
852 |
-
return modal.querySelector('.' + swalClasses.checkbox + ' input');
|
853 |
-
case 'radio':
|
854 |
-
return modal.querySelector('.' + swalClasses.radio + ' input:checked') || modal.querySelector('.' + swalClasses.radio + ' input:first-child');
|
855 |
-
case 'range':
|
856 |
-
return modal.querySelector('.' + swalClasses.range + ' input');
|
857 |
-
default:
|
858 |
-
return getChildByClass(modal, swalClasses.input);
|
859 |
-
}
|
860 |
-
};
|
861 |
-
|
862 |
-
// Get the value of the modal input
|
863 |
-
var getInputValue = function getInputValue() {
|
864 |
-
var input = getInput();
|
865 |
-
if (!input) {
|
866 |
-
return null;
|
867 |
-
}
|
868 |
-
switch (params.input) {
|
869 |
-
case 'checkbox':
|
870 |
-
return input.checked ? 1 : 0;
|
871 |
-
case 'radio':
|
872 |
-
return input.checked ? input.value : null;
|
873 |
-
case 'file':
|
874 |
-
return input.files.length ? input.files[0] : null;
|
875 |
-
default:
|
876 |
-
return params.inputAutoTrim ? input.value.trim() : input.value;
|
877 |
-
}
|
878 |
-
};
|
879 |
-
|
880 |
-
// input autofocus
|
881 |
-
if (params.input) {
|
882 |
-
setTimeout(function () {
|
883 |
-
var input = getInput();
|
884 |
-
if (input) {
|
885 |
-
focusInput(input);
|
886 |
-
}
|
887 |
-
}, 0);
|
888 |
-
}
|
889 |
|
890 |
-
|
891 |
-
|
892 |
-
sweetAlert.showLoading();
|
893 |
-
}
|
894 |
-
|
895 |
-
if (params.preConfirm) {
|
896 |
-
params.preConfirm(value, params.extraParams).then(function (preConfirmValue) {
|
897 |
-
sweetAlert.closeModal(params.onClose);
|
898 |
-
resolve(preConfirmValue || value);
|
899 |
-
}, function (error) {
|
900 |
-
sweetAlert.hideLoading();
|
901 |
-
if (error) {
|
902 |
-
sweetAlert.showValidationError(error);
|
903 |
-
}
|
904 |
-
});
|
905 |
-
} else {
|
906 |
-
sweetAlert.closeModal(params.onClose);
|
907 |
-
if (params.useRejections) {
|
908 |
-
resolve(value);
|
909 |
} else {
|
910 |
-
|
911 |
-
}
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
var e = event || window.event;
|
918 |
-
var target = e.target || e.srcElement;
|
919 |
-
var confirmButton = getConfirmButton();
|
920 |
-
var cancelButton = getCancelButton();
|
921 |
-
var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target));
|
922 |
-
var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target));
|
923 |
-
|
924 |
-
switch (e.type) {
|
925 |
-
case 'mouseover':
|
926 |
-
case 'mouseup':
|
927 |
-
if (params.buttonsStyling) {
|
928 |
-
if (targetedConfirm) {
|
929 |
-
confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1);
|
930 |
-
} else if (targetedCancel) {
|
931 |
-
cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1);
|
932 |
-
}
|
933 |
-
}
|
934 |
-
break;
|
935 |
-
case 'mouseout':
|
936 |
-
if (params.buttonsStyling) {
|
937 |
-
if (targetedConfirm) {
|
938 |
-
confirmButton.style.backgroundColor = params.confirmButtonColor;
|
939 |
-
} else if (targetedCancel) {
|
940 |
-
cancelButton.style.backgroundColor = params.cancelButtonColor;
|
941 |
-
}
|
942 |
-
}
|
943 |
-
break;
|
944 |
-
case 'mousedown':
|
945 |
-
if (params.buttonsStyling) {
|
946 |
-
if (targetedConfirm) {
|
947 |
-
confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2);
|
948 |
-
} else if (targetedCancel) {
|
949 |
-
cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2);
|
950 |
-
}
|
951 |
-
}
|
952 |
-
break;
|
953 |
-
case 'click':
|
954 |
-
// Clicked 'confirm'
|
955 |
-
if (targetedConfirm && sweetAlert.isVisible()) {
|
956 |
-
sweetAlert.disableButtons();
|
957 |
-
if (params.input) {
|
958 |
-
var inputValue = getInputValue();
|
959 |
-
|
960 |
-
if (params.inputValidator) {
|
961 |
-
sweetAlert.disableInput();
|
962 |
-
params.inputValidator(inputValue, params.extraParams).then(function () {
|
963 |
-
sweetAlert.enableButtons();
|
964 |
-
sweetAlert.enableInput();
|
965 |
-
confirm(inputValue);
|
966 |
-
}, function (error) {
|
967 |
-
sweetAlert.enableButtons();
|
968 |
-
sweetAlert.enableInput();
|
969 |
-
if (error) {
|
970 |
-
sweetAlert.showValidationError(error);
|
971 |
-
}
|
972 |
-
});
|
973 |
-
} else {
|
974 |
-
confirm(inputValue);
|
975 |
-
}
|
976 |
-
} else {
|
977 |
-
confirm(true);
|
978 |
-
}
|
979 |
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
sweetAlert.closeModal(params.onClose);
|
984 |
-
if (params.useRejections) {
|
985 |
-
reject('cancel');
|
986 |
-
} else {
|
987 |
-
resolve({ dismiss: 'cancel' });
|
988 |
-
}
|
989 |
-
}
|
990 |
-
break;
|
991 |
-
default:
|
992 |
-
}
|
993 |
};
|
|
|
|
|
|
|
|
|
994 |
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
|
|
|
|
1002 |
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
}
|
1011 |
-
};
|
1012 |
-
|
1013 |
-
// Closing modal by overlay click
|
1014 |
-
container.onclick = function (e) {
|
1015 |
-
if (e.target !== container) {
|
1016 |
-
return;
|
1017 |
-
}
|
1018 |
-
if (params.allowOutsideClick) {
|
1019 |
-
sweetAlert.closeModal(params.onClose);
|
1020 |
-
if (params.useRejections) {
|
1021 |
-
reject('overlay');
|
1022 |
} else {
|
1023 |
-
|
1024 |
}
|
1025 |
-
}
|
1026 |
};
|
|
|
|
|
|
|
|
|
|
|
1027 |
|
1028 |
-
var buttonsWrapper = getButtonsWrapper();
|
1029 |
-
var confirmButton = getConfirmButton();
|
1030 |
-
var cancelButton = getCancelButton();
|
1031 |
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1038 |
|
1039 |
-
// Focus handling
|
1040 |
-
var setFocus = function setFocus(index, increment) {
|
1041 |
-
var focusableElements = getFocusableElements(params.focusCancel);
|
1042 |
-
// search for visible elements and select the next possible match
|
1043 |
-
for (var _i3 = 0; _i3 < focusableElements.length; _i3++) {
|
1044 |
-
index = index + increment;
|
1045 |
|
1046 |
-
|
1047 |
-
|
1048 |
-
index = 0;
|
1049 |
|
1050 |
-
|
1051 |
-
|
1052 |
-
index = focusableElements.length - 1;
|
1053 |
}
|
1054 |
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1059 |
}
|
1060 |
-
}
|
1061 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1062 |
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1066 |
|
1067 |
-
if ([9, 13, 32, 27, 37, 38, 39, 40].indexOf(keyCode) === -1) {
|
1068 |
-
// Don't do work on keys we don't care about.
|
1069 |
-
return;
|
1070 |
-
}
|
1071 |
|
1072 |
-
|
|
|
1073 |
|
1074 |
-
|
1075 |
-
|
1076 |
-
for (var _i4 = 0; _i4 < focusableElements.length; _i4++) {
|
1077 |
-
if (targetElement === focusableElements[_i4]) {
|
1078 |
-
btnIndex = _i4;
|
1079 |
-
break;
|
1080 |
}
|
1081 |
-
}
|
1082 |
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1088 |
} else {
|
1089 |
-
|
1090 |
-
setFocus(btnIndex, -1);
|
1091 |
}
|
1092 |
-
|
1093 |
-
|
|
|
|
|
1094 |
|
1095 |
-
|
1096 |
-
|
1097 |
-
// focus Cancel button if Confirm button is currently focused
|
1098 |
-
if (document.activeElement === confirmButton && isVisible(cancelButton)) {
|
1099 |
-
cancelButton.focus();
|
1100 |
-
// and vice versa
|
1101 |
-
} else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
|
1102 |
-
confirmButton.focus();
|
1103 |
-
}
|
1104 |
-
|
1105 |
-
// ENTER/SPACE
|
1106 |
-
} else if (keyCode === 13 || keyCode === 32) {
|
1107 |
-
if (btnIndex === -1 && params.allowEnterKey) {
|
1108 |
-
// ENTER/SPACE clicked outside of a button.
|
1109 |
-
if (params.focusCancel) {
|
1110 |
-
fireClick(cancelButton, e);
|
1111 |
-
} else {
|
1112 |
-
fireClick(confirmButton, e);
|
1113 |
-
}
|
1114 |
-
e.stopPropagation();
|
1115 |
-
e.preventDefault();
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
// ESC
|
1119 |
-
} else if (keyCode === 27 && params.allowEscapeKey === true) {
|
1120 |
-
sweetAlert.closeModal(params.onClose);
|
1121 |
-
if (params.useRejections) {
|
1122 |
-
reject('esc');
|
1123 |
} else {
|
1124 |
-
|
|
|
|
|
|
|
|
|
|
|
1125 |
}
|
1126 |
-
}
|
1127 |
};
|
1128 |
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
confirmButton.style.borderRightColor = params.confirmButtonColor;
|
1138 |
-
}
|
1139 |
|
|
|
|
|
|
|
1140 |
/**
|
1141 |
-
*
|
|
|
1142 |
*/
|
1143 |
-
sweetAlert.hideLoading = sweetAlert.disableLoading = function () {
|
1144 |
-
if (!params.showConfirmButton) {
|
1145 |
-
hide(confirmButton);
|
1146 |
-
if (!params.showCancelButton) {
|
1147 |
-
hide(getButtonsWrapper());
|
1148 |
-
}
|
1149 |
-
}
|
1150 |
-
removeClass(buttonsWrapper, swalClasses.loading);
|
1151 |
-
removeClass(modal, swalClasses.loading);
|
1152 |
-
confirmButton.disabled = false;
|
1153 |
-
cancelButton.disabled = false;
|
1154 |
-
};
|
1155 |
|
1156 |
-
|
1157 |
-
|
|
|
1158 |
};
|
1159 |
-
|
1160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
};
|
1162 |
-
|
1163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1164 |
};
|
1165 |
-
|
1166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1167 |
};
|
1168 |
-
|
1169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1170 |
};
|
1171 |
-
|
1172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1173 |
};
|
1174 |
-
|
1175 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1176 |
};
|
|
|
|
|
|
|
|
|
1177 |
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
|
|
|
|
|
|
1181 |
};
|
|
|
|
|
|
|
|
|
1182 |
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
};
|
|
|
|
|
|
|
|
|
1187 |
|
1188 |
-
|
1189 |
-
|
|
|
|
|
|
|
|
|
1190 |
};
|
|
|
|
|
|
|
|
|
|
|
1191 |
|
1192 |
-
|
1193 |
-
|
1194 |
};
|
1195 |
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
radios[_i5].disabled = false;
|
1206 |
}
|
1207 |
-
|
1208 |
-
input.disabled = false;
|
1209 |
-
}
|
1210 |
-
};
|
1211 |
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
|
|
|
|
1222 |
}
|
1223 |
-
} else {
|
1224 |
-
input.disabled = true;
|
1225 |
-
}
|
1226 |
};
|
1227 |
|
1228 |
-
// Set modal min-height to disable scrolling inside the modal
|
1229 |
-
sweetAlert.recalculateHeight = debounce(function () {
|
1230 |
-
var modal = getModal();
|
1231 |
-
if (!modal) {
|
1232 |
-
return;
|
1233 |
-
}
|
1234 |
-
var prevState = modal.style.display;
|
1235 |
-
modal.style.minHeight = '';
|
1236 |
-
show(modal);
|
1237 |
-
modal.style.minHeight = modal.scrollHeight + 1 + 'px';
|
1238 |
-
modal.style.display = prevState;
|
1239 |
-
}, 50);
|
1240 |
|
1241 |
-
// Show block with validation error
|
1242 |
-
sweetAlert.showValidationError = function (error) {
|
1243 |
-
var validationError = getValidationError();
|
1244 |
-
validationError.innerHTML = error;
|
1245 |
-
show(validationError);
|
1246 |
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1253 |
|
1254 |
-
|
1255 |
-
sweetAlert.resetValidationError = function () {
|
1256 |
-
var validationError = getValidationError();
|
1257 |
-
hide(validationError);
|
1258 |
-
sweetAlert.recalculateHeight();
|
1259 |
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
|
|
1265 |
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1269 |
|
1270 |
-
sweetAlert.setProgressSteps = function (progressSteps) {
|
1271 |
-
params.progressSteps = progressSteps;
|
1272 |
-
setParameters(params);
|
1273 |
-
};
|
1274 |
|
1275 |
-
|
1276 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1277 |
};
|
1278 |
|
1279 |
-
|
1280 |
-
|
|
|
|
|
|
|
|
|
|
|
1281 |
};
|
|
|
|
|
|
|
|
|
1282 |
|
1283 |
-
sweetAlert.enableButtons();
|
1284 |
-
sweetAlert.hideLoading();
|
1285 |
-
sweetAlert.resetValidationError();
|
1286 |
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1294 |
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1302 |
}
|
1303 |
-
}
|
1304 |
}
|
1305 |
-
|
1306 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1307 |
}
|
1308 |
-
}
|
1309 |
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
|
|
|
|
|
|
|
|
1315 |
|
1316 |
-
hide(inputContainer);
|
1317 |
-
}
|
1318 |
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
case 'number':
|
1325 |
-
case 'tel':
|
1326 |
-
case 'url':
|
1327 |
-
input = getChildByClass(modal, swalClasses.input);
|
1328 |
-
input.value = params.inputValue;
|
1329 |
-
input.placeholder = params.inputPlaceholder;
|
1330 |
-
input.type = params.input;
|
1331 |
-
show(input);
|
1332 |
-
break;
|
1333 |
-
case 'file':
|
1334 |
-
input = getChildByClass(modal, swalClasses.file);
|
1335 |
-
input.placeholder = params.inputPlaceholder;
|
1336 |
-
input.type = params.input;
|
1337 |
-
show(input);
|
1338 |
-
break;
|
1339 |
-
case 'range':
|
1340 |
-
var range = getChildByClass(modal, swalClasses.range);
|
1341 |
-
var rangeInput = range.querySelector('input');
|
1342 |
-
var rangeOutput = range.querySelector('output');
|
1343 |
-
rangeInput.value = params.inputValue;
|
1344 |
-
rangeInput.type = params.input;
|
1345 |
-
rangeOutput.value = params.inputValue;
|
1346 |
-
show(range);
|
1347 |
-
break;
|
1348 |
-
case 'select':
|
1349 |
-
var select = getChildByClass(modal, swalClasses.select);
|
1350 |
-
select.innerHTML = '';
|
1351 |
-
if (params.inputPlaceholder) {
|
1352 |
-
var placeholder = document.createElement('option');
|
1353 |
-
placeholder.innerHTML = params.inputPlaceholder;
|
1354 |
-
placeholder.value = '';
|
1355 |
-
placeholder.disabled = true;
|
1356 |
-
placeholder.selected = true;
|
1357 |
-
select.appendChild(placeholder);
|
1358 |
-
}
|
1359 |
-
populateInputOptions = function populateInputOptions(inputOptions) {
|
1360 |
-
for (var optionValue in inputOptions) {
|
1361 |
-
var option = document.createElement('option');
|
1362 |
-
option.value = optionValue;
|
1363 |
-
option.innerHTML = inputOptions[optionValue];
|
1364 |
-
if (params.inputValue === optionValue) {
|
1365 |
-
option.selected = true;
|
1366 |
-
}
|
1367 |
-
select.appendChild(option);
|
1368 |
-
}
|
1369 |
-
show(select);
|
1370 |
-
select.focus();
|
1371 |
-
};
|
1372 |
-
break;
|
1373 |
-
case 'radio':
|
1374 |
-
var radio = getChildByClass(modal, swalClasses.radio);
|
1375 |
-
radio.innerHTML = '';
|
1376 |
-
populateInputOptions = function populateInputOptions(inputOptions) {
|
1377 |
-
for (var radioValue in inputOptions) {
|
1378 |
-
var radioInput = document.createElement('input');
|
1379 |
-
var radioLabel = document.createElement('label');
|
1380 |
-
var radioLabelSpan = document.createElement('span');
|
1381 |
-
radioInput.type = 'radio';
|
1382 |
-
radioInput.name = swalClasses.radio;
|
1383 |
-
radioInput.value = radioValue;
|
1384 |
-
if (params.inputValue === radioValue) {
|
1385 |
-
radioInput.checked = true;
|
1386 |
-
}
|
1387 |
-
radioLabelSpan.innerHTML = inputOptions[radioValue];
|
1388 |
-
radioLabel.appendChild(radioInput);
|
1389 |
-
radioLabel.appendChild(radioLabelSpan);
|
1390 |
-
radioLabel.for = radioInput.id;
|
1391 |
-
radio.appendChild(radioLabel);
|
1392 |
-
}
|
1393 |
-
show(radio);
|
1394 |
-
var radios = radio.querySelectorAll('input');
|
1395 |
-
if (radios.length) {
|
1396 |
-
radios[0].focus();
|
1397 |
-
}
|
1398 |
-
};
|
1399 |
-
break;
|
1400 |
-
case 'checkbox':
|
1401 |
-
var checkbox = getChildByClass(modal, swalClasses.checkbox);
|
1402 |
-
var checkboxInput = getInput('checkbox');
|
1403 |
-
checkboxInput.type = 'checkbox';
|
1404 |
-
checkboxInput.value = 1;
|
1405 |
-
checkboxInput.id = swalClasses.checkbox;
|
1406 |
-
checkboxInput.checked = Boolean(params.inputValue);
|
1407 |
-
var label = checkbox.getElementsByTagName('span');
|
1408 |
-
if (label.length) {
|
1409 |
-
checkbox.removeChild(label[0]);
|
1410 |
-
}
|
1411 |
-
label = document.createElement('span');
|
1412 |
-
label.innerHTML = params.inputPlaceholder;
|
1413 |
-
checkbox.appendChild(label);
|
1414 |
-
show(checkbox);
|
1415 |
-
break;
|
1416 |
-
case 'textarea':
|
1417 |
-
var textarea = getChildByClass(modal, swalClasses.textarea);
|
1418 |
-
textarea.value = params.inputValue;
|
1419 |
-
textarea.placeholder = params.inputPlaceholder;
|
1420 |
-
show(textarea);
|
1421 |
-
break;
|
1422 |
-
case null:
|
1423 |
-
break;
|
1424 |
-
default:
|
1425 |
-
console.error('SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"');
|
1426 |
-
break;
|
1427 |
-
}
|
1428 |
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
sweetAlert.hideLoading();
|
1434 |
-
populateInputOptions(inputOptions);
|
1435 |
-
});
|
1436 |
-
} else if (_typeof(params.inputOptions) === 'object') {
|
1437 |
-
populateInputOptions(params.inputOptions);
|
1438 |
-
} else {
|
1439 |
-
console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + _typeof(params.inputOptions));
|
1440 |
-
}
|
1441 |
-
}
|
1442 |
|
1443 |
-
|
|
|
|
|
|
|
1444 |
|
1445 |
-
|
1446 |
-
|
1447 |
-
setFocus(-1, 1);
|
1448 |
-
} else {
|
1449 |
-
if (document.activeElement) {
|
1450 |
-
document.activeElement.blur();
|
1451 |
-
}
|
1452 |
-
}
|
1453 |
|
1454 |
-
|
1455 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1456 |
|
1457 |
-
// Observe changes inside the modal and adjust height
|
1458 |
-
if (typeof MutationObserver !== 'undefined' && !swal2Observer) {
|
1459 |
-
swal2Observer = new MutationObserver(sweetAlert.recalculateHeight);
|
1460 |
-
swal2Observer.observe(modal, { childList: true, characterData: true, subtree: true });
|
1461 |
-
}
|
1462 |
-
});
|
1463 |
-
};
|
1464 |
-
|
1465 |
-
/*
|
1466 |
-
* Global function to determine if swal2 modal is shown
|
1467 |
-
*/
|
1468 |
-
sweetAlert.isVisible = function () {
|
1469 |
-
return !!getModal();
|
1470 |
-
};
|
1471 |
-
|
1472 |
-
/*
|
1473 |
-
* Global function for chaining sweetAlert modals
|
1474 |
-
*/
|
1475 |
-
sweetAlert.queue = function (steps) {
|
1476 |
-
queue = steps;
|
1477 |
-
var resetQueue = function resetQueue() {
|
1478 |
-
queue = [];
|
1479 |
-
document.body.removeAttribute('data-swal2-queue-step');
|
1480 |
-
};
|
1481 |
-
var queueResult = [];
|
1482 |
-
return new Promise(function (resolve, reject) {
|
1483 |
-
(function step(i, callback) {
|
1484 |
-
if (i < queue.length) {
|
1485 |
-
document.body.setAttribute('data-swal2-queue-step', i);
|
1486 |
-
|
1487 |
-
sweetAlert(queue[i]).then(function (result) {
|
1488 |
-
queueResult.push(result);
|
1489 |
-
step(i + 1, callback);
|
1490 |
-
}, function (dismiss) {
|
1491 |
-
resetQueue();
|
1492 |
-
reject(dismiss);
|
1493 |
-
});
|
1494 |
-
} else {
|
1495 |
-
resetQueue();
|
1496 |
-
resolve(queueResult);
|
1497 |
-
}
|
1498 |
-
})(0);
|
1499 |
-
});
|
1500 |
-
};
|
1501 |
-
|
1502 |
-
/*
|
1503 |
-
* Global function for getting the index of current modal in queue
|
1504 |
-
*/
|
1505 |
-
sweetAlert.getQueueStep = function () {
|
1506 |
-
return document.body.getAttribute('data-swal2-queue-step');
|
1507 |
-
};
|
1508 |
-
|
1509 |
-
/*
|
1510 |
-
* Global function for inserting a modal to the queue
|
1511 |
-
*/
|
1512 |
-
sweetAlert.insertQueueStep = function (step, index) {
|
1513 |
-
if (index && index < queue.length) {
|
1514 |
-
return queue.splice(index, 0, step);
|
1515 |
-
}
|
1516 |
-
return queue.push(step);
|
1517 |
-
};
|
1518 |
-
|
1519 |
-
/*
|
1520 |
-
* Global function for deleting a modal from the queue
|
1521 |
-
*/
|
1522 |
-
sweetAlert.deleteQueueStep = function (index) {
|
1523 |
-
if (typeof queue[index] !== 'undefined') {
|
1524 |
-
queue.splice(index, 1);
|
1525 |
-
}
|
1526 |
-
};
|
1527 |
-
|
1528 |
-
/*
|
1529 |
-
* Global function to close sweetAlert
|
1530 |
-
*/
|
1531 |
-
sweetAlert.close = sweetAlert.closeModal = function (onComplete) {
|
1532 |
-
var container = getContainer();
|
1533 |
-
var modal = getModal();
|
1534 |
-
if (!modal) {
|
1535 |
-
return;
|
1536 |
-
}
|
1537 |
-
removeClass(modal, swalClasses.show);
|
1538 |
-
addClass(modal, swalClasses.hide);
|
1539 |
-
clearTimeout(modal.timeout);
|
1540 |
-
|
1541 |
-
resetPrevState();
|
1542 |
-
|
1543 |
-
var removeModalAndResetState = function removeModalAndResetState() {
|
1544 |
-
if (container.parentNode) {
|
1545 |
-
container.parentNode.removeChild(container);
|
1546 |
-
}
|
1547 |
-
removeClass(document.documentElement, swalClasses.shown);
|
1548 |
-
removeClass(document.body, swalClasses.shown);
|
1549 |
-
undoScrollbar();
|
1550 |
-
undoIOSfix();
|
1551 |
-
};
|
1552 |
-
|
1553 |
-
// If animation is supported, animate
|
1554 |
-
if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
|
1555 |
-
modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
|
1556 |
-
modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
|
1557 |
-
if (hasClass(modal, swalClasses.hide)) {
|
1558 |
-
removeModalAndResetState();
|
1559 |
-
}
|
1560 |
-
});
|
1561 |
-
} else {
|
1562 |
-
// Otherwise, remove immediately
|
1563 |
-
removeModalAndResetState();
|
1564 |
-
}
|
1565 |
-
if (onComplete !== null && typeof onComplete === 'function') {
|
1566 |
-
setTimeout(function () {
|
1567 |
-
onComplete(modal);
|
1568 |
-
});
|
1569 |
-
}
|
1570 |
-
};
|
1571 |
-
|
1572 |
-
/*
|
1573 |
-
* Global function to click 'Confirm' button
|
1574 |
-
*/
|
1575 |
-
sweetAlert.clickConfirm = function () {
|
1576 |
-
return getConfirmButton().click();
|
1577 |
-
};
|
1578 |
-
|
1579 |
-
/*
|
1580 |
-
* Global function to click 'Cancel' button
|
1581 |
-
*/
|
1582 |
-
sweetAlert.clickCancel = function () {
|
1583 |
-
return getCancelButton().click();
|
1584 |
-
};
|
1585 |
-
|
1586 |
-
/**
|
1587 |
-
* Show spinner instead of Confirm button and disable Cancel button
|
1588 |
-
*/
|
1589 |
-
sweetAlert.showLoading = sweetAlert.enableLoading = function () {
|
1590 |
-
var modal = getModal();
|
1591 |
-
if (!modal) {
|
1592 |
-
sweetAlert('');
|
1593 |
-
}
|
1594 |
-
var buttonsWrapper = getButtonsWrapper();
|
1595 |
-
var confirmButton = getConfirmButton();
|
1596 |
-
var cancelButton = getCancelButton();
|
1597 |
-
|
1598 |
-
show(buttonsWrapper);
|
1599 |
-
show(confirmButton, 'inline-block');
|
1600 |
-
addClass(buttonsWrapper, swalClasses.loading);
|
1601 |
-
addClass(modal, swalClasses.loading);
|
1602 |
-
confirmButton.disabled = true;
|
1603 |
-
cancelButton.disabled = true;
|
1604 |
-
};
|
1605 |
-
|
1606 |
-
/**
|
1607 |
-
* Set default params for each popup
|
1608 |
-
* @param {Object} userParams
|
1609 |
-
*/
|
1610 |
-
sweetAlert.setDefaults = function (userParams) {
|
1611 |
-
if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {
|
1612 |
-
return console.error('SweetAlert2: the argument for setDefaults() is required and has to be a object');
|
1613 |
-
}
|
1614 |
-
|
1615 |
-
for (var param in userParams) {
|
1616 |
-
if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
|
1617 |
-
console.warn('SweetAlert2: Unknown parameter "' + param + '"');
|
1618 |
-
delete userParams[param];
|
1619 |
-
}
|
1620 |
-
}
|
1621 |
|
1622 |
-
|
1623 |
-
};
|
1624 |
|
1625 |
-
|
1626 |
-
* Reset default params for each popup
|
1627 |
-
*/
|
1628 |
-
sweetAlert.resetDefaults = function () {
|
1629 |
-
modalParams = _extends({}, defaultParams);
|
1630 |
-
};
|
1631 |
|
1632 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1633 |
|
1634 |
-
|
1635 |
|
1636 |
-
|
1637 |
|
1638 |
-
return
|
1639 |
|
1640 |
-
}))
|
1641 |
-
if (
|
1 |
/*!
|
2 |
+
* sweetalert2 v11.4.30
|
3 |
+
* Released under the MIT License.
|
4 |
+
*/
|
5 |
(function (global, factory) {
|
6 |
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
7 |
+
typeof define === 'function' && define.amd ? define(factory) :
|
8 |
+
(global = global || self, global.Sweetalert2 = factory());
|
9 |
+
}(this, function () { 'use strict';
|
10 |
+
|
11 |
+
const consolePrefix = 'SweetAlert2:';
|
12 |
+
/**
|
13 |
+
* Filter the unique values into a new array
|
14 |
+
*
|
15 |
+
* @param {Array} arr
|
16 |
+
* @returns {Array}
|
17 |
+
*/
|
18 |
+
|
19 |
+
const uniqueArray = arr => {
|
20 |
+
const result = [];
|
21 |
+
|
22 |
+
for (let i = 0; i < arr.length; i++) {
|
23 |
+
if (result.indexOf(arr[i]) === -1) {
|
24 |
+
result.push(arr[i]);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
return result;
|
29 |
+
};
|
30 |
+
/**
|
31 |
+
* Capitalize the first letter of a string
|
32 |
+
*
|
33 |
+
* @param {string} str
|
34 |
+
* @returns {string}
|
35 |
+
*/
|
36 |
+
|
37 |
+
const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);
|
38 |
+
/**
|
39 |
+
* Standardize console warnings
|
40 |
+
*
|
41 |
+
* @param {string | Array} message
|
42 |
+
*/
|
43 |
+
|
44 |
+
const warn = message => {
|
45 |
+
console.warn("".concat(consolePrefix, " ").concat(typeof message === 'object' ? message.join(' ') : message));
|
46 |
+
};
|
47 |
+
/**
|
48 |
+
* Standardize console errors
|
49 |
+
*
|
50 |
+
* @param {string} message
|
51 |
+
*/
|
52 |
+
|
53 |
+
const error = message => {
|
54 |
+
console.error("".concat(consolePrefix, " ").concat(message));
|
55 |
+
};
|
56 |
+
/**
|
57 |
+
* Private global state for `warnOnce`
|
58 |
+
*
|
59 |
+
* @type {Array}
|
60 |
+
* @private
|
61 |
+
*/
|
62 |
+
|
63 |
+
const previousWarnOnceMessages = [];
|
64 |
+
/**
|
65 |
+
* Show a console warning, but only if it hasn't already been shown
|
66 |
+
*
|
67 |
+
* @param {string} message
|
68 |
+
*/
|
69 |
+
|
70 |
+
const warnOnce = message => {
|
71 |
+
if (!previousWarnOnceMessages.includes(message)) {
|
72 |
+
previousWarnOnceMessages.push(message);
|
73 |
+
warn(message);
|
74 |
+
}
|
75 |
+
};
|
76 |
+
/**
|
77 |
+
* Show a one-time console warning about deprecated params/methods
|
78 |
+
*
|
79 |
+
* @param {string} deprecatedParam
|
80 |
+
* @param {string} useInstead
|
81 |
+
*/
|
82 |
+
|
83 |
+
const warnAboutDeprecation = (deprecatedParam, useInstead) => {
|
84 |
+
warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
|
85 |
+
};
|
86 |
+
/**
|
87 |
+
* If `arg` is a function, call it (with no arguments or context) and return the result.
|
88 |
+
* Otherwise, just pass the value through
|
89 |
+
*
|
90 |
+
* @param {Function | any} arg
|
91 |
+
* @returns {any}
|
92 |
+
*/
|
93 |
+
|
94 |
+
const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;
|
95 |
+
/**
|
96 |
+
* @param {any} arg
|
97 |
+
* @returns {boolean}
|
98 |
+
*/
|
99 |
+
|
100 |
+
const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';
|
101 |
+
/**
|
102 |
+
* @param {any} arg
|
103 |
+
* @returns {Promise}
|
104 |
+
*/
|
105 |
+
|
106 |
+
const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
|
107 |
+
/**
|
108 |
+
* @param {any} arg
|
109 |
+
* @returns {boolean}
|
110 |
+
*/
|
111 |
+
|
112 |
+
const isPromise = arg => arg && Promise.resolve(arg) === arg;
|
113 |
+
/**
|
114 |
+
* @param {Array} arr
|
115 |
+
* @returns {any}
|
116 |
+
*/
|
117 |
+
|
118 |
+
const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];
|
119 |
+
|
120 |
+
const defaultParams = {
|
121 |
+
title: '',
|
122 |
+
titleText: '',
|
123 |
+
text: '',
|
124 |
+
html: '',
|
125 |
+
footer: '',
|
126 |
+
icon: undefined,
|
127 |
+
iconColor: undefined,
|
128 |
+
iconHtml: undefined,
|
129 |
+
template: undefined,
|
130 |
+
toast: false,
|
131 |
+
showClass: {
|
132 |
+
popup: 'swal2-show',
|
133 |
+
backdrop: 'swal2-backdrop-show',
|
134 |
+
icon: 'swal2-icon-show'
|
135 |
+
},
|
136 |
+
hideClass: {
|
137 |
+
popup: 'swal2-hide',
|
138 |
+
backdrop: 'swal2-backdrop-hide',
|
139 |
+
icon: 'swal2-icon-hide'
|
140 |
+
},
|
141 |
+
customClass: {},
|
142 |
+
target: 'body',
|
143 |
+
color: undefined,
|
144 |
+
backdrop: true,
|
145 |
+
heightAuto: true,
|
146 |
+
allowOutsideClick: true,
|
147 |
+
allowEscapeKey: true,
|
148 |
+
allowEnterKey: true,
|
149 |
+
stopKeydownPropagation: true,
|
150 |
+
keydownListenerCapture: false,
|
151 |
+
showConfirmButton: true,
|
152 |
+
showDenyButton: false,
|
153 |
+
showCancelButton: false,
|
154 |
+
preConfirm: undefined,
|
155 |
+
preDeny: undefined,
|
156 |
+
confirmButtonText: 'OK',
|
157 |
+
confirmButtonAriaLabel: '',
|
158 |
+
confirmButtonColor: undefined,
|
159 |
+
denyButtonText: 'No',
|
160 |
+
denyButtonAriaLabel: '',
|
161 |
+
denyButtonColor: undefined,
|
162 |
+
cancelButtonText: 'Cancel',
|
163 |
+
cancelButtonAriaLabel: '',
|
164 |
+
cancelButtonColor: undefined,
|
165 |
+
buttonsStyling: true,
|
166 |
+
reverseButtons: false,
|
167 |
+
focusConfirm: true,
|
168 |
+
focusDeny: false,
|
169 |
+
focusCancel: false,
|
170 |
+
returnFocus: true,
|
171 |
+
showCloseButton: false,
|
172 |
+
closeButtonHtml: '×',
|
173 |
+
closeButtonAriaLabel: 'Close this dialog',
|
174 |
+
loaderHtml: '',
|
175 |
+
showLoaderOnConfirm: false,
|
176 |
+
showLoaderOnDeny: false,
|
177 |
+
imageUrl: undefined,
|
178 |
+
imageWidth: undefined,
|
179 |
+
imageHeight: undefined,
|
180 |
+
imageAlt: '',
|
181 |
+
timer: undefined,
|
182 |
+
timerProgressBar: false,
|
183 |
+
width: undefined,
|
184 |
+
padding: undefined,
|
185 |
+
background: undefined,
|
186 |
+
input: undefined,
|
187 |
+
inputPlaceholder: '',
|
188 |
+
inputLabel: '',
|
189 |
+
inputValue: '',
|
190 |
+
inputOptions: {},
|
191 |
+
inputAutoTrim: true,
|
192 |
+
inputAttributes: {},
|
193 |
+
inputValidator: undefined,
|
194 |
+
returnInputValueOnDeny: false,
|
195 |
+
validationMessage: undefined,
|
196 |
+
grow: false,
|
197 |
+
position: 'center',
|
198 |
+
progressSteps: [],
|
199 |
+
currentProgressStep: undefined,
|
200 |
+
progressStepsDistance: undefined,
|
201 |
+
willOpen: undefined,
|
202 |
+
didOpen: undefined,
|
203 |
+
didRender: undefined,
|
204 |
+
willClose: undefined,
|
205 |
+
didClose: undefined,
|
206 |
+
didDestroy: undefined,
|
207 |
+
scrollbarPadding: true
|
208 |
+
};
|
209 |
+
const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];
|
210 |
+
const deprecatedParams = {};
|
211 |
+
const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];
|
212 |
+
/**
|
213 |
+
* Is valid parameter
|
214 |
+
*
|
215 |
+
* @param {string} paramName
|
216 |
+
* @returns {boolean}
|
217 |
+
*/
|
218 |
+
|
219 |
+
const isValidParameter = paramName => {
|
220 |
+
return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
|
221 |
+
};
|
222 |
+
/**
|
223 |
+
* Is valid parameter for Swal.update() method
|
224 |
+
*
|
225 |
+
* @param {string} paramName
|
226 |
+
* @returns {boolean}
|
227 |
+
*/
|
228 |
+
|
229 |
+
const isUpdatableParameter = paramName => {
|
230 |
+
return updatableParams.indexOf(paramName) !== -1;
|
231 |
+
};
|
232 |
+
/**
|
233 |
+
* Is deprecated parameter
|
234 |
+
*
|
235 |
+
* @param {string} paramName
|
236 |
+
* @returns {string | undefined}
|
237 |
+
*/
|
238 |
+
|
239 |
+
const isDeprecatedParameter = paramName => {
|
240 |
+
return deprecatedParams[paramName];
|
241 |
+
};
|
242 |
+
/**
|
243 |
+
* @param {string} param
|
244 |
+
*/
|
245 |
+
|
246 |
+
const checkIfParamIsValid = param => {
|
247 |
+
if (!isValidParameter(param)) {
|
248 |
+
warn("Unknown parameter \"".concat(param, "\""));
|
249 |
+
}
|
250 |
+
};
|
251 |
+
/**
|
252 |
+
* @param {string} param
|
253 |
+
*/
|
254 |
+
|
255 |
+
|
256 |
+
const checkIfToastParamIsValid = param => {
|
257 |
+
if (toastIncompatibleParams.includes(param)) {
|
258 |
+
warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
|
259 |
+
}
|
260 |
+
};
|
261 |
+
/**
|
262 |
+
* @param {string} param
|
263 |
+
*/
|
264 |
+
|
265 |
+
|
266 |
+
const checkIfParamIsDeprecated = param => {
|
267 |
+
if (isDeprecatedParameter(param)) {
|
268 |
+
warnAboutDeprecation(param, isDeprecatedParameter(param));
|
269 |
+
}
|
270 |
+
};
|
271 |
+
/**
|
272 |
+
* Show relevant warnings for given params
|
273 |
+
*
|
274 |
+
* @param {SweetAlertOptions} params
|
275 |
+
*/
|
276 |
+
|
277 |
+
|
278 |
+
const showWarningsForParams = params => {
|
279 |
+
if (!params.backdrop && params.allowOutsideClick) {
|
280 |
+
warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
|
281 |
+
}
|
282 |
+
|
283 |
+
for (const param in params) {
|
284 |
+
checkIfParamIsValid(param);
|
285 |
+
|
286 |
+
if (params.toast) {
|
287 |
+
checkIfToastParamIsValid(param);
|
288 |
+
}
|
289 |
+
|
290 |
+
checkIfParamIsDeprecated(param);
|
291 |
+
}
|
292 |
+
};
|
293 |
+
|
294 |
+
const swalPrefix = 'swal2-';
|
295 |
+
/**
|
296 |
+
* @param {string[]} items
|
297 |
+
* @returns {object}
|
298 |
+
*/
|
299 |
+
|
300 |
+
const prefix = items => {
|
301 |
+
const result = {};
|
302 |
+
|
303 |
+
for (const i in items) {
|
304 |
+
result[items[i]] = swalPrefix + items[i];
|
305 |
+
}
|
306 |
+
|
307 |
+
return result;
|
308 |
+
};
|
309 |
+
const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);
|
310 |
+
const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Gets the popup container which contains the backdrop and the popup itself.
|
314 |
+
*
|
315 |
+
* @returns {HTMLElement | null}
|
316 |
+
*/
|
317 |
+
|
318 |
+
const getContainer = () => document.body.querySelector(".".concat(swalClasses.container));
|
319 |
+
/**
|
320 |
+
* @param {string} selectorString
|
321 |
+
* @returns {HTMLElement | null}
|
322 |
+
*/
|
323 |
+
|
324 |
+
const elementBySelector = selectorString => {
|
325 |
+
const container = getContainer();
|
326 |
+
return container ? container.querySelector(selectorString) : null;
|
327 |
+
};
|
328 |
+
/**
|
329 |
+
* @param {string} className
|
330 |
+
* @returns {HTMLElement | null}
|
331 |
+
*/
|
332 |
+
|
333 |
+
const elementByClass = className => {
|
334 |
+
return elementBySelector(".".concat(className));
|
335 |
+
};
|
336 |
+
/**
|
337 |
+
* @returns {HTMLElement | null}
|
338 |
+
*/
|
339 |
+
|
340 |
+
|
341 |
+
const getPopup = () => elementByClass(swalClasses.popup);
|
342 |
+
/**
|
343 |
+
* @returns {HTMLElement | null}
|
344 |
+
*/
|
345 |
+
|
346 |
+
const getIcon = () => elementByClass(swalClasses.icon);
|
347 |
+
/**
|
348 |
+
* @returns {HTMLElement | null}
|
349 |
+
*/
|
350 |
+
|
351 |
+
const getTitle = () => elementByClass(swalClasses.title);
|
352 |
+
/**
|
353 |
+
* @returns {HTMLElement | null}
|
354 |
+
*/
|
355 |
+
|
356 |
+
const getHtmlContainer = () => elementByClass(swalClasses['html-container']);
|
357 |
+
/**
|
358 |
+
* @returns {HTMLElement | null}
|
359 |
+
*/
|
360 |
+
|
361 |
+
const getImage = () => elementByClass(swalClasses.image);
|
362 |
+
/**
|
363 |
+
* @returns {HTMLElement | null}
|
364 |
+
*/
|
365 |
+
|
366 |
+
const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);
|
367 |
+
/**
|
368 |
+
* @returns {HTMLElement | null}
|
369 |
+
*/
|
370 |
+
|
371 |
+
const getValidationMessage = () => elementByClass(swalClasses['validation-message']);
|
372 |
+
/**
|
373 |
+
* @returns {HTMLElement | null}
|
374 |
+
*/
|
375 |
+
|
376 |
+
const getConfirmButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
|
377 |
+
/**
|
378 |
+
* @returns {HTMLElement | null}
|
379 |
+
*/
|
380 |
+
|
381 |
+
const getDenyButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny));
|
382 |
+
/**
|
383 |
+
* @returns {HTMLElement | null}
|
384 |
+
*/
|
385 |
+
|
386 |
+
const getInputLabel = () => elementByClass(swalClasses['input-label']);
|
387 |
+
/**
|
388 |
+
* @returns {HTMLElement | null}
|
389 |
+
*/
|
390 |
+
|
391 |
+
const getLoader = () => elementBySelector(".".concat(swalClasses.loader));
|
392 |
+
/**
|
393 |
+
* @returns {HTMLElement | null}
|
394 |
+
*/
|
395 |
+
|
396 |
+
const getCancelButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
|
397 |
+
/**
|
398 |
+
* @returns {HTMLElement | null}
|
399 |
+
*/
|
400 |
+
|
401 |
+
const getActions = () => elementByClass(swalClasses.actions);
|
402 |
+
/**
|
403 |
+
* @returns {HTMLElement | null}
|
404 |
+
*/
|
405 |
+
|
406 |
+
const getFooter = () => elementByClass(swalClasses.footer);
|
407 |
+
/**
|
408 |
+
* @returns {HTMLElement | null}
|
409 |
+
*/
|
410 |
+
|
411 |
+
const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);
|
412 |
+
/**
|
413 |
+
* @returns {HTMLElement | null}
|
414 |
+
*/
|
415 |
+
|
416 |
+
const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js
|
417 |
+
|
418 |
+
const focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n";
|
419 |
+
/**
|
420 |
+
* @returns {HTMLElement[]}
|
421 |
+
*/
|
422 |
+
|
423 |
+
const getFocusableElements = () => {
|
424 |
+
const focusableElementsWithTabindex = Array.from(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
|
425 |
+
.sort((a, b) => {
|
426 |
+
const tabindexA = parseInt(a.getAttribute('tabindex'));
|
427 |
+
const tabindexB = parseInt(b.getAttribute('tabindex'));
|
428 |
+
|
429 |
+
if (tabindexA > tabindexB) {
|
430 |
+
return 1;
|
431 |
+
} else if (tabindexA < tabindexB) {
|
432 |
+
return -1;
|
433 |
+
}
|
434 |
+
|
435 |
+
return 0;
|
436 |
+
});
|
437 |
+
const otherFocusableElements = Array.from(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');
|
438 |
+
return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));
|
439 |
+
};
|
440 |
+
/**
|
441 |
+
* @returns {boolean}
|
442 |
+
*/
|
443 |
+
|
444 |
+
const isModal = () => {
|
445 |
+
return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);
|
446 |
+
};
|
447 |
+
/**
|
448 |
+
* @returns {boolean}
|
449 |
+
*/
|
450 |
+
|
451 |
+
const isToast = () => {
|
452 |
+
return getPopup() && hasClass(getPopup(), swalClasses.toast);
|
453 |
+
};
|
454 |
+
/**
|
455 |
+
* @returns {boolean}
|
456 |
+
*/
|
457 |
+
|
458 |
+
const isLoading = () => {
|
459 |
+
return getPopup().hasAttribute('data-loading');
|
460 |
+
};
|
461 |
+
|
462 |
+
const states = {
|
463 |
+
previousBodyPadding: null
|
464 |
+
};
|
465 |
+
/**
|
466 |
+
* Securely set innerHTML of an element
|
467 |
+
* https://github.com/sweetalert2/sweetalert2/issues/1926
|
468 |
+
*
|
469 |
+
* @param {HTMLElement} elem
|
470 |
+
* @param {string} html
|
471 |
+
*/
|
472 |
+
|
473 |
+
const setInnerHtml = (elem, html) => {
|
474 |
+
elem.textContent = '';
|
475 |
+
|
476 |
+
if (html) {
|
477 |
+
const parser = new DOMParser();
|
478 |
+
const parsed = parser.parseFromString(html, "text/html");
|
479 |
+
Array.from(parsed.querySelector('head').childNodes).forEach(child => {
|
480 |
+
elem.appendChild(child);
|
481 |
+
});
|
482 |
+
Array.from(parsed.querySelector('body').childNodes).forEach(child => {
|
483 |
+
elem.appendChild(child);
|
484 |
+
});
|
485 |
+
}
|
486 |
+
};
|
487 |
+
/**
|
488 |
+
* @param {HTMLElement} elem
|
489 |
+
* @param {string} className
|
490 |
+
* @returns {boolean}
|
491 |
+
*/
|
492 |
+
|
493 |
+
const hasClass = (elem, className) => {
|
494 |
+
if (!className) {
|
495 |
+
return false;
|
496 |
+
}
|
497 |
+
|
498 |
+
const classList = className.split(/\s+/);
|
499 |
+
|
500 |
+
for (let i = 0; i < classList.length; i++) {
|
501 |
+
if (!elem.classList.contains(classList[i])) {
|
502 |
+
return false;
|
503 |
+
}
|
504 |
+
}
|
505 |
+
|
506 |
+
return true;
|
507 |
+
};
|
508 |
+
/**
|
509 |
+
* @param {HTMLElement} elem
|
510 |
+
* @param {SweetAlertOptions} params
|
511 |
+
*/
|
512 |
+
|
513 |
+
const removeCustomClasses = (elem, params) => {
|
514 |
+
Array.from(elem.classList).forEach(className => {
|
515 |
+
if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {
|
516 |
+
elem.classList.remove(className);
|
517 |
+
}
|
518 |
+
});
|
519 |
+
};
|
520 |
+
/**
|
521 |
+
* @param {HTMLElement} elem
|
522 |
+
* @param {SweetAlertOptions} params
|
523 |
+
* @param {string} className
|
524 |
+
*/
|
525 |
+
|
526 |
+
|
527 |
+
const applyCustomClass = (elem, params, className) => {
|
528 |
+
removeCustomClasses(elem, params);
|
529 |
+
|
530 |
+
if (params.customClass && params.customClass[className]) {
|
531 |
+
if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
|
532 |
+
return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(typeof params.customClass[className], "\""));
|
533 |
+
}
|
534 |
+
|
535 |
+
addClass(elem, params.customClass[className]);
|
536 |
+
}
|
537 |
+
};
|
538 |
+
/**
|
539 |
+
* @param {HTMLElement} popup
|
540 |
+
* @param {import('./renderers/renderInput').InputClass} inputClass
|
541 |
+
* @returns {HTMLInputElement | null}
|
542 |
+
*/
|
543 |
+
|
544 |
+
const getInput = (popup, inputClass) => {
|
545 |
+
if (!inputClass) {
|
546 |
+
return null;
|
547 |
+
}
|
548 |
+
|
549 |
+
switch (inputClass) {
|
550 |
+
case 'select':
|
551 |
+
case 'textarea':
|
552 |
+
case 'file':
|
553 |
+
return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses[inputClass]));
|
554 |
+
|
555 |
+
case 'checkbox':
|
556 |
+
return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.checkbox, " input"));
|
557 |
+
|
558 |
+
case 'radio':
|
559 |
+
return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.radio, " input:checked")) || popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.radio, " input:first-child"));
|
560 |
+
|
561 |
+
case 'range':
|
562 |
+
return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.range, " input"));
|
563 |
+
|
564 |
+
default:
|
565 |
+
return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.input));
|
566 |
+
}
|
567 |
+
};
|
568 |
+
/**
|
569 |
+
* @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input
|
570 |
+
*/
|
571 |
+
|
572 |
+
const focusInput = input => {
|
573 |
+
input.focus(); // place cursor at end of text in text input
|
574 |
+
|
575 |
+
if (input.type !== 'file') {
|
576 |
+
// http://stackoverflow.com/a/2345915
|
577 |
+
const val = input.value;
|
578 |
+
input.value = '';
|
579 |
+
input.value = val;
|
580 |
+
}
|
581 |
+
};
|
582 |
+
/**
|
583 |
+
* @param {HTMLElement | HTMLElement[] | null} target
|
584 |
+
* @param {string | string[] | readonly string[]} classList
|
585 |
+
* @param {boolean} condition
|
586 |
+
*/
|
587 |
+
|
588 |
+
const toggleClass = (target, classList, condition) => {
|
589 |
+
if (!target || !classList) {
|
590 |
+
return;
|
591 |
+
}
|
592 |
+
|
593 |
+
if (typeof classList === 'string') {
|
594 |
+
classList = classList.split(/\s+/).filter(Boolean);
|
595 |
+
}
|
596 |
+
|
597 |
+
classList.forEach(className => {
|
598 |
+
if (Array.isArray(target)) {
|
599 |
+
target.forEach(elem => {
|
600 |
+
condition ? elem.classList.add(className) : elem.classList.remove(className);
|
601 |
+
});
|
602 |
+
} else {
|
603 |
+
condition ? target.classList.add(className) : target.classList.remove(className);
|
604 |
+
}
|
605 |
+
});
|
606 |
+
};
|
607 |
+
/**
|
608 |
+
* @param {HTMLElement | HTMLElement[] | null} target
|
609 |
+
* @param {string | string[] | readonly string[]} classList
|
610 |
+
*/
|
611 |
+
|
612 |
+
const addClass = (target, classList) => {
|
613 |
+
toggleClass(target, classList, true);
|
614 |
+
};
|
615 |
+
/**
|
616 |
+
* @param {HTMLElement | HTMLElement[] | null} target
|
617 |
+
* @param {string | string[] | readonly string[]} classList
|
618 |
+
*/
|
619 |
+
|
620 |
+
const removeClass = (target, classList) => {
|
621 |
+
toggleClass(target, classList, false);
|
622 |
+
};
|
623 |
+
/**
|
624 |
+
* Get direct child of an element by class name
|
625 |
+
*
|
626 |
+
* @param {HTMLElement} elem
|
627 |
+
* @param {string} className
|
628 |
+
* @returns {HTMLElement | null}
|
629 |
+
*/
|
630 |
+
|
631 |
+
const getDirectChildByClass = (elem, className) => {
|
632 |
+
const children = Array.from(elem.children);
|
633 |
+
|
634 |
+
for (let i = 0; i < children.length; i++) {
|
635 |
+
const child = children[i];
|
636 |
+
|
637 |
+
if (child instanceof HTMLElement && hasClass(child, className)) {
|
638 |
+
return child;
|
639 |
+
}
|
640 |
+
}
|
641 |
+
};
|
642 |
+
/**
|
643 |
+
* @param {HTMLElement} elem
|
644 |
+
* @param {string} property
|
645 |
+
* @param {*} value
|
646 |
+
*/
|
647 |
+
|
648 |
+
const applyNumericalStyle = (elem, property, value) => {
|
649 |
+
if (value === "".concat(parseInt(value))) {
|
650 |
+
value = parseInt(value);
|
651 |
+
}
|
652 |
+
|
653 |
+
if (value || parseInt(value) === 0) {
|
654 |
+
elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
|
655 |
+
} else {
|
656 |
+
elem.style.removeProperty(property);
|
657 |
+
}
|
658 |
+
};
|
659 |
+
/**
|
660 |
+
* @param {HTMLElement} elem
|
661 |
+
* @param {string} display
|
662 |
+
*/
|
663 |
+
|
664 |
+
const show = function (elem) {
|
665 |
+
let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
|
666 |
+
elem.style.display = display;
|
667 |
+
};
|
668 |
+
/**
|
669 |
+
* @param {HTMLElement} elem
|
670 |
+
*/
|
671 |
+
|
672 |
+
const hide = elem => {
|
673 |
+
elem.style.display = 'none';
|
674 |
+
};
|
675 |
+
/**
|
676 |
+
* @param {HTMLElement} parent
|
677 |
+
* @param {string} selector
|
678 |
+
* @param {string} property
|
679 |
+
* @param {string} value
|
680 |
+
*/
|
681 |
+
|
682 |
+
const setStyle = (parent, selector, property, value) => {
|
683 |
+
/** @type {HTMLElement} */
|
684 |
+
const el = parent.querySelector(selector);
|
685 |
+
|
686 |
+
if (el) {
|
687 |
+
el.style[property] = value;
|
688 |
+
}
|
689 |
+
};
|
690 |
+
/**
|
691 |
+
* @param {HTMLElement} elem
|
692 |
+
* @param {any} condition
|
693 |
+
* @param {string} display
|
694 |
+
*/
|
695 |
+
|
696 |
+
const toggle = function (elem, condition) {
|
697 |
+
let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';
|
698 |
+
condition ? show(elem, display) : hide(elem);
|
699 |
+
};
|
700 |
+
/**
|
701 |
+
* borrowed from jquery $(elem).is(':visible') implementation
|
702 |
+
*
|
703 |
+
* @param {HTMLElement} elem
|
704 |
+
* @returns {boolean}
|
705 |
+
*/
|
706 |
+
|
707 |
+
const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
|
708 |
+
/**
|
709 |
+
* @returns {boolean}
|
710 |
+
*/
|
711 |
+
|
712 |
+
const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());
|
713 |
+
/**
|
714 |
+
* @returns {boolean}
|
715 |
+
*/
|
716 |
+
|
717 |
+
const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);
|
718 |
+
/**
|
719 |
+
* borrowed from https://stackoverflow.com/a/46352119
|
720 |
+
*
|
721 |
+
* @param {HTMLElement} elem
|
722 |
+
* @returns {boolean}
|
723 |
+
*/
|
724 |
+
|
725 |
+
const hasCssAnimation = elem => {
|
726 |
+
const style = window.getComputedStyle(elem);
|
727 |
+
const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
|
728 |
+
const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
|
729 |
+
return animDuration > 0 || transDuration > 0;
|
730 |
+
};
|
731 |
+
/**
|
732 |
+
* @param {number} timer
|
733 |
+
* @param {boolean} reset
|
734 |
+
*/
|
735 |
+
|
736 |
+
const animateTimerProgressBar = function (timer) {
|
737 |
+
let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
738 |
+
const timerProgressBar = getTimerProgressBar();
|
739 |
+
|
740 |
+
if (isVisible(timerProgressBar)) {
|
741 |
+
if (reset) {
|
742 |
+
timerProgressBar.style.transition = 'none';
|
743 |
+
timerProgressBar.style.width = '100%';
|
744 |
+
}
|
745 |
+
|
746 |
+
setTimeout(() => {
|
747 |
+
timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
|
748 |
+
timerProgressBar.style.width = '0%';
|
749 |
+
}, 10);
|
750 |
+
}
|
751 |
+
};
|
752 |
+
const stopTimerProgressBar = () => {
|
753 |
+
const timerProgressBar = getTimerProgressBar();
|
754 |
+
const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
|
755 |
+
timerProgressBar.style.removeProperty('transition');
|
756 |
+
timerProgressBar.style.width = '100%';
|
757 |
+
const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
|
758 |
+
const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;
|
759 |
+
timerProgressBar.style.removeProperty('transition');
|
760 |
+
timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
|
761 |
+
};
|
762 |
+
|
763 |
+
/**
|
764 |
+
* Detect Node env
|
765 |
+
*
|
766 |
+
* @returns {boolean}
|
767 |
+
*/
|
768 |
+
const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';
|
769 |
+
|
770 |
+
const RESTORE_FOCUS_TIMEOUT = 100;
|
771 |
+
|
772 |
+
/** @type {GlobalState} */
|
773 |
+
|
774 |
+
const globalState = {};
|
775 |
+
|
776 |
+
const focusPreviousActiveElement = () => {
|
777 |
+
if (globalState.previousActiveElement instanceof HTMLElement) {
|
778 |
+
globalState.previousActiveElement.focus();
|
779 |
+
globalState.previousActiveElement = null;
|
780 |
+
} else if (document.body) {
|
781 |
+
document.body.focus();
|
782 |
+
}
|
783 |
+
};
|
784 |
+
/**
|
785 |
+
* Restore previous active (focused) element
|
786 |
+
*
|
787 |
+
* @param {boolean} returnFocus
|
788 |
+
* @returns {Promise}
|
789 |
+
*/
|
790 |
+
|
791 |
+
|
792 |
+
const restoreActiveElement = returnFocus => {
|
793 |
+
return new Promise(resolve => {
|
794 |
+
if (!returnFocus) {
|
795 |
+
return resolve();
|
796 |
+
}
|
797 |
+
|
798 |
+
const x = window.scrollX;
|
799 |
+
const y = window.scrollY;
|
800 |
+
globalState.restoreFocusTimeout = setTimeout(() => {
|
801 |
+
focusPreviousActiveElement();
|
802 |
+
resolve();
|
803 |
+
}, RESTORE_FOCUS_TIMEOUT); // issues/900
|
804 |
+
|
805 |
+
window.scrollTo(x, y);
|
806 |
+
});
|
807 |
+
};
|
808 |
+
|
809 |
+
const sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses['html-container'], "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n <div class=\"").concat(swalClasses.icon, "\"></div>\n <img class=\"").concat(swalClasses.image, "\" />\n <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n <div class=\"").concat(swalClasses['html-container'], "\" id=\"").concat(swalClasses['html-container'], "\"></div>\n <input class=\"").concat(swalClasses.input, "\" />\n <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n <div class=\"").concat(swalClasses.range, "\">\n <input type=\"range\" />\n <output></output>\n </div>\n <select class=\"").concat(swalClasses.select, "\"></select>\n <div class=\"").concat(swalClasses.radio, "\"></div>\n <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n <input type=\"checkbox\" />\n <span class=\"").concat(swalClasses.label, "\"></span>\n </label>\n <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n <div class=\"").concat(swalClasses.actions, "\">\n <div class=\"").concat(swalClasses.loader, "\"></div>\n <button type=\"button\" class=\"").concat(swalClasses.confirm, "\"></button>\n <button type=\"button\" class=\"").concat(swalClasses.deny, "\"></button>\n <button type=\"button\" class=\"").concat(swalClasses.cancel, "\"></button>\n </div>\n <div class=\"").concat(swalClasses.footer, "\"></div>\n <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n </div>\n </div>\n").replace(/(^|\n)\s*/g, '');
|
810 |
+
/**
|
811 |
+
* @returns {boolean}
|
812 |
+
*/
|
813 |
+
|
814 |
+
const resetOldContainer = () => {
|
815 |
+
const oldContainer = getContainer();
|
816 |
+
|
817 |
+
if (!oldContainer) {
|
818 |
+
return false;
|
819 |
+
}
|
820 |
+
|
821 |
+
oldContainer.remove();
|
822 |
+
removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
|
823 |
+
return true;
|
824 |
+
};
|
825 |
+
|
826 |
+
const resetValidationMessage = () => {
|
827 |
+
globalState.currentInstance.resetValidationMessage();
|
828 |
+
};
|
829 |
+
|
830 |
+
const addInputChangeListeners = () => {
|
831 |
+
const popup = getPopup();
|
832 |
+
const input = getDirectChildByClass(popup, swalClasses.input);
|
833 |
+
const file = getDirectChildByClass(popup, swalClasses.file);
|
834 |
+
/** @type {HTMLInputElement} */
|
835 |
+
|
836 |
+
const range = popup.querySelector(".".concat(swalClasses.range, " input"));
|
837 |
+
/** @type {HTMLOutputElement} */
|
838 |
+
|
839 |
+
const rangeOutput = popup.querySelector(".".concat(swalClasses.range, " output"));
|
840 |
+
const select = getDirectChildByClass(popup, swalClasses.select);
|
841 |
+
/** @type {HTMLInputElement} */
|
842 |
+
|
843 |
+
const checkbox = popup.querySelector(".".concat(swalClasses.checkbox, " input"));
|
844 |
+
const textarea = getDirectChildByClass(popup, swalClasses.textarea);
|
845 |
+
input.oninput = resetValidationMessage;
|
846 |
+
file.onchange = resetValidationMessage;
|
847 |
+
select.onchange = resetValidationMessage;
|
848 |
+
checkbox.onchange = resetValidationMessage;
|
849 |
+
textarea.oninput = resetValidationMessage;
|
850 |
+
|
851 |
+
range.oninput = () => {
|
852 |
+
resetValidationMessage();
|
853 |
+
rangeOutput.value = range.value;
|
854 |
+
};
|
855 |
+
|
856 |
+
range.onchange = () => {
|
857 |
+
resetValidationMessage();
|
858 |
+
rangeOutput.value = range.value;
|
859 |
+
};
|
860 |
+
};
|
861 |
+
/**
|
862 |
+
* @param {string | HTMLElement} target
|
863 |
+
* @returns {HTMLElement}
|
864 |
+
*/
|
865 |
+
|
866 |
+
|
867 |
+
const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;
|
868 |
+
/**
|
869 |
+
* @param {SweetAlertOptions} params
|
870 |
+
*/
|
871 |
+
|
872 |
+
|
873 |
+
const setupAccessibility = params => {
|
874 |
+
const popup = getPopup();
|
875 |
+
popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
|
876 |
+
popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');
|
877 |
+
|
878 |
+
if (!params.toast) {
|
879 |
+
popup.setAttribute('aria-modal', 'true');
|
880 |
+
}
|
881 |
+
};
|
882 |
+
/**
|
883 |
+
* @param {HTMLElement} targetElement
|
884 |
+
*/
|
885 |
+
|
886 |
+
|
887 |
+
const setupRTL = targetElement => {
|
888 |
+
if (window.getComputedStyle(targetElement).direction === 'rtl') {
|
889 |
+
addClass(getContainer(), swalClasses.rtl);
|
890 |
+
}
|
891 |
+
};
|
892 |
+
/**
|
893 |
+
* Add modal + backdrop + no-war message for Russians to DOM
|
894 |
+
*
|
895 |
+
* @param {SweetAlertOptions} params
|
896 |
+
*/
|
897 |
+
|
898 |
+
|
899 |
+
const init = params => {
|
900 |
+
// Clean up the old popup container if it exists
|
901 |
+
const oldContainerExisted = resetOldContainer();
|
902 |
+
/* istanbul ignore if */
|
903 |
+
|
904 |
+
if (isNodeEnv()) {
|
905 |
+
error('SweetAlert2 requires document to initialize');
|
906 |
+
return;
|
907 |
+
}
|
908 |
+
|
909 |
+
const container = document.createElement('div');
|
910 |
+
container.className = swalClasses.container;
|
911 |
+
|
912 |
+
if (oldContainerExisted) {
|
913 |
+
addClass(container, swalClasses['no-transition']);
|
914 |
+
}
|
915 |
+
|
916 |
+
setInnerHtml(container, sweetHTML);
|
917 |
+
const targetElement = getTarget(params.target);
|
918 |
+
targetElement.appendChild(container);
|
919 |
+
setupAccessibility(params);
|
920 |
+
setupRTL(targetElement);
|
921 |
+
addInputChangeListeners();
|
922 |
+
};
|
923 |
+
|
924 |
+
/**
|
925 |
+
* @param {HTMLElement | object | string} param
|
926 |
+
* @param {HTMLElement} target
|
927 |
+
*/
|
928 |
+
|
929 |
+
const parseHtmlToContainer = (param, target) => {
|
930 |
+
// DOM element
|
931 |
+
if (param instanceof HTMLElement) {
|
932 |
+
target.appendChild(param);
|
933 |
+
} // Object
|
934 |
+
else if (typeof param === 'object') {
|
935 |
+
handleObject(param, target);
|
936 |
+
} // Plain string
|
937 |
+
else if (param) {
|
938 |
+
setInnerHtml(target, param);
|
939 |
+
}
|
940 |
+
};
|
941 |
+
/**
|
942 |
+
* @param {object} param
|
943 |
+
* @param {HTMLElement} target
|
944 |
+
*/
|
945 |
+
|
946 |
+
const handleObject = (param, target) => {
|
947 |
+
// JQuery element(s)
|
948 |
+
if (param.jquery) {
|
949 |
+
handleJqueryElem(target, param);
|
950 |
+
} // For other objects use their string representation
|
951 |
+
else {
|
952 |
+
setInnerHtml(target, param.toString());
|
953 |
+
}
|
954 |
+
};
|
955 |
+
/**
|
956 |
+
* @param {HTMLElement} target
|
957 |
+
* @param {HTMLElement} elem
|
958 |
+
*/
|
959 |
+
|
960 |
+
|
961 |
+
const handleJqueryElem = (target, elem) => {
|
962 |
+
target.textContent = '';
|
963 |
+
|
964 |
+
if (0 in elem) {
|
965 |
+
for (let i = 0; (i in elem); i++) {
|
966 |
+
target.appendChild(elem[i].cloneNode(true));
|
967 |
+
}
|
968 |
+
} else {
|
969 |
+
target.appendChild(elem.cloneNode(true));
|
970 |
+
}
|
971 |
+
};
|
972 |
+
|
973 |
+
/**
|
974 |
+
* @returns {'webkitAnimationEnd' | 'animationend' | false}
|
975 |
+
*/
|
976 |
+
|
977 |
+
const animationEndEvent = (() => {
|
978 |
+
// Prevent run in Node env
|
979 |
+
|
980 |
+
/* istanbul ignore if */
|
981 |
+
if (isNodeEnv()) {
|
982 |
+
return false;
|
983 |
+
}
|
984 |
+
|
985 |
+
const testEl = document.createElement('div');
|
986 |
+
const transEndEventNames = {
|
987 |
+
WebkitAnimation: 'webkitAnimationEnd',
|
988 |
+
// Chrome, Safari and Opera
|
989 |
+
animation: 'animationend' // Standard syntax
|
990 |
+
|
991 |
+
};
|
992 |
+
|
993 |
+
for (const i in transEndEventNames) {
|
994 |
+
if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
|
995 |
+
return transEndEventNames[i];
|
996 |
+
}
|
997 |
+
}
|
998 |
+
|
999 |
+
return false;
|
1000 |
+
})();
|
1001 |
+
|
1002 |
+
/**
|
1003 |
+
* Measure scrollbar width for padding body during modal show/hide
|
1004 |
+
* https://github.com/twbs/bootstrap/blob/master/js/src/modal.js
|
1005 |
+
*
|
1006 |
+
* @returns {number}
|
1007 |
+
*/
|
1008 |
+
|
1009 |
+
const measureScrollbar = () => {
|
1010 |
+
const scrollDiv = document.createElement('div');
|
1011 |
+
scrollDiv.className = swalClasses['scrollbar-measure'];
|
1012 |
+
document.body.appendChild(scrollDiv);
|
1013 |
+
const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
1014 |
+
document.body.removeChild(scrollDiv);
|
1015 |
+
return scrollbarWidth;
|
1016 |
+
};
|
1017 |
+
|
1018 |
+
/**
|
1019 |
+
* @param {SweetAlert2} instance
|
1020 |
+
* @param {SweetAlertOptions} params
|
1021 |
+
*/
|
1022 |
+
|
1023 |
+
const renderActions = (instance, params) => {
|
1024 |
+
const actions = getActions();
|
1025 |
+
const loader = getLoader(); // Actions (buttons) wrapper
|
1026 |
+
|
1027 |
+
if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
|
1028 |
+
hide(actions);
|
1029 |
+
} else {
|
1030 |
+
show(actions);
|
1031 |
+
} // Custom class
|
1032 |
+
|
1033 |
+
|
1034 |
+
applyCustomClass(actions, params, 'actions'); // Render all the buttons
|
1035 |
+
|
1036 |
+
renderButtons(actions, loader, params); // Loader
|
1037 |
+
|
1038 |
+
setInnerHtml(loader, params.loaderHtml);
|
1039 |
+
applyCustomClass(loader, params, 'loader');
|
1040 |
+
};
|
1041 |
+
/**
|
1042 |
+
* @param {HTMLElement} actions
|
1043 |
+
* @param {HTMLElement} loader
|
1044 |
+
* @param {SweetAlertOptions} params
|
1045 |
+
*/
|
1046 |
+
|
1047 |
+
function renderButtons(actions, loader, params) {
|
1048 |
+
const confirmButton = getConfirmButton();
|
1049 |
+
const denyButton = getDenyButton();
|
1050 |
+
const cancelButton = getCancelButton(); // Render buttons
|
1051 |
+
|
1052 |
+
renderButton(confirmButton, 'confirm', params);
|
1053 |
+
renderButton(denyButton, 'deny', params);
|
1054 |
+
renderButton(cancelButton, 'cancel', params);
|
1055 |
+
handleButtonsStyling(confirmButton, denyButton, cancelButton, params);
|
1056 |
+
|
1057 |
+
if (params.reverseButtons) {
|
1058 |
+
if (params.toast) {
|
1059 |
+
actions.insertBefore(cancelButton, confirmButton);
|
1060 |
+
actions.insertBefore(denyButton, confirmButton);
|
1061 |
+
} else {
|
1062 |
+
actions.insertBefore(cancelButton, loader);
|
1063 |
+
actions.insertBefore(denyButton, loader);
|
1064 |
+
actions.insertBefore(confirmButton, loader);
|
1065 |
+
}
|
1066 |
+
}
|
1067 |
+
}
|
1068 |
+
/**
|
1069 |
+
* @param {HTMLElement} confirmButton
|
1070 |
+
* @param {HTMLElement} denyButton
|
1071 |
+
* @param {HTMLElement} cancelButton
|
1072 |
+
* @param {SweetAlertOptions} params
|
1073 |
+
*/
|
1074 |
+
|
1075 |
+
|
1076 |
+
function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
|
1077 |
+
if (!params.buttonsStyling) {
|
1078 |
+
return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
|
1079 |
+
}
|
1080 |
+
|
1081 |
+
addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors
|
1082 |
+
|
1083 |
+
if (params.confirmButtonColor) {
|
1084 |
+
confirmButton.style.backgroundColor = params.confirmButtonColor;
|
1085 |
+
addClass(confirmButton, swalClasses['default-outline']);
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
if (params.denyButtonColor) {
|
1089 |
+
denyButton.style.backgroundColor = params.denyButtonColor;
|
1090 |
+
addClass(denyButton, swalClasses['default-outline']);
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
if (params.cancelButtonColor) {
|
1094 |
+
cancelButton.style.backgroundColor = params.cancelButtonColor;
|
1095 |
+
addClass(cancelButton, swalClasses['default-outline']);
|
1096 |
+
}
|
1097 |
+
}
|
1098 |
+
/**
|
1099 |
+
* @param {HTMLElement} button
|
1100 |
+
* @param {'confirm' | 'deny' | 'cancel'} buttonType
|
1101 |
+
* @param {SweetAlertOptions} params
|
1102 |
+
*/
|
1103 |
+
|
1104 |
+
|
1105 |
+
function renderButton(button, buttonType, params) {
|
1106 |
+
toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
|
1107 |
+
setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text
|
1108 |
+
|
1109 |
+
button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
|
1110 |
+
// Add buttons custom classes
|
1111 |
+
|
1112 |
+
button.className = swalClasses[buttonType];
|
1113 |
+
applyCustomClass(button, params, "".concat(buttonType, "Button"));
|
1114 |
+
addClass(button, params["".concat(buttonType, "ButtonClass")]);
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
/**
|
1118 |
+
* @param {SweetAlert2} instance
|
1119 |
+
* @param {SweetAlertOptions} params
|
1120 |
+
*/
|
1121 |
+
|
1122 |
+
const renderContainer = (instance, params) => {
|
1123 |
+
const container = getContainer();
|
1124 |
+
|
1125 |
+
if (!container) {
|
1126 |
+
return;
|
1127 |
+
}
|
1128 |
+
|
1129 |
+
handleBackdropParam(container, params.backdrop);
|
1130 |
+
handlePositionParam(container, params.position);
|
1131 |
+
handleGrowParam(container, params.grow); // Custom class
|
1132 |
+
|
1133 |
+
applyCustomClass(container, params, 'container');
|
1134 |
+
};
|
1135 |
+
/**
|
1136 |
+
* @param {HTMLElement} container
|
1137 |
+
* @param {SweetAlertOptions['backdrop']} backdrop
|
1138 |
+
*/
|
1139 |
+
|
1140 |
+
function handleBackdropParam(container, backdrop) {
|
1141 |
+
if (typeof backdrop === 'string') {
|
1142 |
+
container.style.background = backdrop;
|
1143 |
+
} else if (!backdrop) {
|
1144 |
+
addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
|
1145 |
+
}
|
1146 |
+
}
|
1147 |
+
/**
|
1148 |
+
* @param {HTMLElement} container
|
1149 |
+
* @param {SweetAlertOptions['position']} position
|
1150 |
+
*/
|
1151 |
+
|
1152 |
+
|
1153 |
+
function handlePositionParam(container, position) {
|
1154 |
+
if (position in swalClasses) {
|
1155 |
+
addClass(container, swalClasses[position]);
|
1156 |
+
} else {
|
1157 |
+
warn('The "position" parameter is not valid, defaulting to "center"');
|
1158 |
+
addClass(container, swalClasses.center);
|
1159 |
+
}
|
1160 |
+
}
|
1161 |
+
/**
|
1162 |
+
* @param {HTMLElement} container
|
1163 |
+
* @param {SweetAlertOptions['grow']} grow
|
1164 |
+
*/
|
1165 |
+
|
1166 |
+
|
1167 |
+
function handleGrowParam(container, grow) {
|
1168 |
+
if (grow && typeof grow === 'string') {
|
1169 |
+
const growClass = "grow-".concat(grow);
|
1170 |
+
|
1171 |
+
if (growClass in swalClasses) {
|
1172 |
+
addClass(container, swalClasses[growClass]);
|
1173 |
+
}
|
1174 |
+
}
|
1175 |
+
}
|
1176 |
+
|
1177 |
+
/**
|
1178 |
+
* This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
|
1179 |
+
* For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
|
1180 |
+
* This is the approach that Babel will probably take to implement private methods/fields
|
1181 |
+
* https://github.com/tc39/proposal-private-methods
|
1182 |
+
* https://github.com/babel/babel/pull/7555
|
1183 |
+
* Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
|
1184 |
+
* then we can use that language feature.
|
1185 |
+
*/
|
1186 |
+
var privateProps = {
|
1187 |
+
awaitingPromise: new WeakMap(),
|
1188 |
+
promise: new WeakMap(),
|
1189 |
+
innerParams: new WeakMap(),
|
1190 |
+
domCache: new WeakMap()
|
1191 |
+
};
|
1192 |
+
|
1193 |
+
/// <reference path="../../../../sweetalert2.d.ts"/>
|
1194 |
+
/** @type {InputClass[]} */
|
1195 |
+
|
1196 |
+
const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
|
1197 |
+
/**
|
1198 |
+
* @param {SweetAlert2} instance
|
1199 |
+
* @param {SweetAlertOptions} params
|
1200 |
+
*/
|
1201 |
+
|
1202 |
+
const renderInput = (instance, params) => {
|
1203 |
+
const popup = getPopup();
|
1204 |
+
const innerParams = privateProps.innerParams.get(instance);
|
1205 |
+
const rerender = !innerParams || params.input !== innerParams.input;
|
1206 |
+
inputClasses.forEach(inputClass => {
|
1207 |
+
const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes
|
1208 |
+
|
1209 |
+
setAttributes(inputClass, params.inputAttributes); // set class
|
1210 |
+
|
1211 |
+
inputContainer.className = swalClasses[inputClass];
|
1212 |
+
|
1213 |
+
if (rerender) {
|
1214 |
+
hide(inputContainer);
|
1215 |
+
}
|
1216 |
+
});
|
1217 |
+
|
1218 |
+
if (params.input) {
|
1219 |
+
if (rerender) {
|
1220 |
+
showInput(params);
|
1221 |
+
} // set custom class
|
1222 |
+
|
1223 |
+
|
1224 |
+
setCustomClass(params);
|
1225 |
+
}
|
1226 |
+
};
|
1227 |
+
/**
|
1228 |
+
* @param {SweetAlertOptions} params
|
1229 |
+
*/
|
1230 |
+
|
1231 |
+
const showInput = params => {
|
1232 |
+
if (!renderInputType[params.input]) {
|
1233 |
+
return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
|
1234 |
+
}
|
1235 |
+
|
1236 |
+
const inputContainer = getInputContainer(params.input);
|
1237 |
+
const input = renderInputType[params.input](inputContainer, params);
|
1238 |
+
show(inputContainer); // input autofocus
|
1239 |
+
|
1240 |
+
setTimeout(() => {
|
1241 |
+
focusInput(input);
|
1242 |
+
});
|
1243 |
+
};
|
1244 |
+
/**
|
1245 |
+
* @param {HTMLInputElement} input
|
1246 |
+
*/
|
1247 |
+
|
1248 |
+
|
1249 |
+
const removeAttributes = input => {
|
1250 |
+
for (let i = 0; i < input.attributes.length; i++) {
|
1251 |
+
const attrName = input.attributes[i].name;
|
1252 |
+
|
1253 |
+
if (!['type', 'value', 'style'].includes(attrName)) {
|
1254 |
+
input.removeAttribute(attrName);
|
1255 |
+
}
|
1256 |
+
}
|
1257 |
+
};
|
1258 |
+
/**
|
1259 |
+
* @param {InputClass} inputClass
|
1260 |
+
* @param {SweetAlertOptions['inputAttributes']} inputAttributes
|
1261 |
+
*/
|
1262 |
+
|
1263 |
+
|
1264 |
+
const setAttributes = (inputClass, inputAttributes) => {
|
1265 |
+
const input = getInput(getPopup(), inputClass);
|
1266 |
+
|
1267 |
+
if (!input) {
|
1268 |
+
return;
|
1269 |
+
}
|
1270 |
+
|
1271 |
+
removeAttributes(input);
|
1272 |
+
|
1273 |
+
for (const attr in inputAttributes) {
|
1274 |
+
input.setAttribute(attr, inputAttributes[attr]);
|
1275 |
+
}
|
1276 |
+
};
|
1277 |
+
/**
|
1278 |
+
* @param {SweetAlertOptions} params
|
1279 |
+
*/
|
1280 |
+
|
1281 |
+
|
1282 |
+
const setCustomClass = params => {
|
1283 |
+
const inputContainer = getInputContainer(params.input);
|
1284 |
+
|
1285 |
+
if (typeof params.customClass === 'object') {
|
1286 |
+
addClass(inputContainer, params.customClass.input);
|
1287 |
+
}
|
1288 |
+
};
|
1289 |
+
/**
|
1290 |
+
* @param {HTMLInputElement | HTMLTextAreaElement} input
|
1291 |
+
* @param {SweetAlertOptions} params
|
1292 |
+
*/
|
1293 |
+
|
1294 |
+
|
1295 |
+
const setInputPlaceholder = (input, params) => {
|
1296 |
+
if (!input.placeholder || params.inputPlaceholder) {
|
1297 |
+
input.placeholder = params.inputPlaceholder;
|
1298 |
+
}
|
1299 |
+
};
|
1300 |
+
/**
|
1301 |
+
* @param {Input} input
|
1302 |
+
* @param {Input} prependTo
|
1303 |
+
* @param {SweetAlertOptions} params
|
1304 |
+
*/
|
1305 |
+
|
1306 |
+
|
1307 |
+
const setInputLabel = (input, prependTo, params) => {
|
1308 |
+
if (params.inputLabel) {
|
1309 |
+
input.id = swalClasses.input;
|
1310 |
+
const label = document.createElement('label');
|
1311 |
+
const labelClass = swalClasses['input-label'];
|
1312 |
+
label.setAttribute('for', input.id);
|
1313 |
+
label.className = labelClass;
|
1314 |
+
|
1315 |
+
if (typeof params.customClass === 'object') {
|
1316 |
+
addClass(label, params.customClass.inputLabel);
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
label.innerText = params.inputLabel;
|
1320 |
+
prependTo.insertAdjacentElement('beforebegin', label);
|
1321 |
+
}
|
1322 |
+
};
|
1323 |
+
/**
|
1324 |
+
* @param {SweetAlertOptions['input']} inputType
|
1325 |
+
* @returns {HTMLElement}
|
1326 |
+
*/
|
1327 |
+
|
1328 |
+
|
1329 |
+
const getInputContainer = inputType => {
|
1330 |
+
return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);
|
1331 |
+
};
|
1332 |
+
/**
|
1333 |
+
* @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input
|
1334 |
+
* @param {SweetAlertOptions['inputValue']} inputValue
|
1335 |
+
*/
|
1336 |
+
|
1337 |
+
|
1338 |
+
const checkAndSetInputValue = (input, inputValue) => {
|
1339 |
+
if (['string', 'number'].includes(typeof inputValue)) {
|
1340 |
+
input.value = "".concat(inputValue);
|
1341 |
+
} else if (!isPromise(inputValue)) {
|
1342 |
+
warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof inputValue, "\""));
|
1343 |
+
}
|
1344 |
+
};
|
1345 |
+
/** @type Record<string, (input: Input | HTMLElement, params: SweetAlertOptions) => Input> */
|
1346 |
+
|
1347 |
+
|
1348 |
+
const renderInputType = {};
|
1349 |
+
/**
|
1350 |
+
* @param {HTMLInputElement} input
|
1351 |
+
* @param {SweetAlertOptions} params
|
1352 |
+
* @returns {HTMLInputElement}
|
1353 |
+
*/
|
1354 |
+
|
1355 |
+
renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {
|
1356 |
+
checkAndSetInputValue(input, params.inputValue);
|
1357 |
+
setInputLabel(input, input, params);
|
1358 |
+
setInputPlaceholder(input, params);
|
1359 |
+
input.type = params.input;
|
1360 |
+
return input;
|
1361 |
+
};
|
1362 |
+
/**
|
1363 |
+
* @param {HTMLInputElement} input
|
1364 |
+
* @param {SweetAlertOptions} params
|
1365 |
+
* @returns {HTMLInputElement}
|
1366 |
+
*/
|
1367 |
+
|
1368 |
+
|
1369 |
+
renderInputType.file = (input, params) => {
|
1370 |
+
setInputLabel(input, input, params);
|
1371 |
+
setInputPlaceholder(input, params);
|
1372 |
+
return input;
|
1373 |
+
};
|
1374 |
+
/**
|
1375 |
+
* @param {HTMLInputElement} range
|
1376 |
+
* @param {SweetAlertOptions} params
|
1377 |
+
* @returns {HTMLInputElement}
|
1378 |
+
*/
|
1379 |
+
|
1380 |
+
|
1381 |
+
renderInputType.range = (range, params) => {
|
1382 |
+
const rangeInput = range.querySelector('input');
|
1383 |
+
const rangeOutput = range.querySelector('output');
|
1384 |
+
checkAndSetInputValue(rangeInput, params.inputValue);
|
1385 |
+
rangeInput.type = params.input;
|
1386 |
+
checkAndSetInputValue(rangeOutput, params.inputValue);
|
1387 |
+
setInputLabel(rangeInput, range, params);
|
1388 |
+
return range;
|
1389 |
+
};
|
1390 |
+
/**
|
1391 |
+
* @param {HTMLSelectElement} select
|
1392 |
+
* @param {SweetAlertOptions} params
|
1393 |
+
* @returns {HTMLSelectElement}
|
1394 |
+
*/
|
1395 |
+
|
1396 |
+
|
1397 |
+
renderInputType.select = (select, params) => {
|
1398 |
+
select.textContent = '';
|
1399 |
+
|
1400 |
+
if (params.inputPlaceholder) {
|
1401 |
+
const placeholder = document.createElement('option');
|
1402 |
+
setInnerHtml(placeholder, params.inputPlaceholder);
|
1403 |
+
placeholder.value = '';
|
1404 |
+
placeholder.disabled = true;
|
1405 |
+
placeholder.selected = true;
|
1406 |
+
select.appendChild(placeholder);
|
1407 |
+
}
|
1408 |
+
|
1409 |
+
setInputLabel(select, select, params);
|
1410 |
+
return select;
|
1411 |
+
};
|
1412 |
+
/**
|
1413 |
+
* @param {HTMLInputElement} radio
|
1414 |
+
* @returns {HTMLInputElement}
|
1415 |
+
*/
|
1416 |
+
|
1417 |
+
|
1418 |
+
renderInputType.radio = radio => {
|
1419 |
+
radio.textContent = '';
|
1420 |
+
return radio;
|
1421 |
+
};
|
1422 |
+
/**
|
1423 |
+
* @param {HTMLLabelElement} checkboxContainer
|
1424 |
+
* @param {SweetAlertOptions} params
|
1425 |
+
* @returns {HTMLInputElement}
|
1426 |
+
*/
|
1427 |
+
|
1428 |
+
|
1429 |
+
renderInputType.checkbox = (checkboxContainer, params) => {
|
1430 |
+
const checkbox = getInput(getPopup(), 'checkbox');
|
1431 |
+
checkbox.value = '1';
|
1432 |
+
checkbox.id = swalClasses.checkbox;
|
1433 |
+
checkbox.checked = Boolean(params.inputValue);
|
1434 |
+
const label = checkboxContainer.querySelector('span');
|
1435 |
+
setInnerHtml(label, params.inputPlaceholder);
|
1436 |
+
return checkbox;
|
1437 |
+
};
|
1438 |
+
/**
|
1439 |
+
* @param {HTMLTextAreaElement} textarea
|
1440 |
+
* @param {SweetAlertOptions} params
|
1441 |
+
* @returns {HTMLTextAreaElement}
|
1442 |
+
*/
|
1443 |
+
|
1444 |
+
|
1445 |
+
renderInputType.textarea = (textarea, params) => {
|
1446 |
+
checkAndSetInputValue(textarea, params.inputValue);
|
1447 |
+
setInputPlaceholder(textarea, params);
|
1448 |
+
setInputLabel(textarea, textarea, params);
|
1449 |
+
/**
|
1450 |
+
* @param {HTMLElement} el
|
1451 |
+
* @returns {number}
|
1452 |
+
*/
|
1453 |
+
|
1454 |
+
const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291
|
1455 |
+
|
1456 |
+
|
1457 |
+
setTimeout(() => {
|
1458 |
+
// https://github.com/sweetalert2/sweetalert2/issues/1699
|
1459 |
+
if ('MutationObserver' in window) {
|
1460 |
+
const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
|
1461 |
+
|
1462 |
+
const textareaResizeHandler = () => {
|
1463 |
+
const textareaWidth = textarea.offsetWidth + getMargin(textarea);
|
1464 |
+
|
1465 |
+
if (textareaWidth > initialPopupWidth) {
|
1466 |
+
getPopup().style.width = "".concat(textareaWidth, "px");
|
1467 |
+
} else {
|
1468 |
+
getPopup().style.width = null;
|
1469 |
+
}
|
1470 |
+
};
|
1471 |
+
|
1472 |
+
new MutationObserver(textareaResizeHandler).observe(textarea, {
|
1473 |
+
attributes: true,
|
1474 |
+
attributeFilter: ['style']
|
1475 |
+
});
|
1476 |
+
}
|
1477 |
+
});
|
1478 |
+
return textarea;
|
1479 |
+
};
|
1480 |
+
|
1481 |
+
/**
|
1482 |
+
* @param {SweetAlert2} instance
|
1483 |
+
* @param {SweetAlertOptions} params
|
1484 |
+
*/
|
1485 |
+
|
1486 |
+
const renderContent = (instance, params) => {
|
1487 |
+
const htmlContainer = getHtmlContainer();
|
1488 |
+
applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML
|
1489 |
+
|
1490 |
+
if (params.html) {
|
1491 |
+
parseHtmlToContainer(params.html, htmlContainer);
|
1492 |
+
show(htmlContainer, 'block');
|
1493 |
+
} // Content as plain text
|
1494 |
+
else if (params.text) {
|
1495 |
+
htmlContainer.textContent = params.text;
|
1496 |
+
show(htmlContainer, 'block');
|
1497 |
+
} // No content
|
1498 |
+
else {
|
1499 |
+
hide(htmlContainer);
|
1500 |
+
}
|
1501 |
+
|
1502 |
+
renderInput(instance, params);
|
1503 |
+
};
|
1504 |
+
|
1505 |
+
/**
|
1506 |
+
* @param {SweetAlert2} instance
|
1507 |
+
* @param {SweetAlertOptions} params
|
1508 |
+
*/
|
1509 |
+
|
1510 |
+
const renderFooter = (instance, params) => {
|
1511 |
+
const footer = getFooter();
|
1512 |
+
toggle(footer, params.footer);
|
1513 |
+
|
1514 |
+
if (params.footer) {
|
1515 |
+
parseHtmlToContainer(params.footer, footer);
|
1516 |
+
} // Custom class
|
1517 |
+
|
1518 |
+
|
1519 |
+
applyCustomClass(footer, params, 'footer');
|
1520 |
+
};
|
1521 |
+
|
1522 |
+
/**
|
1523 |
+
* @param {SweetAlert2} instance
|
1524 |
+
* @param {SweetAlertOptions} params
|
1525 |
+
*/
|
1526 |
+
|
1527 |
+
const renderCloseButton = (instance, params) => {
|
1528 |
+
const closeButton = getCloseButton();
|
1529 |
+
setInnerHtml(closeButton, params.closeButtonHtml); // Custom class
|
1530 |
+
|
1531 |
+
applyCustomClass(closeButton, params, 'closeButton');
|
1532 |
+
toggle(closeButton, params.showCloseButton);
|
1533 |
+
closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
|
1534 |
+
};
|
1535 |
+
|
1536 |
+
/**
|
1537 |
+
* @param {SweetAlert2} instance
|
1538 |
+
* @param {SweetAlertOptions} params
|
1539 |
+
*/
|
1540 |
+
|
1541 |
+
const renderIcon = (instance, params) => {
|
1542 |
+
const innerParams = privateProps.innerParams.get(instance);
|
1543 |
+
const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon
|
1544 |
+
|
1545 |
+
if (innerParams && params.icon === innerParams.icon) {
|
1546 |
+
// Custom or default content
|
1547 |
+
setContent(icon, params);
|
1548 |
+
applyStyles(icon, params);
|
1549 |
+
return;
|
1550 |
+
}
|
1551 |
+
|
1552 |
+
if (!params.icon && !params.iconHtml) {
|
1553 |
+
hide(icon);
|
1554 |
+
return;
|
1555 |
+
}
|
1556 |
+
|
1557 |
+
if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {
|
1558 |
+
error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
|
1559 |
+
hide(icon);
|
1560 |
+
return;
|
1561 |
+
}
|
1562 |
+
|
1563 |
+
show(icon); // Custom or default content
|
1564 |
+
|
1565 |
+
setContent(icon, params);
|
1566 |
+
applyStyles(icon, params); // Animate icon
|
1567 |
+
|
1568 |
+
addClass(icon, params.showClass.icon);
|
1569 |
+
};
|
1570 |
+
/**
|
1571 |
+
* @param {HTMLElement} icon
|
1572 |
+
* @param {SweetAlertOptions} params
|
1573 |
+
*/
|
1574 |
+
|
1575 |
+
const applyStyles = (icon, params) => {
|
1576 |
+
for (const iconType in iconTypes) {
|
1577 |
+
if (params.icon !== iconType) {
|
1578 |
+
removeClass(icon, iconTypes[iconType]);
|
1579 |
+
}
|
1580 |
+
}
|
1581 |
+
|
1582 |
+
addClass(icon, iconTypes[params.icon]); // Icon color
|
1583 |
+
|
1584 |
+
setColor(icon, params); // Success icon background color
|
1585 |
+
|
1586 |
+
adjustSuccessIconBackgroundColor(); // Custom class
|
1587 |
+
|
1588 |
+
applyCustomClass(icon, params, 'icon');
|
1589 |
+
}; // Adjust success icon background color to match the popup background color
|
1590 |
+
|
1591 |
+
|
1592 |
+
const adjustSuccessIconBackgroundColor = () => {
|
1593 |
+
const popup = getPopup();
|
1594 |
+
const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
|
1595 |
+
/** @type {NodeListOf<HTMLElement>} */
|
1596 |
+
|
1597 |
+
const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
|
1598 |
+
|
1599 |
+
for (let i = 0; i < successIconParts.length; i++) {
|
1600 |
+
successIconParts[i].style.backgroundColor = popupBackgroundColor;
|
1601 |
+
}
|
1602 |
+
};
|
1603 |
+
|
1604 |
+
const successIconHtml = "\n <div class=\"swal2-success-circular-line-left\"></div>\n <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n <div class=\"swal2-success-circular-line-right\"></div>\n";
|
1605 |
+
const errorIconHtml = "\n <span class=\"swal2-x-mark\">\n <span class=\"swal2-x-mark-line-left\"></span>\n <span class=\"swal2-x-mark-line-right\"></span>\n </span>\n";
|
1606 |
+
/**
|
1607 |
+
* @param {HTMLElement} icon
|
1608 |
+
* @param {SweetAlertOptions} params
|
1609 |
+
*/
|
1610 |
+
|
1611 |
+
const setContent = (icon, params) => {
|
1612 |
+
let oldContent = icon.innerHTML;
|
1613 |
+
let newContent;
|
1614 |
+
|
1615 |
+
if (params.iconHtml) {
|
1616 |
+
newContent = iconContent(params.iconHtml);
|
1617 |
+
} else if (params.icon === 'success') {
|
1618 |
+
newContent = successIconHtml;
|
1619 |
+
oldContent = oldContent.replace(/ style=".*?"/g, ''); // undo adjustSuccessIconBackgroundColor()
|
1620 |
+
} else if (params.icon === 'error') {
|
1621 |
+
newContent = errorIconHtml;
|
1622 |
+
} else {
|
1623 |
+
const defaultIconHtml = {
|
1624 |
+
question: '?',
|
1625 |
+
warning: '!',
|
1626 |
+
info: 'i'
|
1627 |
+
};
|
1628 |
+
newContent = iconContent(defaultIconHtml[params.icon]);
|
1629 |
+
}
|
1630 |
+
|
1631 |
+
if (oldContent.trim() !== newContent.trim()) {
|
1632 |
+
setInnerHtml(icon, newContent);
|
1633 |
+
}
|
1634 |
+
};
|
1635 |
+
/**
|
1636 |
+
* @param {HTMLElement} icon
|
1637 |
+
* @param {SweetAlertOptions} params
|
1638 |
+
*/
|
1639 |
+
|
1640 |
+
|
1641 |
+
const setColor = (icon, params) => {
|
1642 |
+
if (!params.iconColor) {
|
1643 |
+
return;
|
1644 |
+
}
|
1645 |
+
|
1646 |
+
icon.style.color = params.iconColor;
|
1647 |
+
icon.style.borderColor = params.iconColor;
|
1648 |
+
|
1649 |
+
for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {
|
1650 |
+
setStyle(icon, sel, 'backgroundColor', params.iconColor);
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);
|
1654 |
+
};
|
1655 |
+
/**
|
1656 |
+
* @param {string} content
|
1657 |
+
* @returns {string}
|
1658 |
+
*/
|
1659 |
+
|
1660 |
+
|
1661 |
+
const iconContent = content => "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
|
1662 |
+
|
1663 |
+
/**
|
1664 |
+
* @param {SweetAlert2} instance
|
1665 |
+
* @param {SweetAlertOptions} params
|
1666 |
+
*/
|
1667 |
+
|
1668 |
+
const renderImage = (instance, params) => {
|
1669 |
+
const image = getImage();
|
1670 |
+
|
1671 |
+
if (!params.imageUrl) {
|
1672 |
+
return hide(image);
|
1673 |
+
}
|
1674 |
+
|
1675 |
+
show(image, ''); // Src, alt
|
1676 |
+
|
1677 |
+
image.setAttribute('src', params.imageUrl);
|
1678 |
+
image.setAttribute('alt', params.imageAlt); // Width, height
|
1679 |
+
|
1680 |
+
applyNumericalStyle(image, 'width', params.imageWidth);
|
1681 |
+
applyNumericalStyle(image, 'height', params.imageHeight); // Class
|
1682 |
+
|
1683 |
+
image.className = swalClasses.image;
|
1684 |
+
applyCustomClass(image, params, 'image');
|
1685 |
+
};
|
1686 |
+
|
1687 |
+
/**
|
1688 |
+
* @param {SweetAlert2} instance
|
1689 |
+
* @param {SweetAlertOptions} params
|
1690 |
+
*/
|
1691 |
+
|
1692 |
+
const renderProgressSteps = (instance, params) => {
|
1693 |
+
const progressStepsContainer = getProgressSteps();
|
1694 |
+
|
1695 |
+
if (!params.progressSteps || params.progressSteps.length === 0) {
|
1696 |
+
return hide(progressStepsContainer);
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
show(progressStepsContainer);
|
1700 |
+
progressStepsContainer.textContent = '';
|
1701 |
+
|
1702 |
+
if (params.currentProgressStep >= params.progressSteps.length) {
|
1703 |
+
warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
|
1704 |
+
}
|
1705 |
+
|
1706 |
+
params.progressSteps.forEach((step, index) => {
|
1707 |
+
const stepEl = createStepElement(step);
|
1708 |
+
progressStepsContainer.appendChild(stepEl);
|
1709 |
+
|
1710 |
+
if (index === params.currentProgressStep) {
|
1711 |
+
addClass(stepEl, swalClasses['active-progress-step']);
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
if (index !== params.progressSteps.length - 1) {
|
1715 |
+
const lineEl = createLineElement(params);
|
1716 |
+
progressStepsContainer.appendChild(lineEl);
|
1717 |
+
}
|
1718 |
+
});
|
1719 |
+
};
|
1720 |
+
/**
|
1721 |
+
* @param {string} step
|
1722 |
+
* @returns {HTMLLIElement}
|
1723 |
+
*/
|
1724 |
+
|
1725 |
+
const createStepElement = step => {
|
1726 |
+
const stepEl = document.createElement('li');
|
1727 |
+
addClass(stepEl, swalClasses['progress-step']);
|
1728 |
+
setInnerHtml(stepEl, step);
|
1729 |
+
return stepEl;
|
1730 |
+
};
|
1731 |
+
/**
|
1732 |
+
* @param {SweetAlertOptions} params
|
1733 |
+
* @returns {HTMLLIElement}
|
1734 |
+
*/
|
1735 |
+
|
1736 |
+
|
1737 |
+
const createLineElement = params => {
|
1738 |
+
const lineEl = document.createElement('li');
|
1739 |
+
addClass(lineEl, swalClasses['progress-step-line']);
|
1740 |
+
|
1741 |
+
if (params.progressStepsDistance) {
|
1742 |
+
applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);
|
1743 |
+
}
|
1744 |
+
|
1745 |
+
return lineEl;
|
1746 |
+
};
|
1747 |
+
|
1748 |
+
/**
|
1749 |
+
* @param {SweetAlert2} instance
|
1750 |
+
* @param {SweetAlertOptions} params
|
1751 |
+
*/
|
1752 |
+
|
1753 |
+
const renderTitle = (instance, params) => {
|
1754 |
+
const title = getTitle();
|
1755 |
+
toggle(title, params.title || params.titleText, 'block');
|
1756 |
+
|
1757 |
+
if (params.title) {
|
1758 |
+
parseHtmlToContainer(params.title, title);
|
1759 |
+
}
|
1760 |
+
|
1761 |
+
if (params.titleText) {
|
1762 |
+
title.innerText = params.titleText;
|
1763 |
+
} // Custom class
|
1764 |
+
|
1765 |
+
|
1766 |
+
applyCustomClass(title, params, 'title');
|
1767 |
+
};
|
1768 |
+
|
1769 |
+
/**
|
1770 |
+
* @param {SweetAlert2} instance
|
1771 |
+
* @param {SweetAlertOptions} params
|
1772 |
+
*/
|
1773 |
+
|
1774 |
+
const renderPopup = (instance, params) => {
|
1775 |
+
const container = getContainer();
|
1776 |
+
const popup = getPopup(); // Width
|
1777 |
+
// https://github.com/sweetalert2/sweetalert2/issues/2170
|
1778 |
+
|
1779 |
+
if (params.toast) {
|
1780 |
+
applyNumericalStyle(container, 'width', params.width);
|
1781 |
+
popup.style.width = '100%';
|
1782 |
+
popup.insertBefore(getLoader(), getIcon());
|
1783 |
+
} else {
|
1784 |
+
applyNumericalStyle(popup, 'width', params.width);
|
1785 |
+
} // Padding
|
1786 |
+
|
1787 |
+
|
1788 |
+
applyNumericalStyle(popup, 'padding', params.padding); // Color
|
1789 |
+
|
1790 |
+
if (params.color) {
|
1791 |
+
popup.style.color = params.color;
|
1792 |
+
} // Background
|
1793 |
+
|
1794 |
+
|
1795 |
+
if (params.background) {
|
1796 |
+
popup.style.background = params.background;
|
1797 |
+
}
|
1798 |
+
|
1799 |
+
hide(getValidationMessage()); // Classes
|
1800 |
+
|
1801 |
+
addClasses(popup, params);
|
1802 |
+
};
|
1803 |
+
/**
|
1804 |
+
* @param {HTMLElement} popup
|
1805 |
+
* @param {SweetAlertOptions} params
|
1806 |
+
*/
|
1807 |
+
|
1808 |
+
const addClasses = (popup, params) => {
|
1809 |
+
// Default Class + showClass when updating Swal.update({})
|
1810 |
+
popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');
|
1811 |
+
|
1812 |
+
if (params.toast) {
|
1813 |
+
addClass([document.documentElement, document.body], swalClasses['toast-shown']);
|
1814 |
+
addClass(popup, swalClasses.toast);
|
1815 |
+
} else {
|
1816 |
+
addClass(popup, swalClasses.modal);
|
1817 |
+
} // Custom class
|
1818 |
+
|
1819 |
+
|
1820 |
+
applyCustomClass(popup, params, 'popup');
|
1821 |
+
|
1822 |
+
if (typeof params.customClass === 'string') {
|
1823 |
+
addClass(popup, params.customClass);
|
1824 |
+
} // Icon class (#1842)
|
1825 |
+
|
1826 |
+
|
1827 |
+
if (params.icon) {
|
1828 |
+
addClass(popup, swalClasses["icon-".concat(params.icon)]);
|
1829 |
+
}
|
1830 |
+
};
|
1831 |
+
|
1832 |
+
/**
|
1833 |
+
* @param {SweetAlert2} instance
|
1834 |
+
* @param {SweetAlertOptions} params
|
1835 |
+
*/
|
1836 |
+
|
1837 |
+
const render = (instance, params) => {
|
1838 |
+
renderPopup(instance, params);
|
1839 |
+
renderContainer(instance, params);
|
1840 |
+
renderProgressSteps(instance, params);
|
1841 |
+
renderIcon(instance, params);
|
1842 |
+
renderImage(instance, params);
|
1843 |
+
renderTitle(instance, params);
|
1844 |
+
renderCloseButton(instance, params);
|
1845 |
+
renderContent(instance, params);
|
1846 |
+
renderActions(instance, params);
|
1847 |
+
renderFooter(instance, params);
|
1848 |
+
|
1849 |
+
if (typeof params.didRender === 'function') {
|
1850 |
+
params.didRender(getPopup());
|
1851 |
+
}
|
1852 |
+
};
|
1853 |
+
|
1854 |
+
const DismissReason = Object.freeze({
|
1855 |
+
cancel: 'cancel',
|
1856 |
+
backdrop: 'backdrop',
|
1857 |
+
close: 'close',
|
1858 |
+
esc: 'esc',
|
1859 |
+
timer: 'timer'
|
1860 |
+
});
|
1861 |
+
|
1862 |
+
// Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
|
1863 |
+
// elements not within the active modal dialog will not be surfaced if a user opens a screen
|
1864 |
+
// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.
|
1865 |
+
|
1866 |
+
const setAriaHidden = () => {
|
1867 |
+
const bodyChildren = Array.from(document.body.children);
|
1868 |
+
bodyChildren.forEach(el => {
|
1869 |
+
if (el === getContainer() || el.contains(getContainer())) {
|
1870 |
+
return;
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
if (el.hasAttribute('aria-hidden')) {
|
1874 |
+
el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
|
1875 |
+
}
|
1876 |
+
|
1877 |
+
el.setAttribute('aria-hidden', 'true');
|
1878 |
+
});
|
1879 |
+
};
|
1880 |
+
const unsetAriaHidden = () => {
|
1881 |
+
const bodyChildren = Array.from(document.body.children);
|
1882 |
+
bodyChildren.forEach(el => {
|
1883 |
+
if (el.hasAttribute('data-previous-aria-hidden')) {
|
1884 |
+
el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
|
1885 |
+
el.removeAttribute('data-previous-aria-hidden');
|
1886 |
+
} else {
|
1887 |
+
el.removeAttribute('aria-hidden');
|
1888 |
+
}
|
1889 |
+
});
|
1890 |
+
};
|
1891 |
+
|
1892 |
+
const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];
|
1893 |
+
const getTemplateParams = params => {
|
1894 |
+
const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;
|
1895 |
+
|
1896 |
+
if (!template) {
|
1897 |
+
return {};
|
1898 |
+
}
|
1899 |
+
/** @type {DocumentFragment} */
|
1900 |
+
|
1901 |
+
|
1902 |
+
const templateContent = template.content;
|
1903 |
+
showWarningsForElements(templateContent);
|
1904 |
+
const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));
|
1905 |
+
return result;
|
1906 |
+
};
|
1907 |
+
/**
|
1908 |
+
* @param {DocumentFragment} templateContent
|
1909 |
+
*/
|
1910 |
+
|
1911 |
+
const getSwalParams = templateContent => {
|
1912 |
+
const result = {};
|
1913 |
+
/** @type {HTMLElement[]} */
|
1914 |
+
|
1915 |
+
const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));
|
1916 |
+
swalParams.forEach(param => {
|
1917 |
+
showWarningsForAttributes(param, ['name', 'value']);
|
1918 |
+
const paramName = param.getAttribute('name');
|
1919 |
+
const value = param.getAttribute('value');
|
1920 |
+
|
1921 |
+
if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {
|
1922 |
+
result[paramName] = false;
|
1923 |
+
}
|
1924 |
+
|
1925 |
+
if (typeof defaultParams[paramName] === 'object') {
|
1926 |
+
result[paramName] = JSON.parse(value);
|
1927 |
+
}
|
1928 |
+
});
|
1929 |
+
return result;
|
1930 |
+
};
|
1931 |
+
/**
|
1932 |
+
* @param {DocumentFragment} templateContent
|
1933 |
+
*/
|
1934 |
+
|
1935 |
+
|
1936 |
+
const getSwalButtons = templateContent => {
|
1937 |
+
const result = {};
|
1938 |
+
/** @type {HTMLElement[]} */
|
1939 |
+
|
1940 |
+
const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));
|
1941 |
+
swalButtons.forEach(button => {
|
1942 |
+
showWarningsForAttributes(button, ['type', 'color', 'aria-label']);
|
1943 |
+
const type = button.getAttribute('type');
|
1944 |
+
result["".concat(type, "ButtonText")] = button.innerHTML;
|
1945 |
+
result["show".concat(capitalizeFirstLetter(type), "Button")] = true;
|
1946 |
+
|
1947 |
+
if (button.hasAttribute('color')) {
|
1948 |
+
result["".concat(type, "ButtonColor")] = button.getAttribute('color');
|
1949 |
+
}
|
1950 |
+
|
1951 |
+
if (button.hasAttribute('aria-label')) {
|
1952 |
+
result["".concat(type, "ButtonAriaLabel")] = button.getAttribute('aria-label');
|
1953 |
+
}
|
1954 |
+
});
|
1955 |
+
return result;
|
1956 |
+
};
|
1957 |
+
/**
|
1958 |
+
* @param {DocumentFragment} templateContent
|
1959 |
+
*/
|
1960 |
+
|
1961 |
+
|
1962 |
+
const getSwalImage = templateContent => {
|
1963 |
+
const result = {};
|
1964 |
+
/** @type {HTMLElement} */
|
1965 |
+
|
1966 |
+
const image = templateContent.querySelector('swal-image');
|
1967 |
+
|
1968 |
+
if (image) {
|
1969 |
+
showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);
|
1970 |
+
|
1971 |
+
if (image.hasAttribute('src')) {
|
1972 |
+
result.imageUrl = image.getAttribute('src');
|
1973 |
+
}
|
1974 |
+
|
1975 |
+
if (image.hasAttribute('width')) {
|
1976 |
+
result.imageWidth = image.getAttribute('width');
|
1977 |
+
}
|
1978 |
+
|
1979 |
+
if (image.hasAttribute('height')) {
|
1980 |
+
result.imageHeight = image.getAttribute('height');
|
1981 |
+
}
|
1982 |
+
|
1983 |
+
if (image.hasAttribute('alt')) {
|
1984 |
+
result.imageAlt = image.getAttribute('alt');
|
1985 |
+
}
|
1986 |
+
}
|
1987 |
+
|
1988 |
+
return result;
|
1989 |
+
};
|
1990 |
+
/**
|
1991 |
+
* @param {DocumentFragment} templateContent
|
1992 |
+
*/
|
1993 |
+
|
1994 |
+
|
1995 |
+
const getSwalIcon = templateContent => {
|
1996 |
+
const result = {};
|
1997 |
+
/** @type {HTMLElement} */
|
1998 |
+
|
1999 |
+
const icon = templateContent.querySelector('swal-icon');
|
2000 |
+
|
2001 |
+
if (icon) {
|
2002 |
+
showWarningsForAttributes(icon, ['type', 'color']);
|
2003 |
+
|
2004 |
+
if (icon.hasAttribute('type')) {
|
2005 |
+
result.icon = icon.getAttribute('type');
|
2006 |
+
}
|
2007 |
+
|
2008 |
+
if (icon.hasAttribute('color')) {
|
2009 |
+
result.iconColor = icon.getAttribute('color');
|
2010 |
+
}
|
2011 |
+
|
2012 |
+
result.iconHtml = icon.innerHTML;
|
2013 |
+
}
|
2014 |
+
|
2015 |
+
return result;
|
2016 |
+
};
|
2017 |
+
/**
|
2018 |
+
* @param {DocumentFragment} templateContent
|
2019 |
+
*/
|
2020 |
+
|
2021 |
+
|
2022 |
+
const getSwalInput = templateContent => {
|
2023 |
+
const result = {};
|
2024 |
+
/** @type {HTMLElement} */
|
2025 |
+
|
2026 |
+
const input = templateContent.querySelector('swal-input');
|
2027 |
+
|
2028 |
+
if (input) {
|
2029 |
+
showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);
|
2030 |
+
result.input = input.getAttribute('type') || 'text';
|
2031 |
+
|
2032 |
+
if (input.hasAttribute('label')) {
|
2033 |
+
result.inputLabel = input.getAttribute('label');
|
2034 |
+
}
|
2035 |
+
|
2036 |
+
if (input.hasAttribute('placeholder')) {
|
2037 |
+
result.inputPlaceholder = input.getAttribute('placeholder');
|
2038 |
+
}
|
2039 |
+
|
2040 |
+
if (input.hasAttribute('value')) {
|
2041 |
+
result.inputValue = input.getAttribute('value');
|
2042 |
+
}
|
2043 |
+
}
|
2044 |
+
/** @type {HTMLElement[]} */
|
2045 |
+
|
2046 |
+
|
2047 |
+
const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));
|
2048 |
+
|
2049 |
+
if (inputOptions.length) {
|
2050 |
+
result.inputOptions = {};
|
2051 |
+
inputOptions.forEach(option => {
|
2052 |
+
showWarningsForAttributes(option, ['value']);
|
2053 |
+
const optionValue = option.getAttribute('value');
|
2054 |
+
const optionName = option.innerHTML;
|
2055 |
+
result.inputOptions[optionValue] = optionName;
|
2056 |
+
});
|
2057 |
+
}
|
2058 |
+
|
2059 |
+
return result;
|
2060 |
+
};
|
2061 |
+
/**
|
2062 |
+
* @param {DocumentFragment} templateContent
|
2063 |
+
* @param {string[]} paramNames
|
2064 |
+
*/
|
2065 |
+
|
2066 |
+
|
2067 |
+
const getSwalStringParams = (templateContent, paramNames) => {
|
2068 |
+
const result = {};
|
2069 |
+
|
2070 |
+
for (const i in paramNames) {
|
2071 |
+
const paramName = paramNames[i];
|
2072 |
+
/** @type {HTMLElement} */
|
2073 |
+
|
2074 |
+
const tag = templateContent.querySelector(paramName);
|
2075 |
+
|
2076 |
+
if (tag) {
|
2077 |
+
showWarningsForAttributes(tag, []);
|
2078 |
+
result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();
|
2079 |
+
}
|
2080 |
+
}
|
2081 |
+
|
2082 |
+
return result;
|
2083 |
+
};
|
2084 |
+
/**
|
2085 |
+
* @param {DocumentFragment} templateContent
|
2086 |
+
*/
|
2087 |
+
|
2088 |
+
|
2089 |
+
const showWarningsForElements = templateContent => {
|
2090 |
+
const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);
|
2091 |
+
Array.from(templateContent.children).forEach(el => {
|
2092 |
+
const tagName = el.tagName.toLowerCase();
|
2093 |
+
|
2094 |
+
if (allowedElements.indexOf(tagName) === -1) {
|
2095 |
+
warn("Unrecognized element <".concat(tagName, ">"));
|
2096 |
+
}
|
2097 |
+
});
|
2098 |
+
};
|
2099 |
+
/**
|
2100 |
+
* @param {HTMLElement} el
|
2101 |
+
* @param {string[]} allowedAttributes
|
2102 |
+
*/
|
2103 |
+
|
2104 |
+
|
2105 |
+
const showWarningsForAttributes = (el, allowedAttributes) => {
|
2106 |
+
Array.from(el.attributes).forEach(attribute => {
|
2107 |
+
if (allowedAttributes.indexOf(attribute.name) === -1) {
|
2108 |
+
warn(["Unrecognized attribute \"".concat(attribute.name, "\" on <").concat(el.tagName.toLowerCase(), ">."), "".concat(allowedAttributes.length ? "Allowed attributes are: ".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);
|
2109 |
+
}
|
2110 |
+
});
|
2111 |
+
};
|
2112 |
+
|
2113 |
+
var defaultInputValidators = {
|
2114 |
+
/**
|
2115 |
+
* @param {string} string
|
2116 |
+
* @param {string} validationMessage
|
2117 |
+
* @returns {Promise<void | string>}
|
2118 |
+
*/
|
2119 |
+
email: (string, validationMessage) => {
|
2120 |
+
return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
|
2121 |
+
},
|
2122 |
+
|
2123 |
+
/**
|
2124 |
+
* @param {string} string
|
2125 |
+
* @param {string} validationMessage
|
2126 |
+
* @returns {Promise<void | string>}
|
2127 |
+
*/
|
2128 |
+
url: (string, validationMessage) => {
|
2129 |
+
// taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
|
2130 |
+
return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
|
2131 |
+
}
|
2132 |
+
};
|
2133 |
+
|
2134 |
+
/**
|
2135 |
+
* @param {SweetAlertOptions} params
|
2136 |
+
*/
|
2137 |
+
|
2138 |
+
function setDefaultInputValidators(params) {
|
2139 |
+
// Use default `inputValidator` for supported input types if not provided
|
2140 |
+
if (!params.inputValidator) {
|
2141 |
+
Object.keys(defaultInputValidators).forEach(key => {
|
2142 |
+
if (params.input === key) {
|
2143 |
+
params.inputValidator = defaultInputValidators[key];
|
2144 |
+
}
|
2145 |
+
});
|
2146 |
+
}
|
2147 |
+
}
|
2148 |
+
/**
|
2149 |
+
* @param {SweetAlertOptions} params
|
2150 |
+
*/
|
2151 |
+
|
2152 |
+
|
2153 |
+
function validateCustomTargetElement(params) {
|
2154 |
+
// Determine if the custom target element is valid
|
2155 |
+
if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
|
2156 |
+
warn('Target parameter is not valid, defaulting to "body"');
|
2157 |
+
params.target = 'body';
|
2158 |
+
}
|
2159 |
+
}
|
2160 |
+
/**
|
2161 |
+
* Set type, text and actions on popup
|
2162 |
+
*
|
2163 |
+
* @param {SweetAlertOptions} params
|
2164 |
+
*/
|
2165 |
+
|
2166 |
+
|
2167 |
+
function setParameters(params) {
|
2168 |
+
setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm
|
2169 |
+
|
2170 |
+
if (params.showLoaderOnConfirm && !params.preConfirm) {
|
2171 |
+
warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
|
2172 |
+
}
|
2173 |
+
|
2174 |
+
validateCustomTargetElement(params); // Replace newlines with <br> in title
|
2175 |
+
|
2176 |
+
if (typeof params.title === 'string') {
|
2177 |
+
params.title = params.title.split('\n').join('<br />');
|
2178 |
+
}
|
2179 |
+
|
2180 |
+
init(params);
|
2181 |
+
}
|
2182 |
+
|
2183 |
+
class Timer {
|
2184 |
+
/**
|
2185 |
+
* @param {Function} callback
|
2186 |
+
* @param {number} delay
|
2187 |
+
*/
|
2188 |
+
constructor(callback, delay) {
|
2189 |
+
this.callback = callback;
|
2190 |
+
this.remaining = delay;
|
2191 |
+
this.running = false;
|
2192 |
+
this.start();
|
2193 |
+
}
|
2194 |
+
|
2195 |
+
start() {
|
2196 |
+
if (!this.running) {
|
2197 |
+
this.running = true;
|
2198 |
+
this.started = new Date();
|
2199 |
+
this.id = setTimeout(this.callback, this.remaining);
|
2200 |
+
}
|
2201 |
+
|
2202 |
+
return this.remaining;
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
stop() {
|
2206 |
+
if (this.running) {
|
2207 |
+
this.running = false;
|
2208 |
+
clearTimeout(this.id);
|
2209 |
+
this.remaining -= new Date().getTime() - this.started.getTime();
|
2210 |
+
}
|
2211 |
+
|
2212 |
+
return this.remaining;
|
2213 |
+
}
|
2214 |
+
|
2215 |
+
increase(n) {
|
2216 |
+
const running = this.running;
|
2217 |
+
|
2218 |
+
if (running) {
|
2219 |
+
this.stop();
|
2220 |
+
}
|
2221 |
+
|
2222 |
+
this.remaining += n;
|
2223 |
+
|
2224 |
+
if (running) {
|
2225 |
+
this.start();
|
2226 |
+
}
|
2227 |
+
|
2228 |
+
return this.remaining;
|
2229 |
+
}
|
2230 |
+
|
2231 |
+
getTimerLeft() {
|
2232 |
+
if (this.running) {
|
2233 |
+
this.stop();
|
2234 |
+
this.start();
|
2235 |
+
}
|
2236 |
+
|
2237 |
+
return this.remaining;
|
2238 |
+
}
|
2239 |
+
|
2240 |
+
isRunning() {
|
2241 |
+
return this.running;
|
2242 |
+
}
|
2243 |
+
|
2244 |
+
}
|
2245 |
+
|
2246 |
+
const fixScrollbar = () => {
|
2247 |
+
// for queues, do not do this more than once
|
2248 |
+
if (states.previousBodyPadding !== null) {
|
2249 |
+
return;
|
2250 |
+
} // if the body has overflow
|
2251 |
+
|
2252 |
+
|
2253 |
+
if (document.body.scrollHeight > window.innerHeight) {
|
2254 |
+
// add padding so the content doesn't shift after removal of scrollbar
|
2255 |
+
states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
|
2256 |
+
document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
|
2257 |
+
}
|
2258 |
+
};
|
2259 |
+
const undoScrollbar = () => {
|
2260 |
+
if (states.previousBodyPadding !== null) {
|
2261 |
+
document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
|
2262 |
+
states.previousBodyPadding = null;
|
2263 |
+
}
|
2264 |
+
};
|
2265 |
+
|
2266 |
+
/* istanbul ignore file */
|
2267 |
+
|
2268 |
+
const iOSfix = () => {
|
2269 |
+
const iOS = // @ts-ignore
|
2270 |
+
/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
|
2271 |
+
|
2272 |
+
if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
|
2273 |
+
const offset = document.body.scrollTop;
|
2274 |
+
document.body.style.top = "".concat(offset * -1, "px");
|
2275 |
+
addClass(document.body, swalClasses.iosfix);
|
2276 |
+
lockBodyScroll();
|
2277 |
+
addBottomPaddingForTallPopups();
|
2278 |
+
}
|
2279 |
+
};
|
2280 |
+
/**
|
2281 |
+
* https://github.com/sweetalert2/sweetalert2/issues/1948
|
2282 |
+
*/
|
2283 |
+
|
2284 |
+
const addBottomPaddingForTallPopups = () => {
|
2285 |
+
const ua = navigator.userAgent;
|
2286 |
+
const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);
|
2287 |
+
const webkit = !!ua.match(/WebKit/i);
|
2288 |
+
const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);
|
2289 |
+
|
2290 |
+
if (iOSSafari) {
|
2291 |
+
const bottomPanelHeight = 44;
|
2292 |
+
|
2293 |
+
if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
|
2294 |
+
getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
|
2295 |
+
}
|
2296 |
+
}
|
2297 |
+
};
|
2298 |
+
/**
|
2299 |
+
* https://github.com/sweetalert2/sweetalert2/issues/1246
|
2300 |
+
*/
|
2301 |
+
|
2302 |
+
|
2303 |
+
const lockBodyScroll = () => {
|
2304 |
+
const container = getContainer();
|
2305 |
+
let preventTouchMove;
|
2306 |
+
/**
|
2307 |
+
* @param {TouchEvent} e
|
2308 |
+
*/
|
2309 |
+
|
2310 |
+
container.ontouchstart = e => {
|
2311 |
+
preventTouchMove = shouldPreventTouchMove(e);
|
2312 |
+
};
|
2313 |
+
/**
|
2314 |
+
* @param {TouchEvent} e
|
2315 |
+
*/
|
2316 |
+
|
2317 |
+
|
2318 |
+
container.ontouchmove = e => {
|
2319 |
+
if (preventTouchMove) {
|
2320 |
+
e.preventDefault();
|
2321 |
+
e.stopPropagation();
|
2322 |
+
}
|
2323 |
+
};
|
2324 |
+
};
|
2325 |
+
/**
|
2326 |
+
* @param {TouchEvent} event
|
2327 |
+
* @returns {boolean}
|
2328 |
+
*/
|
2329 |
+
|
2330 |
+
|
2331 |
+
const shouldPreventTouchMove = event => {
|
2332 |
+
const target = event.target;
|
2333 |
+
const container = getContainer();
|
2334 |
+
|
2335 |
+
if (isStylus(event) || isZoom(event)) {
|
2336 |
+
return false;
|
2337 |
+
}
|
2338 |
+
|
2339 |
+
if (target === container) {
|
2340 |
+
return true;
|
2341 |
+
}
|
2342 |
+
|
2343 |
+
if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' && // #1603
|
2344 |
+
target.tagName !== 'TEXTAREA' && // #2266
|
2345 |
+
!(isScrollable(getHtmlContainer()) && // #1944
|
2346 |
+
getHtmlContainer().contains(target))) {
|
2347 |
+
return true;
|
2348 |
+
}
|
2349 |
+
|
2350 |
+
return false;
|
2351 |
+
};
|
2352 |
+
/**
|
2353 |
+
* https://github.com/sweetalert2/sweetalert2/issues/1786
|
2354 |
+
*
|
2355 |
+
* @param {*} event
|
2356 |
+
* @returns {boolean}
|
2357 |
+
*/
|
2358 |
+
|
2359 |
+
|
2360 |
+
const isStylus = event => {
|
2361 |
+
return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';
|
2362 |
+
};
|
2363 |
+
/**
|
2364 |
+
* https://github.com/sweetalert2/sweetalert2/issues/1891
|
2365 |
+
*
|
2366 |
+
* @param {TouchEvent} event
|
2367 |
+
* @returns {boolean}
|
2368 |
+
*/
|
2369 |
+
|
2370 |
+
|
2371 |
+
const isZoom = event => {
|
2372 |
+
return event.touches && event.touches.length > 1;
|
2373 |
+
};
|
2374 |
+
|
2375 |
+
const undoIOSfix = () => {
|
2376 |
+
if (hasClass(document.body, swalClasses.iosfix)) {
|
2377 |
+
const offset = parseInt(document.body.style.top, 10);
|
2378 |
+
removeClass(document.body, swalClasses.iosfix);
|
2379 |
+
document.body.style.top = '';
|
2380 |
+
document.body.scrollTop = offset * -1;
|
2381 |
+
}
|
2382 |
+
};
|
2383 |
+
|
2384 |
+
const SHOW_CLASS_TIMEOUT = 10;
|
2385 |
+
/**
|
2386 |
+
* Open popup, add necessary classes and styles, fix scrollbar
|
2387 |
+
*
|
2388 |
+
* @param {SweetAlertOptions} params
|
2389 |
+
*/
|
2390 |
+
|
2391 |
+
const openPopup = params => {
|
2392 |
+
const container = getContainer();
|
2393 |
+
const popup = getPopup();
|
2394 |
+
|
2395 |
+
if (typeof params.willOpen === 'function') {
|
2396 |
+
params.willOpen(popup);
|
2397 |
+
}
|
2398 |
+
|
2399 |
+
const bodyStyles = window.getComputedStyle(document.body);
|
2400 |
+
const initialBodyOverflow = bodyStyles.overflowY;
|
2401 |
+
addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'
|
2402 |
+
|
2403 |
+
setTimeout(() => {
|
2404 |
+
setScrollingVisibility(container, popup);
|
2405 |
+
}, SHOW_CLASS_TIMEOUT);
|
2406 |
+
|
2407 |
+
if (isModal()) {
|
2408 |
+
fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
|
2409 |
+
setAriaHidden();
|
2410 |
+
}
|
2411 |
+
|
2412 |
+
if (!isToast() && !globalState.previousActiveElement) {
|
2413 |
+
globalState.previousActiveElement = document.activeElement;
|
2414 |
+
}
|
2415 |
+
|
2416 |
+
if (typeof params.didOpen === 'function') {
|
2417 |
+
setTimeout(() => params.didOpen(popup));
|
2418 |
+
}
|
2419 |
+
|
2420 |
+
removeClass(container, swalClasses['no-transition']);
|
2421 |
+
};
|
2422 |
+
/**
|
2423 |
+
* @param {AnimationEvent} event
|
2424 |
+
*/
|
2425 |
+
|
2426 |
+
const swalOpenAnimationFinished = event => {
|
2427 |
+
const popup = getPopup();
|
2428 |
+
|
2429 |
+
if (event.target !== popup) {
|
2430 |
+
return;
|
2431 |
+
}
|
2432 |
+
|
2433 |
+
const container = getContainer();
|
2434 |
+
popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
|
2435 |
+
container.style.overflowY = 'auto';
|
2436 |
+
};
|
2437 |
+
/**
|
2438 |
+
* @param {HTMLElement} container
|
2439 |
+
* @param {HTMLElement} popup
|
2440 |
+
*/
|
2441 |
+
|
2442 |
+
|
2443 |
+
const setScrollingVisibility = (container, popup) => {
|
2444 |
+
if (animationEndEvent && hasCssAnimation(popup)) {
|
2445 |
+
container.style.overflowY = 'hidden';
|
2446 |
+
popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
|
2447 |
+
} else {
|
2448 |
+
container.style.overflowY = 'auto';
|
2449 |
+
}
|
2450 |
+
};
|
2451 |
+
/**
|
2452 |
+
* @param {HTMLElement} container
|
2453 |
+
* @param {boolean} scrollbarPadding
|
2454 |
+
* @param {string} initialBodyOverflow
|
2455 |
+
*/
|
2456 |
+
|
2457 |
+
|
2458 |
+
const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {
|
2459 |
+
iOSfix();
|
2460 |
+
|
2461 |
+
if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
|
2462 |
+
fixScrollbar();
|
2463 |
+
} // sweetalert2/issues/1247
|
2464 |
+
|
2465 |
+
|
2466 |
+
setTimeout(() => {
|
2467 |
+
container.scrollTop = 0;
|
2468 |
+
});
|
2469 |
+
};
|
2470 |
+
/**
|
2471 |
+
* @param {HTMLElement} container
|
2472 |
+
* @param {HTMLElement} popup
|
2473 |
+
* @param {SweetAlertOptions} params
|
2474 |
+
*/
|
2475 |
+
|
2476 |
+
|
2477 |
+
const addClasses$1 = (container, popup, params) => {
|
2478 |
+
addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059
|
2479 |
+
|
2480 |
+
popup.style.setProperty('opacity', '0', 'important');
|
2481 |
+
show(popup, 'grid');
|
2482 |
+
setTimeout(() => {
|
2483 |
+
// Animate popup right after showing it
|
2484 |
+
addClass(popup, params.showClass.popup); // and remove the opacity workaround
|
2485 |
+
|
2486 |
+
popup.style.removeProperty('opacity');
|
2487 |
+
}, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062
|
2488 |
+
|
2489 |
+
addClass([document.documentElement, document.body], swalClasses.shown);
|
2490 |
+
|
2491 |
+
if (params.heightAuto && params.backdrop && !params.toast) {
|
2492 |
+
addClass([document.documentElement, document.body], swalClasses['height-auto']);
|
2493 |
+
}
|
2494 |
+
};
|
2495 |
+
|
2496 |
+
/**
|
2497 |
+
* Shows loader (spinner), this is useful with AJAX requests.
|
2498 |
+
* By default the loader be shown instead of the "Confirm" button.
|
2499 |
+
*/
|
2500 |
+
|
2501 |
+
const showLoading = buttonToReplace => {
|
2502 |
+
let popup = getPopup();
|
2503 |
+
|
2504 |
+
if (!popup) {
|
2505 |
+
new Swal(); // eslint-disable-line no-new
|
2506 |
+
}
|
2507 |
+
|
2508 |
+
popup = getPopup();
|
2509 |
+
const loader = getLoader();
|
2510 |
+
|
2511 |
+
if (isToast()) {
|
2512 |
+
hide(getIcon());
|
2513 |
+
} else {
|
2514 |
+
replaceButton(popup, buttonToReplace);
|
2515 |
+
}
|
2516 |
+
|
2517 |
+
show(loader);
|
2518 |
+
popup.setAttribute('data-loading', 'true');
|
2519 |
+
popup.setAttribute('aria-busy', 'true');
|
2520 |
+
popup.focus();
|
2521 |
+
};
|
2522 |
+
|
2523 |
+
const replaceButton = (popup, buttonToReplace) => {
|
2524 |
+
const actions = getActions();
|
2525 |
+
const loader = getLoader();
|
2526 |
+
|
2527 |
+
if (!buttonToReplace && isVisible(getConfirmButton())) {
|
2528 |
+
buttonToReplace = getConfirmButton();
|
2529 |
+
}
|
2530 |
+
|
2531 |
+
show(actions);
|
2532 |
+
|
2533 |
+
if (buttonToReplace) {
|
2534 |
+
hide(buttonToReplace);
|
2535 |
+
loader.setAttribute('data-button-to-replace', buttonToReplace.className);
|
2536 |
+
}
|
2537 |
+
|
2538 |
+
loader.parentNode.insertBefore(loader, buttonToReplace);
|
2539 |
+
addClass([popup, actions], swalClasses.loading);
|
2540 |
+
};
|
2541 |
+
|
2542 |
+
const handleInputOptionsAndValue = (instance, params) => {
|
2543 |
+
if (params.input === 'select' || params.input === 'radio') {
|
2544 |
+
handleInputOptions(instance, params);
|
2545 |
+
} else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
|
2546 |
+
showLoading(getConfirmButton());
|
2547 |
+
handleInputValue(instance, params);
|
2548 |
+
}
|
2549 |
+
};
|
2550 |
+
const getInputValue = (instance, innerParams) => {
|
2551 |
+
const input = instance.getInput();
|
2552 |
+
|
2553 |
+
if (!input) {
|
2554 |
+
return null;
|
2555 |
+
}
|
2556 |
+
|
2557 |
+
switch (innerParams.input) {
|
2558 |
+
case 'checkbox':
|
2559 |
+
return getCheckboxValue(input);
|
2560 |
+
|
2561 |
+
case 'radio':
|
2562 |
+
return getRadioValue(input);
|
2563 |
+
|
2564 |
+
case 'file':
|
2565 |
+
return getFileValue(input);
|
2566 |
+
|
2567 |
+
default:
|
2568 |
+
return innerParams.inputAutoTrim ? input.value.trim() : input.value;
|
2569 |
+
}
|
2570 |
+
};
|
2571 |
+
|
2572 |
+
const getCheckboxValue = input => input.checked ? 1 : 0;
|
2573 |
+
|
2574 |
+
const getRadioValue = input => input.checked ? input.value : null;
|
2575 |
+
|
2576 |
+
const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
|
2577 |
+
|
2578 |
+
const handleInputOptions = (instance, params) => {
|
2579 |
+
const popup = getPopup();
|
2580 |
+
|
2581 |
+
const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);
|
2582 |
+
|
2583 |
+
if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
|
2584 |
+
showLoading(getConfirmButton());
|
2585 |
+
asPromise(params.inputOptions).then(inputOptions => {
|
2586 |
+
instance.hideLoading();
|
2587 |
+
processInputOptions(inputOptions);
|
2588 |
+
});
|
2589 |
+
} else if (typeof params.inputOptions === 'object') {
|
2590 |
+
processInputOptions(params.inputOptions);
|
2591 |
+
} else {
|
2592 |
+
error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof params.inputOptions));
|
2593 |
+
}
|
2594 |
+
};
|
2595 |
+
|
2596 |
+
const handleInputValue = (instance, params) => {
|
2597 |
+
const input = instance.getInput();
|
2598 |
+
hide(input);
|
2599 |
+
asPromise(params.inputValue).then(inputValue => {
|
2600 |
+
input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
|
2601 |
+
show(input);
|
2602 |
+
input.focus();
|
2603 |
+
instance.hideLoading();
|
2604 |
+
}).catch(err => {
|
2605 |
+
error("Error in inputValue promise: ".concat(err));
|
2606 |
+
input.value = '';
|
2607 |
+
show(input);
|
2608 |
+
input.focus();
|
2609 |
+
instance.hideLoading();
|
2610 |
+
});
|
2611 |
+
};
|
2612 |
+
|
2613 |
+
const populateInputOptions = {
|
2614 |
+
select: (popup, inputOptions, params) => {
|
2615 |
+
const select = getDirectChildByClass(popup, swalClasses.select);
|
2616 |
+
|
2617 |
+
const renderOption = (parent, optionLabel, optionValue) => {
|
2618 |
+
const option = document.createElement('option');
|
2619 |
+
option.value = optionValue;
|
2620 |
+
setInnerHtml(option, optionLabel);
|
2621 |
+
option.selected = isSelected(optionValue, params.inputValue);
|
2622 |
+
parent.appendChild(option);
|
2623 |
+
};
|
2624 |
+
|
2625 |
+
inputOptions.forEach(inputOption => {
|
2626 |
+
const optionValue = inputOption[0];
|
2627 |
+
const optionLabel = inputOption[1]; // <optgroup> spec:
|
2628 |
+
// https://www.w3.org/TR/html401/interact/forms.html#h-17.6
|
2629 |
+
// "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
|
2630 |
+
// check whether this is a <optgroup>
|
2631 |
+
|
2632 |
+
if (Array.isArray(optionLabel)) {
|
2633 |
+
// if it is an array, then it is an <optgroup>
|
2634 |
+
const optgroup = document.createElement('optgroup');
|
2635 |
+
optgroup.label = optionValue;
|
2636 |
+
optgroup.disabled = false; // not configurable for now
|
2637 |
+
|
2638 |
+
select.appendChild(optgroup);
|
2639 |
+
optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));
|
2640 |
+
} else {
|
2641 |
+
// case of <option>
|
2642 |
+
renderOption(select, optionLabel, optionValue);
|
2643 |
+
}
|
2644 |
+
});
|
2645 |
+
select.focus();
|
2646 |
+
},
|
2647 |
+
radio: (popup, inputOptions, params) => {
|
2648 |
+
const radio = getDirectChildByClass(popup, swalClasses.radio);
|
2649 |
+
inputOptions.forEach(inputOption => {
|
2650 |
+
const radioValue = inputOption[0];
|
2651 |
+
const radioLabel = inputOption[1];
|
2652 |
+
const radioInput = document.createElement('input');
|
2653 |
+
const radioLabelElement = document.createElement('label');
|
2654 |
+
radioInput.type = 'radio';
|
2655 |
+
radioInput.name = swalClasses.radio;
|
2656 |
+
radioInput.value = radioValue;
|
2657 |
+
|
2658 |
+
if (isSelected(radioValue, params.inputValue)) {
|
2659 |
+
radioInput.checked = true;
|
2660 |
+
}
|
2661 |
+
|
2662 |
+
const label = document.createElement('span');
|
2663 |
+
setInnerHtml(label, radioLabel);
|
2664 |
+
label.className = swalClasses.label;
|
2665 |
+
radioLabelElement.appendChild(radioInput);
|
2666 |
+
radioLabelElement.appendChild(label);
|
2667 |
+
radio.appendChild(radioLabelElement);
|
2668 |
+
});
|
2669 |
+
const radios = radio.querySelectorAll('input');
|
2670 |
+
|
2671 |
+
if (radios.length) {
|
2672 |
+
radios[0].focus();
|
2673 |
+
}
|
2674 |
+
}
|
2675 |
+
};
|
2676 |
+
/**
|
2677 |
+
* Converts `inputOptions` into an array of `[value, label]`s
|
2678 |
+
* @param inputOptions
|
2679 |
+
*/
|
2680 |
+
|
2681 |
+
const formatInputOptions = inputOptions => {
|
2682 |
+
const result = [];
|
2683 |
+
|
2684 |
+
if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
|
2685 |
+
inputOptions.forEach((value, key) => {
|
2686 |
+
let valueFormatted = value;
|
2687 |
+
|
2688 |
+
if (typeof valueFormatted === 'object') {
|
2689 |
+
// case of <optgroup>
|
2690 |
+
valueFormatted = formatInputOptions(valueFormatted);
|
2691 |
+
}
|
2692 |
+
|
2693 |
+
result.push([key, valueFormatted]);
|
2694 |
+
});
|
2695 |
+
} else {
|
2696 |
+
Object.keys(inputOptions).forEach(key => {
|
2697 |
+
let valueFormatted = inputOptions[key];
|
2698 |
+
|
2699 |
+
if (typeof valueFormatted === 'object') {
|
2700 |
+
// case of <optgroup>
|
2701 |
+
valueFormatted = formatInputOptions(valueFormatted);
|
2702 |
+
}
|
2703 |
+
|
2704 |
+
result.push([key, valueFormatted]);
|
2705 |
+
});
|
2706 |
+
}
|
2707 |
+
|
2708 |
+
return result;
|
2709 |
+
};
|
2710 |
+
|
2711 |
+
const isSelected = (optionValue, inputValue) => {
|
2712 |
+
return inputValue && inputValue.toString() === optionValue.toString();
|
2713 |
+
};
|
2714 |
+
|
2715 |
+
/**
|
2716 |
+
* Hides loader and shows back the button which was hidden by .showLoading()
|
2717 |
+
*/
|
2718 |
+
|
2719 |
+
function hideLoading() {
|
2720 |
+
// do nothing if popup is closed
|
2721 |
+
const innerParams = privateProps.innerParams.get(this);
|
2722 |
+
|
2723 |
+
if (!innerParams) {
|
2724 |
+
return;
|
2725 |
+
}
|
2726 |
+
|
2727 |
+
const domCache = privateProps.domCache.get(this);
|
2728 |
+
hide(domCache.loader);
|
2729 |
+
|
2730 |
+
if (isToast()) {
|
2731 |
+
if (innerParams.icon) {
|
2732 |
+
show(getIcon());
|
2733 |
+
}
|
2734 |
+
} else {
|
2735 |
+
showRelatedButton(domCache);
|
2736 |
+
}
|
2737 |
+
|
2738 |
+
removeClass([domCache.popup, domCache.actions], swalClasses.loading);
|
2739 |
+
domCache.popup.removeAttribute('aria-busy');
|
2740 |
+
domCache.popup.removeAttribute('data-loading');
|
2741 |
+
domCache.confirmButton.disabled = false;
|
2742 |
+
domCache.denyButton.disabled = false;
|
2743 |
+
domCache.cancelButton.disabled = false;
|
2744 |
}
|
2745 |
+
|
2746 |
+
const showRelatedButton = domCache => {
|
2747 |
+
const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));
|
2748 |
+
|
2749 |
+
if (buttonToReplace.length) {
|
2750 |
+
show(buttonToReplace[0], 'inline-block');
|
2751 |
+
} else if (allButtonsAreHidden()) {
|
2752 |
+
hide(domCache.actions);
|
2753 |
+
}
|
2754 |
+
};
|
2755 |
+
|
2756 |
+
/**
|
2757 |
+
* Gets the input DOM node, this method works with input parameter.
|
2758 |
+
* @returns {HTMLElement | null}
|
2759 |
+
*/
|
2760 |
+
|
2761 |
+
function getInput$1(instance) {
|
2762 |
+
const innerParams = privateProps.innerParams.get(instance || this);
|
2763 |
+
const domCache = privateProps.domCache.get(instance || this);
|
2764 |
+
|
2765 |
+
if (!domCache) {
|
2766 |
+
return null;
|
2767 |
+
}
|
2768 |
+
|
2769 |
+
return getInput(domCache.popup, innerParams.input);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2770 |
}
|
2771 |
+
|
2772 |
+
/**
|
2773 |
+
* This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
|
2774 |
+
* For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
|
2775 |
+
* This is the approach that Babel will probably take to implement private methods/fields
|
2776 |
+
* https://github.com/tc39/proposal-private-methods
|
2777 |
+
* https://github.com/babel/babel/pull/7555
|
2778 |
+
* Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
|
2779 |
+
* then we can use that language feature.
|
2780 |
+
*/
|
2781 |
+
var privateMethods = {
|
2782 |
+
swalPromiseResolve: new WeakMap(),
|
2783 |
+
swalPromiseReject: new WeakMap()
|
2784 |
+
};
|
2785 |
+
|
2786 |
+
/*
|
2787 |
+
* Global function to determine if SweetAlert2 popup is shown
|
2788 |
+
*/
|
2789 |
+
|
2790 |
+
const isVisible$1 = () => {
|
2791 |
+
return isVisible(getPopup());
|
2792 |
+
};
|
2793 |
+
/*
|
2794 |
+
* Global function to click 'Confirm' button
|
2795 |
+
*/
|
2796 |
+
|
2797 |
+
const clickConfirm = () => getConfirmButton() && getConfirmButton().click();
|
2798 |
+
/*
|
2799 |
+
* Global function to click 'Deny' button
|
2800 |
+
*/
|
2801 |
+
|
2802 |
+
const clickDeny = () => getDenyButton() && getDenyButton().click();
|
2803 |
+
/*
|
2804 |
+
* Global function to click 'Cancel' button
|
2805 |
+
*/
|
2806 |
+
|
2807 |
+
const clickCancel = () => getCancelButton() && getCancelButton().click();
|
2808 |
+
|
2809 |
+
/**
|
2810 |
+
* @param {GlobalState} globalState
|
2811 |
+
*/
|
2812 |
+
|
2813 |
+
const removeKeydownHandler = globalState => {
|
2814 |
+
if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
|
2815 |
+
globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
|
2816 |
+
capture: globalState.keydownListenerCapture
|
2817 |
+
});
|
2818 |
+
globalState.keydownHandlerAdded = false;
|
2819 |
+
}
|
2820 |
+
};
|
2821 |
+
/**
|
2822 |
+
* @param {SweetAlert2} instance
|
2823 |
+
* @param {GlobalState} globalState
|
2824 |
+
* @param {SweetAlertOptions} innerParams
|
2825 |
+
* @param {*} dismissWith
|
2826 |
+
*/
|
2827 |
+
|
2828 |
+
const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {
|
2829 |
+
removeKeydownHandler(globalState);
|
2830 |
+
|
2831 |
+
if (!innerParams.toast) {
|
2832 |
+
globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);
|
2833 |
+
|
2834 |
+
globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
|
2835 |
+
globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
|
2836 |
+
globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
|
2837 |
+
capture: globalState.keydownListenerCapture
|
2838 |
+
});
|
2839 |
+
globalState.keydownHandlerAdded = true;
|
2840 |
+
}
|
2841 |
+
};
|
2842 |
+
/**
|
2843 |
+
* @param {SweetAlertOptions} innerParams
|
2844 |
+
* @param {number} index
|
2845 |
+
* @param {number} increment
|
2846 |
+
*/
|
2847 |
+
|
2848 |
+
const setFocus = (innerParams, index, increment) => {
|
2849 |
+
const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match
|
2850 |
+
|
2851 |
+
if (focusableElements.length) {
|
2852 |
+
index = index + increment; // rollover to first item
|
2853 |
+
|
2854 |
+
if (index === focusableElements.length) {
|
2855 |
+
index = 0; // go to last item
|
2856 |
+
} else if (index === -1) {
|
2857 |
+
index = focusableElements.length - 1;
|
2858 |
+
}
|
2859 |
+
|
2860 |
+
return focusableElements[index].focus();
|
2861 |
+
} // no visible focusable elements, focus the popup
|
2862 |
+
|
2863 |
+
|
2864 |
+
getPopup().focus();
|
2865 |
+
};
|
2866 |
+
const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];
|
2867 |
+
const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];
|
2868 |
+
/**
|
2869 |
+
* @param {SweetAlert2} instance
|
2870 |
+
* @param {KeyboardEvent} e
|
2871 |
+
* @param {function} dismissWith
|
2872 |
+
*/
|
2873 |
+
|
2874 |
+
const keydownHandler = (instance, e, dismissWith) => {
|
2875 |
+
const innerParams = privateProps.innerParams.get(instance);
|
2876 |
+
|
2877 |
+
if (!innerParams) {
|
2878 |
+
return; // This instance has already been destroyed
|
2879 |
+
} // Ignore keydown during IME composition
|
2880 |
+
// https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition
|
2881 |
+
// https://github.com/sweetalert2/sweetalert2/issues/720
|
2882 |
+
// https://github.com/sweetalert2/sweetalert2/issues/2406
|
2883 |
+
|
2884 |
+
|
2885 |
+
if (e.isComposing || e.keyCode === 229) {
|
2886 |
+
return;
|
2887 |
+
}
|
2888 |
+
|
2889 |
+
if (innerParams.stopKeydownPropagation) {
|
2890 |
+
e.stopPropagation();
|
2891 |
+
} // ENTER
|
2892 |
+
|
2893 |
+
|
2894 |
+
if (e.key === 'Enter') {
|
2895 |
+
handleEnter(instance, e, innerParams);
|
2896 |
+
} // TAB
|
2897 |
+
else if (e.key === 'Tab') {
|
2898 |
+
handleTab(e, innerParams);
|
2899 |
+
} // ARROWS - switch focus between buttons
|
2900 |
+
else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {
|
2901 |
+
handleArrows(e.key);
|
2902 |
+
} // ESC
|
2903 |
+
else if (e.key === 'Escape') {
|
2904 |
+
handleEsc(e, innerParams, dismissWith);
|
2905 |
+
}
|
2906 |
+
};
|
2907 |
+
/**
|
2908 |
+
* @param {SweetAlert2} instance
|
2909 |
+
* @param {KeyboardEvent} e
|
2910 |
+
* @param {SweetAlertOptions} innerParams
|
2911 |
+
*/
|
2912 |
+
|
2913 |
+
|
2914 |
+
const handleEnter = (instance, e, innerParams) => {
|
2915 |
+
// https://github.com/sweetalert2/sweetalert2/issues/2386
|
2916 |
+
if (!callIfFunction(innerParams.allowEnterKey)) {
|
2917 |
+
return;
|
2918 |
+
}
|
2919 |
+
|
2920 |
+
if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) {
|
2921 |
+
if (['textarea', 'file'].includes(innerParams.input)) {
|
2922 |
+
return; // do not submit
|
2923 |
+
}
|
2924 |
+
|
2925 |
+
clickConfirm();
|
2926 |
+
e.preventDefault();
|
2927 |
+
}
|
2928 |
+
};
|
2929 |
+
/**
|
2930 |
+
* @param {KeyboardEvent} e
|
2931 |
+
* @param {SweetAlertOptions} innerParams
|
2932 |
+
*/
|
2933 |
+
|
2934 |
+
|
2935 |
+
const handleTab = (e, innerParams) => {
|
2936 |
+
const targetElement = e.target;
|
2937 |
+
const focusableElements = getFocusableElements();
|
2938 |
+
let btnIndex = -1;
|
2939 |
+
|
2940 |
+
for (let i = 0; i < focusableElements.length; i++) {
|
2941 |
+
if (targetElement === focusableElements[i]) {
|
2942 |
+
btnIndex = i;
|
2943 |
+
break;
|
2944 |
+
}
|
2945 |
+
} // Cycle to the next button
|
2946 |
+
|
2947 |
+
|
2948 |
+
if (!e.shiftKey) {
|
2949 |
+
setFocus(innerParams, btnIndex, 1);
|
2950 |
+
} // Cycle to the prev button
|
2951 |
+
else {
|
2952 |
+
setFocus(innerParams, btnIndex, -1);
|
2953 |
+
}
|
2954 |
+
|
2955 |
+
e.stopPropagation();
|
2956 |
+
e.preventDefault();
|
2957 |
+
};
|
2958 |
+
/**
|
2959 |
+
* @param {string} key
|
2960 |
+
*/
|
2961 |
+
|
2962 |
+
|
2963 |
+
const handleArrows = key => {
|
2964 |
+
const confirmButton = getConfirmButton();
|
2965 |
+
const denyButton = getDenyButton();
|
2966 |
+
const cancelButton = getCancelButton();
|
2967 |
+
|
2968 |
+
if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {
|
2969 |
+
return;
|
2970 |
+
}
|
2971 |
+
|
2972 |
+
const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';
|
2973 |
+
let buttonToFocus = document.activeElement;
|
2974 |
+
|
2975 |
+
for (let i = 0; i < getActions().children.length; i++) {
|
2976 |
+
buttonToFocus = buttonToFocus[sibling];
|
2977 |
+
|
2978 |
+
if (!buttonToFocus) {
|
2979 |
+
return;
|
2980 |
+
}
|
2981 |
+
|
2982 |
+
if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {
|
2983 |
+
break;
|
2984 |
+
}
|
2985 |
+
}
|
2986 |
+
|
2987 |
+
if (buttonToFocus instanceof HTMLButtonElement) {
|
2988 |
+
buttonToFocus.focus();
|
2989 |
+
}
|
2990 |
+
};
|
2991 |
+
/**
|
2992 |
+
* @param {KeyboardEvent} e
|
2993 |
+
* @param {SweetAlertOptions} innerParams
|
2994 |
+
* @param {function} dismissWith
|
2995 |
+
*/
|
2996 |
+
|
2997 |
+
|
2998 |
+
const handleEsc = (e, innerParams, dismissWith) => {
|
2999 |
+
if (callIfFunction(innerParams.allowEscapeKey)) {
|
3000 |
+
e.preventDefault();
|
3001 |
+
dismissWith(DismissReason.esc);
|
3002 |
+
}
|
3003 |
+
};
|
3004 |
+
|
3005 |
+
/*
|
3006 |
+
* Instance method to close sweetAlert
|
3007 |
+
*/
|
3008 |
+
|
3009 |
+
function removePopupAndResetState(instance, container, returnFocus, didClose) {
|
3010 |
+
if (isToast()) {
|
3011 |
+
triggerDidCloseAndDispose(instance, didClose);
|
3012 |
+
} else {
|
3013 |
+
restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));
|
3014 |
+
removeKeydownHandler(globalState);
|
3015 |
+
}
|
3016 |
+
|
3017 |
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088
|
3018 |
+
// for some reason removing the container in Safari will scroll the document to bottom
|
3019 |
+
|
3020 |
+
if (isSafari) {
|
3021 |
+
container.setAttribute('style', 'display:none !important');
|
3022 |
+
container.removeAttribute('class');
|
3023 |
+
container.innerHTML = '';
|
3024 |
+
} else {
|
3025 |
+
container.remove();
|
3026 |
+
}
|
3027 |
+
|
3028 |
+
if (isModal()) {
|
3029 |
+
undoScrollbar();
|
3030 |
+
undoIOSfix();
|
3031 |
+
unsetAriaHidden();
|
3032 |
+
}
|
3033 |
+
|
3034 |
+
removeBodyClasses();
|
3035 |
+
}
|
3036 |
+
|
3037 |
+
function removeBodyClasses() {
|
3038 |
+
removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);
|
3039 |
+
}
|
3040 |
+
|
3041 |
+
function close(resolveValue) {
|
3042 |
+
resolveValue = prepareResolveValue(resolveValue);
|
3043 |
+
const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
|
3044 |
+
const didClose = triggerClosePopup(this);
|
3045 |
+
|
3046 |
+
if (this.isAwaitingPromise()) {
|
3047 |
+
// A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335
|
3048 |
+
if (!resolveValue.isDismissed) {
|
3049 |
+
handleAwaitingPromise(this);
|
3050 |
+
swalPromiseResolve(resolveValue);
|
3051 |
+
}
|
3052 |
+
} else if (didClose) {
|
3053 |
+
// Resolve Swal promise
|
3054 |
+
swalPromiseResolve(resolveValue);
|
3055 |
+
}
|
3056 |
+
}
|
3057 |
+
function isAwaitingPromise() {
|
3058 |
+
return !!privateProps.awaitingPromise.get(this);
|
3059 |
+
}
|
3060 |
+
|
3061 |
+
const triggerClosePopup = instance => {
|
3062 |
+
const popup = getPopup();
|
3063 |
+
|
3064 |
+
if (!popup) {
|
3065 |
+
return false;
|
3066 |
+
}
|
3067 |
+
|
3068 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3069 |
+
|
3070 |
+
if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
|
3071 |
+
return false;
|
3072 |
+
}
|
3073 |
+
|
3074 |
+
removeClass(popup, innerParams.showClass.popup);
|
3075 |
+
addClass(popup, innerParams.hideClass.popup);
|
3076 |
+
const backdrop = getContainer();
|
3077 |
+
removeClass(backdrop, innerParams.showClass.backdrop);
|
3078 |
+
addClass(backdrop, innerParams.hideClass.backdrop);
|
3079 |
+
handlePopupAnimation(instance, popup, innerParams);
|
3080 |
+
return true;
|
3081 |
+
};
|
3082 |
+
|
3083 |
+
function rejectPromise(error) {
|
3084 |
+
const rejectPromise = privateMethods.swalPromiseReject.get(this);
|
3085 |
+
handleAwaitingPromise(this);
|
3086 |
+
|
3087 |
+
if (rejectPromise) {
|
3088 |
+
// Reject Swal promise
|
3089 |
+
rejectPromise(error);
|
3090 |
+
}
|
3091 |
+
}
|
3092 |
+
const handleAwaitingPromise = instance => {
|
3093 |
+
if (instance.isAwaitingPromise()) {
|
3094 |
+
privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335
|
3095 |
+
|
3096 |
+
if (!privateProps.innerParams.get(instance)) {
|
3097 |
+
instance._destroy();
|
3098 |
+
}
|
3099 |
+
}
|
3100 |
+
};
|
3101 |
+
|
3102 |
+
const prepareResolveValue = resolveValue => {
|
3103 |
+
// When user calls Swal.close()
|
3104 |
+
if (typeof resolveValue === 'undefined') {
|
3105 |
+
return {
|
3106 |
+
isConfirmed: false,
|
3107 |
+
isDenied: false,
|
3108 |
+
isDismissed: true
|
3109 |
+
};
|
3110 |
+
}
|
3111 |
+
|
3112 |
+
return Object.assign({
|
3113 |
+
isConfirmed: false,
|
3114 |
+
isDenied: false,
|
3115 |
+
isDismissed: false
|
3116 |
+
}, resolveValue);
|
3117 |
+
};
|
3118 |
+
|
3119 |
+
const handlePopupAnimation = (instance, popup, innerParams) => {
|
3120 |
+
const container = getContainer(); // If animation is supported, animate
|
3121 |
+
|
3122 |
+
const animationIsSupported = animationEndEvent && hasCssAnimation(popup);
|
3123 |
+
|
3124 |
+
if (typeof innerParams.willClose === 'function') {
|
3125 |
+
innerParams.willClose(popup);
|
3126 |
+
}
|
3127 |
+
|
3128 |
+
if (animationIsSupported) {
|
3129 |
+
animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);
|
3130 |
+
} else {
|
3131 |
+
// Otherwise, remove immediately
|
3132 |
+
removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);
|
3133 |
+
}
|
3134 |
+
};
|
3135 |
+
|
3136 |
+
const animatePopup = (instance, popup, container, returnFocus, didClose) => {
|
3137 |
+
globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);
|
3138 |
+
popup.addEventListener(animationEndEvent, function (e) {
|
3139 |
+
if (e.target === popup) {
|
3140 |
+
globalState.swalCloseEventFinishedCallback();
|
3141 |
+
delete globalState.swalCloseEventFinishedCallback;
|
3142 |
+
}
|
3143 |
+
});
|
3144 |
+
};
|
3145 |
+
|
3146 |
+
const triggerDidCloseAndDispose = (instance, didClose) => {
|
3147 |
+
setTimeout(() => {
|
3148 |
+
if (typeof didClose === 'function') {
|
3149 |
+
didClose.bind(instance.params)();
|
3150 |
+
}
|
3151 |
+
|
3152 |
+
instance._destroy();
|
3153 |
+
});
|
3154 |
+
};
|
3155 |
+
|
3156 |
+
function setButtonsDisabled(instance, buttons, disabled) {
|
3157 |
+
const domCache = privateProps.domCache.get(instance);
|
3158 |
+
buttons.forEach(button => {
|
3159 |
+
domCache[button].disabled = disabled;
|
3160 |
+
});
|
3161 |
+
}
|
3162 |
+
|
3163 |
+
function setInputDisabled(input, disabled) {
|
3164 |
+
if (!input) {
|
3165 |
+
return false;
|
3166 |
+
}
|
3167 |
+
|
3168 |
+
if (input.type === 'radio') {
|
3169 |
+
const radiosContainer = input.parentNode.parentNode;
|
3170 |
+
const radios = radiosContainer.querySelectorAll('input');
|
3171 |
+
|
3172 |
+
for (let i = 0; i < radios.length; i++) {
|
3173 |
+
radios[i].disabled = disabled;
|
3174 |
+
}
|
3175 |
+
} else {
|
3176 |
+
input.disabled = disabled;
|
3177 |
+
}
|
3178 |
+
}
|
3179 |
+
|
3180 |
+
function enableButtons() {
|
3181 |
+
setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
|
3182 |
+
}
|
3183 |
+
function disableButtons() {
|
3184 |
+
setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
|
3185 |
}
|
3186 |
+
function enableInput() {
|
3187 |
+
return setInputDisabled(this.getInput(), false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3188 |
}
|
3189 |
+
function disableInput() {
|
3190 |
+
return setInputDisabled(this.getInput(), true);
|
3191 |
+
}
|
3192 |
+
|
3193 |
+
function showValidationMessage(error) {
|
3194 |
+
const domCache = privateProps.domCache.get(this);
|
3195 |
+
const params = privateProps.innerParams.get(this);
|
3196 |
+
setInnerHtml(domCache.validationMessage, error);
|
3197 |
+
domCache.validationMessage.className = swalClasses['validation-message'];
|
3198 |
|
3199 |
+
if (params.customClass && params.customClass.validationMessage) {
|
3200 |
+
addClass(domCache.validationMessage, params.customClass.validationMessage);
|
3201 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3202 |
|
3203 |
+
show(domCache.validationMessage);
|
3204 |
+
const input = this.getInput();
|
3205 |
+
|
3206 |
+
if (input) {
|
3207 |
+
input.setAttribute('aria-invalid', true);
|
3208 |
+
input.setAttribute('aria-describedby', swalClasses['validation-message']);
|
3209 |
+
focusInput(input);
|
3210 |
+
addClass(input, swalClasses.inputerror);
|
3211 |
+
}
|
3212 |
+
} // Hide block with validation message
|
|
|
|
|
|
|
3213 |
|
3214 |
+
function resetValidationMessage$1() {
|
3215 |
+
const domCache = privateProps.domCache.get(this);
|
|
|
|
|
|
|
3216 |
|
3217 |
+
if (domCache.validationMessage) {
|
3218 |
+
hide(domCache.validationMessage);
|
3219 |
+
}
|
3220 |
|
3221 |
+
const input = this.getInput();
|
3222 |
|
3223 |
+
if (input) {
|
3224 |
+
input.removeAttribute('aria-invalid');
|
3225 |
+
input.removeAttribute('aria-describedby');
|
3226 |
+
removeClass(input, swalClasses.inputerror);
|
3227 |
+
}
|
3228 |
+
}
|
3229 |
|
3230 |
+
function getProgressSteps$1() {
|
3231 |
+
const domCache = privateProps.domCache.get(this);
|
3232 |
+
return domCache.progressSteps;
|
3233 |
+
}
|
3234 |
|
3235 |
+
/**
|
3236 |
+
* Updates popup parameters.
|
3237 |
+
*/
|
3238 |
|
3239 |
+
function update(params) {
|
3240 |
+
const popup = getPopup();
|
3241 |
+
const innerParams = privateProps.innerParams.get(this);
|
3242 |
|
3243 |
+
if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
|
3244 |
+
return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
|
3245 |
+
}
|
3246 |
|
3247 |
+
const validUpdatableParams = filterValidParams(params);
|
3248 |
+
const updatedParams = Object.assign({}, innerParams, validUpdatableParams);
|
3249 |
+
render(this, updatedParams);
|
3250 |
+
privateProps.innerParams.set(this, updatedParams);
|
3251 |
+
Object.defineProperties(this, {
|
3252 |
+
params: {
|
3253 |
+
value: Object.assign({}, this.params, params),
|
3254 |
+
writable: false,
|
3255 |
+
enumerable: true
|
3256 |
+
}
|
3257 |
+
});
|
3258 |
+
}
|
3259 |
|
3260 |
+
const filterValidParams = params => {
|
3261 |
+
const validUpdatableParams = {};
|
3262 |
+
Object.keys(params).forEach(param => {
|
3263 |
+
if (isUpdatableParameter(param)) {
|
3264 |
+
validUpdatableParams[param] = params[param];
|
3265 |
+
} else {
|
3266 |
+
warn("Invalid parameter to update: ".concat(param));
|
3267 |
+
}
|
3268 |
+
});
|
3269 |
+
return validUpdatableParams;
|
3270 |
+
};
|
3271 |
|
3272 |
+
function _destroy() {
|
3273 |
+
const domCache = privateProps.domCache.get(this);
|
3274 |
+
const innerParams = privateProps.innerParams.get(this);
|
3275 |
|
3276 |
+
if (!innerParams) {
|
3277 |
+
disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335
|
3278 |
|
3279 |
+
return; // This instance has already been destroyed
|
3280 |
+
} // Check if there is another Swal closing
|
3281 |
|
3282 |
|
3283 |
+
if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
|
3284 |
+
globalState.swalCloseEventFinishedCallback();
|
3285 |
+
delete globalState.swalCloseEventFinishedCallback;
|
3286 |
+
}
|
3287 |
|
3288 |
+
if (typeof innerParams.didDestroy === 'function') {
|
3289 |
+
innerParams.didDestroy();
|
3290 |
+
}
|
3291 |
|
3292 |
+
disposeSwal(this);
|
3293 |
+
}
|
3294 |
+
/**
|
3295 |
+
* @param {SweetAlert2} instance
|
3296 |
+
*/
|
3297 |
|
3298 |
+
const disposeSwal = instance => {
|
3299 |
+
disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)
|
3300 |
+
// @ts-ignore
|
3301 |
|
3302 |
+
delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)
|
3303 |
|
3304 |
+
delete globalState.keydownHandler;
|
3305 |
+
delete globalState.keydownTarget; // Unset currentInstance
|
3306 |
|
3307 |
+
delete globalState.currentInstance;
|
3308 |
+
};
|
3309 |
+
/**
|
3310 |
+
* @param {SweetAlert2} instance
|
3311 |
+
*/
|
3312 |
|
|
|
|
|
|
|
3313 |
|
3314 |
+
const disposeWeakMaps = instance => {
|
3315 |
+
// If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335
|
3316 |
+
// @ts-ignore
|
3317 |
+
if (instance.isAwaitingPromise()) {
|
3318 |
+
unsetWeakMaps(privateProps, instance);
|
3319 |
+
privateProps.awaitingPromise.set(instance, true);
|
3320 |
+
} else {
|
3321 |
+
unsetWeakMaps(privateMethods, instance);
|
3322 |
+
unsetWeakMaps(privateProps, instance);
|
3323 |
+
}
|
3324 |
+
};
|
3325 |
+
/**
|
3326 |
+
* @param {object} obj
|
3327 |
+
* @param {SweetAlert2} instance
|
3328 |
+
*/
|
3329 |
|
|
|
|
|
3330 |
|
3331 |
+
const unsetWeakMaps = (obj, instance) => {
|
3332 |
+
for (const i in obj) {
|
3333 |
+
obj[i].delete(instance);
|
3334 |
+
}
|
3335 |
+
};
|
3336 |
+
|
3337 |
|
|
|
|
|
|
|
|
|
|
|
3338 |
|
3339 |
+
var instanceMethods = /*#__PURE__*/Object.freeze({
|
3340 |
+
hideLoading: hideLoading,
|
3341 |
+
disableLoading: hideLoading,
|
3342 |
+
getInput: getInput$1,
|
3343 |
+
close: close,
|
3344 |
+
isAwaitingPromise: isAwaitingPromise,
|
3345 |
+
rejectPromise: rejectPromise,
|
3346 |
+
handleAwaitingPromise: handleAwaitingPromise,
|
3347 |
+
closePopup: close,
|
3348 |
+
closeModal: close,
|
3349 |
+
closeToast: close,
|
3350 |
+
enableButtons: enableButtons,
|
3351 |
+
disableButtons: disableButtons,
|
3352 |
+
enableInput: enableInput,
|
3353 |
+
disableInput: disableInput,
|
3354 |
+
showValidationMessage: showValidationMessage,
|
3355 |
+
resetValidationMessage: resetValidationMessage$1,
|
3356 |
+
getProgressSteps: getProgressSteps$1,
|
3357 |
+
update: update,
|
3358 |
+
_destroy: _destroy
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3359 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3360 |
|
3361 |
+
/**
|
3362 |
+
* @param {SweetAlert2} instance
|
3363 |
+
*/
|
|
|
|
|
3364 |
|
3365 |
+
const handleConfirmButtonClick = instance => {
|
3366 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3367 |
+
instance.disableButtons();
|
3368 |
+
|
3369 |
+
if (innerParams.input) {
|
3370 |
+
handleConfirmOrDenyWithInput(instance, 'confirm');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3371 |
} else {
|
3372 |
+
confirm(instance, true);
|
3373 |
}
|
3374 |
+
};
|
3375 |
+
/**
|
3376 |
+
* @param {SweetAlert2} instance
|
3377 |
+
*/
|
3378 |
|
3379 |
+
const handleDenyButtonClick = instance => {
|
3380 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3381 |
+
instance.disableButtons();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3382 |
|
3383 |
+
if (innerParams.returnInputValueOnDeny) {
|
3384 |
+
handleConfirmOrDenyWithInput(instance, 'deny');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3385 |
} else {
|
3386 |
+
deny(instance, false);
|
3387 |
+
}
|
3388 |
+
};
|
3389 |
+
/**
|
3390 |
+
* @param {SweetAlert2} instance
|
3391 |
+
* @param {Function} dismissWith
|
3392 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3393 |
|
3394 |
+
const handleCancelButtonClick = (instance, dismissWith) => {
|
3395 |
+
instance.disableButtons();
|
3396 |
+
dismissWith(DismissReason.cancel);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3397 |
};
|
3398 |
+
/**
|
3399 |
+
* @param {SweetAlert2} instance
|
3400 |
+
* @param {'confirm' | 'deny'} type
|
3401 |
+
*/
|
3402 |
|
3403 |
+
const handleConfirmOrDenyWithInput = (instance, type) => {
|
3404 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3405 |
+
|
3406 |
+
if (!innerParams.input) {
|
3407 |
+
error("The \"input\" parameter is needed to be set when using returnInputValueOn".concat(capitalizeFirstLetter(type)));
|
3408 |
+
return;
|
3409 |
+
}
|
3410 |
+
|
3411 |
+
const inputValue = getInputValue(instance, innerParams);
|
3412 |
|
3413 |
+
if (innerParams.inputValidator) {
|
3414 |
+
handleInputValidator(instance, inputValue, type);
|
3415 |
+
} else if (!instance.getInput().checkValidity()) {
|
3416 |
+
instance.enableButtons();
|
3417 |
+
instance.showValidationMessage(innerParams.validationMessage);
|
3418 |
+
} else if (type === 'deny') {
|
3419 |
+
deny(instance, inputValue);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3420 |
} else {
|
3421 |
+
confirm(instance, inputValue);
|
3422 |
}
|
|
|
3423 |
};
|
3424 |
+
/**
|
3425 |
+
* @param {SweetAlert2} instance
|
3426 |
+
* @param {string} inputValue
|
3427 |
+
* @param {'confirm' | 'deny'} type
|
3428 |
+
*/
|
3429 |
|
|
|
|
|
|
|
3430 |
|
3431 |
+
const handleInputValidator = (instance, inputValue, type) => {
|
3432 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3433 |
+
instance.disableInput();
|
3434 |
+
const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));
|
3435 |
+
validationPromise.then(validationMessage => {
|
3436 |
+
instance.enableButtons();
|
3437 |
+
instance.enableInput();
|
3438 |
+
|
3439 |
+
if (validationMessage) {
|
3440 |
+
instance.showValidationMessage(validationMessage);
|
3441 |
+
} else if (type === 'deny') {
|
3442 |
+
deny(instance, inputValue);
|
3443 |
+
} else {
|
3444 |
+
confirm(instance, inputValue);
|
3445 |
+
}
|
3446 |
+
});
|
3447 |
+
};
|
3448 |
+
/**
|
3449 |
+
* @param {SweetAlert2} instance
|
3450 |
+
* @param {any} value
|
3451 |
+
*/
|
3452 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3453 |
|
3454 |
+
const deny = (instance, value) => {
|
3455 |
+
const innerParams = privateProps.innerParams.get(instance || undefined);
|
|
|
3456 |
|
3457 |
+
if (innerParams.showLoaderOnDeny) {
|
3458 |
+
showLoading(getDenyButton());
|
|
|
3459 |
}
|
3460 |
|
3461 |
+
if (innerParams.preDeny) {
|
3462 |
+
privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received
|
3463 |
+
|
3464 |
+
const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));
|
3465 |
+
preDenyPromise.then(preDenyValue => {
|
3466 |
+
if (preDenyValue === false) {
|
3467 |
+
instance.hideLoading();
|
3468 |
+
handleAwaitingPromise(instance);
|
3469 |
+
} else {
|
3470 |
+
instance.close({
|
3471 |
+
isDenied: true,
|
3472 |
+
value: typeof preDenyValue === 'undefined' ? value : preDenyValue
|
3473 |
+
});
|
3474 |
+
}
|
3475 |
+
}).catch(error$$1 => rejectWith(instance || undefined, error$$1));
|
3476 |
+
} else {
|
3477 |
+
instance.close({
|
3478 |
+
isDenied: true,
|
3479 |
+
value
|
3480 |
+
});
|
3481 |
}
|
|
|
3482 |
};
|
3483 |
+
/**
|
3484 |
+
* @param {SweetAlert2} instance
|
3485 |
+
* @param {any} value
|
3486 |
+
*/
|
3487 |
+
|
3488 |
+
|
3489 |
+
const succeedWith = (instance, value) => {
|
3490 |
+
instance.close({
|
3491 |
+
isConfirmed: true,
|
3492 |
+
value
|
3493 |
+
});
|
3494 |
+
};
|
3495 |
+
/**
|
3496 |
+
*
|
3497 |
+
* @param {SweetAlert2} instance
|
3498 |
+
* @param {string} error
|
3499 |
+
*/
|
3500 |
+
|
3501 |
|
3502 |
+
const rejectWith = (instance, error$$1) => {
|
3503 |
+
// @ts-ignore
|
3504 |
+
instance.rejectPromise(error$$1);
|
3505 |
+
};
|
3506 |
+
/**
|
3507 |
+
*
|
3508 |
+
* @param {SweetAlert2} instance
|
3509 |
+
* @param {any} value
|
3510 |
+
*/
|
3511 |
|
|
|
|
|
|
|
|
|
3512 |
|
3513 |
+
const confirm = (instance, value) => {
|
3514 |
+
const innerParams = privateProps.innerParams.get(instance || undefined);
|
3515 |
|
3516 |
+
if (innerParams.showLoaderOnConfirm) {
|
3517 |
+
showLoading();
|
|
|
|
|
|
|
|
|
3518 |
}
|
|
|
3519 |
|
3520 |
+
if (innerParams.preConfirm) {
|
3521 |
+
instance.resetValidationMessage();
|
3522 |
+
privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received
|
3523 |
+
|
3524 |
+
const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));
|
3525 |
+
preConfirmPromise.then(preConfirmValue => {
|
3526 |
+
if (isVisible(getValidationMessage()) || preConfirmValue === false) {
|
3527 |
+
instance.hideLoading();
|
3528 |
+
handleAwaitingPromise(instance);
|
3529 |
+
} else {
|
3530 |
+
succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
|
3531 |
+
}
|
3532 |
+
}).catch(error$$1 => rejectWith(instance || undefined, error$$1));
|
3533 |
} else {
|
3534 |
+
succeedWith(instance, value);
|
|
|
3535 |
}
|
3536 |
+
};
|
3537 |
+
|
3538 |
+
const handlePopupClick = (instance, domCache, dismissWith) => {
|
3539 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3540 |
|
3541 |
+
if (innerParams.toast) {
|
3542 |
+
handleToastClick(instance, domCache, dismissWith);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3543 |
} else {
|
3544 |
+
// Ignore click events that had mousedown on the popup but mouseup on the container
|
3545 |
+
// This can happen when the user drags a slider
|
3546 |
+
handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup
|
3547 |
+
|
3548 |
+
handleContainerMousedown(domCache);
|
3549 |
+
handleModalClick(instance, domCache, dismissWith);
|
3550 |
}
|
|
|
3551 |
};
|
3552 |
|
3553 |
+
const handleToastClick = (instance, domCache, dismissWith) => {
|
3554 |
+
// Closing toast by internal click
|
3555 |
+
domCache.popup.onclick = () => {
|
3556 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3557 |
|
3558 |
+
if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {
|
3559 |
+
return;
|
3560 |
+
}
|
|
|
|
|
3561 |
|
3562 |
+
dismissWith(DismissReason.close);
|
3563 |
+
};
|
3564 |
+
};
|
3565 |
/**
|
3566 |
+
* @param {*} innerParams
|
3567 |
+
* @returns {boolean}
|
3568 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3569 |
|
3570 |
+
|
3571 |
+
const isAnyButtonShown = innerParams => {
|
3572 |
+
return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;
|
3573 |
};
|
3574 |
+
|
3575 |
+
let ignoreOutsideClick = false;
|
3576 |
+
|
3577 |
+
const handleModalMousedown = domCache => {
|
3578 |
+
domCache.popup.onmousedown = () => {
|
3579 |
+
domCache.container.onmouseup = function (e) {
|
3580 |
+
domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
|
3581 |
+
// have any other direct children aside of the popup
|
3582 |
+
|
3583 |
+
if (e.target === domCache.container) {
|
3584 |
+
ignoreOutsideClick = true;
|
3585 |
+
}
|
3586 |
+
};
|
3587 |
+
};
|
3588 |
};
|
3589 |
+
|
3590 |
+
const handleContainerMousedown = domCache => {
|
3591 |
+
domCache.container.onmousedown = () => {
|
3592 |
+
domCache.popup.onmouseup = function (e) {
|
3593 |
+
domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup
|
3594 |
+
|
3595 |
+
if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
|
3596 |
+
ignoreOutsideClick = true;
|
3597 |
+
}
|
3598 |
+
};
|
3599 |
+
};
|
3600 |
};
|
3601 |
+
|
3602 |
+
const handleModalClick = (instance, domCache, dismissWith) => {
|
3603 |
+
domCache.container.onclick = e => {
|
3604 |
+
const innerParams = privateProps.innerParams.get(instance);
|
3605 |
+
|
3606 |
+
if (ignoreOutsideClick) {
|
3607 |
+
ignoreOutsideClick = false;
|
3608 |
+
return;
|
3609 |
+
}
|
3610 |
+
|
3611 |
+
if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
|
3612 |
+
dismissWith(DismissReason.backdrop);
|
3613 |
+
}
|
3614 |
+
};
|
3615 |
};
|
3616 |
+
|
3617 |
+
const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;
|
3618 |
+
|
3619 |
+
const isElement = elem => elem instanceof Element || isJqueryElement(elem);
|
3620 |
+
|
3621 |
+
const argsToParams = args => {
|
3622 |
+
const params = {};
|
3623 |
+
|
3624 |
+
if (typeof args[0] === 'object' && !isElement(args[0])) {
|
3625 |
+
Object.assign(params, args[0]);
|
3626 |
+
} else {
|
3627 |
+
['title', 'html', 'icon'].forEach((name, index) => {
|
3628 |
+
const arg = args[index];
|
3629 |
+
|
3630 |
+
if (typeof arg === 'string' || isElement(arg)) {
|
3631 |
+
params[name] = arg;
|
3632 |
+
} else if (arg !== undefined) {
|
3633 |
+
error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg));
|
3634 |
+
}
|
3635 |
+
});
|
3636 |
+
}
|
3637 |
+
|
3638 |
+
return params;
|
3639 |
};
|
3640 |
+
|
3641 |
+
function fire() {
|
3642 |
+
const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias
|
3643 |
+
|
3644 |
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
3645 |
+
args[_key] = arguments[_key];
|
3646 |
+
}
|
3647 |
+
|
3648 |
+
return new Swal(...args);
|
3649 |
+
}
|
3650 |
+
|
3651 |
+
/**
|
3652 |
+
* Returns an extended version of `Swal` containing `params` as defaults.
|
3653 |
+
* Useful for reusing Swal configuration.
|
3654 |
+
*
|
3655 |
+
* For example:
|
3656 |
+
*
|
3657 |
+
* Before:
|
3658 |
+
* const textPromptOptions = { input: 'text', showCancelButton: true }
|
3659 |
+
* const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
|
3660 |
+
* const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
|
3661 |
+
*
|
3662 |
+
* After:
|
3663 |
+
* const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
|
3664 |
+
* const {value: firstName} = await TextPrompt('What is your first name?')
|
3665 |
+
* const {value: lastName} = await TextPrompt('What is your last name?')
|
3666 |
+
*
|
3667 |
+
* @param mixinParams
|
3668 |
+
*/
|
3669 |
+
function mixin(mixinParams) {
|
3670 |
+
class MixinSwal extends this {
|
3671 |
+
_main(params, priorityMixinParams) {
|
3672 |
+
return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));
|
3673 |
+
}
|
3674 |
+
|
3675 |
+
}
|
3676 |
+
|
3677 |
+
return MixinSwal;
|
3678 |
+
}
|
3679 |
+
|
3680 |
+
/**
|
3681 |
+
* If `timer` parameter is set, returns number of milliseconds of timer remained.
|
3682 |
+
* Otherwise, returns undefined.
|
3683 |
+
*/
|
3684 |
+
|
3685 |
+
const getTimerLeft = () => {
|
3686 |
+
return globalState.timeout && globalState.timeout.getTimerLeft();
|
3687 |
};
|
3688 |
+
/**
|
3689 |
+
* Stop timer. Returns number of milliseconds of timer remained.
|
3690 |
+
* If `timer` parameter isn't set, returns undefined.
|
3691 |
+
*/
|
3692 |
+
|
3693 |
+
const stopTimer = () => {
|
3694 |
+
if (globalState.timeout) {
|
3695 |
+
stopTimerProgressBar();
|
3696 |
+
return globalState.timeout.stop();
|
3697 |
+
}
|
3698 |
};
|
3699 |
+
/**
|
3700 |
+
* Resume timer. Returns number of milliseconds of timer remained.
|
3701 |
+
* If `timer` parameter isn't set, returns undefined.
|
3702 |
+
*/
|
3703 |
|
3704 |
+
const resumeTimer = () => {
|
3705 |
+
if (globalState.timeout) {
|
3706 |
+
const remaining = globalState.timeout.start();
|
3707 |
+
animateTimerProgressBar(remaining);
|
3708 |
+
return remaining;
|
3709 |
+
}
|
3710 |
};
|
3711 |
+
/**
|
3712 |
+
* Resume timer. Returns number of milliseconds of timer remained.
|
3713 |
+
* If `timer` parameter isn't set, returns undefined.
|
3714 |
+
*/
|
3715 |
|
3716 |
+
const toggleTimer = () => {
|
3717 |
+
const timer = globalState.timeout;
|
3718 |
+
return timer && (timer.running ? stopTimer() : resumeTimer());
|
3719 |
};
|
3720 |
+
/**
|
3721 |
+
* Increase timer. Returns number of milliseconds of an updated timer.
|
3722 |
+
* If `timer` parameter isn't set, returns undefined.
|
3723 |
+
*/
|
3724 |
|
3725 |
+
const increaseTimer = n => {
|
3726 |
+
if (globalState.timeout) {
|
3727 |
+
const remaining = globalState.timeout.increase(n);
|
3728 |
+
animateTimerProgressBar(remaining, true);
|
3729 |
+
return remaining;
|
3730 |
+
}
|
3731 |
};
|
3732 |
+
/**
|
3733 |
+
* Check if timer is running. Returns true if timer is running
|
3734 |
+
* or false if timer is paused or stopped.
|
3735 |
+
* If `timer` parameter isn't set, returns undefined
|
3736 |
+
*/
|
3737 |
|
3738 |
+
const isTimerRunning = () => {
|
3739 |
+
return globalState.timeout && globalState.timeout.isRunning();
|
3740 |
};
|
3741 |
|
3742 |
+
let bodyClickListenerAdded = false;
|
3743 |
+
const clickHandlers = {};
|
3744 |
+
function bindClickHandler() {
|
3745 |
+
let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';
|
3746 |
+
clickHandlers[attr] = this;
|
3747 |
+
|
3748 |
+
if (!bodyClickListenerAdded) {
|
3749 |
+
document.body.addEventListener('click', bodyClickListener);
|
3750 |
+
bodyClickListenerAdded = true;
|
|
|
3751 |
}
|
3752 |
+
}
|
|
|
|
|
|
|
3753 |
|
3754 |
+
const bodyClickListener = event => {
|
3755 |
+
for (let el = event.target; el && el !== document; el = el.parentNode) {
|
3756 |
+
for (const attr in clickHandlers) {
|
3757 |
+
const template = el.getAttribute(attr);
|
3758 |
+
|
3759 |
+
if (template) {
|
3760 |
+
clickHandlers[attr].fire({
|
3761 |
+
template
|
3762 |
+
});
|
3763 |
+
return;
|
3764 |
+
}
|
3765 |
+
}
|
3766 |
}
|
|
|
|
|
|
|
3767 |
};
|
3768 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3769 |
|
|
|
|
|
|
|
|
|
|
|
3770 |
|
3771 |
+
var staticMethods = /*#__PURE__*/Object.freeze({
|
3772 |
+
isValidParameter: isValidParameter,
|
3773 |
+
isUpdatableParameter: isUpdatableParameter,
|
3774 |
+
isDeprecatedParameter: isDeprecatedParameter,
|
3775 |
+
argsToParams: argsToParams,
|
3776 |
+
isVisible: isVisible$1,
|
3777 |
+
clickConfirm: clickConfirm,
|
3778 |
+
clickDeny: clickDeny,
|
3779 |
+
clickCancel: clickCancel,
|
3780 |
+
getContainer: getContainer,
|
3781 |
+
getPopup: getPopup,
|
3782 |
+
getTitle: getTitle,
|
3783 |
+
getHtmlContainer: getHtmlContainer,
|
3784 |
+
getImage: getImage,
|
3785 |
+
getIcon: getIcon,
|
3786 |
+
getInputLabel: getInputLabel,
|
3787 |
+
getCloseButton: getCloseButton,
|
3788 |
+
getActions: getActions,
|
3789 |
+
getConfirmButton: getConfirmButton,
|
3790 |
+
getDenyButton: getDenyButton,
|
3791 |
+
getCancelButton: getCancelButton,
|
3792 |
+
getLoader: getLoader,
|
3793 |
+
getFooter: getFooter,
|
3794 |
+
getTimerProgressBar: getTimerProgressBar,
|
3795 |
+
getFocusableElements: getFocusableElements,
|
3796 |
+
getValidationMessage: getValidationMessage,
|
3797 |
+
isLoading: isLoading,
|
3798 |
+
fire: fire,
|
3799 |
+
mixin: mixin,
|
3800 |
+
showLoading: showLoading,
|
3801 |
+
enableLoading: showLoading,
|
3802 |
+
getTimerLeft: getTimerLeft,
|
3803 |
+
stopTimer: stopTimer,
|
3804 |
+
resumeTimer: resumeTimer,
|
3805 |
+
toggleTimer: toggleTimer,
|
3806 |
+
increaseTimer: increaseTimer,
|
3807 |
+
isTimerRunning: isTimerRunning,
|
3808 |
+
bindClickHandler: bindClickHandler
|
3809 |
+
});
|
3810 |
|
3811 |
+
let currentInstance;
|
|
|
|
|
|
|
|
|
3812 |
|
3813 |
+
class SweetAlert {
|
3814 |
+
constructor() {
|
3815 |
+
// Prevent run in Node env
|
3816 |
+
if (typeof window === 'undefined') {
|
3817 |
+
return;
|
3818 |
+
}
|
3819 |
|
3820 |
+
currentInstance = this; // @ts-ignore
|
3821 |
+
|
3822 |
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
3823 |
+
args[_key] = arguments[_key];
|
3824 |
+
}
|
3825 |
+
|
3826 |
+
const outerParams = Object.freeze(this.constructor.argsToParams(args));
|
3827 |
+
Object.defineProperties(this, {
|
3828 |
+
params: {
|
3829 |
+
value: outerParams,
|
3830 |
+
writable: false,
|
3831 |
+
enumerable: true,
|
3832 |
+
configurable: true
|
3833 |
+
}
|
3834 |
+
}); // @ts-ignore
|
3835 |
+
|
3836 |
+
const promise = currentInstance._main(currentInstance.params);
|
3837 |
+
|
3838 |
+
privateProps.promise.set(this, promise);
|
3839 |
+
}
|
3840 |
+
|
3841 |
+
_main(userParams) {
|
3842 |
+
let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
3843 |
+
showWarningsForParams(Object.assign({}, mixinParams, userParams));
|
3844 |
+
|
3845 |
+
if (globalState.currentInstance) {
|
3846 |
+
// @ts-ignore
|
3847 |
+
globalState.currentInstance._destroy();
|
3848 |
+
|
3849 |
+
if (isModal()) {
|
3850 |
+
unsetAriaHidden();
|
3851 |
+
}
|
3852 |
+
}
|
3853 |
+
|
3854 |
+
globalState.currentInstance = currentInstance;
|
3855 |
+
const innerParams = prepareParams(userParams, mixinParams);
|
3856 |
+
setParameters(innerParams);
|
3857 |
+
Object.freeze(innerParams); // clear the previous timer
|
3858 |
+
|
3859 |
+
if (globalState.timeout) {
|
3860 |
+
globalState.timeout.stop();
|
3861 |
+
delete globalState.timeout;
|
3862 |
+
} // clear the restore focus timeout
|
3863 |
|
|
|
|
|
|
|
|
|
3864 |
|
3865 |
+
clearTimeout(globalState.restoreFocusTimeout);
|
3866 |
+
const domCache = populateDomCache(currentInstance);
|
3867 |
+
render(currentInstance, innerParams);
|
3868 |
+
privateProps.innerParams.set(currentInstance, innerParams);
|
3869 |
+
return swalPromise(currentInstance, domCache, innerParams);
|
3870 |
+
} // `catch` cannot be the name of a module export, so we define our thenable methods here instead
|
3871 |
+
|
3872 |
+
|
3873 |
+
then(onFulfilled) {
|
3874 |
+
const promise = privateProps.promise.get(this);
|
3875 |
+
return promise.then(onFulfilled);
|
3876 |
+
}
|
3877 |
+
|
3878 |
+
finally(onFinally) {
|
3879 |
+
const promise = privateProps.promise.get(this);
|
3880 |
+
return promise.finally(onFinally);
|
3881 |
+
}
|
3882 |
+
|
3883 |
+
}
|
3884 |
+
|
3885 |
+
const swalPromise = (instance, domCache, innerParams) => {
|
3886 |
+
return new Promise((resolve, reject) => {
|
3887 |
+
// functions to handle all closings/dismissals
|
3888 |
+
const dismissWith = dismiss => {
|
3889 |
+
instance.closePopup({
|
3890 |
+
isDismissed: true,
|
3891 |
+
dismiss
|
3892 |
+
});
|
3893 |
+
};
|
3894 |
+
|
3895 |
+
privateMethods.swalPromiseResolve.set(instance, resolve);
|
3896 |
+
privateMethods.swalPromiseReject.set(instance, reject);
|
3897 |
+
|
3898 |
+
domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);
|
3899 |
+
|
3900 |
+
domCache.denyButton.onclick = () => handleDenyButtonClick(instance);
|
3901 |
+
|
3902 |
+
domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);
|
3903 |
+
|
3904 |
+
domCache.closeButton.onclick = () => dismissWith(DismissReason.close);
|
3905 |
+
|
3906 |
+
handlePopupClick(instance, domCache, dismissWith);
|
3907 |
+
addKeydownHandler(instance, globalState, innerParams, dismissWith);
|
3908 |
+
handleInputOptionsAndValue(instance, innerParams);
|
3909 |
+
openPopup(innerParams);
|
3910 |
+
setupTimer(globalState, innerParams, dismissWith);
|
3911 |
+
initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)
|
3912 |
+
|
3913 |
+
setTimeout(() => {
|
3914 |
+
domCache.container.scrollTop = 0;
|
3915 |
+
});
|
3916 |
+
});
|
3917 |
};
|
3918 |
|
3919 |
+
const prepareParams = (userParams, mixinParams) => {
|
3920 |
+
const templateParams = getTemplateParams(userParams);
|
3921 |
+
const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131
|
3922 |
+
|
3923 |
+
params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);
|
3924 |
+
params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);
|
3925 |
+
return params;
|
3926 |
};
|
3927 |
+
/**
|
3928 |
+
* @param {SweetAlert2} instance
|
3929 |
+
* @returns {DomCache}
|
3930 |
+
*/
|
3931 |
|
|
|
|
|
|
|
3932 |
|
3933 |
+
const populateDomCache = instance => {
|
3934 |
+
const domCache = {
|
3935 |
+
popup: getPopup(),
|
3936 |
+
container: getContainer(),
|
3937 |
+
actions: getActions(),
|
3938 |
+
confirmButton: getConfirmButton(),
|
3939 |
+
denyButton: getDenyButton(),
|
3940 |
+
cancelButton: getCancelButton(),
|
3941 |
+
loader: getLoader(),
|
3942 |
+
closeButton: getCloseButton(),
|
3943 |
+
validationMessage: getValidationMessage(),
|
3944 |
+
progressSteps: getProgressSteps()
|
3945 |
+
};
|
3946 |
+
privateProps.domCache.set(instance, domCache);
|
3947 |
+
return domCache;
|
3948 |
+
};
|
3949 |
+
/**
|
3950 |
+
* @param {GlobalState} globalState
|
3951 |
+
* @param {SweetAlertOptions} innerParams
|
3952 |
+
* @param {function} dismissWith
|
3953 |
+
*/
|
3954 |
+
|
3955 |
|
3956 |
+
const setupTimer = (globalState$$1, innerParams, dismissWith) => {
|
3957 |
+
const timerProgressBar = getTimerProgressBar();
|
3958 |
+
hide(timerProgressBar);
|
3959 |
+
|
3960 |
+
if (innerParams.timer) {
|
3961 |
+
globalState$$1.timeout = new Timer(() => {
|
3962 |
+
dismissWith('timer');
|
3963 |
+
delete globalState$$1.timeout;
|
3964 |
+
}, innerParams.timer);
|
3965 |
+
|
3966 |
+
if (innerParams.timerProgressBar) {
|
3967 |
+
show(timerProgressBar);
|
3968 |
+
applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');
|
3969 |
+
setTimeout(() => {
|
3970 |
+
if (globalState$$1.timeout && globalState$$1.timeout.running) {
|
3971 |
+
// timer can be already stopped or unset at this point
|
3972 |
+
animateTimerProgressBar(innerParams.timer);
|
3973 |
+
}
|
3974 |
+
});
|
3975 |
}
|
|
|
3976 |
}
|
3977 |
+
};
|
3978 |
+
/**
|
3979 |
+
* @param {DomCache} domCache
|
3980 |
+
* @param {SweetAlertOptions} innerParams
|
3981 |
+
*/
|
3982 |
+
|
3983 |
+
|
3984 |
+
const initFocus = (domCache, innerParams) => {
|
3985 |
+
if (innerParams.toast) {
|
3986 |
+
return;
|
3987 |
+
}
|
3988 |
+
|
3989 |
+
if (!callIfFunction(innerParams.allowEnterKey)) {
|
3990 |
+
return blurActiveElement();
|
3991 |
}
|
|
|
3992 |
|
3993 |
+
if (!focusButton(domCache, innerParams)) {
|
3994 |
+
setFocus(innerParams, -1, 1);
|
3995 |
+
}
|
3996 |
+
};
|
3997 |
+
/**
|
3998 |
+
* @param {DomCache} domCache
|
3999 |
+
* @param {SweetAlertOptions} innerParams
|
4000 |
+
* @returns {boolean}
|
4001 |
+
*/
|
4002 |
|
|
|
|
|
4003 |
|
4004 |
+
const focusButton = (domCache, innerParams) => {
|
4005 |
+
if (innerParams.focusDeny && isVisible(domCache.denyButton)) {
|
4006 |
+
domCache.denyButton.focus();
|
4007 |
+
return true;
|
4008 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4009 |
|
4010 |
+
if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
|
4011 |
+
domCache.cancelButton.focus();
|
4012 |
+
return true;
|
4013 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4014 |
|
4015 |
+
if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
|
4016 |
+
domCache.confirmButton.focus();
|
4017 |
+
return true;
|
4018 |
+
}
|
4019 |
|
4020 |
+
return false;
|
4021 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
4022 |
|
4023 |
+
const blurActiveElement = () => {
|
4024 |
+
if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {
|
4025 |
+
document.activeElement.blur();
|
4026 |
+
}
|
4027 |
+
}; // This anti-war message will only be shown to Russian users visiting Russian sites
|
4028 |
+
|
4029 |
+
|
4030 |
+
if (typeof window !== 'undefined' && /^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|xn--p1ai)$/)) {
|
4031 |
+
if (Math.random() < 0.1) {
|
4032 |
+
const noWar = document.createElement('div');
|
4033 |
+
noWar.className = 'leave-russia-now-and-apply-your-skills-to-the-world';
|
4034 |
+
const video = getRandomElement([{
|
4035 |
+
text: "\u0412 \u043D\u0438\u0436\u0435\u043F\u0440\u0438\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u043C \u0432\u0438\u0434\u0435\u043E \u043E\u0431\u044A\u044F\u0441\u043D\u044F\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043A\u0430\u0436\u0434\u044B\u0439 \u0438\u0437 \u043D\u0430\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u043E\u043C\u043E\u0447\u044C \u0432 \u0442\u043E\u043C,\n <strong>\u0447\u0442\u043E\u0431\u044B \u044D\u0442\u0430 \u0431\u0435\u0441\u0441\u043C\u044B\u0441\u043B\u0435\u043D\u043D\u0430\u044F \u0438 \u0431\u0435\u0441\u0447\u0435\u043B\u043E\u0432\u0435\u0447\u043D\u0430\u044F \u0432\u043E\u0439\u043D\u0430 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043B\u0430\u0441\u044C</strong>:",
|
4036 |
+
id: '4CfDhaRkw7I'
|
4037 |
+
}, {
|
4038 |
+
text: 'Эмпатия - главное <strong>человеческое</strong> чувство. Способность сопереживать. <strong>Способность поставить себя на место другого.</strong>',
|
4039 |
+
id: 's-GLAIY4DXA'
|
4040 |
+
}]);
|
4041 |
+
setInnerHtml(noWar, "\n <div>\n \u0415\u0441\u043B\u0438 \u043C\u044B \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043C \u0432\u043E\u0439\u043D\u0443, \u043E\u043D\u0430 \u043F\u0440\u0438\u0434\u0435\u0442 \u0432 \u0434\u043E\u043C <strong>\u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0438\u0437 \u043D\u0430\u0441</strong> \u0438 \u0435\u0451 \u043F\u043E\u0441\u043B\u0435\u0434\u0441\u0442\u0432\u0438\u044F \u0431\u0443\u0434\u0443\u0442 <strong>\u0443\u0436\u0430\u0441\u0430\u044E\u0449\u0438\u043C\u0438</strong>.\n </div>\n <div>\n \u041F\u0443\u0442\u0438\u043D\u0441\u043A\u0438\u0439 \u0440\u0435\u0436\u0438\u043C \u0437\u0430 20 \u0441 \u043B\u0438\u0448\u043D\u0438\u043C \u043B\u0435\u0442 \u0441\u0432\u043E\u0435\u0433\u043E \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0434\u043E\u043B\u0431\u0438\u043B \u043D\u0430\u043C, \u0447\u0442\u043E \u043C\u044B \u0431\u0435\u0441\u0441\u0438\u043B\u044C\u043D\u044B \u0438 \u043E\u0434\u0438\u043D \u0447\u0435\u043B\u043E\u0432\u0435\u043A \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043D\u0438\u0447\u0435\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C. <strong>\u042D\u0442\u043E \u043D\u0435 \u0442\u0430\u043A!</strong>\n </div>\n <div>\n ".concat(video.text, "\n </div>\n <iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/").concat(video.id, "\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n <div>\n \u041D\u0435\u0442 \u0432\u043E\u0439\u043D\u0435!\n </div>\n "));
|
4042 |
+
const closeButton = document.createElement('button');
|
4043 |
+
closeButton.innerHTML = '×';
|
4044 |
+
|
4045 |
+
closeButton.onclick = () => noWar.remove();
|
4046 |
+
|
4047 |
+
noWar.appendChild(closeButton);
|
4048 |
+
window.addEventListener('load', () => {
|
4049 |
+
setTimeout(() => {
|
4050 |
+
document.body.appendChild(noWar);
|
4051 |
+
}, 1000);
|
4052 |
+
});
|
4053 |
+
}
|
4054 |
+
} // Assign instance methods from src/instanceMethods/*.js to prototype
|
4055 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4056 |
|
4057 |
+
Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor
|
|
|
4058 |
|
4059 |
+
Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility
|
|
|
|
|
|
|
|
|
|
|
4060 |
|
4061 |
+
Object.keys(instanceMethods).forEach(key => {
|
4062 |
+
SweetAlert[key] = function () {
|
4063 |
+
if (currentInstance) {
|
4064 |
+
return currentInstance[key](...arguments);
|
4065 |
+
}
|
4066 |
+
};
|
4067 |
+
});
|
4068 |
+
SweetAlert.DismissReason = DismissReason;
|
4069 |
+
SweetAlert.version = '11.4.30';
|
4070 |
|
4071 |
+
const Swal = SweetAlert; // @ts-ignore
|
4072 |
|
4073 |
+
Swal.default = Swal;
|
4074 |
|
4075 |
+
return Swal;
|
4076 |
|
4077 |
+
}));
|
4078 |
+
if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}
|
assets/vendor/sweetalert2/dist/sweetalert2.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body.swal2-shown{overflow-y:hidden}body.swal2-iosfix{position:fixed;left:0;right:0}.swal2-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;top:0;left:0;bottom:0;right:0;padding:10px;background-color:transparent;z-index:1060}.swal2-container.swal2-fade{-webkit-transition:background-color .1s;transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-modal{background-color:#fff;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;margin:auto;overflow-x:hidden;overflow-y:auto;display:none;position:relative;max-width:100%}.swal2-modal:focus{outline:0}.swal2-modal.swal2-loading{overflow-y:hidden}.swal2-modal .swal2-title{color:#595959;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:0 0 .4em;padding:0;display:block;word-wrap:break-word}.swal2-modal .swal2-buttonswrapper{margin-top:15px}.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4;cursor:no-drop}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm{-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid transparent;border-color:transparent;width:40px;height:40px;padding:0;margin:7.5px;vertical-align:top;background-color:transparent!important;color:transparent;cursor:default;border-radius:100%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel{margin-left:30px;margin-right:30px}.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after{display:inline-block;content:'';margin-left:5px 0 15px;vertical-align:-1px;height:15px;width:15px;border:3px solid #999;-webkit-box-shadow:1px 1px 1px #fff;box-shadow:1px 1px 1px #fff;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal}.swal2-modal .swal2-styled{border:0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;font-size:17px;font-weight:500;margin:15px 5px 0;padding:10px 32px}.swal2-modal .swal2-image{margin:20px auto;max-width:100%}.swal2-modal .swal2-close{background:0 0;border:0;margin:0;padding:0;width:38px;height:40px;font-size:36px;line-height:40px;font-family:serif;position:absolute;top:5px;right:8px;cursor:pointer;color:#ccc;-webkit-transition:color .1s ease;transition:color .1s ease}.swal2-modal .swal2-close:hover{color:#d55}.swal2-modal>.swal2-checkbox,.swal2-modal>.swal2-file,.swal2-modal>.swal2-input,.swal2-modal>.swal2-radio,.swal2-modal>.swal2-select,.swal2-modal>.swal2-textarea{display:none}.swal2-modal .swal2-content{font-size:18px;text-align:center;font-weight:300;position:relative;float:none;margin:0;padding:0;line-height:normal;color:#545454;word-wrap:break-word}.swal2-modal .swal2-checkbox,.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-radio,.swal2-modal .swal2-select,.swal2-modal .swal2-textarea{margin:20px auto}.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;border-radius:3px;border:1px solid #d9d9d9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.06);box-shadow:inset 0 1px 1px rgba(0,0,0,.06);-webkit-transition:border-color box-shadow .3s;transition:border-color box-shadow .3s}.swal2-modal .swal2-file.swal2-inputerror,.swal2-modal .swal2-input.swal2-inputerror,.swal2-modal .swal2-textarea.swal2-inputerror{border-color:#f27474!important;-webkit-box-shadow:0 0 2px #f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-modal .swal2-file:focus,.swal2-modal .swal2-input:focus,.swal2-modal .swal2-textarea:focus{outline:0;border:1px solid #b4dbed;-webkit-box-shadow:0 0 3px #c4e6f5;box-shadow:0 0 3px #c4e6f5}.swal2-modal .swal2-file:focus::-webkit-input-placeholder,.swal2-modal .swal2-input:focus::-webkit-input-placeholder,.swal2-modal .swal2-textarea:focus::-webkit-input-placeholder{-webkit-transition:opacity .3s .03s ease;transition:opacity .3s .03s ease;opacity:.8}.swal2-modal .swal2-file:focus:-ms-input-placeholder,.swal2-modal .swal2-input:focus:-ms-input-placeholder,.swal2-modal .swal2-textarea:focus:-ms-input-placeholder{-webkit-transition:opacity .3s .03s ease;transition:opacity .3s .03s ease;opacity:.8}.swal2-modal .swal2-file:focus::placeholder,.swal2-modal .swal2-input:focus::placeholder,.swal2-modal .swal2-textarea:focus::placeholder{-webkit-transition:opacity .3s .03s ease;transition:opacity .3s .03s ease;opacity:.8}.swal2-modal .swal2-file::-webkit-input-placeholder,.swal2-modal .swal2-input::-webkit-input-placeholder,.swal2-modal .swal2-textarea::-webkit-input-placeholder{color:#e6e6e6}.swal2-modal .swal2-file:-ms-input-placeholder,.swal2-modal .swal2-input:-ms-input-placeholder,.swal2-modal .swal2-textarea:-ms-input-placeholder{color:#e6e6e6}.swal2-modal .swal2-file::placeholder,.swal2-modal .swal2-input::placeholder,.swal2-modal .swal2-textarea::placeholder{color:#e6e6e6}.swal2-modal .swal2-range input{float:left;width:80%}.swal2-modal .swal2-range output{float:right;width:20%;font-size:20px;font-weight:600;text-align:center}.swal2-modal .swal2-range input,.swal2-modal .swal2-range output{height:43px;line-height:43px;vertical-align:middle;margin:20px auto;padding:0}.swal2-modal .swal2-input{height:43px;padding:0 12px}.swal2-modal .swal2-input[type=number]{max-width:150px}.swal2-modal .swal2-file{font-size:20px}.swal2-modal .swal2-textarea{height:108px;padding:12px}.swal2-modal .swal2-select{color:#545454;font-size:inherit;padding:5px 10px;min-width:40%;max-width:100%}.swal2-modal .swal2-radio{border:0}.swal2-modal .swal2-radio label:not(:first-child){margin-left:20px}.swal2-modal .swal2-radio input,.swal2-modal .swal2-radio span{vertical-align:middle}.swal2-modal .swal2-radio input{margin:0 3px 0 0}.swal2-modal .swal2-checkbox{color:#545454}.swal2-modal .swal2-checkbox input,.swal2-modal .swal2-checkbox span{vertical-align:middle}.swal2-modal .swal2-validationerror{background-color:#f0f0f0;margin:0 -20px;overflow:hidden;padding:10px;color:gray;font-size:16px;font-weight:300;display:none}.swal2-modal .swal2-validationerror::before{content:'!';display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:10px}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}.swal2-icon{width:80px;height:80px;border:4px solid transparent;border-radius:50%;margin:20px auto 30px;padding:0;position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;display:block}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.swal2-icon.swal2-warning{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#f8bb86;border-color:#facea8;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-info{font-family:'Open Sans',sans-serif;color:#3fc3ee;border-color:#9de0f6;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-question{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#87adbd;border-color:#c9dae1;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{border-radius:50%;position:absolute;width:60px;height:120px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.swal2-icon.swal2-success .swal2-success-ring{width:80px;height:80px;border:4px solid rgba(165,220,134,.2);border-radius:50%;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal2-icon.swal2-success .swal2-success-fix{width:7px;height:90px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-progresssteps{font-weight:600;margin:0 0 20px;padding:0}.swal2-progresssteps li{display:inline-block;position:relative}.swal2-progresssteps .swal2-progresscircle{background:#3085d6;border-radius:2em;color:#fff;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}.swal2-progresssteps .swal2-progresscircle:first-child{margin-left:0}.swal2-progresssteps .swal2-progresscircle:last-child{margin-right:0}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep{background:#3085d6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progresscircle{background:#add8e6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progressline{background:#add8e6}.swal2-progresssteps .swal2-progressline{background:#3085d6;height:.4em;margin:0 -1px;z-index:10}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}.swal2-show{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:hideSweetAlert .15s forwards;animation:hideSweetAlert .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.swal2-animate-success-line-tip{-webkit-animation:animate-success-tip .75s;animation:animate-success-tip .75s}.swal2-animate-success-line-long{-webkit-animation:animate-success-long .75s;animation:animate-success-long .75s}.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}.swal2-animate-error-icon{-webkit-animation:animate-error-icon .5s;animation:animate-error-icon .5s}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal2-animate-x-mark{-webkit-animation:animate-x-mark .5s;animation:animate-x-mark .5s}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
|
1 |
+
.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.leave-russia-now-and-apply-your-skills-to-the-world{display:flex;position:fixed;z-index:1939;top:0;right:0;bottom:0;left:0;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;background:#20232a;color:#fff;text-align:center}.leave-russia-now-and-apply-your-skills-to-the-world div{max-width:560px;margin:10px;line-height:146%}.leave-russia-now-and-apply-your-skills-to-the-world iframe{max-width:100%;max-height:55.5555555556vmin;margin:16px auto}.leave-russia-now-and-apply-your-skills-to-the-world strong{border-bottom:2px dashed #fff}.leave-russia-now-and-apply-your-skills-to-the-world button{display:flex;position:fixed;z-index:1940;top:0;right:0;align-items:center;justify-content:center;width:48px;height:48px;margin-right:10px;margin-bottom:-10px;border:none;background:0 0;color:#aaa;font-size:48px;font-weight:700;cursor:pointer}.leave-russia-now-and-apply-your-skills-to-the-world button:hover{color:#fff}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}
|
assets/vendor/sweetalert2/dist/sweetalert2.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Sweetalert2=t()}(this,function(){"use strict";var e={title:"",titleText:"",text:"",html:"",type:null,customClass:"",target:"body",animation:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,showConfirmButton:!0,showCancelButton:!1,preConfirm:null,confirmButtonText:"OK",confirmButtonColor:"#3085d6",confirmButtonClass:null,cancelButtonText:"Cancel",cancelButtonColor:"#aaa",cancelButtonClass:null,buttonsStyling:!0,reverseButtons:!1,focusCancel:!1,showCloseButton:!1,showLoaderOnConfirm:!1,imageUrl:null,imageWidth:null,imageHeight:null,imageClass:null,timer:null,width:500,padding:20,background:"#fff",input:null,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputClass:null,inputAttributes:{},inputValidator:null,progressSteps:[],currentProgressStep:null,progressStepsDistance:"40px",onOpen:null,onClose:null,useRejections:!0},t=function(e){var t={};for(var n in e)t[e[n]]="swal2-"+e[n];return t},n=t(["container","shown","iosfix","modal","overlay","fade","show","hide","noanimation","close","title","content","buttonswrapper","confirm","cancel","icon","image","input","file","range","select","radio","checkbox","textarea","inputerror","validationerror","progresssteps","activeprogressstep","progresscircle","progressline","loading","styled"]),o=t(["success","warning","info","question","error"]),r=function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var n="#",o=0;o<3;o++){var r=parseInt(e.substr(2*o,2),16);n+=("00"+(r=Math.round(Math.min(Math.max(0,r+r*t),255)).toString(16))).substr(r.length)}return n},i=function(e){var t=[];for(var n in e)-1===t.indexOf(e[n])&&t.push(e[n]);return t},a={previousWindowKeyDown:null,previousActiveElement:null,previousBodyPadding:null},l=function(e){if("undefined"==typeof document)return void console.error("SweetAlert2 requires document to initialize");var t=document.createElement("div");t.className=n.container,t.innerHTML=s;var o=document.querySelector(e.target);o||(console.warn("SweetAlert2: Can't find the target \""+e.target+'"'),o=document.body),o.appendChild(t);var r=c(),i=A(r,n.input),a=A(r,n.file),l=r.querySelector("."+n.range+" input"),u=r.querySelector("."+n.range+" output"),d=A(r,n.select),p=r.querySelector("."+n.checkbox+" input"),f=A(r,n.textarea);return i.oninput=function(){J.resetValidationError()},i.onkeydown=function(t){setTimeout(function(){13===t.keyCode&&e.allowEnterKey&&(t.stopPropagation(),J.clickConfirm())},0)},a.onchange=function(){J.resetValidationError()},l.oninput=function(){J.resetValidationError(),u.value=l.value},l.onchange=function(){J.resetValidationError(),l.previousSibling.value=l.value},d.onchange=function(){J.resetValidationError()},p.onchange=function(){J.resetValidationError()},f.oninput=function(){J.resetValidationError()},r},s=('\n <div role="dialog" aria-labelledby="'+n.title+'" aria-describedby="'+n.content+'" class="'+n.modal+'" tabindex="-1">\n <ul class="'+n.progresssteps+'"></ul>\n <div class="'+n.icon+" "+o.error+'">\n <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n </div>\n <div class="'+n.icon+" "+o.question+'">?</div>\n <div class="'+n.icon+" "+o.warning+'">!</div>\n <div class="'+n.icon+" "+o.info+'">i</div>\n <div class="'+n.icon+" "+o.success+'">\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n </div>\n <img class="'+n.image+'">\n <h2 class="'+n.title+'" id="'+n.title+'"></h2>\n <div id="'+n.content+'" class="'+n.content+'"></div>\n <input class="'+n.input+'">\n <input type="file" class="'+n.file+'">\n <div class="'+n.range+'">\n <output></output>\n <input type="range">\n </div>\n <select class="'+n.select+'"></select>\n <div class="'+n.radio+'"></div>\n <label for="'+n.checkbox+'" class="'+n.checkbox+'">\n <input type="checkbox">\n </label>\n <textarea class="'+n.textarea+'"></textarea>\n <div class="'+n.validationerror+'"></div>\n <div class="'+n.buttonswrapper+'">\n <button type="button" class="'+n.confirm+'">OK</button>\n <button type="button" class="'+n.cancel+'">Cancel</button>\n </div>\n <button type="button" class="'+n.close+'" aria-label="Close this dialog">×</button>\n </div>\n').replace(/(^|\n)\s*/g,""),u=function(){return document.body.querySelector("."+n.container)},c=function(){return u()?u().querySelector("."+n.modal):null},d=function(){return c().querySelectorAll("."+n.icon)},p=function(e){return u()?u().querySelector("."+e):null},f=function(){return p(n.title)},m=function(){return p(n.content)},v=function(){return p(n.image)},h=function(){return p(n.buttonswrapper)},g=function(){return p(n.progresssteps)},y=function(){return p(n.validationerror)},b=function(){return p(n.confirm)},w=function(){return p(n.cancel)},C=function(){return p(n.close)},k=function(e){var t=[b(),w()];e&&t.reverse();var n=t.concat(Array.prototype.slice.call(c().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])')));return i(n)},x=function(e,t){return!!e.classList&&e.classList.contains(t)},S=function(e){if(e.focus(),"file"!==e.type){var t=e.value;e.value="",e.value=t}},E=function(e,t){e&&t&&t.split(/\s+/).filter(Boolean).forEach(function(t){e.classList.add(t)})},B=function(e,t){e&&t&&t.split(/\s+/).filter(Boolean).forEach(function(t){e.classList.remove(t)})},A=function(e,t){for(var n=0;n<e.childNodes.length;n++)if(x(e.childNodes[n],t))return e.childNodes[n]},P=function(e,t){t||(t="block"),e.style.opacity="",e.style.display=t},T=function(e){e.style.opacity="",e.style.display="none"},L=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},M=function(e){return e.offsetWidth||e.offsetHeight||e.getClientRects().length},q=function(e,t){e.style.removeProperty?e.style.removeProperty(t):e.style.removeAttribute(t)},V=function(e){if(!M(e))return!1;if("function"==typeof MouseEvent){var t=new MouseEvent("click",{view:window,bubbles:!1,cancelable:!0});e.dispatchEvent(t)}else if(document.createEvent){var n=document.createEvent("MouseEvents");n.initEvent("click",!1,!1),e.dispatchEvent(n)}else document.createEventObject?e.fireEvent("onclick"):"function"==typeof e.onclick&&e.onclick()},O=function(){var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",msAnimation:"MSAnimationEnd",animation:"animationend"};for(var n in t)if(t.hasOwnProperty(n)&&void 0!==e.style[n])return t[n];return!1}(),H=function(){if(window.onkeydown=a.previousWindowKeyDown,a.previousActiveElement&&a.previousActiveElement.focus){var e=window.scrollX,t=window.scrollY;a.previousActiveElement.focus(),e&&t&&window.scrollTo(e,t)}},N=function(){if("ontouchstart"in window||navigator.msMaxTouchPoints)return 0;var e=document.createElement("div");e.style.width="50px",e.style.height="50px",e.style.overflow="scroll",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t},j=function(e,t){var n=void 0;return function(){var o=function(){n=null,e()};clearTimeout(n),n=setTimeout(o,t)}},R="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},I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},K=I({},e),D=[],W=void 0,U=function(t){var r=c()||l(t);for(var i in t)e.hasOwnProperty(i)||"extraParams"===i||console.warn('SweetAlert2: Unknown parameter "'+i+'"');r.style.width="number"==typeof t.width?t.width+"px":t.width,r.style.padding=t.padding+"px",r.style.background=t.background;for(var a=r.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),s=0;s<a.length;s++)a[s].style.background=t.background;var u=f(),p=m(),y=h(),k=b(),x=w(),S=C();if(t.titleText?u.innerText=t.titleText:u.innerHTML=t.title.split("\n").join("<br>"),t.text||t.html){if("object"===R(t.html))if(p.innerHTML="",0 in t.html)for(var A=0;A in t.html;A++)p.appendChild(t.html[A].cloneNode(!0));else p.appendChild(t.html.cloneNode(!0));else t.html?p.innerHTML=t.html:t.text&&(p.textContent=t.text);P(p)}else T(p);t.showCloseButton?P(S):T(S),r.className=n.modal,t.customClass&&E(r,t.customClass);var M=g(),V=parseInt(null===t.currentProgressStep?J.getQueueStep():t.currentProgressStep,10);t.progressSteps.length?(P(M),L(M),V>=t.progressSteps.length&&console.warn("SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),t.progressSteps.forEach(function(e,o){var r=document.createElement("li");if(E(r,n.progresscircle),r.innerHTML=e,o===V&&E(r,n.activeprogressstep),M.appendChild(r),o!==t.progressSteps.length-1){var i=document.createElement("li");E(i,n.progressline),i.style.width=t.progressStepsDistance,M.appendChild(i)}})):T(M);for(var O=d(),H=0;H<O.length;H++)T(O[H]);if(t.type){var N=!1;for(var j in o)if(t.type===j){N=!0;break}if(!N)return console.error("SweetAlert2: Unknown alert type: "+t.type),!1;var I=r.querySelector("."+n.icon+"."+o[t.type]);if(P(I),t.animation)switch(t.type){case"success":E(I,"swal2-animate-success-icon"),E(I.querySelector(".swal2-success-line-tip"),"swal2-animate-success-line-tip"),E(I.querySelector(".swal2-success-line-long"),"swal2-animate-success-line-long");break;case"error":E(I,"swal2-animate-error-icon"),E(I.querySelector(".swal2-x-mark"),"swal2-animate-x-mark")}}var K=v();t.imageUrl?(K.setAttribute("src",t.imageUrl),P(K),t.imageWidth?K.setAttribute("width",t.imageWidth):K.removeAttribute("width"),t.imageHeight?K.setAttribute("height",t.imageHeight):K.removeAttribute("height"),K.className=n.image,t.imageClass&&E(K,t.imageClass)):T(K),t.showCancelButton?x.style.display="inline-block":T(x),t.showConfirmButton?q(k,"display"):T(k),t.showConfirmButton||t.showCancelButton?P(y):T(y),k.innerHTML=t.confirmButtonText,x.innerHTML=t.cancelButtonText,t.buttonsStyling&&(k.style.backgroundColor=t.confirmButtonColor,x.style.backgroundColor=t.cancelButtonColor),k.className=n.confirm,E(k,t.confirmButtonClass),x.className=n.cancel,E(x,t.cancelButtonClass),t.buttonsStyling?(E(k,n.styled),E(x,n.styled)):(B(k,n.styled),B(x,n.styled),k.style.backgroundColor=k.style.borderLeftColor=k.style.borderRightColor="",x.style.backgroundColor=x.style.borderLeftColor=x.style.borderRightColor=""),!0===t.animation?B(r,n.noanimation):E(r,n.noanimation)},z=function(e,t){var o=u(),r=c();e?(E(r,n.show),E(o,n.fade),B(r,n.hide)):B(r,n.fade),P(r),o.style.overflowY="hidden",O&&!x(r,n.noanimation)?r.addEventListener(O,function e(){r.removeEventListener(O,e),o.style.overflowY="auto"}):o.style.overflowY="auto",E(document.documentElement,n.shown),E(document.body,n.shown),E(o,n.shown),Q(),Z(),a.previousActiveElement=document.activeElement,null!==t&&"function"==typeof t&&setTimeout(function(){t(r)})},Q=function(){null===a.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(a.previousBodyPadding=document.body.style.paddingRight,document.body.style.paddingRight=N()+"px")},Y=function(){null!==a.previousBodyPadding&&(document.body.style.paddingRight=a.previousBodyPadding,a.previousBodyPadding=null)},Z=function(){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&!x(document.body,n.iosfix)){var e=document.body.scrollTop;document.body.style.top=-1*e+"px",E(document.body,n.iosfix)}},$=function(){if(x(document.body,n.iosfix)){var e=parseInt(document.body.style.top,10);B(document.body,n.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},J=function e(){for(var t=arguments.length,o=Array(t),i=0;i<t;i++)o[i]=arguments[i];if(void 0===o[0])return console.error("SweetAlert2 expects at least 1 attribute!"),!1;var l=I({},K);switch(R(o[0])){case"string":l.title=o[0],l.html=o[1],l.type=o[2];break;case"object":I(l,o[0]),l.extraParams=o[0].extraParams,"email"===l.input&&null===l.inputValidator&&(l.inputValidator=function(e){return new Promise(function(t,n){/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/.test(e)?t():n("Invalid email address")})}),"url"===l.input&&null===l.inputValidator&&(l.inputValidator=function(e){return new Promise(function(t,n){/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/.test(e)?t():n("Invalid URL")})});break;default:return console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got '+R(o[0])),!1}U(l);var s=u(),d=c();return new Promise(function(t,o){l.timer&&(d.timeout=setTimeout(function(){e.closeModal(l.onClose),l.useRejections?o("timer"):t({dismiss:"timer"})},l.timer));var i=function(e){if(!(e=e||l.input))return null;switch(e){case"select":case"textarea":case"file":return A(d,n[e]);case"checkbox":return d.querySelector("."+n.checkbox+" input");case"radio":return d.querySelector("."+n.radio+" input:checked")||d.querySelector("."+n.radio+" input:first-child");case"range":return d.querySelector("."+n.range+" input");default:return A(d,n.input)}},p=function(){var e=i();if(!e)return null;switch(l.input){case"checkbox":return e.checked?1:0;case"radio":return e.checked?e.value:null;case"file":return e.files.length?e.files[0]:null;default:return l.inputAutoTrim?e.value.trim():e.value}};l.input&&setTimeout(function(){var e=i();e&&S(e)},0);for(var x=function(n){l.showLoaderOnConfirm&&e.showLoading(),l.preConfirm?l.preConfirm(n,l.extraParams).then(function(o){e.closeModal(l.onClose),t(o||n)},function(t){e.hideLoading(),t&&e.showValidationError(t)}):(e.closeModal(l.onClose),t(l.useRejections?n:{value:n}))},L=function(n){var i=n||window.event,a=i.target||i.srcElement,s=b(),u=w(),c=s&&(s===a||s.contains(a)),d=u&&(u===a||u.contains(a));switch(i.type){case"mouseover":case"mouseup":l.buttonsStyling&&(c?s.style.backgroundColor=r(l.confirmButtonColor,-.1):d&&(u.style.backgroundColor=r(l.cancelButtonColor,-.1)));break;case"mouseout":l.buttonsStyling&&(c?s.style.backgroundColor=l.confirmButtonColor:d&&(u.style.backgroundColor=l.cancelButtonColor));break;case"mousedown":l.buttonsStyling&&(c?s.style.backgroundColor=r(l.confirmButtonColor,-.2):d&&(u.style.backgroundColor=r(l.cancelButtonColor,-.2)));break;case"click":if(c&&e.isVisible())if(e.disableButtons(),l.input){var f=p();l.inputValidator?(e.disableInput(),l.inputValidator(f,l.extraParams).then(function(){e.enableButtons(),e.enableInput(),x(f)},function(t){e.enableButtons(),e.enableInput(),t&&e.showValidationError(t)})):x(f)}else x(!0);else d&&e.isVisible()&&(e.disableButtons(),e.closeModal(l.onClose),l.useRejections?o("cancel"):t({dismiss:"cancel"}))}},q=d.querySelectorAll("button"),O=0;O<q.length;O++)q[O].onclick=L,q[O].onmouseover=L,q[O].onmouseout=L,q[O].onmousedown=L;C().onclick=function(){e.closeModal(l.onClose),l.useRejections?o("close"):t({dismiss:"close"})},s.onclick=function(n){n.target===s&&l.allowOutsideClick&&(e.closeModal(l.onClose),l.useRejections?o("overlay"):t({dismiss:"overlay"}))};var H=h(),N=b(),I=w();l.reverseButtons?N.parentNode.insertBefore(I,N):N.parentNode.insertBefore(N,I);var K=function(e,t){for(var n=k(l.focusCancel),o=0;o<n.length;o++){(e+=t)===n.length?e=0:-1===e&&(e=n.length-1);var r=n[e];if(M(r))return r.focus()}},D=function(n){var r=n||window.event,i=r.keyCode||r.which;if(-1!==[9,13,32,27,37,38,39,40].indexOf(i)){for(var a=r.target||r.srcElement,s=k(l.focusCancel),u=-1,c=0;c<s.length;c++)if(a===s[c]){u=c;break}9===i?(r.shiftKey?K(u,-1):K(u,1),r.stopPropagation(),r.preventDefault()):37===i||38===i||39===i||40===i?document.activeElement===N&&M(I)?I.focus():document.activeElement===I&&M(N)&&N.focus():13===i||32===i?-1===u&&l.allowEnterKey&&(V(l.focusCancel?I:N),r.stopPropagation(),r.preventDefault()):27===i&&!0===l.allowEscapeKey&&(e.closeModal(l.onClose),l.useRejections?o("esc"):t({dismiss:"esc"}))}};window.onkeydown&&window.onkeydown.toString()===D.toString()||(a.previousWindowKeyDown=window.onkeydown,window.onkeydown=D),l.buttonsStyling&&(N.style.borderLeftColor=l.confirmButtonColor,N.style.borderRightColor=l.confirmButtonColor),e.hideLoading=e.disableLoading=function(){l.showConfirmButton||(T(N),l.showCancelButton||T(h())),B(H,n.loading),B(d,n.loading),N.disabled=!1,I.disabled=!1},e.getTitle=function(){return f()},e.getContent=function(){return m()},e.getInput=function(){return i()},e.getImage=function(){return v()},e.getButtonsWrapper=function(){return h()},e.getConfirmButton=function(){return b()},e.getCancelButton=function(){return w()},e.enableButtons=function(){N.disabled=!1,I.disabled=!1},e.disableButtons=function(){N.disabled=!0,I.disabled=!0},e.enableConfirmButton=function(){N.disabled=!1},e.disableConfirmButton=function(){N.disabled=!0},e.enableInput=function(){var e=i();if(!e)return!1;if("radio"===e.type)for(var t=e.parentNode.parentNode.querySelectorAll("input"),n=0;n<t.length;n++)t[n].disabled=!1;else e.disabled=!1},e.disableInput=function(){var e=i();if(!e)return!1;if(e&&"radio"===e.type)for(var t=e.parentNode.parentNode.querySelectorAll("input"),n=0;n<t.length;n++)t[n].disabled=!0;else e.disabled=!0},e.recalculateHeight=j(function(){var e=c();if(e){var t=e.style.display;e.style.minHeight="",P(e),e.style.minHeight=e.scrollHeight+1+"px",e.style.display=t}},50),e.showValidationError=function(e){var t=y();t.innerHTML=e,P(t);var o=i();o&&(S(o),E(o,n.inputerror))},e.resetValidationError=function(){var t=y();T(t),e.recalculateHeight();var o=i();o&&B(o,n.inputerror)},e.getProgressSteps=function(){return l.progressSteps},e.setProgressSteps=function(e){l.progressSteps=e,U(l)},e.showProgressSteps=function(){P(g())},e.hideProgressSteps=function(){T(g())},e.enableButtons(),e.hideLoading(),e.resetValidationError();for(var Q=["input","file","range","select","radio","checkbox","textarea"],Y=void 0,Z=0;Z<Q.length;Z++){var $=n[Q[Z]],J=A(d,$);if(Y=i(Q[Z])){for(var X in Y.attributes)if(Y.attributes.hasOwnProperty(X)){var _=Y.attributes[X].name;"type"!==_&&"value"!==_&&Y.removeAttribute(_)}for(var F in l.inputAttributes)Y.setAttribute(F,l.inputAttributes[F])}J.className=$,l.inputClass&&E(J,l.inputClass),T(J)}var G=void 0;switch(l.input){case"text":case"email":case"password":case"number":case"tel":case"url":(Y=A(d,n.input)).value=l.inputValue,Y.placeholder=l.inputPlaceholder,Y.type=l.input,P(Y);break;case"file":(Y=A(d,n.file)).placeholder=l.inputPlaceholder,Y.type=l.input,P(Y);break;case"range":var ee=A(d,n.range),te=ee.querySelector("input"),ne=ee.querySelector("output");te.value=l.inputValue,te.type=l.input,ne.value=l.inputValue,P(ee);break;case"select":var oe=A(d,n.select);if(oe.innerHTML="",l.inputPlaceholder){var re=document.createElement("option");re.innerHTML=l.inputPlaceholder,re.value="",re.disabled=!0,re.selected=!0,oe.appendChild(re)}G=function(e){for(var t in e){var n=document.createElement("option");n.value=t,n.innerHTML=e[t],l.inputValue===t&&(n.selected=!0),oe.appendChild(n)}P(oe),oe.focus()};break;case"radio":var ie=A(d,n.radio);ie.innerHTML="",G=function(e){for(var t in e){var o=document.createElement("input"),r=document.createElement("label"),i=document.createElement("span");o.type="radio",o.name=n.radio,o.value=t,l.inputValue===t&&(o.checked=!0),i.innerHTML=e[t],r.appendChild(o),r.appendChild(i),r.for=o.id,ie.appendChild(r)}P(ie);var a=ie.querySelectorAll("input");a.length&&a[0].focus()};break;case"checkbox":var ae=A(d,n.checkbox),le=i("checkbox");le.type="checkbox",le.value=1,le.id=n.checkbox,le.checked=Boolean(l.inputValue);var se=ae.getElementsByTagName("span");se.length&&ae.removeChild(se[0]),(se=document.createElement("span")).innerHTML=l.inputPlaceholder,ae.appendChild(se),P(ae);break;case"textarea":var ue=A(d,n.textarea);ue.value=l.inputValue,ue.placeholder=l.inputPlaceholder,P(ue);break;case null:break;default:console.error('SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'+l.input+'"')}"select"!==l.input&&"radio"!==l.input||(l.inputOptions instanceof Promise?(e.showLoading(),l.inputOptions.then(function(t){e.hideLoading(),G(t)})):"object"===R(l.inputOptions)?G(l.inputOptions):console.error("SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got "+R(l.inputOptions))),z(l.animation,l.onOpen),l.allowEnterKey?K(-1,1):document.activeElement&&document.activeElement.blur(),u().scrollTop=0,"undefined"==typeof MutationObserver||W||(W=new MutationObserver(e.recalculateHeight)).observe(d,{childList:!0,characterData:!0,subtree:!0})})};return J.isVisible=function(){return!!c()},J.queue=function(e){D=e;var t=function(){D=[],document.body.removeAttribute("data-swal2-queue-step")},n=[];return new Promise(function(e,o){!function r(i,a){i<D.length?(document.body.setAttribute("data-swal2-queue-step",i),J(D[i]).then(function(e){n.push(e),r(i+1,a)},function(e){t(),o(e)})):(t(),e(n))}(0)})},J.getQueueStep=function(){return document.body.getAttribute("data-swal2-queue-step")},J.insertQueueStep=function(e,t){return t&&t<D.length?D.splice(t,0,e):D.push(e)},J.deleteQueueStep=function(e){void 0!==D[e]&&D.splice(e,1)},J.close=J.closeModal=function(e){var t=u(),o=c();if(o){B(o,n.show),E(o,n.hide),clearTimeout(o.timeout),H();var r=function(){t.parentNode&&t.parentNode.removeChild(t),B(document.documentElement,n.shown),B(document.body,n.shown),Y(),$()};O&&!x(o,n.noanimation)?o.addEventListener(O,function e(){o.removeEventListener(O,e),x(o,n.hide)&&r()}):r(),null!==e&&"function"==typeof e&&setTimeout(function(){e(o)})}},J.clickConfirm=function(){return b().click()},J.clickCancel=function(){return w().click()},J.showLoading=J.enableLoading=function(){var e=c();e||J("");var t=h(),o=b(),r=w();P(t),P(o,"inline-block"),E(t,n.loading),E(e,n.loading),o.disabled=!0,r.disabled=!0},J.setDefaults=function(t){if(!t||"object"!==(void 0===t?"undefined":R(t)))return console.error("SweetAlert2: the argument for setDefaults() is required and has to be a object");for(var n in t)e.hasOwnProperty(n)||"extraParams"===n||(console.warn('SweetAlert2: Unknown parameter "'+n+'"'),delete t[n]);I(K,t)},J.resetDefaults=function(){K=I({},e)},J.noop=function(){},J.version="6.6.4",J.default=J,J}),window.Sweetalert2&&(window.sweetAlert=window.swal=window.Sweetalert2);
|
1 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const D="SweetAlert2:",q=e=>e.charAt(0).toUpperCase()+e.slice(1),r=e=>{console.warn("".concat(D," ").concat("object"==typeof e?e.join(" "):e))},l=e=>{console.error("".concat(D," ").concat(e))},V=[],N=(e,t)=>{e='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),V.includes(e)||(V.push(e),r(e))},R=e=>"function"==typeof e?e():e,F=e=>e&&"function"==typeof e.toPromise,u=e=>F(e)?e.toPromise():Promise.resolve(e),U=e=>e&&Promise.resolve(e)===e;const i={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},W=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],z={},K=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],_=e=>Object.prototype.hasOwnProperty.call(i,e),Y=e=>-1!==W.indexOf(e),Z=e=>z[e],X=e=>{!e.backdrop&&e.allowOutsideClick&&r('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const n in e)t=n,_(t)||r('Unknown parameter "'.concat(t,'"')),e.toast&&(t=n,K.includes(t)&&r('The parameter "'.concat(t,'" is incompatible with toasts'))),t=n,Z(t)&&N(t,Z(t));var t};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const p=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","no-war"]),o=e(["success","warning","info","question","error"]),m=()=>document.body.querySelector(".".concat(p.container)),t=e=>{const t=m();return t?t.querySelector(e):null},n=e=>t(".".concat(e)),g=()=>n(p.popup),$=()=>n(p.icon),J=()=>n(p.title),G=()=>n(p["html-container"]),Q=()=>n(p.image),ee=()=>n(p["progress-steps"]),te=()=>n(p["validation-message"]),h=()=>t(".".concat(p.actions," .").concat(p.confirm)),f=()=>t(".".concat(p.actions," .").concat(p.deny));const d=()=>t(".".concat(p.loader)),b=()=>t(".".concat(p.actions," .").concat(p.cancel)),ne=()=>n(p.actions),oe=()=>n(p.footer),ie=()=>n(p["timer-progress-bar"]),re=()=>n(p.close),ae=()=>{const e=Array.from(g().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>{e=parseInt(e.getAttribute("tabindex")),t=parseInt(t.getAttribute("tabindex"));return t<e?1:e<t?-1:0});var t=Array.from(g().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(e=>"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;e<t.length;e++)-1===n.indexOf(t[e])&&n.push(t[e]);return n})(e.concat(t)).filter(e=>P(e))},se=()=>s(document.body,p.shown)&&!s(document.body,p["toast-shown"])&&!s(document.body,p["no-backdrop"]),ce=()=>g()&&s(g(),p.toast);function le(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];const n=ie();P(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout(()=>{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const a={previousBodyPadding:null},y=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");Array.from(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),Array.from(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},s=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e<n.length;e++)if(!t.classList.contains(n[e]))return!1;return!0},ue=(t,n)=>{Array.from(t.classList).forEach(e=>{Object.values(p).includes(e)||Object.values(o).includes(e)||Object.values(n.showClass).includes(e)||t.classList.remove(e)})},v=(e,t,n)=>{if(ue(e,t),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return r("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));w(e,t.customClass[n])}},de=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(p.popup," > .").concat(p[t]));case"checkbox":return e.querySelector(".".concat(p.popup," > .").concat(p.checkbox," input"));case"radio":return e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:checked"))||e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:first-child"));case"range":return e.querySelector(".".concat(p.popup," > .").concat(p.range," input"));default:return e.querySelector(".".concat(p.popup," > .").concat(p.input))}},pe=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},me=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},w=(e,t)=>{me(e,t,!0)},C=(e,t)=>{me(e,t,!1)},A=(e,t)=>{var n=Array.from(e.children);for(let e=0;e<n.length;e++){var o=n[e];if(o instanceof HTMLElement&&s(o,t))return o}},c=(e,t,n)=>{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},k=function(e){e.style.display=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"flex"},B=e=>{e.style.display="none"},ge=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},he=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"flex";t?k(e,n):B(e)},P=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),fe=()=>!P(h())&&!P(f())&&!P(b()),be=e=>!!(e.scrollHeight>e.clientHeight),ye=e=>{const t=window.getComputedStyle(e);var e=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0<e||0<n},ve=()=>"undefined"==typeof window||"undefined"==typeof document,we=100,x={},Ce=()=>{x.previousActiveElement instanceof HTMLElement?(x.previousActiveElement.focus(),x.previousActiveElement=null):document.body&&document.body.focus()},Ae=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;x.restoreFocusTimeout=setTimeout(()=>{Ce(),e()},we),window.scrollTo(t,n)}),ke='\n <div aria-labelledby="'.concat(p.title,'" aria-describedby="').concat(p["html-container"],'" class="').concat(p.popup,'" tabindex="-1">\n <button type="button" class="').concat(p.close,'"></button>\n <ul class="').concat(p["progress-steps"],'"></ul>\n <div class="').concat(p.icon,'"></div>\n <img class="').concat(p.image,'" />\n <h2 class="').concat(p.title,'" id="').concat(p.title,'"></h2>\n <div class="').concat(p["html-container"],'" id="').concat(p["html-container"],'"></div>\n <input class="').concat(p.input,'" />\n <input type="file" class="').concat(p.file,'" />\n <div class="').concat(p.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(p.select,'"></select>\n <div class="').concat(p.radio,'"></div>\n <label for="').concat(p.checkbox,'" class="').concat(p.checkbox,'">\n <input type="checkbox" />\n <span class="').concat(p.label,'"></span>\n </label>\n <textarea class="').concat(p.textarea,'"></textarea>\n <div class="').concat(p["validation-message"],'" id="').concat(p["validation-message"],'"></div>\n <div class="').concat(p.actions,'">\n <div class="').concat(p.loader,'"></div>\n <button type="button" class="').concat(p.confirm,'"></button>\n <button type="button" class="').concat(p.deny,'"></button>\n <button type="button" class="').concat(p.cancel,'"></button>\n </div>\n <div class="').concat(p.footer,'"></div>\n <div class="').concat(p["timer-progress-bar-container"],'">\n <div class="').concat(p["timer-progress-bar"],'"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),Be=()=>{const e=m();return!!e&&(e.remove(),C([document.documentElement,document.body],[p["no-backdrop"],p["toast-shown"],p["has-column"]]),!0)},E=()=>{x.currentInstance.resetValidationMessage()},Pe=()=>{const e=g(),t=A(e,p.input),n=A(e,p.file),o=e.querySelector(".".concat(p.range," input")),i=e.querySelector(".".concat(p.range," output")),r=A(e,p.select),a=e.querySelector(".".concat(p.checkbox," input")),s=A(e,p.textarea);t.oninput=E,n.onchange=E,r.onchange=E,a.onchange=E,s.oninput=E,o.oninput=()=>{E(),i.value=o.value},o.onchange=()=>{E(),i.value=o.value}},xe=e=>"string"==typeof e?document.querySelector(e):e,Ee=e=>{const t=g();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},Te=e=>{"rtl"===window.getComputedStyle(e).direction&&w(m(),p.rtl)},Le=(e,t)=>{if(e instanceof HTMLElement)t.appendChild(e);else if("object"==typeof e){var n=e,o=t;if(n.jquery)Se(o,n);else y(o,n.toString())}else e&&y(t,e)},Se=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},Oe=(()=>{if(!ve()){var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n]}return!1})(),Me=(e,t)=>{var n,o,i,r,a,s=ne(),c=d();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?k:B)(s),v(s,t,"actions"),s=s,n=c,o=t,i=h(),r=f(),a=b(),je(i,"confirm",o),je(r,"deny",o),je(a,"cancel",o),function(e,t,n,o){if(!o.buttonsStyling)return C([e,t,n],p.styled);w([e,t,n],p.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,w(e,p["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,w(t,p["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,w(n,p["default-outline"]))}(i,r,a,o),o.reverseButtons&&(o.toast?(s.insertBefore(a,i),s.insertBefore(r,i)):(s.insertBefore(a,n),s.insertBefore(r,n),s.insertBefore(i,n))),y(c,t.loaderHtml),v(c,t,"loader")};function je(e,t,n){he(e,n["show".concat(q(t),"Button")],"inline-block"),y(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=p[t],v(e,n,"".concat(t,"Button")),w(e,n["".concat(t,"ButtonClass")])}const He=(e,t)=>{var n,o,i=m();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||w([document.documentElement,document.body],p["no-backdrop"]),o=i,(n=t.position)in p?w(o,p[n]):(r('The "position" parameter is not valid, defaulting to "center"'),w(o,p.center)),n=i,(o=t.grow)&&"string"==typeof o&&(o="grow-".concat(o))in p&&w(n,p[o]),v(i,t,"container"))};var T={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const Ie=["input","file","range","select","radio","checkbox","textarea"],De=(e,a)=>{const s=g();var t,e=T.innerParams.get(e);const c=!e||a.input!==e.input;Ie.forEach(e=>{const t=A(s,p[e]);{var n=e,o=a.inputAttributes;const i=de(g(),n);if(i){qe(i);for(const r in o)i.setAttribute(r,o[r])}}t.className=p[e],c&&B(t)}),a.input&&(c&&(e=>{if(!L[e.input])return l('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Re(e.input),n=L[e.input](t,e);k(t),setTimeout(()=>{pe(n)})})(a),e=a,t=Re(e.input),"object"==typeof e.customClass&&w(t,e.customClass.input))},qe=t=>{for(let e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;["type","value","style"].includes(n)||t.removeAttribute(n)}},Ve=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},Ne=(e,t,n)=>{if(n.inputLabel){e.id=p.input;const i=document.createElement("label");var o=p["input-label"];i.setAttribute("for",e.id),i.className=o,"object"==typeof n.customClass&&w(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Re=e=>A(g(),p[e]||p.input),Fe=(e,t)=>{["string","number"].includes(typeof t)?e.value="".concat(t):U(t)||r('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t,'"'))},L={},Ue=(L.text=L.email=L.password=L.number=L.tel=L.url=(e,t)=>(Fe(e,t.inputValue),Ne(e,e,t),Ve(e,t),e.type=t.input,e),L.file=(e,t)=>(Ne(e,e,t),Ve(e,t),e),L.range=(e,t)=>{const n=e.querySelector("input");var o=e.querySelector("output");return Fe(n,t.inputValue),n.type=t.input,Fe(o,t.inputValue),Ne(n,e,t),e},L.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");y(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return Ne(e,e,t),e},L.radio=e=>(e.textContent="",e),L.checkbox=(e,t)=>{const n=de(g(),"checkbox");n.value="1",n.id=p.checkbox,n.checked=Boolean(t.inputValue);e=e.querySelector("span");return y(e,t.inputPlaceholder),n},L.textarea=(n,e)=>{Fe(n,e.inputValue),Ve(n,e),Ne(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(g()).width);new MutationObserver(()=>{var e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?g().style.width="".concat(e,"px"):g().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n},(e,t)=>{const n=G();v(n,t,"htmlContainer"),t.html?(Le(t.html,n),k(n,"block")):t.text?(n.textContent=t.text,k(n,"block")):B(n),De(e,t)}),We=(e,t)=>{var n=oe();he(n,t.footer),t.footer&&Le(t.footer,n),v(n,t,"footer")},ze=(e,t)=>{const n=re();y(n,t.closeButtonHtml),v(n,t,"closeButton"),he(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},Ke=(e,t)=>{var e=T.innerParams.get(e),n=$();e&&t.icon===e.icon?($e(n,t),_e(n,t)):t.icon||t.iconHtml?t.icon&&-1===Object.keys(o).indexOf(t.icon)?(l('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),B(n)):(k(n),$e(n,t),_e(n,t),w(n,t.showClass.icon)):B(n)},_e=(e,t)=>{for(const n in o)t.icon!==n&&C(e,o[n]);w(e,o[t.icon]),Je(e,t),Ye(),v(e,t,"icon")},Ye=()=>{const e=g();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e<n.length;e++)n[e].style.backgroundColor=t},Ze='\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n',Xe='\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n',$e=(e,t)=>{let n=e.innerHTML,o;var i;t.iconHtml?o=Ge(t.iconHtml):"success"===t.icon?(o=Ze,n=n.replace(/ style=".*?"/g,"")):o="error"===t.icon?Xe:(i={question:"?",warning:"!",info:"i"},Ge(i[t.icon])),n.trim()!==o.trim()&&y(e,o)},Je=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])ge(e,n,"backgroundColor",t.iconColor);ge(e,".swal2-success-ring","borderColor",t.iconColor)}},Ge=e=>'<div class="'.concat(p["icon-content"],'">').concat(e,"</div>"),Qe=(e,t)=>{const n=Q();if(!t.imageUrl)return B(n);k(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),c(n,"width",t.imageWidth),c(n,"height",t.imageHeight),n.className=p.image,v(n,t,"image")},et=(e,n)=>{const o=ee();if(!n.progressSteps||0===n.progressSteps.length)return B(o);k(o),o.textContent="",n.currentProgressStep>=n.progressSteps.length&&r("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),n.progressSteps.forEach((e,t)=>{var e=(e=>{const t=document.createElement("li");return w(t,p["progress-step"]),y(t,e),t})(e);o.appendChild(e),t===n.currentProgressStep&&w(e,p["active-progress-step"]),t!==n.progressSteps.length-1&&(e=(e=>{const t=document.createElement("li");if(w(t,p["progress-step-line"]),e.progressStepsDistance)c(t,"width",e.progressStepsDistance);return t})(n),o.appendChild(e))})},tt=(e,t)=>{const n=J();he(n,t.title||t.titleText,"block"),t.title&&Le(t.title,n),t.titleText&&(n.innerText=t.titleText),v(n,t,"title")},nt=(e,t)=>{var n=m();const o=g();t.toast?(c(n,"width",t.width),o.style.width="100%",o.insertBefore(d(),$())):c(o,"width",t.width),c(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),B(te());n=o;(n.className="".concat(p.popup," ").concat(P(n)?t.showClass.popup:""),t.toast)?(w([document.documentElement,document.body],p["toast-shown"]),w(n,p.toast)):w(n,p.modal);v(n,t,"popup"),"string"==typeof t.customClass&&w(n,t.customClass);t.icon&&w(n,p["icon-".concat(t.icon)])},ot=(e,t)=>{nt(e,t),He(e,t),et(e,t),Ke(e,t),Qe(e,t),tt(e,t),ze(e,t),Ue(e,t),Me(e,t),We(e,t),"function"==typeof t.didRender&&t.didRender(g())},S=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),it=()=>{const e=Array.from(document.body.children);e.forEach(e=>{e===m()||e.contains(m())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},rt=()=>{const e=Array.from(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},at=["swal-title","swal-html","swal-footer"],st=e=>{const n={},t=Array.from(e.querySelectorAll("swal-param"));return t.forEach(e=>{O(e,["name","value"]);var t=e.getAttribute("name"),e=e.getAttribute("value");"boolean"==typeof i[t]&&"false"===e&&(n[t]=!1),"object"==typeof i[t]&&(n[t]=JSON.parse(e))}),n},ct=e=>{const n={},t=Array.from(e.querySelectorAll("swal-button"));return t.forEach(e=>{O(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(q(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},lt=e=>{const t={},n=e.querySelector("swal-image");return n&&(O(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},ut=e=>{const t={},n=e.querySelector("swal-icon");return n&&(O(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},dt=e=>{const n={},t=e.querySelector("swal-input"),o=(t&&(O(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value"))),Array.from(e.querySelectorAll("swal-input-option")));return o.length&&(n.inputOptions={},o.forEach(e=>{O(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},pt=(e,t)=>{const n={};for(const o in t){const i=t[o],r=e.querySelector(i);r&&(O(r,[]),n[i.replace(/^swal-/,"")]=r.innerHTML.trim())}return n},mt=e=>{const t=at.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&r("Unrecognized element <".concat(e,">"))})},O=(t,n)=>{Array.from(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&r(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var gt={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function ht(e){(t=e).inputValidator||Object.keys(gt).forEach(e=>{t.input===e&&(t.inputValidator=gt[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&r("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(r('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("<br />"));var t,n=e,e=Be();if(ve())l("SweetAlert2 requires document to initialize");else{const o=document.createElement("div"),i=(o.className=p.container,e&&w(o,p["no-transition"]),y(o,ke),xe(n.target));i.appendChild(o),Ee(n),Te(i),Pe()}}class ft{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const bt=()=>{null===a.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(a.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(a.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=p["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},yt=()=>{null!==a.previousBodyPadding&&(document.body.style.paddingRight="".concat(a.previousBodyPadding,"px"),a.previousBodyPadding=null)},vt=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!s(document.body,p.iosfix)){var e,t=document.body.scrollTop;document.body.style.top="".concat(-1*t,"px"),w(document.body,p.iosfix);{const n=m();let t;n.ontouchstart=e=>{t=wt(e)},n.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}}{const o=navigator.userAgent,i=!!o.match(/iPad/i)||!!o.match(/iPhone/i),r=!!o.match(/WebKit/i),a=i&&r&&!o.match(/CriOS/i);a&&(e=44,g().scrollHeight>window.innerHeight-44&&(m().style.paddingBottom="".concat(44,"px")))}}},wt=e=>{var t,n=e.target,o=m();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(t=e).touches&&1<t.touches.length)&&(n===o||!be(o)&&n instanceof HTMLElement&&"INPUT"!==n.tagName&&"TEXTAREA"!==n.tagName&&(!be(G())||!G().contains(n)))},Ct=()=>{var e;s(document.body,p.iosfix)&&(e=parseInt(document.body.style.top,10),C(document.body,p.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},At=10,kt=e=>{const t=g();if(e.target===t){const n=m();t.removeEventListener(Oe,kt),n.style.overflowY="auto"}},Bt=(e,t)=>{Oe&&ye(t)?(e.style.overflowY="hidden",t.addEventListener(Oe,kt)):e.style.overflowY="auto"},Pt=(e,t,n)=>{vt(),t&&"hidden"!==n&&bt(),setTimeout(()=>{e.scrollTop=0})},xt=(e,t,n)=>{w(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),k(t,"grid"),setTimeout(()=>{w(t,n.showClass.popup),t.style.removeProperty("opacity")},At),w([document.documentElement,document.body],p.shown),n.heightAuto&&n.backdrop&&!n.toast&&w([document.documentElement,document.body],p["height-auto"])},M=e=>{let t=g();t||new An,t=g();var n=d();if(ce())B($());else{var o=t;const i=ne(),r=d();!e&&P(h())&&(e=h());k(i),e&&(B(e),r.setAttribute("data-button-to-replace",e.className));r.parentNode.insertBefore(r,e),w([o,i],p.loading)}k(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},Et=(t,n)=>{const o=g(),i=e=>Lt[n.input](o,St(e),n);F(n.inputOptions)||U(n.inputOptions)?(M(h()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):l("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},Tt=(t,n)=>{const o=t.getInput();B(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),k(o),o.focus(),t.hideLoading()}).catch(e=>{l("Error in inputValue promise: ".concat(e)),o.value="",k(o),o.focus(),t.hideLoading()})},Lt={select:(e,t,i)=>{const r=A(e,p.select),a=(e,t,n)=>{const o=document.createElement("option");o.value=n,y(o,t),o.selected=Ot(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,r.appendChild(o),n.forEach(e=>a(o,e[1],e[0]))}else a(r,n,t)}),r.focus()},radio:(e,t,r)=>{const a=A(e,p.radio),n=(t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label"),i=(n.type="radio",n.name=p.radio,n.value=t,Ot(t,r.inputValue)&&(n.checked=!0),document.createElement("span"));y(i,e),i.className=p.label,o.appendChild(n),o.appendChild(i),a.appendChild(o)}),a.querySelectorAll("input"));n.length&&n[0].focus()}},St=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=St(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=St(t)),o.push([e,t])}),o},Ot=(e,t)=>t&&t.toString()===e.toString();function Mt(){var e,t=T.innerParams.get(this);if(t){const n=T.domCache.get(this);B(n.loader),ce()?t.icon&&k($()):(t=n,(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?k(e[0],"inline-block"):fe()&&B(t.actions)),C([n.popup,n.actions],p.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1}}var jt={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Ht=()=>h()&&h().click();const It=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Dt=(e,t,n)=>{const o=ae();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();g().focus()},qt=["ArrowRight","ArrowDown"],Vt=["ArrowLeft","ArrowUp"],Nt=(e,n,t)=>{var o=T.innerParams.get(e);if(o&&(!n.isComposing&&229!==n.keyCode))if(o.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key)e=e,s=n,i=o,R(i.allowEnterKey)&&s.target&&e.getInput()&&s.target instanceof HTMLElement&&s.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(Ht(),s.preventDefault()));else if("Tab"===n.key){e=n;var i=o;var r=e.target,a=ae();let t=-1;for(let e=0;e<a.length;e++)if(r===a[e]){t=e;break}e.shiftKey?Dt(i,t,-1):Dt(i,t,1);e.stopPropagation(),e.preventDefault()}else if([...qt,...Vt].includes(n.key)){var s=n.key;const l=h(),u=f(),d=b();if(!(document.activeElement instanceof HTMLElement)||[l,u,d].includes(document.activeElement)){var c=qt.includes(s)?"nextElementSibling":"previousElementSibling";let t=document.activeElement;for(let e=0;e<ne().children.length;e++){if(!(t=t[c]))return;if(t instanceof HTMLButtonElement&&P(t))break}t instanceof HTMLButtonElement&&t.focus()}}else if("Escape"===n.key){e=n,n=o,o=t;if(R(n.allowEscapeKey)){e.preventDefault();o(S.esc)}}};function Rt(e,t,n,o){ce()?zt(e,o):(Ae(n).then(()=>zt(e,o)),It(x)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),se()&&(yt(),Ct(),rt()),C([document.documentElement,document.body],[p.shown,p["height-auto"],p["no-backdrop"],p["toast-shown"]])}function Ft(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=jt.swalPromiseResolve.get(this);var n=(e=>{const t=g();if(!t)return false;const n=T.innerParams.get(e);if(!n||s(t,n.hideClass.popup))return false;C(t,n.showClass.popup),w(t,n.hideClass.popup);const o=m();return C(o,n.showClass.backdrop),w(o,n.hideClass.backdrop),Wt(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Ut(this),t(e)):n&&t(e)}const Ut=e=>{e.isAwaitingPromise()&&(T.awaitingPromise.delete(e),T.innerParams.get(e)||e._destroy())},Wt=(e,t,n)=>{var o,i,r,a=m(),s=Oe&&ye(t);"function"==typeof n.willClose&&n.willClose(t),s?(s=e,o=t,t=a,i=n.returnFocus,r=n.didClose,x.swalCloseEventFinishedCallback=Rt.bind(null,s,t,i,r),o.addEventListener(Oe,function(e){e.target===o&&(x.swalCloseEventFinishedCallback(),delete x.swalCloseEventFinishedCallback)})):Rt(e,a,n.returnFocus,n.didClose)},zt=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function Kt(e,t,n){const o=T.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function _t(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e<o.length;e++)o[e].disabled=t}else e.disabled=t}const Yt=e=>{e.isAwaitingPromise()?(Zt(T,e),T.awaitingPromise.set(e,!0)):(Zt(jt,e),Zt(T,e))},Zt=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Mt,disableLoading:Mt,getInput:function(e){var t=T.innerParams.get(e||this);return(e=T.domCache.get(e||this))?de(e.popup,t.input):null},close:Ft,isAwaitingPromise:function(){return!!T.awaitingPromise.get(this)},rejectPromise:function(e){const t=jt.swalPromiseReject.get(this);Ut(this),t&&t(e)},handleAwaitingPromise:Ut,closePopup:Ft,closeModal:Ft,closeToast:Ft,enableButtons:function(){Kt(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){Kt(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return _t(this.getInput(),!1)},disableInput:function(){return _t(this.getInput(),!0)},showValidationMessage:function(e){const t=T.domCache.get(this);var n=T.innerParams.get(this);y(t.validationMessage,e),t.validationMessage.className=p["validation-message"],n.customClass&&n.customClass.validationMessage&&w(t.validationMessage,n.customClass.validationMessage),k(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",p["validation-message"]),pe(o),w(o,p.inputerror))},resetValidationMessage:function(){var e=T.domCache.get(this);e.validationMessage&&B(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),C(t,p.inputerror))},getProgressSteps:function(){return T.domCache.get(this).progressSteps},update:function(e){var t=g(),n=T.innerParams.get(this);if(!t||s(t,n.hideClass.popup))return r("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");t=(t=>{const n={};return Object.keys(t).forEach(e=>{if(Y(e))n[e]=t[e];else r("Invalid parameter to update: ".concat(e))}),n})(e),n=Object.assign({},n,t),ot(this,n),T.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var e=T.domCache.get(this);const t=T.innerParams.get(this);t?(e.popup&&x.swalCloseEventFinishedCallback&&(x.swalCloseEventFinishedCallback(),delete x.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,Yt(e),delete e.params,delete x.keydownHandler,delete x.keydownTarget,delete x.currentInstance):Yt(this)}});const Xt=(e,t)=>{var n=T.innerParams.get(e);if(n.input){var o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);if(n.inputValidator){var i=e;var r=o;var a=t;const s=T.innerParams.get(i),c=(i.disableInput(),Promise.resolve().then(()=>u(s.inputValidator(r,s.validationMessage))));c.then(e=>{i.enableButtons(),i.enableInput(),e?i.showValidationMessage(e):("deny"===a?$t:Qt)(i,r)})}else e.getInput().checkValidity()?("deny"===t?$t:Qt)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))}else l('The "input" parameter is needed to be set when using returnInputValueOn'.concat(q(t)))},$t=(t,n)=>{const e=T.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&M(f()),e.preDeny){T.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?(t.hideLoading(),Ut(t)):t.close({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Gt(t||void 0,e))}else t.close({isDenied:!0,value:n})},Jt=(e,t)=>{e.close({isConfirmed:!0,value:t})},Gt=(e,t)=>{e.rejectPromise(t)},Qt=(t,n)=>{const e=T.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&M(),e.preConfirm){t.resetValidationMessage(),T.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{P(te())||!1===e?(t.hideLoading(),Ut(t)):Jt(t,void 0===e?n:e)}).catch(e=>Gt(t||void 0,e))}else Jt(t,n)},en=(n,e,o)=>{e.popup.onclick=()=>{var e,t=T.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(S.close)}};let tn=!1;const nn=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(tn=!0)}}},on=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(tn=!0)}}},rn=(n,o,i)=>{o.container.onclick=e=>{var t=T.innerParams.get(n);tn?tn=!1:e.target===o.container&&R(t.allowOutsideClick)&&i(S.backdrop)}},an=e=>"object"==typeof e&&e.jquery,sn=e=>e instanceof Element||an(e);const cn=()=>{if(x.timeout){{const n=ie();var e=parseInt(window.getComputedStyle(n).width),t=(n.style.removeProperty("transition"),n.style.width="100%",parseInt(window.getComputedStyle(n).width)),e=e/t*100;n.style.removeProperty("transition"),n.style.width="".concat(e,"%")}return x.timeout.stop()}},ln=()=>{var e;if(x.timeout)return e=x.timeout.start(),le(e),e};let un=!1;const dn={};const pn=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in dn){var n=e.getAttribute(o);if(n)return void dn[o].fire({template:n})}};var mn=Object.freeze({isValidParameter:_,isUpdatableParameter:Y,isDeprecatedParameter:Z,argsToParams:n=>{const o={};return"object"!=typeof n[0]||sn(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||sn(t)?o[e]=t:void 0!==t&&l("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>P(g()),clickConfirm:Ht,clickDeny:()=>f()&&f().click(),clickCancel:()=>b()&&b().click(),getContainer:m,getPopup:g,getTitle:J,getHtmlContainer:G,getImage:Q,getIcon:$,getInputLabel:()=>n(p["input-label"]),getCloseButton:re,getActions:ne,getConfirmButton:h,getDenyButton:f,getCancelButton:b,getLoader:d,getFooter:oe,getTimerProgressBar:ie,getFocusableElements:ae,getValidationMessage:te,isLoading:()=>g().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new this(...t)},mixin:function(n){class e extends this{_main(e,t){return super._main(e,Object.assign({},n,t))}}return e},showLoading:M,enableLoading:M,getTimerLeft:()=>x.timeout&&x.timeout.getTimerLeft(),stopTimer:cn,resumeTimer:ln,toggleTimer:()=>{var e=x.timeout;return e&&(e.running?cn:ln)()},increaseTimer:e=>{if(x.timeout)return e=x.timeout.increase(e),le(e,!0),e},isTimerRunning:()=>x.timeout&&x.timeout.isRunning(),bindClickHandler:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"data-swal-template";dn[e]=this,un||(document.body.addEventListener("click",pn),un=!0)}});let j;class H{constructor(){if("undefined"!=typeof window){j=this;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(t)),o=(Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}}),j._main(j.params));T.promise.set(this,o)}}_main(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=(X(Object.assign({},t,e)),x.currentInstance&&(x.currentInstance._destroy(),se()&&rt()),x.currentInstance=j,hn(e,t)),t=(ht(e),Object.freeze(e),x.timeout&&(x.timeout.stop(),delete x.timeout),clearTimeout(x.restoreFocusTimeout),fn(j));return ot(j,e),T.innerParams.set(j,e),gn(j,t,e)}then(e){const t=T.promise.get(this);return t.then(e)}finally(e){const t=T.promise.get(this);return t.finally(e)}}const gn=(l,u,d)=>new Promise((e,t)=>{const n=e=>{l.closePopup({isDismissed:!0,dismiss:e})};var o,i,r;jt.swalPromiseResolve.set(l,e),jt.swalPromiseReject.set(l,t),u.confirmButton.onclick=()=>{var e=l,t=T.innerParams.get(e);e.disableButtons(),t.input?Xt(e,"confirm"):Qt(e,!0)},u.denyButton.onclick=()=>{var e=l,t=T.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Xt(e,"deny"):$t(e,!1)},u.cancelButton.onclick=()=>{var e=l,t=n;e.disableButtons(),t(S.cancel)},u.closeButton.onclick=()=>n(S.close),e=l,t=u,r=n,T.innerParams.get(e).toast?en(e,t,r):(nn(t),on(t),rn(e,t,r)),o=l,e=x,t=d,i=n,It(e),t.toast||(e.keydownHandler=e=>Nt(o,e,i),e.keydownTarget=t.keydownListenerCapture?window:g(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),r=l,"select"===(t=d).input||"radio"===t.input?Et(r,t):["text","email","number","tel","textarea"].includes(t.input)&&(F(t.inputValue)||U(t.inputValue))&&(M(h()),Tt(r,t));{var a=d;const s=m(),c=g();"function"==typeof a.willOpen&&a.willOpen(c),e=window.getComputedStyle(document.body).overflowY,xt(s,c,a),setTimeout(()=>{Bt(s,c)},At),se()&&(Pt(s,a.scrollbarPadding,e),it()),ce()||x.previousActiveElement||(x.previousActiveElement=document.activeElement),"function"==typeof a.didOpen&&setTimeout(()=>a.didOpen(c)),C(s,p["no-transition"])}bn(x,d,n),yn(u,d),setTimeout(()=>{u.container.scrollTop=0})}),hn=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content,mt(e),e=Object.assign(st(e),ct(e),lt(e),ut(e),dt(e),pt(e,at));return e})(e);const o=Object.assign({},i,t,n,e);return o.showClass=Object.assign({},i.showClass,o.showClass),o.hideClass=Object.assign({},i.hideClass,o.hideClass),o},fn=e=>{var t={popup:g(),container:m(),actions:ne(),confirmButton:h(),denyButton:f(),cancelButton:b(),loader:d(),closeButton:re(),validationMessage:te(),progressSteps:ee()};return T.domCache.set(e,t),t},bn=(e,t,n)=>{var o=ie();B(o),t.timer&&(e.timeout=new ft(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(k(o),v(o,t,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&le(t.timer)})))},yn=(e,t)=>{if(!t.toast)return R(t.allowEnterKey)?void(vn(e,t)||Dt(t,-1,1)):wn()},vn=(e,t)=>t.focusDeny&&P(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&P(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!P(e.confirmButton))&&(e.confirmButton.focus(),!0),wn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)&&Math.random()<.1){const I=document.createElement("div");I.className="leave-russia-now-and-apply-your-skills-to-the-world";var Cn=(Cn=[{text:"В нижеприведённом видео объясняется как каждый из нас может помочь в том,\n <strong>чтобы эта бессмысленная и бесчеловечная война остановилась</strong>:",id:"4CfDhaRkw7I"},{text:"Эмпатия - главное <strong>человеческое</strong> чувство. Способность сопереживать. <strong>Способность поставить себя на место другого.</strong>",id:"s-GLAIY4DXA"}])[Math.floor(Math.random()*Cn.length)];y(I,"\n <div>\n Если мы не остановим войну, она придет в дом <strong>каждого из нас</strong> и её последствия будут <strong>ужасающими</strong>.\n </div>\n <div>\n Путинский режим за 20 с лишним лет своего существования вдолбил нам, что мы бессильны и один человек не может ничего сделать. <strong>Это не так!</strong>\n </div>\n <div>\n ".concat(Cn.text,'\n </div>\n <iframe width="560" height="315" src="https://www.youtube.com/embed/').concat(Cn.id,'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n <div>\n Нет войне!\n </div>\n '));const kn=document.createElement("button");kn.innerHTML="×",kn.onclick=()=>I.remove(),I.appendChild(kn),window.addEventListener("load",()=>{setTimeout(()=>{document.body.appendChild(I)},1e3)})}Object.assign(H.prototype,e),Object.assign(H,mn),Object.keys(e).forEach(e=>{H[e]=function(){if(j)return j[e](...arguments)}}),H.DismissReason=S,H.version="11.4.30";const An=H;return An.default=An}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
|
assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* swiffy-slider version: "1.6.0",
|
3 |
+
* https://github.com/dynamicweb/swiffy-slide
|
4 |
+
* Licensed MIT
|
5 |
+
* Copyright (c) 2021 Dynamicweb Software A/S
|
6 |
+
*/
|
7 |
+
const swiffysliderextensions={version:"1.6.0",draggingtimer:null,init(e=document.body){e.querySelectorAll(".swiffy-slider").forEach(e=>this.initSlider(e))},initSlider(e){e.classList.contains("slider-nav-mousedrag")&&e.addEventListener("mousedown",s=>this.handleMouseDrag(s,e),{passive:!0})},handleMouseDrag(e,s){if(e.srcElement.classList.contains("slider-nav")||e.srcElement.parentElement.classList.contains("slider-indicators"))return;const t=s.querySelector(".slider-container");s.classList.contains("dragging")&&clearTimeout(this.draggingtimer),t.style.cursor="grabbing",s.classList.add("dragging");const i=t.scrollLeft,n=e.clientX,r=t.children[0].offsetWidth+parseInt(window.getComputedStyle(t).columnGap),o=r*(t.children.length-1),l=t.scrollLeft;let d=l;const a=e=>{const s=e.clientX-n,a=i-1.8*s;a>0&&a<=o&&(t.scrollLeft=a,s<0?d=o<=l?l:t.scrollLeft+(r+1.8*s):l>0&&(d=t.scrollLeft-(r-1.8*s)))};t.addEventListener("mousemove",a,{passive:!0}),document.addEventListener("mouseup",()=>{t.removeEventListener("mousemove",a),t.style.cursor=null,d<0&&(d=0),t.scroll({left:d,behavior:"smooth"}),this.draggingtimer=setTimeout(()=>{s.classList.remove("dragging")},550)},{once:!0,passive:!0})}};window.swiffyslider.extensions=swiffysliderextensions,document.currentScript.hasAttribute("data-noinit")||window.addEventListener("load",()=>{swiffyslider.extensions.init()});
|
8 |
+
//# sourceMappingURL=swiffy-slider-extensions.min.js.map
|
assets/vendor/swiffy-slider/swiffy-slider-extensions.min.js.map
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": 3,
|
3 |
+
"sources": [
|
4 |
+
"swiffy-slider-extensions.js"
|
5 |
+
],
|
6 |
+
"names": [
|
7 |
+
"swiffysliderextensions",
|
8 |
+
"version",
|
9 |
+
"draggingtimer",
|
10 |
+
"[object Object]",
|
11 |
+
"rootElement",
|
12 |
+
"document",
|
13 |
+
"body",
|
14 |
+
"sliderElement",
|
15 |
+
"querySelectorAll",
|
16 |
+
"this",
|
17 |
+
"initSlider",
|
18 |
+
"classList",
|
19 |
+
"contains",
|
20 |
+
"addEventListener",
|
21 |
+
"e",
|
22 |
+
"handleMouseDrag",
|
23 |
+
"passive",
|
24 |
+
"srcElement",
|
25 |
+
"parentElement",
|
26 |
+
"container",
|
27 |
+
"querySelector",
|
28 |
+
"clearTimeout",
|
29 |
+
"style",
|
30 |
+
"cursor",
|
31 |
+
"add",
|
32 |
+
"startingLeftPos",
|
33 |
+
"scrollLeft",
|
34 |
+
"mouseDownStartingXPos",
|
35 |
+
"clientX",
|
36 |
+
"slideWidth",
|
37 |
+
"children",
|
38 |
+
"offsetWidth",
|
39 |
+
"parseInt",
|
40 |
+
"window",
|
41 |
+
"getComputedStyle",
|
42 |
+
"columnGap",
|
43 |
+
"maxLeftPosition",
|
44 |
+
"length",
|
45 |
+
"startLeftScroll",
|
46 |
+
"nextSlideLeftPos",
|
47 |
+
"moveDelegate",
|
48 |
+
"mouseMovedXpos",
|
49 |
+
"nextDraggingLeftPosition",
|
50 |
+
"removeEventListener",
|
51 |
+
"scroll",
|
52 |
+
"left",
|
53 |
+
"behavior",
|
54 |
+
"setTimeout",
|
55 |
+
"remove",
|
56 |
+
"once",
|
57 |
+
"swiffyslider",
|
58 |
+
"extensions",
|
59 |
+
"currentScript",
|
60 |
+
"hasAttribute",
|
61 |
+
"init"
|
62 |
+
],
|
63 |
+
"mappings": "AAAA,MAAMA,uBACK,CACHC,QAAS,QACTC,cAAe,KACfC,KAAKC,EAAcC,SAASC,MACxB,IAAK,MAAMC,KAAiBH,EAAYI,iBAAiB,kBACrDC,KAAKC,WAAWH,IAIxBJ,WAAWI,GACHA,EAAcI,UAAUC,SAAS,yBACjCL,EAAcM,iBAAiB,YAAcC,GAAML,KAAKM,gBAAgBD,EAAGP,GAAgB,CAAES,SAAS,KAG9Gb,gBAAgBW,EAAGP,GACf,GAAIO,EAAEG,WAAWN,UAAUC,SAAS,eAAiBE,EAAEG,WAAWC,cAAcP,UAAUC,SAAS,qBAC/F,OAEJ,MAAMO,EAAYZ,EAAca,cAAc,qBAC1Cb,EAAcI,UAAUC,SAAS,aACjCS,aAAaZ,KAAKP,eAEtBiB,EAAUG,MAAMC,OAAS,WACzBhB,EAAcI,UAAUa,IAAI,YAE5B,MAAMC,EAAkBN,EAAUO,WAC5BC,EAAwBb,EAAEc,QAC1BC,EAAaV,EAAUW,SAAS,GAAGC,YAAcC,SAASC,OAAOC,iBAAiBf,GAAWgB,WAC7FC,EAAkBP,GAAcV,EAAUW,SAASO,OAAS,GAC5DC,EAAkBnB,EAAUO,WAClC,IAAIa,EAAmBD,EAEvB,MAAME,EAAgB1B,IAClB,MAAM2B,EAAiB3B,EAAEc,QAAUD,EAC7Be,EAA2BjB,EAAoC,IAAjBgB,EAEhDC,EAA2B,GAAKA,GAA4BN,IAC5DjB,EAAUO,WAAagB,EAIvBD,EAAiB,EAIbF,EAFAH,GAAmBE,EAEAA,EAEAnB,EAAUO,YAAcG,EAA+B,IAAjBY,GAIzDH,EAAkB,IAClBC,EAAmBpB,EAAUO,YAAcG,EAA+B,IAAjBY,MAKrEtB,EAAUN,iBAAiB,YAAa2B,EAAc,CAAExB,SAAS,IACjEX,SAASQ,iBAAiB,UAAW,KACjCM,EAAUwB,oBAAoB,YAAaH,GAC3CrB,EAAUG,MAAMC,OAAS,KACrBgB,EAAmB,IAAKA,EAAmB,GAC/CpB,EAAUyB,OAAO,CACbC,KAAMN,EACNO,SAAU,WAEdrC,KAAKP,cAAgB6C,WAAW,KAAQxC,EAAcI,UAAUqC,OAAO,aAAgB,MACxF,CAAEC,MAAM,EAAMjC,SAAS,MAKtCiB,OAAOiB,aAAaC,WAAanD,uBAC5BK,SAAS+C,cAAcC,aAAa,gBACrCpB,OAAOpB,iBAAiB,OAAQ,KAC5BqC,aAAaC,WAAWG",
|
64 |
+
"file": "swiffy-slider-extensions.js"
|
65 |
+
}
|
assets/vendor/swiffy-slider/swiffy-slider.min.css
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* swiffy-slider version: "1.6.0",
|
3 |
+
* https://github.com/dynamicweb/swiffy-slide
|
4 |
+
* Licensed MIT
|
5 |
+
* Copyright (c) 2021 Dynamicweb Software A/S
|
6 |
+
*/
|
7 |
+
.swiffy-slider{position:relative;display:block;width:100%;--swiffy-slider-snap-align:center;--swiffy-slider-item-width:100%;--swiffy-slider-item-gap:1rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-ratio:2/1;--swiffy-slider-item-count:1;--swiffy-slider-nav-light:#fff;--swiffy-slider-nav-dark:#333;--swiffy-slider-nav-zoom:1;--swiffy-slider-track-opacity:0.1;--swiffy-slider-track-height:0;--swiffy-slider-nav-outside-size:3.5rem;--swiffy-slider-indicator-outside-size:1.5rem;--swiffy-slider-animation-duration:.75s;--swiffy-slider-animation-delay:0s;--swiffy-slider-animation-timing:ease-in-out}.swiffy-slider,.swiffy-slider::after,.swiffy-slider::before{box-sizing:border-box}.swiffy-slider ::-webkit-scrollbar{height:var(--swiffy-slider-track-height)}.swiffy-slider ::-webkit-scrollbar-track{background:rgba(0,0,0,var(--swiffy-slider-track-opacity))}.swiffy-slider ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.4);border-radius:1rem}.swiffy-slider ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.6)}.slider-container{--swiffy-slider-item-gap-totalwidth:calc(var(--swiffy-slider-item-gap) * (var(--swiffy-slider-item-count) - 1));--swiffy-slider-item-width:calc((100% - var(--swiffy-slider-item-reveal) - var(--swiffy-slider-item-gap-totalwidth)) / var(--swiffy-slider-item-count));overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scroll-behavior:smooth;display:grid;align-items:center;height:100%;grid:auto/auto-flow -webkit-max-content;grid:auto/auto-flow max-content;grid-auto-rows:100%;grid-auto-columns:var(--swiffy-slider-item-width);grid-auto-flow:column;grid-gap:var(--swiffy-slider-item-gap);list-style:none;margin:0;padding:0;scrollbar-width:none;scrollbar-color:rgba(0,0,0,.4) rgba(0,0,0,var(--swiffy-slider-track-opacity));background-clip:padding-box}.slider-container>*{scroll-snap-align:var(--swiffy-slider-snap-align);position:relative;width:100%;height:100%}.slider-item-helper .slider-container>*{background-size:cover;background-color:#e1e1e1;background-position:50% 50%;display:flex;justify-content:center;align-items:center}.slider-item-helper:not(.slider-item-ratio) .slider-container>*{min-height:20rem}.slider-item-ratio .slider-container>*>*{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.slider-item-ratio-contain .slider-container>*>*{-o-object-fit:contain;object-fit:contain}.slider-item-ratio .slider-container>::after{display:block;padding-top:calc(100% / (var(--swiffy-slider-item-ratio)));content:""}.slider-item-ratio-32x9{--swiffy-slider-item-ratio:32/9}.slider-item-ratio-21x9{--swiffy-slider-item-ratio:21/9}.slider-item-ratio-16x9{--swiffy-slider-item-ratio:16/9}.slider-item-ratio-4x3{--swiffy-slider-item-ratio:4/3}.slider-item-ratio-2x1{--swiffy-slider-item-ratio:2/1}.slider-item-ratio-1x1{--swiffy-slider-item-ratio:1/1}.slider-item-ratio-3x4{--swiffy-slider-item-ratio:3/4}.slider-nav-scrollbar{--swiffy-slider-track-height:0.5rem}.slider-nav-scrollbar .slider-container{scrollbar-width:thin}.slider-nav-nodelay .slider-container{scroll-behavior:auto}.slider-indicators{position:absolute;right:2rem;bottom:0;left:2rem;display:flex;justify-content:center;padding:0;margin-bottom:1rem;list-style:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:calc(1rem + var(--swiffy-slider-track-height))}.slider-indicators>.active{opacity:1}.swiffy-slider.slider-indicators-outside .slider-nav{margin-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside{padding-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside .slider-indicators,.swiffy-slider.slider-indicators-outside.slider-indicators{margin-bottom:0}.slider-indicators>*{box-sizing:content-box;flex:0 1 auto;width:2rem;height:.2rem;padding:0;border:.4rem solid transparent;cursor:pointer;background-color:#fff;background-clip:padding-box;opacity:.5;transition:opacity .4s ease}.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent;border-radius:50%}.slider-indicators-highlight .slider-indicators>.active,.slider-indicators-highlight.slider-indicators>.active{border:.33rem solid transparent;padding:.07rem}.slider-nav{position:absolute;top:0;left:0;bottom:0;border:0;background-color:transparent;cursor:pointer;padding:0;visibility:hidden;opacity:.8;transition:visibility .1s,opacity .2s linear;margin-bottom:var(--swiffy-slider-track-height);display:flex;align-items:center;padding:0 .5rem;-webkit-filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));transform:scale(var(--swiffy-slider-nav-zoom))}.slider-nav::before{position:absolute;content:"";padding:.5rem;width:3rem;height:3rem}.slider-nav::after{content:"";-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'></path></svg>");mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'></path></svg>");-webkit-mask-size:cover;mask-size:cover;background-color:var(--swiffy-slider-nav-light);background-origin:content-box;width:3rem;height:3rem}.slider-nav-arrow .slider-nav::after{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5z'></path></svg>");mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5z'></path></svg>")}.slider-nav-chevron .slider-nav::after{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M9.224 1.553a.5.5 0 0 1 .223.67L6.56 8l2.888 5.776a.5.5 0 1 1-.894.448l-3-6a.5.5 0 0 1 0-.448l3-6a.5.5 0 0 1 .67-.223z'></path></svg>");mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M9.224 1.553a.5.5 0 0 1 .223.67L6.56 8l2.888 5.776a.5.5 0 1 1-.894.448l-3-6a.5.5 0 0 1 0-.448l3-6a.5.5 0 0 1 .67-.223z'></path></svg>")}.slider-nav-caret .slider-nav::after{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path d='M10 12.796V3.204L4.519 8 10 12.796zm-.659.753-5.48-4.796a1 1 0 0 1 0-1.506l5.48-4.796A1 1 0 0 1 11 3.204v9.592a1 1 0 0 1-1.659.753z'></path></svg>");mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path d='M10 12.796V3.204L4.519 8 10 12.796zm-.659.753-5.48-4.796a1 1 0 0 1 0-1.506l5.48-4.796A1 1 0 0 1 11 3.204v9.592a1 1 0 0 1-1.659.753z'></path></svg>")}.slider-nav-caretfill .slider-nav::after{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path d='m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z'></path></svg>");mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'><path d='m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z'></path></svg>")}.swiffy-slider:hover .slider-nav{visibility:visible}.swiffy-slider.slider-nav-autohide.slider-item-first-visible .slider-nav:not(.slider-nav-next){visibility:hidden}.swiffy-slider.slider-nav-autohide.slider-item-last-visible .slider-nav.slider-nav-next{visibility:hidden}.slider-nav-outside .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside .slider-nav{padding:0}.swiffy-slider .slider-nav:hover{opacity:1}.slider-nav-square .slider-nav{padding:0}.slider-nav-round .slider-nav::before,.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-light)}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-dark);width:2rem;height:2rem;margin:.5rem}.slider-nav-round .slider-nav::before{border-radius:50%}.slider-nav-round .slider-nav::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E")}.slider-nav-dark .slider-nav::after{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::before,.slider-nav-dark.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::after,.slider-nav-dark.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-light)}.slider-nav-sm{--swiffy-slider-nav-zoom:.75;--swiffy-slider-nav-outside-size:2.5rem}.slider-nav.slider-nav-next::after{transform:rotate(180deg)}.slider-nav.slider-nav-next{right:0;left:unset}.slider-nav-visible .slider-nav{visibility:visible}.slider-nav-dark .slider-nav{opacity:.6}.slider-indicators-dark .slider-indicators>*,.slider-indicators-dark.slider-indicators>*{-webkit-filter:invert(1);filter:invert(1)}.slider-item-snapstart{--swiffy-slider-snap-align:start}.slider-item-nosnap{--swiffy-slider-snap-align:unset}.slider-item-nogap{--swiffy-slider-item-gap:0rem}.slider-item-reveal{--swiffy-slider-item-reveal:8rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-show2{--swiffy-slider-item-count:2}.slider-item-show3{--swiffy-slider-item-count:3}.slider-item-show4{--swiffy-slider-item-count:4}.slider-item-show5{--swiffy-slider-item-count:5}.slider-item-show6{--swiffy-slider-item-count:6}.slider-nav-mousedrag .slider-container{cursor:-webkit-grab;cursor:grab}.slider-nav-mousedrag.dragging .slider-container{-ms-scroll-snap-type:unset;scroll-snap-type:unset;scroll-behavior:unset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slider-nav-mousedrag.dragging .slider-nav{visibility:hidden}@media (hover:hover){.slider-nav-mousedrag .slider-container::after{content:"";position:absolute;width:100%;height:100%}}@media (prefers-reduced-motion:no-preference){.slider-nav-animation.slider-nav-animation-fast{--swiffy-slider-animation-duration:.25s}.slider-nav-animation.slider-nav-animation-slow{--swiffy-slider-animation-duration:1.25s}.slider-nav-animation .slider-container>*>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation .slider-container .slide-visible>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation.slider-nav-animation-fadein .slider-container>*>*{opacity:.5}.slider-nav-animation.slider-nav-animation-scale .slider-container>*>*{transform:scale(.9)}.slider-nav-animation.slider-nav-animation-appear .slider-container>*>*{opacity:.3;transform:scale(.9)}.slider-nav-animation.slider-nav-animation-scaleup .slider-container>*>*{transform:scale(.25)}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*{overflow:hidden}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*>*{transform:scale(1.3)}.slider-nav-animation.slider-nav-animation-turn .slider-container>*>*{transform:rotateY(70deg)}.slider-nav-animation.slider-nav-animation-slideup .slider-container>*>*{transform:translateY(60%) scale(.99)}.slider-nav-animation.slider-nav-animation-slideup .slider-container{overflow-y:hidden}.slider-nav-animation .slider-container>.slide-visible>*{opacity:1;transform:none}}@media (min-width:62rem){.slider-item-show2:not(.slider-item-snapstart) .slider-container>*,.slider-item-show4:not(.slider-item-snapstart) .slider-container>*,.slider-item-show6:not(.slider-item-snapstart) .slider-container>*{scroll-snap-align:unset}.slider-item-show2:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show4:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show6:not(.slider-item-snapstart) .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:var(--swiffy-slider-snap-align)}.slider-nav-outside-expand .slider-nav{margin-left:-4rem}.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-4rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav{margin-left:-3.5rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-3.5rem}.slider-indicators-sm.slider-indicators{display:none}}@media (max-width:62rem){.swiffy-slider{--swiffy-slider-track-height:0rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-count:1;--swiffy-slider-nav-zoom:.875}.slider-item-show2-sm{--swiffy-slider-item-count:2}.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:2rem}.slider-item-show6 .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3) - .5rem)}.slider-item-show6.slider-item-reveal .slider-container>*{scroll-snap-align:unset}.slider-item-show6.slider-item-reveal .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:center}.slider-nav::after,.slider-nav::before{width:2rem;height:2rem;padding:.3rem}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{width:1.75rem;height:1.75rem;margin:.125rem}.slider-nav-outside .slider-container,.slider-nav-outside-expand .slider-container{margin:0 2rem}.slider-nav-outside-expand .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside-expand .slider-nav{padding:0}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*,.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.3rem;height:.3rem}.slider-indicators{margin-bottom:.5rem;display:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:0}.slider-indicators>*{width:1rem;height:.125rem;border-width:.25rem}.slider-indicators-sm .slider-indicators,.slider-indicators-sm.slider-indicators{display:flex}}@media (max-width:48rem){.slider-item-show6 .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2) - 1.5rem)}}@media (hover:none){.swiffy-slider.slider-nav-touch .slider-nav{visibility:visible}.swiffy-slider:not(.slider-nav-touch).slider-nav-outside .slider-container,.swiffy-slider:not(.slider-nav-touch).slider-nav-outside-expand .slider-container{margin:0 0}.slider-item-nosnap-touch{--swiffy-slider-snap-align:unset}}
|
8 |
+
/*# sourceMappingURL=swiffy-slider.min.css.map */
|
assets/vendor/swiffy-slider/swiffy-slider.min.css.map
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": 3,
|
3 |
+
"sources": [
|
4 |
+
"swiffy-slider.css"
|
5 |
+
],
|
6 |
+
"names": [],
|
7 |
+
"mappings": "AAAA,eACI,SAAU,SACV,QAAS,MACT,MAAO,KACP,2BAA4B,OAC5B,2BAA4B,KAC5B,yBAA0B,KAC1B,4BAA6B,KAC7B,2BAA4B,CAAC,CAAC,EAC9B,2BAA4B,EAC5B,0BAA2B,KAC3B,yBAA0B,KAC1B,yBAA0B,EAC1B,8BAA+B,IAC/B,6BAA8B,EAC9B,iCAAkC,OAClC,uCAAwC,OACxC,mCAAoC,KACpC,gCAAiC,GACjC,iCAAkC,YAGtC,eACA,sBACA,uBACI,WAAY,WAGhB,mCACI,OAAQ,kCAGZ,yCACI,WAAY,+CAGhB,yCACI,WAAY,eACZ,cAAe,KAGnB,+CACI,WAAY,eAGhB,kBACI,oCAAqC,4EACrC,2BAA4B,6HAC5B,WAAY,KACZ,2BAA4B,MAC5B,qBAAsB,EAAE,UACpB,iBAAkB,EAAE,UACxB,gBAAiB,OACjB,QAAS,KACT,YAAa,OACb,OAAQ,KACR,KAAM,IAAK,CAAE,UAAU,oBACvB,KAAM,IAAK,CAAE,UAAU,YACvB,eAAgB,KAChB,kBAAmB,gCACnB,eAAgB,OAChB,SAAU,8BACV,WAAY,KACZ,OAAQ,EACR,QAAS,EACT,gBAAiB,KACjB,gBAAiB,eAAmB,+CACpC,gBAAiB,YAGrB,oBAEI,kBAAmB,gCACnB,SAAU,SACV,MAAO,KACP,OAAQ,KAGZ,wCACI,gBAAiB,MACjB,iBAAkB,QAClB,oBAAqB,IAAI,IACzB,QAAS,KACT,gBAAiB,OACjB,YAAa,OAGjB,gEACI,WAAY,MAGhB,yCACI,SAAU,SACV,IAAK,EACL,KAAM,EACN,MAAO,KACP,OAAQ,KACR,cAAe,MACZ,WAAY,MAGnB,iDACI,cAAe,QACZ,WAAY,QAGnB,6CACI,QAAS,MACT,YAAa,+CACb,QAAS,GAGb,wBACI,2BAA4B,EAAE,CAAC,EAGnC,wBACI,2BAA4B,EAAE,CAAC,EAGnC,wBACI,2BAA4B,EAAE,CAAC,EAGnC,uBACI,2BAA4B,CAAC,CAAC,EAGlC,uBACI,2BAA4B,CAAC,CAAC,EAGlC,uBACI,2BAA4B,CAAC,CAAC,EAGlC,uBACI,2BAA4B,CAAC,CAAC,EAGlC,sBACI,6BAA8B,OAGlC,wCACI,gBAAiB,KAGrB,sCACI,gBAAiB,KAGrB,mBACI,SAAU,SACV,MAAO,KACP,OAAQ,EACR,KAAM,KACN,QAAS,KACT,gBAAiB,OACjB,QAAS,EACT,cAAe,KACf,WAAY,KAGhB,yCACI,cAAe,+CAGnB,2BACI,QAAS,EAGb,qDACI,cAAe,4CAGnB,yCACI,eAAgB,4CAIpB,4DADA,2DAEI,cAAe,EAGnB,qBACI,WAAY,YACZ,KAAM,EAAE,EAAE,KACV,MAAO,KACP,OAAQ,MACR,QAAS,EACT,OAAQ,MAAM,MAAM,YACpB,OAAQ,QACR,iBAAkB,KAClB,gBAAiB,YACjB,QAAS,GACT,WAAY,QAAQ,IAAI,KAI5B,+CADA,8CAEI,MAAO,MACP,OAAQ,MACR,OAAQ,MAAM,MAAM,YAIxB,8CADA,6CAEI,MAAO,MACP,OAAQ,MACR,OAAQ,MAAM,MAAM,YACpB,cAAe,IAInB,wDADA,uDAEI,OAAQ,OAAO,MAAM,YACrB,QAAS,OAGb,YACI,SAAU,SACV,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,iBAAkB,YAClB,OAAQ,QACR,QAAS,EACT,WAAY,OACZ,QAAS,GACT,WAAY,WAAW,GAAI,CAAE,QAAQ,IAAK,OAC1C,cAAe,kCACf,QAAS,KACT,YAAa,OACb,QAAS,EAAE,MACX,eAAgB,yCACR,OAAQ,yCAChB,UAAW,qCAGf,oBACI,SAAU,SACV,QAAS,GACT,QAAS,MACT,MAAO,KACP,OAAQ,KAGZ,mBACI,QAAS,GACT,aAAc,sQACN,KAAM,sQACd,kBAAmB,MACX,UAAW,MACnB,iBAAkB,+BAClB,kBAAmB,YACnB,MAAO,KACP,OAAQ,KAGZ,qCACI,aAAc,2RACN,KAAM,2RAGlB,uCACI,aAAc,uQACN,KAAM,uQAGlB,qCACI,aAAc,gQACN,KAAM,gQAGlB,yCACI,aAAc,4OACN,KAAM,4OAGlB,iCACI,WAAY,QAGhB,+FACI,WAAY,OAGhB,wFACI,WAAY,OAGhB,sCACI,OAAQ,EAAE,sCAGd,gCACI,QAAS,EAGb,iCACI,QAAS,EAGb,+BACI,QAAS,EAGb,sCACA,uCACI,iBAAkB,+BAGtB,qCACA,sCACI,iBAAkB,8BAClB,MAAO,KACP,OAAQ,KACR,OAAQ,MAGZ,sCACI,cAAe,IAGnB,qCACI,aAAc,iSACN,KAAM,iSAGlB,oCACI,iBAAkB,8BAGtB,sDACA,uDACI,iBAAkB,8BAGtB,qDACA,sDACI,iBAAkB,+BAGtB,eACI,yBAA0B,IAC1B,iCAAkC,OAGtC,mCACI,UAAW,eAGf,4BACI,MAAO,EACP,KAAM,MAGV,gCACI,WAAY,QAGhB,6BACI,QAAS,GAIb,6CADA,4CAEI,eAAgB,UACR,OAAQ,UAGpB,uBACI,2BAA4B,MAGhC,oBACI,2BAA4B,MAGhC,mBACI,yBAA0B,KAG9B,oBACI,4BAA6B,KAGjC,0CACI,4BAA6B,KAGjC,mBACI,2BAA4B,EAGhC,mBACI,2BAA4B,EAGhC,mBACI,2BAA4B,EAGhC,mBACI,2BAA4B,EAGhC,mBACI,2BAA4B,EAGhC,wCACI,OAAQ,aACR,OAAQ,KAGZ,iDACI,qBAAsB,MAClB,iBAAkB,MACtB,gBAAiB,MACjB,oBAAqB,KAClB,iBAAkB,KACjB,gBAAiB,KACb,YAAa,KAGzB,2CACI,WAAY,OAGhB,qBACI,+CACI,QAAS,GACT,SAAU,SACV,MAAO,KACP,OAAQ,MAIhB,8CACI,gDACI,mCAAoC,KAExC,gDACI,mCAAoC,MAExC,4CACI,WAAY,QAAQ,wCAAwC,qCAAqC,CAAE,UAAU,wCAAwC,sCACrJ,iBAAkB,qCAEtB,yDACI,WAAY,QAAQ,wCAAwC,qCAAqC,CAAE,UAAU,wCAAwC,sCACrJ,iBAAkB,qCAEtB,wEACI,QAAS,GAEb,uEACI,UAAW,UAEf,wEACI,QAAS,GACT,UAAW,UAEf,yEACI,UAAW,WAEf,uEACI,SAAU,OAEd,yEACI,UAAW,WAEf,sEACI,UAAW,eAEf,yEACI,UAAW,gBAAgB,WAE/B,qEACI,WAAY,OAEhB,yDACI,QAAS,EACT,UAAW,MAInB,yBAGI,mEADA,mEADA,mEAGI,kBAAmB,MAIvB,0EADA,0EADA,0EAGI,QAAS,IACT,QAAS,MACT,SAAU,SACV,KAAM,2CACN,IAAK,EAEL,MAAO,IACP,OAAQ,IACR,kBAAmB,gCAEvB,uCACI,YAAa,MAEjB,uDACI,aAAc,MAElB,qDACI,YAAa,QAEjB,qEACI,aAAc,QAElB,wCACI,QAAS,MAIjB,yBACI,eACI,6BAA8B,KAC9B,4BAA6B,KAC7B,2BAA4B,EAC5B,yBAA0B,KAE9B,qCACI,2BAA4B,EAEhC,oBACI,4BAA6B,KAEjC,0CACI,4BAA6B,KAEjC,qCACI,kBAAmB,iDAEvB,wDACI,kBAAmB,yDAEvB,0DACI,kBAAmB,MAEvB,iEACI,QAAS,IACT,QAAS,MACT,SAAU,SACV,KAAM,2CACN,IAAK,EAEL,MAAO,IACP,OAAQ,IACR,kBAAmB,OAGvB,mBADA,oBAEI,MAAO,KACP,OAAQ,KACR,QAAS,MAEb,qCACA,sCACI,MAAO,QACP,OAAQ,QACR,OAAQ,QAGZ,sCADA,6CAEI,OAAQ,EAAE,KAEd,6CACI,OAAQ,EAAE,sCAEd,uCACI,QAAS,EAKb,8CADA,6CADA,+CADA,8CAII,MAAO,MACP,OAAQ,MAEZ,mBACI,cAAe,MACf,QAAS,KAEb,yCACI,cAAe,EAEnB,qBACI,MAAO,KACP,OAAQ,QACR,aAAc,OAElB,yCACA,wCACI,QAAS,MAIjB,yBACI,qCACI,kBAAmB,+CAEvB,wDACI,kBAAmB,yDAI3B,oBACI,4CACI,WAAY,QAGhB,2EADA,kFAEI,OAAQ,EAAE,EAEd,0BACI,2BAA4B"
|
8 |
+
}
|
assets/vendor/swiffy-slider/swiffy-slider.min.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* swiffy-slider version: "1.6.0",
|
3 |
+
* https://github.com/dynamicweb/swiffy-slide
|
4 |
+
* Licensed MIT
|
5 |
+
* Copyright (c) 2021 Dynamicweb Software A/S
|
6 |
+
*/
|
7 |
+
const swiffyslider={version:"1.6.0",init(e=document.body){e.querySelectorAll(".swiffy-slider").forEach(e=>this.initSlider(e))},initSlider(e){if(e.querySelectorAll(".slider-nav").forEach(t=>t.addEventListener("click",()=>this.slide(e,t.classList.contains("slider-nav-next")),{passive:!0})),e.querySelectorAll(".slider-indicators").forEach(t=>{t.addEventListener("click",()=>this.slideToByIndicator()),this.onSlideEnd(e,()=>this.handleIndicators(e),60)}),e.classList.contains("slider-nav-autoplay")){const t=e.getAttribute("data-slider-nav-autoplay-interval")?e.getAttribute("data-slider-nav-autoplay-interval"):2500;this.autoPlay(e,t,e.classList.contains("slider-nav-autopause"))}if(["slider-nav-autohide","slider-nav-animation"].some(t=>e.classList.contains(t))){const t=e.getAttribute("data-slider-nav-animation-threshold")?e.getAttribute("data-slider-nav-animation-threshold"):.3;this.setVisibleSlides(e,t)}},setVisibleSlides(e,t=.3){let i=new IntersectionObserver(t=>{t.forEach(e=>{e.isIntersecting?e.target.classList.add("slide-visible"):e.target.classList.remove("slide-visible")}),e.querySelector(".slider-container>*:first-child").classList.contains("slide-visible")?e.classList.add("slider-item-first-visible"):e.classList.remove("slider-item-first-visible"),e.querySelector(".slider-container>*:last-child").classList.contains("slide-visible")?e.classList.add("slider-item-last-visible"):e.classList.remove("slider-item-last-visible")},{root:e.querySelector(".slider-container"),threshold:t});e.querySelectorAll(".slider-container>*").forEach(e=>i.observe(e))},slide(e,t=!0){const i=e.querySelector(".slider-container"),s=e.classList.contains("slider-nav-page"),l=e.classList.contains("slider-nav-noloop"),r=e.classList.contains("slider-nav-nodelay"),a=i.children,o=parseInt(window.getComputedStyle(i).columnGap),n=a[0].offsetWidth+o;let d=t?i.scrollLeft+n:i.scrollLeft-n;s&&(d=t?i.scrollLeft+i.offsetWidth:i.scrollLeft-i.offsetWidth),i.scrollLeft<1&&!t&&!l&&(d=i.scrollWidth-i.offsetWidth),i.scrollLeft>=i.scrollWidth-i.offsetWidth&&t&&!l&&(d=0),i.scroll({left:d,behavior:r?"auto":"smooth"})},slideToByIndicator(){const e=window.event.target,t=Array.from(e.parentElement.children).indexOf(e),i=e.parentElement.children.length,s=e.closest(".swiffy-slider"),l=s.querySelector(".slider-container").children.length/i*t;this.slideTo(s,l)},slideTo(e,t){const i=e.querySelector(".slider-container"),s=parseInt(window.getComputedStyle(i).columnGap),l=i.children[0].offsetWidth+s,r=e.classList.contains("slider-nav-nodelay");i.scroll({left:l*t,behavior:r?"auto":"smooth"})},onSlideEnd(e,t,i=125){let s;e.querySelector(".slider-container").addEventListener("scroll",()=>{window.clearTimeout(s),s=setTimeout(t,i)},{capture:!1,passive:!0})},autoPlay(e,t,i){t=t<750?750:t;let s=setInterval(()=>this.slide(e),t);const l=()=>this.autoPlay(e,t,i);return i&&(["mouseover","touchstart"].forEach(t=>{e.addEventListener(t,()=>{window.clearTimeout(s)},{once:!0,passive:!0})}),["mouseout","touchend"].forEach(t=>{e.addEventListener(t,()=>{l()},{once:!0,passive:!0})})),s},handleIndicators(e){if(!e)return;const t=e.querySelector(".slider-container"),i=t.scrollWidth-t.offsetWidth,s=t.scrollLeft/i;e.querySelectorAll(".slider-indicators").forEach(e=>{let t=e.children,i=Math.abs(Math.round((t.length-1)*s));for(let e of t)e.classList.remove("active");t[i].classList.add("active")})}};window.swiffyslider=swiffyslider,document.currentScript.hasAttribute("data-noinit")||(document.currentScript.hasAttribute("defer")?swiffyslider.init():document.onreadystatechange=()=>{"interactive"===document.readyState&&swiffyslider.init()});
|
8 |
+
//# sourceMappingURL=swiffy-slider.min.js.map
|
assets/vendor/swiffy-slider/swiffy-slider.min.js.map
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": 3,
|
3 |
+
"sources": [
|
4 |
+
"swiffy-slider.js"
|
5 |
+
],
|
6 |
+
"names": [
|
7 |
+
"swiffyslider",
|
8 |
+
"version",
|
9 |
+
"[object Object]",
|
10 |
+
"rootElement",
|
11 |
+
"document",
|
12 |
+
"body",
|
13 |
+
"sliderElement",
|
14 |
+
"querySelectorAll",
|
15 |
+
"this",
|
16 |
+
"initSlider",
|
17 |
+
"navElement",
|
18 |
+
"next",
|
19 |
+
"classList",
|
20 |
+
"contains",
|
21 |
+
"addEventListener",
|
22 |
+
"slide",
|
23 |
+
"passive",
|
24 |
+
"indicatorElement",
|
25 |
+
"slideToByIndicator",
|
26 |
+
"onSlideEnd",
|
27 |
+
"handleIndicators",
|
28 |
+
"timeout",
|
29 |
+
"getAttribute",
|
30 |
+
"autoPlay",
|
31 |
+
"some",
|
32 |
+
"className",
|
33 |
+
"threshold",
|
34 |
+
"setVisibleSlides",
|
35 |
+
"observer",
|
36 |
+
"IntersectionObserver",
|
37 |
+
"slides",
|
38 |
+
"forEach",
|
39 |
+
"isIntersecting",
|
40 |
+
"target",
|
41 |
+
"add",
|
42 |
+
"remove",
|
43 |
+
"querySelector",
|
44 |
+
"root",
|
45 |
+
"observe",
|
46 |
+
"container",
|
47 |
+
"fullpage",
|
48 |
+
"noloop",
|
49 |
+
"nodelay",
|
50 |
+
"children",
|
51 |
+
"gapWidth",
|
52 |
+
"parseInt",
|
53 |
+
"window",
|
54 |
+
"getComputedStyle",
|
55 |
+
"columnGap",
|
56 |
+
"scrollStep",
|
57 |
+
"offsetWidth",
|
58 |
+
"scrollLeftPosition",
|
59 |
+
"scrollLeft",
|
60 |
+
"scrollWidth",
|
61 |
+
"scroll",
|
62 |
+
"left",
|
63 |
+
"behavior",
|
64 |
+
"indicator",
|
65 |
+
"event",
|
66 |
+
"indicatorIndex",
|
67 |
+
"Array",
|
68 |
+
"from",
|
69 |
+
"parentElement",
|
70 |
+
"indexOf",
|
71 |
+
"indicatorCount",
|
72 |
+
"length",
|
73 |
+
"closest",
|
74 |
+
"relativeSlideIndex",
|
75 |
+
"slideTo",
|
76 |
+
"slideIndex",
|
77 |
+
"delegate",
|
78 |
+
"isScrolling",
|
79 |
+
"clearTimeout",
|
80 |
+
"setTimeout",
|
81 |
+
"capture",
|
82 |
+
"autopause",
|
83 |
+
"autoplayTimer",
|
84 |
+
"setInterval",
|
85 |
+
"autoplayer",
|
86 |
+
"once",
|
87 |
+
"slidingAreaWidth",
|
88 |
+
"percentSlide",
|
89 |
+
"scrollIndicatorContainers",
|
90 |
+
"scrollIndicators",
|
91 |
+
"activeIndicator",
|
92 |
+
"Math",
|
93 |
+
"abs",
|
94 |
+
"round",
|
95 |
+
"element",
|
96 |
+
"currentScript",
|
97 |
+
"hasAttribute",
|
98 |
+
"init",
|
99 |
+
"onreadystatechange",
|
100 |
+
"readyState"
|
101 |
+
],
|
102 |
+
"mappings": "AAAA,MAAMA,aACK,CACHC,QAAS,QACTC,KAAKC,EAAcC,SAASC,MACxB,IAAK,IAAIC,KAAiBH,EAAYI,iBAAiB,kBACnDC,KAAKC,WAAWH,IAIxBJ,WAAWI,GACP,IAAK,IAAII,KAAcJ,EAAcC,iBAAiB,eAAgB,CAClE,IAAII,EAAOD,EAAWE,UAAUC,SAAS,mBACzCH,EAAWI,iBAAiB,QAAS,IAAMN,KAAKO,MAAMT,EAAeK,GAAO,CAAEK,SAAS,IAE3F,IAAK,IAAIC,KAAoBX,EAAcC,iBAAiB,sBACxDU,EAAiBH,iBAAiB,QAAS,IAAMN,KAAKU,sBACtDV,KAAKW,WAAWb,EAAe,IAAME,KAAKY,iBAAiBd,GAAgB,IAE/E,GAAIA,EAAcM,UAAUC,SAAS,uBAAwB,CACzD,MAAMQ,EAAUf,EAAcgB,aAAa,qCAAuChB,EAAcgB,aAAa,qCAAuC,KACpJd,KAAKe,SAASjB,EAAee,EAASf,EAAcM,UAAUC,SAAS,yBAE3E,GAAI,CAAC,sBAAuB,wBAAwBW,KAAKC,GAAanB,EAAcM,UAAUC,SAASY,IAAa,CAChH,MAAMC,EAAYpB,EAAcgB,aAAa,uCAAyChB,EAAcgB,aAAa,uCAAyC,GAC1Jd,KAAKmB,iBAAiBrB,EAAeoB,KAI7CxB,iBAAiBI,EAAeoB,EAAY,IACxC,IAAIE,EAAW,IAAIC,qBAAqBC,IACpCA,EAAOC,QAAQhB,IACXA,EAAMiB,eAAiBjB,EAAMkB,OAAOrB,UAAUsB,IAAI,iBAAmBnB,EAAMkB,OAAOrB,UAAUuB,OAAO,mBAEvG7B,EAAc8B,cAAc,mCAAmCxB,UAAUC,SAAS,iBAAmBP,EAAcM,UAAUsB,IAAI,6BAA+B5B,EAAcM,UAAUuB,OAAO,6BAC/L7B,EAAc8B,cAAc,kCAAkCxB,UAAUC,SAAS,iBAAmBP,EAAcM,UAAUsB,IAAI,4BAA8B5B,EAAcM,UAAUuB,OAAO,6BAC9L,CACCE,KAAM/B,EAAc8B,cAAc,qBAClCV,UAAWA,IAEf,IAAK,IAAIX,KAAST,EAAcC,iBAAiB,uBAC7CqB,EAASU,QAAQvB,IAGzBb,MAAMI,EAAeK,GAAO,GACxB,MAAM4B,EAAYjC,EAAc8B,cAAc,qBACxCI,EAAWlC,EAAcM,UAAUC,SAAS,mBAC5C4B,EAASnC,EAAcM,UAAUC,SAAS,qBAC1C6B,EAAUpC,EAAcM,UAAUC,SAAS,sBAC3CiB,EAASS,EAAUI,SACnBC,EAAWC,SAASC,OAAOC,iBAAiBR,GAAWS,WACvDC,EAAanB,EAAO,GAAGoB,YAAcN,EAC3C,IAAIO,EAAqBxC,EACrB4B,EAAUa,WAAaH,EACvBV,EAAUa,WAAaH,EACvBT,IACAW,EAAqBxC,EACjB4B,EAAUa,WAAab,EAAUW,YACjCX,EAAUa,WAAab,EAAUW,aAErCX,EAAUa,WAAa,IAAMzC,IAAS8B,IACtCU,EAAsBZ,EAAUc,YAAcd,EAAUW,aAExDX,EAAUa,YAAeb,EAAUc,YAAcd,EAAUW,aAAgBvC,IAAS8B,IACpFU,EAAqB,GAEzBZ,EAAUe,OAAO,CACbC,KAAMJ,EACNK,SAAUd,EAAU,OAAS,YAIrCxC,qBACI,MAAMuD,EAAYX,OAAOY,MAAMzB,OACzB0B,EAAiBC,MAAMC,KAAKJ,EAAUK,cAAcnB,UAAUoB,QAAQN,GACtEO,EAAiBP,EAAUK,cAAcnB,SAASsB,OAClD3D,EAAgBmD,EAAUS,QAAQ,kBAElCC,EADa7D,EAAc8B,cAAc,qBAAqBO,SAASsB,OACpCD,EAAkBL,EAC3DnD,KAAK4D,QAAQ9D,EAAe6D,IAGhCjE,QAAQI,EAAe+D,GACnB,MAAM9B,EAAYjC,EAAc8B,cAAc,qBACxCQ,EAAWC,SAASC,OAAOC,iBAAiBR,GAAWS,WACvDC,EAAaV,EAAUI,SAAS,GAAGO,YAAcN,EACjDF,EAAUpC,EAAcM,UAAUC,SAAS,sBACjD0B,EAAUe,OAAO,CACbC,KAAON,EAAaoB,EACpBb,SAAUd,EAAU,OAAS,YAIrCxC,WAAWI,EAAegE,EAAUjD,EAAU,KAC1C,IAAIkD,EACJjE,EAAc8B,cAAc,qBAAqBtB,iBAAiB,UAAU,WACxEgC,OAAO0B,aAAaD,GACpBA,EAAcE,WAAWH,EAAUjD,KACpC,CAAEqD,SAAS,EAAO1D,SAAS,KAGlCd,SAASI,EAAee,EAASsD,GAC7BtD,EAAUA,EAAU,IAAM,IAAMA,EAChC,IAAIuD,EAAgBC,YAAY,IAAMrE,KAAKO,MAAMT,GAAgBe,GACjE,MAAMyD,EAAa,IAAMtE,KAAKe,SAASjB,EAAee,EAASsD,GAa/D,OAZIA,IACA,CAAC,YAAa,cAAc5C,SAAQ,SAAS2B,GACzCpD,EAAcQ,iBAAiB4C,GAAO,WAClCZ,OAAO0B,aAAaI,KACrB,CAAEG,MAAM,EAAM/D,SAAS,OAE9B,CAAC,WAAY,YAAYe,SAAQ,SAAS2B,GACtCpD,EAAcQ,iBAAiB4C,GAAO,WAClCoB,MACD,CAAEC,MAAM,EAAM/D,SAAS,QAG3B4D,GAGX1E,iBAAiBI,GACb,IAAKA,EAAe,OACpB,MAAMiC,EAAYjC,EAAc8B,cAAc,qBACxC4C,EAAmBzC,EAAUc,YAAcd,EAAUW,YACrD+B,EAAgB1C,EAAUa,WAAa4B,EAC7C,IAAK,IAAIE,KAA6B5E,EAAcC,iBAAiB,sBAAuB,CACxF,IAAI4E,EAAmBD,EAA0BvC,SAC7CyC,EAAkBC,KAAKC,IAAID,KAAKE,OAAOJ,EAAiBlB,OAAS,GAAKgB,IAC1E,IAAK,IAAIO,KAAWL,EAChBK,EAAQ5E,UAAUuB,OAAO,UAC7BgD,EAAiBC,GAAiBxE,UAAUsB,IAAI,aAMhEY,OAAO9C,aAAeA,aACjBI,SAASqF,cAAcC,aAAa,iBACjCtF,SAASqF,cAAcC,aAAa,SACpC1F,aAAa2F,OAEbvF,SAASwF,mBAAqB,KACE,gBAAxBxF,SAASyF,YACT7F,aAAa2F",
|
103 |
+
"file": "swiffy-slider.js"
|
104 |
+
}
|
changelog.txt
CHANGED
@@ -1,3 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
v3.5.29 (15 Sep, 2022) =
|
2 |
|
3 |
* Enhancement - Short-code encryption updated for registration page
|
1 |
+
= v3.6.0 (23 Nov, 2022) =
|
2 |
+
|
3 |
+
* Enhancement - Admin dashboard news and update meta-box added
|
4 |
+
* Enhancement - Upgrade prompts design
|
5 |
+
|
6 |
+
* Fix - Email style handled
|
7 |
+
* Fix - text-area type selection(Normal, Rich text-area, Teeny Rich text-area) bug in field options
|
8 |
+
* Fix - Frontend form validation
|
9 |
+
* Fix - Default value not saving for radio, dropdown, checkbox
|
10 |
+
|
11 |
+
* Update - sweetalert2 version
|
12 |
+
|
13 |
v3.5.29 (15 Sep, 2022) =
|
14 |
|
15 |
* Enhancement - Short-code encryption updated for registration page
|
class/admin-asset-loader.php
CHANGED
@@ -21,7 +21,7 @@ class WPUF_Admin_Assets {
|
|
21 |
|
22 |
wp_register_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
23 |
wp_register_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
24 |
-
wp_register_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [],
|
25 |
wp_register_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
26 |
wp_register_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
27 |
wp_register_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
@@ -78,7 +78,7 @@ class WPUF_Admin_Assets {
|
|
78 |
public function register_admin_styles() {
|
79 |
wp_register_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
80 |
wp_register_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION );
|
81 |
-
wp_register_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [],
|
82 |
wp_register_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION );
|
83 |
wp_register_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION );
|
84 |
wp_register_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION );
|
21 |
|
22 |
wp_register_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
23 |
wp_register_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
24 |
+
wp_register_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [], '11.4.30', true );
|
25 |
wp_register_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
26 |
wp_register_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
27 |
wp_register_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
78 |
public function register_admin_styles() {
|
79 |
wp_register_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
80 |
wp_register_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', [], WPUF_VERSION );
|
81 |
+
wp_register_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [], '11.4.30' );
|
82 |
wp_register_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', [], WPUF_VERSION );
|
83 |
wp_register_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', [], WPUF_VERSION );
|
84 |
wp_register_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', [], WPUF_VERSION );
|
class/asset-loader.php
CHANGED
@@ -71,7 +71,7 @@ class WPUF_Assets {
|
|
71 |
|
72 |
wp_register_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
73 |
wp_register_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
74 |
-
wp_register_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [],
|
75 |
wp_register_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
76 |
wp_register_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
77 |
wp_register_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
@@ -87,5 +87,6 @@ class WPUF_Assets {
|
|
87 |
public function register_styles() {
|
88 |
wp_register_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
89 |
wp_register_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
|
|
|
90 |
}
|
91 |
}
|
71 |
|
72 |
wp_register_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', [], WPUF_VERSION, true );
|
73 |
wp_register_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', [ 'wpuf-vue' ], WPUF_VERSION, true );
|
74 |
+
wp_register_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [], '11.4.30', true );
|
75 |
wp_register_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
76 |
wp_register_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', [ 'jquery' ], WPUF_VERSION, true );
|
77 |
wp_register_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', [], WPUF_VERSION, true );
|
87 |
public function register_styles() {
|
88 |
wp_register_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
|
89 |
wp_register_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
|
90 |
+
wp_register_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [], '11.4.30' );
|
91 |
}
|
92 |
}
|
class/post-form-templates/post.php
CHANGED
@@ -51,23 +51,24 @@ class WPUF_Post_Form_Template_Post extends WPUF_Post_Form_Template {
|
|
51 |
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
52 |
],
|
53 |
[
|
54 |
-
'input_type'
|
55 |
-
'template'
|
56 |
-
'required'
|
57 |
-
'label'
|
58 |
-
'name'
|
59 |
-
'is_meta'
|
60 |
-
'help'
|
61 |
-
'css'
|
62 |
-
'rows'
|
63 |
-
'cols'
|
64 |
-
'placeholder'
|
65 |
-
'default'
|
66 |
-
'rich'
|
67 |
-
'insert_image'
|
68 |
-
'wpuf_cond'
|
69 |
-
'wpuf_visibility'
|
70 |
-
'restriction_type'
|
|
|
71 |
],
|
72 |
[
|
73 |
'input_type' => 'image_upload',
|
@@ -85,22 +86,24 @@ class WPUF_Post_Form_Template_Post extends WPUF_Post_Form_Template {
|
|
85 |
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
86 |
],
|
87 |
[
|
88 |
-
'input_type'
|
89 |
-
'template'
|
90 |
-
'required'
|
91 |
-
'label'
|
92 |
-
'name'
|
93 |
-
'is_meta'
|
94 |
-
'help'
|
95 |
-
|
96 |
-
'
|
97 |
-
'
|
98 |
-
'
|
99 |
-
'
|
100 |
-
'
|
101 |
-
'
|
102 |
-
'
|
103 |
-
'
|
|
|
|
|
104 |
],
|
105 |
[
|
106 |
'input_type' => 'text',
|
51 |
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
52 |
],
|
53 |
[
|
54 |
+
'input_type' => 'textarea',
|
55 |
+
'template' => 'post_content',
|
56 |
+
'required' => 'yes',
|
57 |
+
'label' => __( 'Post description', 'wp-user-frontend' ),
|
58 |
+
'name' => 'post_content',
|
59 |
+
'is_meta' => 'no',
|
60 |
+
'help' => __( 'Write the full description of your Post', 'wp-user-frontend' ),
|
61 |
+
'css' => '',
|
62 |
+
'rows' => '5',
|
63 |
+
'cols' => '25',
|
64 |
+
'placeholder' => '',
|
65 |
+
'default' => '',
|
66 |
+
'rich' => 'yes',
|
67 |
+
'insert_image' => 'yes',
|
68 |
+
'wpuf_cond' => $this->conditionals,
|
69 |
+
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
70 |
+
'restriction_type' => 'character',
|
71 |
+
'text_editor_control' => [],
|
72 |
],
|
73 |
[
|
74 |
'input_type' => 'image_upload',
|
86 |
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
87 |
],
|
88 |
[
|
89 |
+
'input_type' => 'textarea',
|
90 |
+
'template' => 'post_excerpt',
|
91 |
+
'required' => 'no',
|
92 |
+
'label' => __( 'Excerpt', 'wp-user-frontend' ),
|
93 |
+
'name' => 'post_excerpt',
|
94 |
+
'is_meta' => 'no',
|
95 |
+
'help' => __( 'Provide a short description of this post (optional)',
|
96 |
+
'wp-user-frontend' ),
|
97 |
+
'css' => '',
|
98 |
+
'rows' => '5',
|
99 |
+
'cols' => '25',
|
100 |
+
'placeholder' => '',
|
101 |
+
'default' => '',
|
102 |
+
'rich' => 'no',
|
103 |
+
'wpuf_cond' => $this->conditionals,
|
104 |
+
'wpuf_visibility' => $this->get_default_visibility_prop(),
|
105 |
+
'restriction_type' => 'character',
|
106 |
+
'text_editor_control' => [],
|
107 |
],
|
108 |
[
|
109 |
'input_type' => 'text',
|
includes/class-upgrades.php
CHANGED
@@ -20,8 +20,21 @@ class WPUF_Upgrades {
|
|
20 |
'2.8.2' => 'upgrades/upgrade-2.8.2.php',
|
21 |
'2.8.5' => 'upgrades/upgrade-2.8.5.php',
|
22 |
'2.9.2' => 'upgrades/upgrade-2.9.2.php',
|
|
|
23 |
];
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* Get the plugin version
|
27 |
*
|
@@ -56,6 +69,14 @@ class WPUF_Upgrades {
|
|
56 |
* @return void
|
57 |
*/
|
58 |
public function perform_updates() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
$installed_version = $this->get_version();
|
60 |
$path = trailingslashit( __DIR__ );
|
61 |
|
@@ -68,4 +89,33 @@ class WPUF_Upgrades {
|
|
68 |
|
69 |
update_option( 'wpuf_version', WPUF_VERSION );
|
70 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
20 |
'2.8.2' => 'upgrades/upgrade-2.8.2.php',
|
21 |
'2.8.5' => 'upgrades/upgrade-2.8.5.php',
|
22 |
'2.9.2' => 'upgrades/upgrade-2.9.2.php',
|
23 |
+
'3.6.0' => 'upgrades/upgrade-3.6.0.php',
|
24 |
];
|
25 |
|
26 |
+
/**
|
27 |
+
* The class constructor
|
28 |
+
*
|
29 |
+
* @since 3.6.0
|
30 |
+
*
|
31 |
+
* @return void
|
32 |
+
*/
|
33 |
+
public function __construct() {
|
34 |
+
add_action( 'admin_notices', [ $this, 'show_upgrade_notice' ] );
|
35 |
+
add_action( 'admin_init', [ $this, 'perform_updates' ] );
|
36 |
+
}
|
37 |
+
|
38 |
/**
|
39 |
* Get the plugin version
|
40 |
*
|
69 |
* @return void
|
70 |
*/
|
71 |
public function perform_updates() {
|
72 |
+
if ( empty( $_GET['wpuf_do_update'] ) ) {
|
73 |
+
return;
|
74 |
+
}
|
75 |
+
|
76 |
+
if ( ! sanitize_text_field( wp_unslash( $_GET['wpuf_do_update'] ) ) ) {
|
77 |
+
return;
|
78 |
+
}
|
79 |
+
|
80 |
$installed_version = $this->get_version();
|
81 |
$path = trailingslashit( __DIR__ );
|
82 |
|
89 |
|
90 |
update_option( 'wpuf_version', WPUF_VERSION );
|
91 |
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Show upgrade notice.
|
95 |
+
*
|
96 |
+
* @since 3.6.0
|
97 |
+
*
|
98 |
+
* @return void
|
99 |
+
*/
|
100 |
+
public function show_upgrade_notice() {
|
101 |
+
if ( ! current_user_can( 'update_plugins' ) || ! $this->needs_update() ) {
|
102 |
+
return;
|
103 |
+
}
|
104 |
+
|
105 |
+
if ( $this->needs_update() ) {
|
106 |
+
$url = ! empty( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
|
107 |
+
?>
|
108 |
+
<div id="message" class="updated">
|
109 |
+
<p><?php printf( '<strong>%s</strong>', esc_attr__( 'WPUF Data Update Required', 'wp-user-frontend' ) ); ?></p>
|
110 |
+
<p class="submit"><a href="<?php echo esc_url( add_query_arg( [ 'wpuf_do_update' => true ], $url ) ); ?>" class="wpuf-update-btn button-primary"><?php esc_attr_e( 'Run the updater', 'wp-user-frontend' ); ?></a></p>
|
111 |
+
</div>
|
112 |
+
|
113 |
+
<script type="text/javascript">
|
114 |
+
jQuery('.wpuf-update-btn').click('click', function() {
|
115 |
+
return confirm( '<?php esc_attr_e( 'It is strongly recommended that you backup your database before proceeding. Are you sure you wish to run the updater now?', 'wp-user-frontend' ); ?>' );
|
116 |
+
});
|
117 |
+
</script>
|
118 |
+
<?php
|
119 |
+
}
|
120 |
+
}
|
121 |
}
|
includes/fields/class-abstract-fields.php
CHANGED
@@ -712,7 +712,7 @@ abstract class WPUF_Field_Contract {
|
|
712 |
*/
|
713 |
public function field_print_label( $field, $form_id = 0 ) {
|
714 |
if ( is_admin() ) { ?>
|
715 |
-
<tr
|
716 |
<?php } else { ?>
|
717 |
|
718 |
<li <?php $this->print_list_attributes( $field ); ?>>
|
712 |
*/
|
713 |
public function field_print_label( $field, $form_id = 0 ) {
|
714 |
if ( is_admin() ) { ?>
|
715 |
+
<tr <?php $this->print_list_attributes( $field ); ?>> <th><strong> <?php echo wp_kses_post( $field['label'] . $this->required_mark( $field ) ); ?> </strong></th> <td>
|
716 |
<?php } else { ?>
|
717 |
|
718 |
<li <?php $this->print_list_attributes( $field ); ?>>
|
includes/fields/class-field-checkbox.php
CHANGED
@@ -34,14 +34,21 @@ class WPUF_Form_Field_Checkbox extends WPUF_Field_Contract {
|
|
34 |
}
|
35 |
$this->field_print_label( $field_settings, $form_id ); ?>
|
36 |
|
37 |
-
<div class="wpuf-fields"
|
38 |
|
39 |
<?php
|
40 |
if ( $field_settings['options'] && count( $field_settings['options'] ) > 0 ) {
|
41 |
foreach ( $field_settings['options'] as $value => $option ) {
|
42 |
?>
|
43 |
<label <?php echo esc_attr( $field_settings['inline'] ) == 'yes' ? 'class="wpuf-checkbox-inline"' : 'class="wpuf-checkbox-block"'; ?>>
|
44 |
-
<input
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
<?php echo $option; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
46 |
</label>
|
47 |
<?php
|
34 |
}
|
35 |
$this->field_print_label( $field_settings, $form_id ); ?>
|
36 |
|
37 |
+
<div class="wpuf-fields">
|
38 |
|
39 |
<?php
|
40 |
if ( $field_settings['options'] && count( $field_settings['options'] ) > 0 ) {
|
41 |
foreach ( $field_settings['options'] as $value => $option ) {
|
42 |
?>
|
43 |
<label <?php echo esc_attr( $field_settings['inline'] ) == 'yes' ? 'class="wpuf-checkbox-inline"' : 'class="wpuf-checkbox-block"'; ?>>
|
44 |
+
<input
|
45 |
+
type="checkbox"
|
46 |
+
class="<?php echo esc_attr( sprintf( 'wpuf_%s_%d', $field_settings['name'], $form_id ) ); ?>"
|
47 |
+
name="<?php echo esc_attr( $field_settings['name'] ); ?>[]"
|
48 |
+
value="<?php echo esc_attr( $value ); ?>"<?php echo in_array( $value, $selected ) ? ' checked="checked"' : ''; ?>
|
49 |
+
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
50 |
+
data-type="checkbox"
|
51 |
+
/>
|
52 |
<?php echo $option; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
53 |
</label>
|
54 |
<?php
|
includes/fields/class-field-post-content.php
CHANGED
@@ -134,7 +134,7 @@ class WPUF_Form_Field_Post_Content extends WPUF_Field_Contract {
|
|
134 |
* @return array
|
135 |
*/
|
136 |
public function get_options_settings() {
|
137 |
-
$default_options = $this->get_default_option_settings( false
|
138 |
$default_text_options = $this->get_default_textarea_option_settings();
|
139 |
|
140 |
$settings = [
|
@@ -161,16 +161,17 @@ class WPUF_Form_Field_Post_Content extends WPUF_Field_Contract {
|
|
161 |
$defaults = $this->default_attributes();
|
162 |
|
163 |
$props = [
|
164 |
-
'input_type'
|
165 |
-
'is_meta'
|
166 |
-
'name'
|
167 |
-
'rows'
|
168 |
-
'cols'
|
169 |
-
'rich'
|
170 |
-
'id'
|
171 |
-
'is_new'
|
172 |
-
'restriction_type'
|
173 |
-
'restriction_to'
|
|
|
174 |
];
|
175 |
|
176 |
return array_merge( $defaults, $props );
|
134 |
* @return array
|
135 |
*/
|
136 |
public function get_options_settings() {
|
137 |
+
$default_options = $this->get_default_option_settings( false );
|
138 |
$default_text_options = $this->get_default_textarea_option_settings();
|
139 |
|
140 |
$settings = [
|
161 |
$defaults = $this->default_attributes();
|
162 |
|
163 |
$props = [
|
164 |
+
'input_type' => 'textarea',
|
165 |
+
'is_meta' => 'no',
|
166 |
+
'name' => 'post_content',
|
167 |
+
'rows' => 5,
|
168 |
+
'cols' => 25,
|
169 |
+
'rich' => 'yes',
|
170 |
+
'id' => 0,
|
171 |
+
'is_new' => true,
|
172 |
+
'restriction_type' => 'character',
|
173 |
+
'restriction_to' => 'max',
|
174 |
+
'text_editor_control' => [],
|
175 |
];
|
176 |
|
177 |
return array_merge( $defaults, $props );
|
includes/fields/class-field-post-excerpt.php
CHANGED
@@ -122,16 +122,17 @@ class WPUF_Form_Field_Post_Excerpt extends WPUF_Field_Contract {
|
|
122 |
$defaults = $this->default_attributes();
|
123 |
|
124 |
$props = [
|
125 |
-
'input_type'
|
126 |
-
'is_meta'
|
127 |
-
'name'
|
128 |
-
'rows'
|
129 |
-
'cols'
|
130 |
-
'rich'
|
131 |
-
'id'
|
132 |
-
'is_new'
|
133 |
-
'restriction_type'
|
134 |
-
'restriction_to'
|
|
|
135 |
];
|
136 |
|
137 |
return array_merge( $defaults, $props );
|
122 |
$defaults = $this->default_attributes();
|
123 |
|
124 |
$props = [
|
125 |
+
'input_type' => 'textarea',
|
126 |
+
'is_meta' => 'no',
|
127 |
+
'name' => 'post_excerpt',
|
128 |
+
'rows' => 5,
|
129 |
+
'cols' => 25,
|
130 |
+
'rich' => 'no',
|
131 |
+
'id' => 0,
|
132 |
+
'is_new' => true,
|
133 |
+
'restriction_type' => 'character',
|
134 |
+
'restriction_to' => 'max',
|
135 |
+
'text_editor_control' => [],
|
136 |
];
|
137 |
|
138 |
return array_merge( $defaults, $props );
|
includes/fields/class-field-radio.php
CHANGED
@@ -38,7 +38,7 @@ class WPUF_Form_Field_Radio extends WPUF_Form_Field_Checkbox {
|
|
38 |
|
39 |
do_action( 'WPUF_radio_field_after_label', $field_settings ); ?>
|
40 |
|
41 |
-
<div class="wpuf-fields"
|
42 |
|
43 |
<?php
|
44 |
if ( $field_settings['options'] && count( $field_settings['options'] ) > 0 ) {
|
@@ -50,6 +50,8 @@ class WPUF_Form_Field_Radio extends WPUF_Form_Field_Checkbox {
|
|
50 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
51 |
class="<?php echo esc_attr( 'wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
|
52 |
type="radio"
|
|
|
|
|
53 |
value="<?php echo esc_attr( $value ); ?>"<?php checked( $selected, $value ); ?>
|
54 |
ondblclick="WP_User_Frontend.doUncheckRadioBtn(this)"
|
55 |
/>
|
38 |
|
39 |
do_action( 'WPUF_radio_field_after_label', $field_settings ); ?>
|
40 |
|
41 |
+
<div class="wpuf-fields">
|
42 |
|
43 |
<?php
|
44 |
if ( $field_settings['options'] && count( $field_settings['options'] ) > 0 ) {
|
50 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
51 |
class="<?php echo esc_attr( 'wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
|
52 |
type="radio"
|
53 |
+
data-type="radio"
|
54 |
+
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
55 |
value="<?php echo esc_attr( $value ); ?>"<?php checked( $selected, $value ); ?>
|
56 |
ondblclick="WP_User_Frontend.doUncheckRadioBtn(this)"
|
57 |
/>
|
includes/fields/class-field-textarea.php
CHANGED
@@ -71,6 +71,7 @@ class WPUF_Form_Field_Textarea extends WPUF_Field_Contract {
|
|
71 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
72 |
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
73 |
data-type="textarea"
|
|
|
74 |
placeholder="<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
|
75 |
rows="<?php echo esc_attr( $field_settings['rows'] ); ?>"
|
76 |
cols="<?php echo esc_attr( $field_settings['cols'] ); ?>"
|
71 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
72 |
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
73 |
data-type="textarea"
|
74 |
+
data-id="<?php echo esc_attr( $field_settings['name'] . '_' . $form_id ); ?>"
|
75 |
placeholder="<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
|
76 |
rows="<?php echo esc_attr( $field_settings['rows'] ); ?>"
|
77 |
cols="<?php echo esc_attr( $field_settings['cols'] ); ?>"
|
includes/fields/class-field-url.php
CHANGED
@@ -36,7 +36,7 @@ class WPUF_Form_Field_URL extends WPUF_Form_Field_Text {
|
|
36 |
id="<?php echo esc_attr( $field_settings['name'] . '_' . $form_id ); ?>"
|
37 |
type="url" pattern="^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,20}(:[0-9]{1,20})?(\/.*)?$" class="url <?php echo esc_attr( ' wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
|
38 |
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
39 |
-
data-type="
|
40 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
41 |
placeholder="<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
|
42 |
value="<?php echo esc_attr( $value ); ?>" size="<?php echo esc_attr( $field_settings['size'] ); ?>"
|
36 |
id="<?php echo esc_attr( $field_settings['name'] . '_' . $form_id ); ?>"
|
37 |
type="url" pattern="^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,20}(:[0-9]{1,20})?(\/.*)?$" class="url <?php echo esc_attr( ' wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
|
38 |
data-required="<?php echo esc_attr( $field_settings['required'] ); ?>"
|
39 |
+
data-type="url"
|
40 |
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
|
41 |
placeholder="<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
|
42 |
value="<?php echo esc_attr( $value ); ?>" size="<?php echo esc_attr( $field_settings['size'] ); ?>"
|
includes/free/loader.php
CHANGED
@@ -36,10 +36,18 @@ class WPUF_Free_Loader extends WPUF_Pro_Prompt {
|
|
36 |
|
37 |
// plugin settings
|
38 |
add_action( 'admin_footer', [$this, 'remove_login_from_settings'] );
|
39 |
-
add_filter( '
|
40 |
-
|
41 |
// post form templates
|
42 |
add_action( 'wpuf_get_post_form_templates', [$this, 'post_form_templates'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
|
45 |
public function includes() {
|
@@ -74,8 +82,12 @@ class WPUF_Free_Loader extends WPUF_Pro_Prompt {
|
|
74 |
|
75 |
public function admin_menu_top() {
|
76 |
$capability = wpuf_admin_role();
|
|
|
77 |
|
78 |
-
add_submenu_page(
|
|
|
|
|
|
|
79 |
}
|
80 |
|
81 |
public function admin_menu() {
|
@@ -86,7 +98,7 @@ class WPUF_Free_Loader extends WPUF_Pro_Prompt {
|
|
86 |
}
|
87 |
|
88 |
public function admin_reg_forms_page() {
|
89 |
-
?>
|
90 |
<div class="wpuf-registration-form-notice">
|
91 |
<div class="wpuf-notice wpuf-registration-shortcode-notice" style="padding: 20px;background: #fff;border: 1px solid #ddd;max-width: 360px;">
|
92 |
<h3 style="margin: 0;"><?php esc_html_e( 'Registration Form', 'wp-user-frontend' ); ?></h3>
|
@@ -190,6 +202,667 @@ class WPUF_Free_Loader extends WPUF_Pro_Prompt {
|
|
190 |
return $fields;
|
191 |
}
|
192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
/**
|
194 |
* Add meta boxes to post form builder
|
195 |
*
|
@@ -277,4 +950,488 @@ class WPUF_Free_Loader extends WPUF_Pro_Prompt {
|
|
277 |
|
278 |
return $integrations;
|
279 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
}
|
36 |
|
37 |
// plugin settings
|
38 |
add_action( 'admin_footer', [$this, 'remove_login_from_settings'] );
|
39 |
+
add_filter( 'wpuf_settings_sections', [ $this, 'pro_sections' ] );
|
40 |
+
add_filter( 'wpuf_settings_fields', [ $this, 'pro_settings' ] );
|
41 |
// post form templates
|
42 |
add_action( 'wpuf_get_post_form_templates', [$this, 'post_form_templates'] );
|
43 |
+
add_filter( 'wpuf_get_pro_form_previews', [$this, 'pro_form_previews'] );
|
44 |
+
|
45 |
+
// payment gateway added for previewing
|
46 |
+
add_filter( 'wpuf_payment_gateways', [ $this, 'wpuf_payment_gateways' ] );
|
47 |
+
|
48 |
+
// navigation tabs added for previewing in Subscription > Add/Edit Subscription
|
49 |
+
add_action( 'wpuf_admin_subs_nav_tab', [ $this, 'subscription_tabs' ] );
|
50 |
+
add_action( 'wpuf_admin_subs_nav_content', [ $this, 'subscription_tab_contents' ]);
|
51 |
}
|
52 |
|
53 |
public function includes() {
|
82 |
|
83 |
public function admin_menu_top() {
|
84 |
$capability = wpuf_admin_role();
|
85 |
+
$parent_slug = 'wp-user-frontend';
|
86 |
|
87 |
+
add_submenu_page( $parent_slug, __( 'Registration Forms', 'wp-user-frontend' ), __( 'Registration Forms', 'wp-user-frontend' ), $capability, 'wpuf-profile-forms', [$this, 'admin_reg_forms_page'] );
|
88 |
+
$modules = add_submenu_page( $parent_slug, __( 'Modules', 'wp-user-frontend' ), __( 'Modules', 'wp-user-frontend' ), $capability, 'wpuf-modules', [ $this, 'modules_preview_page' ] );
|
89 |
+
add_action( 'wpuf_modules_page_contents', [ $this, 'load_modules_scripts' ] );
|
90 |
+
add_action( 'wpuf_modules_page_contents', [ $this, 'modules_page_contents' ] );
|
91 |
}
|
92 |
|
93 |
public function admin_menu() {
|
98 |
}
|
99 |
|
100 |
public function admin_reg_forms_page() {
|
101 |
+
?>
|
102 |
<div class="wpuf-registration-form-notice">
|
103 |
<div class="wpuf-notice wpuf-registration-shortcode-notice" style="padding: 20px;background: #fff;border: 1px solid #ddd;max-width: 360px;">
|
104 |
<h3 style="margin: 0;"><?php esc_html_e( 'Registration Form', 'wp-user-frontend' ); ?></h3>
|
202 |
return $fields;
|
203 |
}
|
204 |
|
205 |
+
/**
|
206 |
+
* The pro settings preview on the free version
|
207 |
+
*
|
208 |
+
* @since 3.6.0
|
209 |
+
*
|
210 |
+
* @param $settings_fields
|
211 |
+
*
|
212 |
+
* @return array
|
213 |
+
*/
|
214 |
+
public function pro_sections( $sections ) {
|
215 |
+
$crown_icon_path = WPUF_ROOT . '/assets/images/crown.svg';
|
216 |
+
$new_sections = [
|
217 |
+
[
|
218 |
+
'id' => 'wpuf_sms',
|
219 |
+
'title' => __( 'SMS', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
220 |
+
'icon' => 'dashicons-format-status',
|
221 |
+
'class' => 'pro-preview-html',
|
222 |
+
'is_pro_preview' => true,
|
223 |
+
],
|
224 |
+
[
|
225 |
+
'id' => 'wpuf_social_api',
|
226 |
+
'title' => __( 'Social Login', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
227 |
+
'icon' => 'dashicons-share',
|
228 |
+
'class' => 'pro-preview-html',
|
229 |
+
'is_pro_preview' => true,
|
230 |
+
],
|
231 |
+
[
|
232 |
+
'id' => 'user_directory',
|
233 |
+
'title' => __( 'User Directory', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
234 |
+
'icon' => 'dashicons-list-view',
|
235 |
+
'class' => 'pro-preview-html',
|
236 |
+
'is_pro_preview' => true,
|
237 |
+
],
|
238 |
+
[
|
239 |
+
'id' => 'wpuf_payment_invoices',
|
240 |
+
'title' => __( 'Invoices', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
241 |
+
'icon' => 'dashicons-media-spreadsheet',
|
242 |
+
'class' => 'pro-preview-html',
|
243 |
+
'is_pro_preview' => true,
|
244 |
+
],
|
245 |
+
[
|
246 |
+
'id' => 'wpuf_payment_tax',
|
247 |
+
'title' => __( 'Tax', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
248 |
+
'icon' => 'dashicons-media-text',
|
249 |
+
'class' => 'pro-preview-html',
|
250 |
+
'is_pro_preview' => true,
|
251 |
+
],
|
252 |
+
[
|
253 |
+
'id' => 'wpuf_content_restriction',
|
254 |
+
'title' => __( 'Content Filtering', 'wp-user-frontend' ) . '<span class="pro-icon-title"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
255 |
+
'icon' => 'dashicons-admin-network',
|
256 |
+
'class' => 'pro-preview-html',
|
257 |
+
'is_pro_preview' => true,
|
258 |
+
]
|
259 |
+
];
|
260 |
+
|
261 |
+
return array_merge( $sections, $new_sections );
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* The pro settings preview on the free version
|
266 |
+
*
|
267 |
+
* @since 3.6.0
|
268 |
+
*
|
269 |
+
* @param $settings_fields
|
270 |
+
*
|
271 |
+
* @return array
|
272 |
+
*/
|
273 |
+
public function pro_settings( $settings_fields ) {
|
274 |
+
$crown_icon_path = WPUF_ROOT . '/assets/images/crown.svg';
|
275 |
+
$settings_fields['wpuf_general'][] = [
|
276 |
+
'name' => 'comments_per_page',
|
277 |
+
'label' => __( 'Comments Per Page',
|
278 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
279 |
+
'desc' => __( 'Show how many comments per page in comments add-on', 'wp-user-frontend' ),
|
280 |
+
'type' => 'number',
|
281 |
+
'default' => '20',
|
282 |
+
'class' => 'pro-preview',
|
283 |
+
'is_pro_preview' => true,
|
284 |
+
];
|
285 |
+
$settings_fields['wpuf_general'][] = [
|
286 |
+
'name' => 'ipstack_key',
|
287 |
+
'label' => __( 'Ipstack API Key',
|
288 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
289 |
+
'desc' => __( '<a target="_blank" href="https://ipstack.com/dashboard">Register here</a> to get your free ipstack api key',
|
290 |
+
'wp-user-frontend' ),
|
291 |
+
'class' => 'pro-preview',
|
292 |
+
'is_pro_preview' => true,
|
293 |
+
];
|
294 |
+
$settings_fields['wpuf_general'][] = [
|
295 |
+
'name' => 'gmap_api_key',
|
296 |
+
'label' => __( 'Google Map API',
|
297 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
298 |
+
'desc' => __( '<a target="_blank" href="https://developers.google.com/maps/documentation/javascript">API</a> key is needed to render Google Maps',
|
299 |
+
'wp-user-frontend' ),
|
300 |
+
'class' => 'pro-preview',
|
301 |
+
'is_pro_preview' => true,
|
302 |
+
];
|
303 |
+
$settings_fields['wpuf_my_account'][] = [
|
304 |
+
'name' => 'show_edit_profile_menu',
|
305 |
+
'label' => __( 'Edit Profile',
|
306 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
307 |
+
'desc' => __( 'Allow user to update their profile information from the account page',
|
308 |
+
'wp-user-frontend' ),
|
309 |
+
'type' => 'checkbox',
|
310 |
+
'default' => 'on',
|
311 |
+
'class' => 'pro-preview',
|
312 |
+
'is_pro_preview' => true,
|
313 |
+
];
|
314 |
+
$settings_fields['wpuf_my_account'][] = [
|
315 |
+
'name' => 'edit_profile_form',
|
316 |
+
'label' => __( 'Profile Form',
|
317 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
318 |
+
'desc' => __( 'User will use this form to update their information from the account page,',
|
319 |
+
'wp-user-frontend' ),
|
320 |
+
'type' => 'select',
|
321 |
+
'options' => [ 'Default Form' ],
|
322 |
+
'class' => 'pro-preview',
|
323 |
+
'is_pro_preview' => true,
|
324 |
+
];
|
325 |
+
$settings_fields['wpuf_profile'][] = [
|
326 |
+
'name' => 'avatar_size',
|
327 |
+
'label' => __( 'Avatar Size',
|
328 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
329 |
+
'desc' => __( 'Avatar size to crop when upload using the registration/profile form.(e.g:100x100)',
|
330 |
+
'wpuf' ),
|
331 |
+
'type' => 'text',
|
332 |
+
'default' => '100x100',
|
333 |
+
'class' => 'pro-preview',
|
334 |
+
'is_pro_preview' => true,
|
335 |
+
];
|
336 |
+
$settings_fields['wpuf_profile'][] = [
|
337 |
+
'name' => 'pending_user_message',
|
338 |
+
'label' => __( 'Pending User Message',
|
339 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
340 |
+
'desc' => __( 'Pending user will see this message when try to log in.', 'wp-user-frontend' ),
|
341 |
+
'default' => __( '<strong>ERROR:</strong> Your account has to be approved by an administrator before you can login.',
|
342 |
+
'wp-user-frontend' ),
|
343 |
+
'type' => 'textarea',
|
344 |
+
'class' => 'pro-preview',
|
345 |
+
'is_pro_preview' => true,
|
346 |
+
];
|
347 |
+
$settings_fields['wpuf_profile'][] = [
|
348 |
+
'name' => 'denied_user_message',
|
349 |
+
'label' => __( 'Denied User Message',
|
350 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
351 |
+
'desc' => __( 'Denied user will see this message when try to log in.', 'wp-user-frontend' ),
|
352 |
+
'default' => __( '<strong>ERROR:</strong> Your account has been denied by an administrator, please contact admin to approve your account.',
|
353 |
+
'wp-user-frontend' ),
|
354 |
+
'type' => 'textarea',
|
355 |
+
'class' => 'pro-preview',
|
356 |
+
'is_pro_preview' => true,
|
357 |
+
];
|
358 |
+
$settings_fields['wpuf_mails'][] = [
|
359 |
+
'name' => 'subscription_setting',
|
360 |
+
'label' => __( '<span class="dashicons dashicons-money"></span> Subscription',
|
361 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
362 |
+
'type' => 'html',
|
363 |
+
'class' => 'subscription-setting pro-preview-html',
|
364 |
+
'is_pro_preview' => true,
|
365 |
+
];
|
366 |
+
$settings_fields['wpuf_mails'][] = [
|
367 |
+
'name' => 'email_setting',
|
368 |
+
'label' => __( '<span class="dashicons dashicons-admin-generic"></span> Template Settings',
|
369 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
370 |
+
'type' => 'html',
|
371 |
+
'class' => 'email-setting pro-preview-html',
|
372 |
+
'is_pro_preview' => true,
|
373 |
+
];
|
374 |
+
$settings_fields['wpuf_mails'][] = [
|
375 |
+
'name' => 'reset_email_setting',
|
376 |
+
'label' => __( '<span class="dashicons dashicons-unlock"></span> Reset Email',
|
377 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
378 |
+
'type' => 'html',
|
379 |
+
'class' => 'reset-email-setting pro-preview-html',
|
380 |
+
'is_pro_preview' => true,
|
381 |
+
];
|
382 |
+
$settings_fields['wpuf_mails'][] = [
|
383 |
+
'name' => 'confirmation_email_setting',
|
384 |
+
'label' => __( '<span class="dashicons dashicons-email-alt"></span> Resend Confirmation Email',
|
385 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
386 |
+
'type' => 'html',
|
387 |
+
'class' => 'confirmation-email-setting pro-preview-html',
|
388 |
+
'is_pro_preview' => true,
|
389 |
+
];
|
390 |
+
$settings_fields['wpuf_mails'][] = [
|
391 |
+
'name' => 'pending_user_email',
|
392 |
+
'label' => __( '<span class="dashicons dashicons-groups"></span> Pending User Email',
|
393 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
394 |
+
'type' => 'html',
|
395 |
+
'class' => 'pending-user-email pro-preview-html',
|
396 |
+
'is_pro_preview' => true,
|
397 |
+
];
|
398 |
+
$settings_fields['wpuf_mails'][] = [
|
399 |
+
'name' => 'denied_user_email',
|
400 |
+
'label' => __( '<span class="dashicons dashicons-dismiss"></span> Denied User Email',
|
401 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
402 |
+
'type' => 'html',
|
403 |
+
'class' => 'denied-user-email pro-preview-html',
|
404 |
+
'is_pro_preview' => true,
|
405 |
+
];
|
406 |
+
$settings_fields['wpuf_mails'][] = [
|
407 |
+
'name' => 'approved_user_email',
|
408 |
+
'label' => __( '<span class="dashicons dashicons-smiley"></span> Approved User Email',
|
409 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
410 |
+
'type' => 'html',
|
411 |
+
'class' => 'approved-user-email pro-preview-html',
|
412 |
+
'is_pro_preview' => true,
|
413 |
+
];
|
414 |
+
$settings_fields['wpuf_mails'][] = [
|
415 |
+
'name' => 'account_activated_user_email',
|
416 |
+
'label' => __( '<span class="dashicons dashicons-smiley"></span> Account Activated Email',
|
417 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
418 |
+
'type' => 'html',
|
419 |
+
'class' => 'account-activated-user-email pro-preview-html',
|
420 |
+
'is_pro_preview' => true,
|
421 |
+
];
|
422 |
+
$settings_fields['wpuf_mails'][] = [
|
423 |
+
'name' => 'approved_post_email',
|
424 |
+
'label' => __( '<span class="dashicons dashicons-saved"></span> Approved Post Email',
|
425 |
+
'wp-user-frontend' ) . '<span class="pro-icon"> ' . file_get_contents( $crown_icon_path ) . '</span>',
|
426 |
+
'type' => 'html',
|
427 |
+
'class' => 'approved-post-email pro-preview-html',
|
428 |
+
'is_pro_preview' => true,
|
429 |
+
];
|
430 |
+
$settings_fields['wpuf_sms'] = [
|
431 |
+
[
|
432 |
+
'name' => 'clickatell_name',
|
433 |
+
'label' => __( 'Clickatell name', 'wp-user-frontend' ),
|
434 |
+
'desc' => __( 'Clickatell name', 'wp-user-frontend' ),
|
435 |
+
'type' => 'text',
|
436 |
+
'is_pro_preview' => true,
|
437 |
+
],
|
438 |
+
[
|
439 |
+
'name' => 'clickatell_password',
|
440 |
+
'label' => __( 'Clickatell Password', 'wp-user-frontend' ),
|
441 |
+
'desc' => __( 'Clickatell Password', 'wp-user-frontend' ),
|
442 |
+
'type' => 'text',
|
443 |
+
'is_pro_preview' => true,
|
444 |
+
],
|
445 |
+
[
|
446 |
+
'name' => 'clickatell_api',
|
447 |
+
'label' => __( 'Clickatell api', 'wp-user-frontend' ),
|
448 |
+
'desc' => __( 'Clickatell api', 'wp-user-frontend' ),
|
449 |
+
'type' => 'text',
|
450 |
+
'is_pro_preview' => true,
|
451 |
+
],
|
452 |
+
[
|
453 |
+
'name' => 'smsglobal_name',
|
454 |
+
'label' => __( 'SMSGlobal Name', 'wp-user-frontend' ),
|
455 |
+
'desc' => __( 'SMSGlobal Name', 'wp-user-frontend' ),
|
456 |
+
'type' => 'text',
|
457 |
+
'is_pro_preview' => true,
|
458 |
+
],
|
459 |
+
[
|
460 |
+
'name' => 'smsglobal_password',
|
461 |
+
'label' => __( 'SMSGlobal Passord', 'wp-user-frontend' ),
|
462 |
+
'desc' => __( 'SMSGlobal Passord', 'wp-user-frontend' ),
|
463 |
+
'type' => 'text',
|
464 |
+
'is_pro_preview' => true,
|
465 |
+
],
|
466 |
+
[
|
467 |
+
'name' => 'nexmo_api',
|
468 |
+
'label' => __( 'Nexmo API', 'wp-user-frontend' ),
|
469 |
+
'desc' => __( 'Nexmo API', 'wp-user-frontend' ),
|
470 |
+
'type' => 'text',
|
471 |
+
'is_pro_preview' => true,
|
472 |
+
],
|
473 |
+
[
|
474 |
+
'name' => 'nexmo_api_Secret',
|
475 |
+
'label' => __( 'Nexmo API Secret', 'wp-user-frontend' ),
|
476 |
+
'desc' => __( 'Nexmo API Secret', 'wp-user-frontend' ),
|
477 |
+
'type' => 'text',
|
478 |
+
'is_pro_preview' => true,
|
479 |
+
],
|
480 |
+
[
|
481 |
+
'name' => 'twillo_number',
|
482 |
+
'label' => __( 'Twillo From Number', 'wp-user-frontend' ),
|
483 |
+
'desc' => __( 'Twillo From Number', 'wp-user-frontend' ),
|
484 |
+
'type' => 'text',
|
485 |
+
'is_pro_preview' => true,
|
486 |
+
],
|
487 |
+
[
|
488 |
+
'name' => 'twillo_sid',
|
489 |
+
'label' => __( 'Twillo Account SID', 'wp-user-frontend' ),
|
490 |
+
'desc' => __( 'Twillo Account SID', 'wp-user-frontend' ),
|
491 |
+
'type' => 'text',
|
492 |
+
'is_pro_preview' => true,
|
493 |
+
],
|
494 |
+
[
|
495 |
+
'name' => 'twillo_token',
|
496 |
+
'label' => __( 'Twillo Authro Token', 'wp-user-frontend' ),
|
497 |
+
'desc' => __( 'Twillo Authro Token', 'wp-user-frontend' ),
|
498 |
+
'type' => 'text',
|
499 |
+
'is_pro_preview' => true,
|
500 |
+
],
|
501 |
+
];
|
502 |
+
$settings_fields['wpuf_social_api'] = [
|
503 |
+
'enabled' => [
|
504 |
+
'name' => 'enabled',
|
505 |
+
'label' => __( 'Enable Social Login', 'wp-user-frontend' ),
|
506 |
+
'type' => 'checkbox',
|
507 |
+
'desc' => __( 'Enabling this will add Social Icons under registration form to allow users to login or register using Social Profiles',
|
508 |
+
'wp-user-frontend' ),
|
509 |
+
'is_pro_preview' => true,
|
510 |
+
],
|
511 |
+
'facebook_app_label' => [
|
512 |
+
'name' => 'fb_app_label',
|
513 |
+
'label' => __( 'Facebook App Settings', 'wp-user-frontend' ),
|
514 |
+
'type' => 'html',
|
515 |
+
'desc' => '<a target="_blank" href="https://developers.facebook.com/apps/">' . __( 'Create an App',
|
516 |
+
'wp-user-frontend' ) . '</a>' . __( ' if you don\'t have one and fill App ID and App Secret below. ',
|
517 |
+
'wp-user-frontend' ),
|
518 |
+
],
|
519 |
+
'facebook_app_url' => [
|
520 |
+
'name' => 'fb_app_url',
|
521 |
+
'label' => __( 'Redirect URI', 'wp-user-frontend' ),
|
522 |
+
'type' => 'html',
|
523 |
+
'desc' => "<input class='regular-text' type='text' disabled value=''>",
|
524 |
+
'is_pro_preview' => true,
|
525 |
+
],
|
526 |
+
'facebook_app_id' => [
|
527 |
+
'name' => 'fb_app_id',
|
528 |
+
'label' => __( 'App Id', 'wp-user-frontend' ),
|
529 |
+
'type' => 'text',
|
530 |
+
'is_pro_preview' => true,
|
531 |
+
],
|
532 |
+
'facebook_app_secret' => [
|
533 |
+
'name' => 'fb_app_secret',
|
534 |
+
'label' => __( 'App Secret', 'wp-user-frontend' ),
|
535 |
+
'type' => 'text',
|
536 |
+
'is_pro_preview' => true,
|
537 |
+
],
|
538 |
+
'twitter_app_label' => [
|
539 |
+
'name' => 'twitter_app_label',
|
540 |
+
'label' => __( 'Twitter App Settings', 'wp-user-frontend' ),
|
541 |
+
'type' => 'html',
|
542 |
+
'desc' => '<a target="_blank" href="https://apps.twitter.com/">' . __( 'Create an App',
|
543 |
+
'wp-user-frontend' ) . '</a>' . __( ' if you don\'t have one and fill Consumer key and Consumer Secret below.',
|
544 |
+
'wp-user-frontend' ),
|
545 |
+
'is_pro_preview' => true,
|
546 |
+
],
|
547 |
+
'twitter_app_url' => [
|
548 |
+
'name' => 'twitter_app_url',
|
549 |
+
'label' => __( 'Callback URL', 'wp-user-frontend' ),
|
550 |
+
'type' => 'html',
|
551 |
+
'desc' => "<input class='regular-text' type='text' disabled value=''>",
|
552 |
+
'is_pro_preview' => true,
|
553 |
+
],
|
554 |
+
'twitter_app_id' => [
|
555 |
+
'name' => 'twitter_app_id',
|
556 |
+
'label' => __( 'Consumer Key', 'wp-user-frontend' ),
|
557 |
+
'type' => 'text',
|
558 |
+
'is_pro_preview' => true,
|
559 |
+
],
|
560 |
+
'twitter_app_secret' => [
|
561 |
+
'name' => 'twitter_app_secret',
|
562 |
+
'label' => __( 'Consumer Secret', 'wp-user-frontend' ),
|
563 |
+
'type' => 'text',
|
564 |
+
'is_pro_preview' => true,
|
565 |
+
],
|
566 |
+
'google_app_label' => [
|
567 |
+
'name' => 'google_app_label',
|
568 |
+
'label' => __( 'Google App Settings', 'wp-user-frontend' ),
|
569 |
+
'type' => 'html',
|
570 |
+
'desc' => '<a target="_blank" href="https://console.developers.google.com/project">' . __( 'Create an App',
|
571 |
+
'wp-user-frontend' ) . '</a>' . __( ' if you don\'t have one and fill Client ID and Client Secret below.',
|
572 |
+
'wp-user-frontend' ),
|
573 |
+
'is_pro_preview' => true,
|
574 |
+
],
|
575 |
+
'google_app_url' => [
|
576 |
+
'name' => 'google_app_url',
|
577 |
+
'label' => __( 'Redirect URI', 'wp-user-frontend' ),
|
578 |
+
'type' => 'html',
|
579 |
+
'desc' => "<input class='regular-text' type='text' disabled value=''>",
|
580 |
+
'is_pro_preview' => true,
|
581 |
+
],
|
582 |
+
'google_app_id' => [
|
583 |
+
'name' => 'google_app_id',
|
584 |
+
'label' => __( 'Client ID', 'wp-user-frontend' ),
|
585 |
+
'type' => 'text',
|
586 |
+
'is_pro_preview' => true,
|
587 |
+
],
|
588 |
+
'google_app_secret' => [
|
589 |
+
'name' => 'google_app_secret',
|
590 |
+
'label' => __( 'Client secret', 'wp-user-frontend' ),
|
591 |
+
'type' => 'text',
|
592 |
+
'is_pro_preview' => true,
|
593 |
+
],
|
594 |
+
'linkedin_app_label' => [
|
595 |
+
'name' => 'linkedin_app_label',
|
596 |
+
'label' => __( 'Linkedin App Settings', 'wp-user-frontend' ),
|
597 |
+
'type' => 'html',
|
598 |
+
'desc' => '<a target="_blank" href="https://www.linkedin.com/developer/apps">' . __( 'Create an App',
|
599 |
+
'wp-user-frontend' ) . '</a>' . __( ' if you don\'t have one and fill Client ID and Client Secret below.',
|
600 |
+
'wp-user-frontend' ),
|
601 |
+
'is_pro_preview' => true,
|
602 |
+
],
|
603 |
+
'linkedin_app_url' => [
|
604 |
+
'name' => 'linkedin_app_url',
|
605 |
+
'label' => __( 'Redirect URL', 'wp-user-frontend' ),
|
606 |
+
'type' => 'html',
|
607 |
+
'desc' => "<input class='regular-text' type='text' disabled value=''>",
|
608 |
+
'is_pro_preview' => true,
|
609 |
+
],
|
610 |
+
'linkedin_app_id' => [
|
611 |
+
'name' => 'linkedin_app_id',
|
612 |
+
'label' => __( 'Client ID', 'wp-user-frontend' ),
|
613 |
+
'type' => 'text',
|
614 |
+
'is_pro_preview' => true,
|
615 |
+
],
|
616 |
+
'linkedin_app_secret' => [
|
617 |
+
'name' => 'linkedin_app_secret',
|
618 |
+
'label' => __( 'Client Secret', 'wp-user-frontend' ),
|
619 |
+
'type' => 'text',
|
620 |
+
'is_pro_preview' => true,
|
621 |
+
],
|
622 |
+
'instagram_app_label' => [
|
623 |
+
'name' => 'instagram_app_label',
|
624 |
+
'label' => __( 'Instagram App Settings', 'wp-user-frontend' ),
|
625 |
+
'type' => 'html',
|
626 |
+
'desc' => '<a target="_blank" href="https://www.instagram.com/developer/">' . __( 'Create an App',
|
627 |
+
'wp-user-frontend' ) . '</a>' . __( ' if you don\'t have one and fill Client ID and Client Secret below.',
|
628 |
+
'wp-user-frontend' ),
|
629 |
+
'is_pro_preview' => true,
|
630 |
+
],
|
631 |
+
'instagram_app_url' => [
|
632 |
+
'name' => 'instagram_app_url',
|
633 |
+
'label' => __( 'Redirect URI', 'wp-user-frontend' ),
|
634 |
+
'type' => 'html',
|
635 |
+
'desc' => "<input class='regular-text' type='text' disabled value=''>",
|
636 |
+
'is_pro_preview' => true,
|
637 |
+
],
|
638 |
+
'instagram_app_id' => [
|
639 |
+
'name' => 'instagram_app_id',
|
640 |
+
'label' => __( 'Client ID', 'wp-user-frontend' ),
|
641 |
+
'type' => 'text',
|
642 |
+
'is_pro_preview' => true,
|
643 |
+
],
|
644 |
+
'instagram_app_secret' => [
|
645 |
+
'name' => 'instagram_app_secret',
|
646 |
+
'label' => __( 'Client Secret', 'wp-user-frontend' ),
|
647 |
+
'type' => 'text',
|
648 |
+
'is_pro_preview' => true,
|
649 |
+
],
|
650 |
+
];
|
651 |
+
$settings_fields['user_directory'] = [
|
652 |
+
[
|
653 |
+
'name' => 'pro_img_size',
|
654 |
+
'label' => __( 'Profile Gallery Image Size ', 'wp-user-frontend' ),
|
655 |
+
'desc' => __( 'Set the image size of picture gallery in frontend', 'wp-user-frontend' ),
|
656 |
+
'type' => 'select',
|
657 |
+
'options' => wpuf_get_image_sizes(),
|
658 |
+
'is_pro_preview' => true,
|
659 |
+
],
|
660 |
+
[
|
661 |
+
'name' => 'avatar_size',
|
662 |
+
'label' => __( 'Avatar Size ', 'wp-user-frontend' ),
|
663 |
+
'desc' => __( 'Set the image size of profile picture in frontend', 'wp-user-frontend' ),
|
664 |
+
'type' => 'select',
|
665 |
+
'options' => [ '32' => '32 x 32', ],
|
666 |
+
'is_pro_preview' => true,
|
667 |
+
],
|
668 |
+
[
|
669 |
+
'name' => 'profile_header_template',
|
670 |
+
'label' => __( 'Profile Header Template', 'wp-user-frontend' ),
|
671 |
+
'type' => 'radio',
|
672 |
+
'default' => 'layout',
|
673 |
+
'options' => [
|
674 |
+
'layout' => '<img class="profile-header" src="' . WPUF_ASSET_URI . '/images/profile-header-template-1.jpg' . '" />',
|
675 |
+
'layout1' => '<img class="profile-header" src="' . WPUF_ASSET_URI . '/images/profile-header-template-2.jpg' . '" />',
|
676 |
+
'layout2' => '<img class="profile-header" src="' . WPUF_ASSET_URI . '/images/profile-header-template-3.jpg' . '" />',
|
677 |
+
],
|
678 |
+
'is_pro_preview' => true,
|
679 |
+
],
|
680 |
+
[
|
681 |
+
'name' => 'user_listing_template',
|
682 |
+
'label' => __( 'User Listing Template', 'wp-user-frontend' ),
|
683 |
+
'type' => 'radio',
|
684 |
+
'default' => 'list',
|
685 |
+
'options' => [
|
686 |
+
'list' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-1.jpg' . '" />',
|
687 |
+
'list1' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-2.jpg' . '" />',
|
688 |
+
'list2' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-3.jpg' . '" />',
|
689 |
+
'list3' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-4.jpg' . '" />',
|
690 |
+
'list4' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-5.jpg' . '" />',
|
691 |
+
'list5' => '<img class="user-listing" src="' . WPUF_ASSET_URI . '/images/user-listing-template-6.jpg' . '" />',
|
692 |
+
],
|
693 |
+
'is_pro_preview' => true,
|
694 |
+
],
|
695 |
+
];
|
696 |
+
$settings_fields['wpuf_payment_invoices'] = [
|
697 |
+
[
|
698 |
+
'name' => 'enable_invoices',
|
699 |
+
'label' => __( 'Enable Invoices', 'wp-user-frontend' ),
|
700 |
+
'desc' => __( 'Enable sending invoices for completed payments', 'wp-user-frontend' ),
|
701 |
+
'type' => 'checkbox',
|
702 |
+
'default' => 'on',
|
703 |
+
'is_pro_preview' => true,
|
704 |
+
],
|
705 |
+
[
|
706 |
+
'name' => 'show_invoices',
|
707 |
+
'label' => __( 'Show Invoices', 'wp-user-frontend' ),
|
708 |
+
'desc' => __( 'Show Invoices option where <code>[wpuf_account]</code> is located',
|
709 |
+
'wp-user-frontend' ),
|
710 |
+
'type' => 'checkbox',
|
711 |
+
'default' => 'on',
|
712 |
+
'is_pro_preview' => true,
|
713 |
+
],
|
714 |
+
[
|
715 |
+
'name' => 'set_logo',
|
716 |
+
'label' => __( 'Set Invoice Logo', 'wp-user-frontend' ),
|
717 |
+
'desc' => __( 'This sets the company Logo to be used in Invoice', 'wp-user-frontend' ),
|
718 |
+
'type' => 'file',
|
719 |
+
'default' => false,
|
720 |
+
'is_pro_preview' => true,
|
721 |
+
],
|
722 |
+
[
|
723 |
+
'name' => 'set_color',
|
724 |
+
'label' => __( 'Set Invoice Color', 'wp-user-frontend' ),
|
725 |
+
'desc' => __( 'Set color code to be used in invoice', 'wp-user-frontend' ),
|
726 |
+
'type' => 'text',
|
727 |
+
'default' => '#e435226',
|
728 |
+
'is_pro_preview' => true,
|
729 |
+
],
|
730 |
+
[
|
731 |
+
'name' => 'set_from_address',
|
732 |
+
'label' => __( 'From Address', 'wp-user-frontend' ),
|
733 |
+
'desc' => __( 'This sets the provider information of the Invoice. Note: use the <xmp class="wpuf-xmp-tag"><br></xmp> tag to enter line breaks.',
|
734 |
+
'wp-user-frontend' ),
|
735 |
+
'type' => 'textarea',
|
736 |
+
'is_pro_preview' => true,
|
737 |
+
],
|
738 |
+
[
|
739 |
+
'name' => 'set_title',
|
740 |
+
'label' => __( 'Invoice Title', 'wp-user-frontend' ),
|
741 |
+
'desc' => __( 'This sets the payment information title of the Invoice', 'wp-user-frontend' ),
|
742 |
+
'type' => 'text',
|
743 |
+
'is_pro_preview' => true,
|
744 |
+
],
|
745 |
+
[
|
746 |
+
'name' => 'set_paragraph',
|
747 |
+
'label' => __( 'Invoice Paragraph', 'wp-user-frontend' ),
|
748 |
+
'desc' => __( 'This sets the payment information paragraph of the Invoice',
|
749 |
+
'wp-user-frontend' ),
|
750 |
+
'type' => 'textarea',
|
751 |
+
'is_pro_preview' => true,
|
752 |
+
],
|
753 |
+
[
|
754 |
+
'name' => 'set_footernote',
|
755 |
+
'label' => __( 'Invoice Footer', 'wp-user-frontend' ),
|
756 |
+
'desc' => __( 'This sets the footer of the Invoice', 'wp-user-frontend' ),
|
757 |
+
'type' => 'text',
|
758 |
+
'is_pro_preview' => true,
|
759 |
+
],
|
760 |
+
[
|
761 |
+
'name' => 'set_filename',
|
762 |
+
'label' => __( 'Invoice Filename Prefix', 'wp-user-frontend' ),
|
763 |
+
'desc' => __( 'This sets the filename prefix of the Invoice', 'wp-user-frontend' ),
|
764 |
+
'type' => 'text',
|
765 |
+
'is_pro_preview' => true,
|
766 |
+
],
|
767 |
+
[
|
768 |
+
'name' => 'set_mail_sub',
|
769 |
+
'label' => __( 'Set Invoice Mail Subject', 'wp-user-frontend' ),
|
770 |
+
'desc' => __( 'This sets the mail subject of the Invoice', 'wp-user-frontend' ),
|
771 |
+
'type' => 'text',
|
772 |
+
'is_pro_preview' => true,
|
773 |
+
],
|
774 |
+
[
|
775 |
+
'name' => 'set_mail_body',
|
776 |
+
'label' => __( 'Set Invoice Mail Body', 'wp-user-frontend' ),
|
777 |
+
'desc' => __( 'This sets the mail body of the Invoice', 'wp-user-frontend' ),
|
778 |
+
'type' => 'textarea',
|
779 |
+
'is_pro_preview' => true,
|
780 |
+
],
|
781 |
+
];
|
782 |
+
$settings_fields['wpuf_payment_tax'] = [
|
783 |
+
[
|
784 |
+
'name' => 'tax_help',
|
785 |
+
'label' => __( 'Need help?', 'wp-user-frontend' ),
|
786 |
+
'desc' => sprintf( __( 'Visit the <a href="%s" target="_blank">Tax setup documentation</a> for guidance on how to setup tax.', 'wp-user-frontend' ), 'https://wedevs.com/docs/wp-user-frontend-pro/settings/tax/' ),
|
787 |
+
'callback' => 'wpuf_descriptive_text',
|
788 |
+
],
|
789 |
+
[
|
790 |
+
'name' => 'enable_tax',
|
791 |
+
'label' => __( 'Enable Tax', 'wp-user-frontend' ),
|
792 |
+
'desc' => __( 'Enable tax on payments', 'wp-user-frontend' ),
|
793 |
+
'type' => 'checkbox',
|
794 |
+
'default' => 'on',
|
795 |
+
'is_pro_preview' => true,
|
796 |
+
],
|
797 |
+
[
|
798 |
+
'name' => 'wpuf_base_country_state',
|
799 |
+
'label' => '<strong>' . __( 'Base Country and State', 'wp-user-frontend' ) . '</strong>',
|
800 |
+
'desc' => __( 'Select your base country and state', 'wp-user-frontend' ),
|
801 |
+
'is_pro_preview' => true,
|
802 |
+
],
|
803 |
+
[
|
804 |
+
'name' => 'wpuf_tax_rates',
|
805 |
+
'label' => '<strong>' . __( 'Tax Rates', 'wp-user-frontend' ) . '</strong>',
|
806 |
+
'desc' => __( 'Add tax rates for specific regions. Enter a percentage, such as 5 for 5%',
|
807 |
+
'wp-user-frontend' ),
|
808 |
+
'is_pro_preview' => true,
|
809 |
+
],
|
810 |
+
[
|
811 |
+
'name' => 'fallback_tax_rate',
|
812 |
+
'label' => '<strong>' . __( 'Fallback Tax Rate', 'wp-user-frontend' ) . '</strong>',
|
813 |
+
'desc' => __( 'Customers not in a specific rate will be charged this tax rate. Enter a percentage, such as 5 for 5%',
|
814 |
+
'wp-user-frontend' ),
|
815 |
+
'type' => 'number',
|
816 |
+
'default' => 0,
|
817 |
+
'is_pro_preview' => true,
|
818 |
+
],
|
819 |
+
[
|
820 |
+
'name' => 'prices_include_tax',
|
821 |
+
'label' => __( 'Show prices with tax', 'wp-user-frontend' ),
|
822 |
+
'desc' => __( 'If frontend prices will include tax or not', 'wp-user-frontend' ),
|
823 |
+
'type' => 'radio',
|
824 |
+
'default' => 'yes',
|
825 |
+
'options' => array(
|
826 |
+
'yes' => __( 'Show prices with tax', 'wp-user-frontend' ),
|
827 |
+
'no' => __( 'Show prices without tax', 'wp-user-frontend' ),
|
828 |
+
),
|
829 |
+
'is_pro_preview' => true,
|
830 |
+
],
|
831 |
+
];
|
832 |
+
$settings_fields['wpuf_content_restriction'] = [
|
833 |
+
[
|
834 |
+
'name' => 'enable_content_filtering',
|
835 |
+
'label' => __( 'Enable Content Filtering', 'wp-user-frontend' ),
|
836 |
+
'desc' => __( 'Enable Content Filtering in frontend', 'wp-user-frontend' ),
|
837 |
+
'type' => 'checkbox',
|
838 |
+
'default' => 'off',
|
839 |
+
'is_pro_preview' => true,
|
840 |
+
],
|
841 |
+
[
|
842 |
+
'name' => 'keyword_dictionary',
|
843 |
+
'label' => __( 'Keyword Dictionary', 'wp-user-frontend' ),
|
844 |
+
'desc' => __( 'Enter Keywords to Remove. Separate keywords with commas.',
|
845 |
+
'wp-user-frontend' ),
|
846 |
+
'type' => 'textarea',
|
847 |
+
'is_pro_preview' => true,
|
848 |
+
],
|
849 |
+
[
|
850 |
+
'name' => 'filter_contents',
|
851 |
+
'label' => __( 'Filter main content', 'wp-user-frontend' ),
|
852 |
+
'desc' => __( 'Choose which content to filter.', 'wp-user-frontend' ),
|
853 |
+
'type' => 'multicheck',
|
854 |
+
'options' => array(
|
855 |
+
'post_title' => __( 'Post Titles', 'wp-user-frontend' ),
|
856 |
+
'post_content' => __( 'Post Content', 'wp-user-frontend' ),
|
857 |
+
),
|
858 |
+
'default' => array( 'post_content', 'post_title' ),
|
859 |
+
'is_pro_preview' => true,
|
860 |
+
],
|
861 |
+
];
|
862 |
+
|
863 |
+
return $settings_fields;
|
864 |
+
}
|
865 |
+
|
866 |
/**
|
867 |
* Add meta boxes to post form builder
|
868 |
*
|
950 |
|
951 |
return $integrations;
|
952 |
}
|
953 |
+
|
954 |
+
/**
|
955 |
+
* Pro form templates for previewing
|
956 |
+
*
|
957 |
+
* @since 3.6.0
|
958 |
+
*
|
959 |
+
* @param array $integrations
|
960 |
+
*
|
961 |
+
* @return array
|
962 |
+
*/
|
963 |
+
public function pro_form_previews( $integrations ) {
|
964 |
+
include_once __DIR__ . '/post-form-templates/easy_digital_download.php';
|
965 |
+
|
966 |
+
$integrations['WPUF_Pro_Form_Preview_EDD'] = new WPUF_Pro_Form_Preview_EDD();
|
967 |
+
|
968 |
+
return $integrations;
|
969 |
+
}
|
970 |
+
|
971 |
+
/**
|
972 |
+
* A preview page to show the Pro Modules of WPUF
|
973 |
+
*
|
974 |
+
* @since 3.6.0
|
975 |
+
*
|
976 |
+
* @return void
|
977 |
+
*/
|
978 |
+
public function modules_preview_page() {
|
979 |
+
$modules = $this->pro_modules_info();
|
980 |
+
do_action( 'wpuf_modules_page_contents', $modules );
|
981 |
+
}
|
982 |
+
|
983 |
+
/**
|
984 |
+
* Load required style and js for Modules page
|
985 |
+
*
|
986 |
+
* @since 3.6.0
|
987 |
+
*
|
988 |
+
* @return void
|
989 |
+
*/
|
990 |
+
public function load_modules_scripts() {
|
991 |
+
wp_enqueue_style( 'wpuf-pro-modules', WPUF_ASSET_URI . '/css/admin/wpuf-module.css', false, WPUF_VERSION );
|
992 |
+
wp_enqueue_script( 'wpuf_pro_admin', WPUF_ASSET_URI . '/js/admin/wpuf-module.js', [ 'jquery' ], WPUF_VERSION, true );
|
993 |
+
}
|
994 |
+
|
995 |
+
/**
|
996 |
+
* Get the info of the pro modules as an array
|
997 |
+
*
|
998 |
+
* @since 3.6.0
|
999 |
+
*
|
1000 |
+
* @return string[]
|
1001 |
+
*/
|
1002 |
+
public function pro_modules_info() {
|
1003 |
+
return [
|
1004 |
+
'campaign-monitor/campaign-monitor.php' => [
|
1005 |
+
'name' => 'Campaign Monitor',
|
1006 |
+
'description' => 'Subscribe a contact to Campaign Monitor when a form is submited',
|
1007 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/campaign-monitor/',
|
1008 |
+
'thumbnail' => 'campaign_monitor.png',
|
1009 |
+
],
|
1010 |
+
'social-login/wpuf-social-login.php' => [
|
1011 |
+
'name' => 'Social Login & Registration',
|
1012 |
+
'description' => 'Add Social Login and registration feature in WP User Frontend',
|
1013 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/social-login-registration/',
|
1014 |
+
'thumbnail' => 'Social-Media-Login.png',
|
1015 |
+
],
|
1016 |
+
'bp-profile/wpuf-bp.php' => [
|
1017 |
+
'name' => 'BuddyPress Profile',
|
1018 |
+
'description' => 'Register and upgrade user profiles and sync data with BuddyPress',
|
1019 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/buddypress-profile-integration/',
|
1020 |
+
'thumbnail' => 'wpuf-buddypress.png',
|
1021 |
+
],
|
1022 |
+
'comments/comments.php' => [
|
1023 |
+
'name' => 'Comments Manager',
|
1024 |
+
'description' => 'Handle comments in frontend',
|
1025 |
+
'plugin_uri' => 'https://wedevs.com/wp-user-frontend-pro/modules/comments-manager/',
|
1026 |
+
'thumbnail' => 'wpuf-comment.png',
|
1027 |
+
],
|
1028 |
+
'mailpoet/wpuf-mailpoet.php' => [
|
1029 |
+
'name' => 'Mailpoet',
|
1030 |
+
'description' => 'Add subscribers to mailpoet mailing list when they registers via WP User Frontend Pro',
|
1031 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/mailpoet/',
|
1032 |
+
'thumbnail' => 'wpuf-mailpoet.png',
|
1033 |
+
],
|
1034 |
+
'pmpro/wpuf-pmpro.php' => [
|
1035 |
+
'name' => 'Paid Membership Pro Integration',
|
1036 |
+
'description' => 'Membership Integration of WP User Frontend PRO with Paid Membership Pro',
|
1037 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/install-and-configure-pmpro-add-on-for-wpuf/',
|
1038 |
+
'thumbnail' => 'wpuf-pmpro.png',
|
1039 |
+
],
|
1040 |
+
'sms-notification/wpuf-sms.php' => [
|
1041 |
+
'name' => 'SMS Notification',
|
1042 |
+
'description' => 'SMS notification for post',
|
1043 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/sms-notification/',
|
1044 |
+
'thumbnail' => 'wpuf-sms.png',
|
1045 |
+
],
|
1046 |
+
'email-templates/email-templates.php' => [
|
1047 |
+
'name' => 'HTML Email Templates',
|
1048 |
+
'description' => 'Send Email Notifications with HTML Template',
|
1049 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/html-email-templates/',
|
1050 |
+
'thumbnail' => 'email-templates.png',
|
1051 |
+
],
|
1052 |
+
'getresponse/getresponse.php' => [
|
1053 |
+
'name' => 'GetResponse',
|
1054 |
+
'description' => 'Subscribe a contact to GetResponse when a form is submited',
|
1055 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/get-response/',
|
1056 |
+
'thumbnail' => 'getresponse.png',
|
1057 |
+
],
|
1058 |
+
'zapier/zapier.php' => [
|
1059 |
+
'name' => 'Zapier',
|
1060 |
+
'description' => 'Subscribe a contact to Zapier when a form is submited',
|
1061 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/zapier/',
|
1062 |
+
'thumbnail' => 'zapier.png',
|
1063 |
+
],
|
1064 |
+
'convertkit/convertkit.php' => [
|
1065 |
+
'name' => 'ConvertKit',
|
1066 |
+
'description' => 'Subscribe a contact to ConvertKit when a form is submited',
|
1067 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/convertkit/',
|
1068 |
+
'thumbnail' => 'convertkit.png',
|
1069 |
+
],
|
1070 |
+
'private-message/private-message.php' => [
|
1071 |
+
'name' => 'Private Message',
|
1072 |
+
'description' => 'User to user message from Frontend',
|
1073 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/private-messaging/',
|
1074 |
+
'thumbnail' => 'message.gif',
|
1075 |
+
],
|
1076 |
+
'user-analytics/wpuf-user-analytics.php' => [
|
1077 |
+
'name' => 'User Analytics',
|
1078 |
+
'description' => 'Show user tracking info during post and registration from Frontend',
|
1079 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/user-analytics/',
|
1080 |
+
'thumbnail' => 'wpuf-ua.png',
|
1081 |
+
],
|
1082 |
+
'mailchimp/wpuf-mailchimp.php' => [
|
1083 |
+
'name' => 'Mailchimp',
|
1084 |
+
'description' => 'Add subscribers to Mailchimp mailing list when they registers via WP User Frontend Pro',
|
1085 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/add-users-to-mailchimp-subscribers-list-upon-registration-from-frontend/',
|
1086 |
+
'thumbnail' => 'wpuf-mailchimp.png',
|
1087 |
+
],
|
1088 |
+
'user-activity/user_activity.php' => [
|
1089 |
+
'name' => 'User Activity',
|
1090 |
+
'description' => 'Handle user activity in frontend',
|
1091 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/user-activity/',
|
1092 |
+
'thumbnail' => 'wpuf-activity.png',
|
1093 |
+
],
|
1094 |
+
'report/wpuf-report.php' => [
|
1095 |
+
'name' => 'Reports',
|
1096 |
+
'description' => 'Show various reports in WP User Frontend menu',
|
1097 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/reports/',
|
1098 |
+
'thumbnail' => 'reports.png',
|
1099 |
+
],
|
1100 |
+
'qr-code-field/wpuf-qr-code.php' => [
|
1101 |
+
'name' => 'QR Code',
|
1102 |
+
'description' => 'Post Qr code generator plugin',
|
1103 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/qr-code/',
|
1104 |
+
'thumbnail' => 'wpuf-qr.png',
|
1105 |
+
],
|
1106 |
+
'mailpoet3/wpuf-mailpoet-3.php' => [
|
1107 |
+
'name' => 'Mailpoet 3',
|
1108 |
+
'description' => 'Add subscribers to mailpoet mailing list when they registers via WP User Frontend Pro',
|
1109 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/mailpoet3/',
|
1110 |
+
'thumbnail' => 'mailpoet3.png',
|
1111 |
+
],
|
1112 |
+
'user-directory/userlisting.php' => [
|
1113 |
+
'name' => 'User Directory',
|
1114 |
+
'description' => 'Handle user listing and user profile in frontend',
|
1115 |
+
'plugin_uri' => 'https://wedevs.com/products/plugins/wp-user-frontend-pro/user-listing-profile/',
|
1116 |
+
'thumbnail' => 'wpuf-ul.png',
|
1117 |
+
],
|
1118 |
+
'stripe/wpuf-stripe.php' => [
|
1119 |
+
'name' => 'Stripe Payment',
|
1120 |
+
'description' => 'Stripe payment gateway for WP User Frontend',
|
1121 |
+
'plugin_uri' => 'https://wedevs.com/docs/wp-user-frontend-pro/modules/stripe/',
|
1122 |
+
'thumbnail' => 'wpuf-stripe.png',
|
1123 |
+
],
|
1124 |
+
];
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
/**
|
1128 |
+
* The content of the module page
|
1129 |
+
*
|
1130 |
+
* @since 3.6.0
|
1131 |
+
*
|
1132 |
+
* @param array $modules
|
1133 |
+
*
|
1134 |
+
* @return void
|
1135 |
+
*/
|
1136 |
+
public function modules_page_contents( $modules ) {
|
1137 |
+
$diamond_icon = file_exists( WPUF_ROOT . '/assets/images/diamond.svg' ) ? file_get_contents( WPUF_ROOT . '/assets/images/diamond.svg' ) : '';
|
1138 |
+
$check_icon = file_exists( WPUF_ROOT . '/assets/images/check.svg' ) ? file_get_contents( WPUF_ROOT . '/assets/images/check.svg' ) : '';
|
1139 |
+
$crown_icon = file_exists( WPUF_ROOT . '/assets/images/crown.svg' ) ? file_get_contents( WPUF_ROOT . '/assets/images/crown.svg' ) : '';
|
1140 |
+
$close_icon = file_exists( WPUF_ROOT . '/assets/images/x.svg' ) ? file_get_contents( WPUF_ROOT . '/assets/images/x.svg' ) : '';
|
1141 |
+
$suffix = '.min';
|
1142 |
+
|
1143 |
+
wp_enqueue_style( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.css', false, '1.6.0' );
|
1144 |
+
wp_enqueue_script( 'swiffy-slider', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider' . $suffix . '.js', [ 'jquery' ], '1.6.0', true );
|
1145 |
+
wp_enqueue_script( 'swiffy-slider-extention', WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider-extensions' . $suffix . '.js', [ 'jquery' ], '1.6.0', true );
|
1146 |
+
?>
|
1147 |
+
<div id="wpuf-upgrade-popup" class="wpuf-popup-window">
|
1148 |
+
<div class="modal-window">
|
1149 |
+
<div class="modal-window-inner">
|
1150 |
+
<div class="content-area">
|
1151 |
+
<div class="popup-close-button">
|
1152 |
+
<?php echo $close_icon; ?>
|
1153 |
+
</div>
|
1154 |
+
<div class="popup-diamond">
|
1155 |
+
<?php echo $diamond_icon; ?>
|
1156 |
+
</div>
|
1157 |
+
<div class="wpuf-popup-header">
|
1158 |
+
<h2 class="font-orange header-one">Upgrade to</h2>
|
1159 |
+
<h2 class="header-two">WP User Frontend <span class="font-bold">Pro</span></h2>
|
1160 |
+
<h2 class="header-three font-gray">to experience even more powerful<br>features 🎉</h2>
|
1161 |
+
</div>
|
1162 |
+
<div class="wpuf-popup-list-area">
|
1163 |
+
<div class="single-checklist">
|
1164 |
+
<div class="check-icon">
|
1165 |
+
<?php echo $check_icon; ?>
|
1166 |
+
</div>
|
1167 |
+
<div class="check-list">
|
1168 |
+
<p>Get custom <span class="bold font-black">Post Type</span> and <span class="bold font-black">Taxonomy</span> support with
|
1169 |
+
<br> subscription-based <span class="bold font-black">restrictions</span> for post <br> submission.</p>
|
1170 |
+
</div>
|
1171 |
+
</div>
|
1172 |
+
<div class="single-checklist">
|
1173 |
+
<div class="check-icon">
|
1174 |
+
<?php echo $check_icon; ?>
|
1175 |
+
</div>
|
1176 |
+
<div class="check-list">
|
1177 |
+
<p>Enable <span class="bold font-black">conditional logic</span> and <span class="bold font-black">multi-step</span><br> functionalities on your forms.</p>
|
1178 |
+
</div>
|
1179 |
+
</div>
|
1180 |
+
<div class="single-checklist">
|
1181 |
+
<div class="check-icon">
|
1182 |
+
<?php echo $check_icon; ?>
|
1183 |
+
</div>
|
1184 |
+
<div class="check-list">
|
1185 |
+
<p>Show or hide <span class="bold font-black">menus, pages,</span> and <span class="bold font-black">content</span> based on<br> user roles or login status of a user.</p>
|
1186 |
+
</div>
|
1187 |
+
</div>
|
1188 |
+
<div class="single-checklist">
|
1189 |
+
<div class="check-icon">
|
1190 |
+
<?php echo $check_icon; ?>
|
1191 |
+
</div>
|
1192 |
+
<div class="check-list">
|
1193 |
+
<p><span class="bold font-black">20+ Premium Modules</span> (Social Login, User<br> Directory, User Activity, Stripe, MailChimp, Private<br> Messaging, Zapier, & more)</p>
|
1194 |
+
</div>
|
1195 |
+
</div>
|
1196 |
+
</div>
|
1197 |
+
<a href="<?php echo self::get_upgrade_to_pro_popup_url(); ?>"
|
1198 |
+
target="_blank"
|
1199 |
+
class="wpuf-button button-upgrade-to-pro">
|
1200 |
+
<?php esc_html_e( 'Upgrade to PRO', 'wp-user-frontend' ); ?>
|
1201 |
+
<?php printf( '<span class="pro-icon"> %s</span>', $crown_icon ); ?>
|
1202 |
+
</a>
|
1203 |
+
</div>
|
1204 |
+
<div class="slider-area">
|
1205 |
+
<div class="wpuf-slider slider-indicators-outside slider-indicators-round slider-nav-mousedrag slider-nav-autoplay slider-nav-autopause"" id="wpuf-slider">
|
1206 |
+
<div class="swiffy-slider">
|
1207 |
+
<ul class="slider-container">
|
1208 |
+
<li><img src="<?php echo WPUF_ASSET_URI . '/images/woocommerce-form-template.png'; ?>"></li>
|
1209 |
+
<li><img src="<?php echo WPUF_ASSET_URI . '/images/conditional-form.png'; ?>"></li>
|
1210 |
+
<li><img src="<?php echo WPUF_ASSET_URI . '/images/content-restriction.png'; ?>"></li>
|
1211 |
+
<li><img src="<?php echo WPUF_ASSET_URI . '/images/modules.png'; ?>"></li>
|
1212 |
+
</ul>
|
1213 |
+
|
1214 |
+
<div class="slider-indicators">
|
1215 |
+
<button class="active"></button>
|
1216 |
+
<button></button>
|
1217 |
+
<button></button>
|
1218 |
+
<button></button>
|
1219 |
+
</div>
|
1220 |
+
</div>
|
1221 |
+
</div>
|
1222 |
+
</div>
|
1223 |
+
</div>
|
1224 |
+
<div class="modal-footer">
|
1225 |
+
<div class="footer-feature">
|
1226 |
+
<p>
|
1227 |
+
<?php echo $check_icon; ?> Industry leading 24x7 support
|
1228 |
+
</p>
|
1229 |
+
<p>
|
1230 |
+
<?php echo $check_icon; ?> 14 days no questions asked refund policy
|
1231 |
+
</p>
|
1232 |
+
<p>
|
1233 |
+
<?php echo $check_icon; ?> Secured payment
|
1234 |
+
</p>
|
1235 |
+
|
1236 |
+
</div>
|
1237 |
+
</div>
|
1238 |
+
</div>
|
1239 |
+
</div>
|
1240 |
+
<div class="wrap wpuf-modules">
|
1241 |
+
<h1><?php esc_attr_e( 'Modules', 'wp-user-frontend' ); ?></h1>
|
1242 |
+
<div class="wp-list-table widefat wpuf-modules">
|
1243 |
+
<?php if ( $modules ) {
|
1244 |
+
foreach ( $modules as $slug => $module ) {
|
1245 |
+
?>
|
1246 |
+
<div class="plugin-card">
|
1247 |
+
<div class="plugin-card-top">
|
1248 |
+
<div class="name column-name">
|
1249 |
+
<h3>
|
1250 |
+
<span class="plugin-name"><a href="<?php echo $module['plugin_uri']; ?>" target="_blank"><?php echo $module['name']; ?></a></span>
|
1251 |
+
<a href="<?php echo $module['plugin_uri']; ?>" target="_blank"><img class="plugin-icon" src="<?php echo WPUF_ASSET_URI . '/images/modules/' . $module['thumbnail']; ?>" alt="" /></a>
|
1252 |
+
</h3>
|
1253 |
+
</div>
|
1254 |
+
|
1255 |
+
<div class="action-links">
|
1256 |
+
<ul class="plugin-action-buttons">
|
1257 |
+
<li data-module="<?php echo $slug; ?>">
|
1258 |
+
<label class="wpuf-toggle-switch">
|
1259 |
+
<input type="checkbox" name="module_toggle" class="wpuf-toggle-module" disabled>
|
1260 |
+
<span class="slider round"></span>
|
1261 |
+
</label>
|
1262 |
+
</li>
|
1263 |
+
</ul>
|
1264 |
+
<div class="wpuf-doc-link" ><a href="<?php echo $module['plugin_uri']; ?>" target="_blank">Documentation</a></div>
|
1265 |
+
</div>
|
1266 |
+
|
1267 |
+
<div class="desc column-description">
|
1268 |
+
<p>
|
1269 |
+
<?php echo $module['description']; ?>
|
1270 |
+
</p>
|
1271 |
+
</div>
|
1272 |
+
</div>
|
1273 |
+
</div>
|
1274 |
+
<?php
|
1275 |
+
}
|
1276 |
+
}
|
1277 |
+
?>
|
1278 |
+
</div>
|
1279 |
+
<div class="form-create-overlay">
|
1280 |
+
<a href="#wpuf-upgrade-popup"
|
1281 |
+
class="wpuf-button button-upgrade-to-pro">
|
1282 |
+
<?php esc_html_e( 'Upgrade to PRO', 'wp-user-frontend' ); ?>
|
1283 |
+
<?php printf( '<span class="pro-icon"> %s</span>', $crown_icon ); ?>
|
1284 |
+
</a>
|
1285 |
+
</div>
|
1286 |
+
</div>
|
1287 |
+
<?php
|
1288 |
+
}
|
1289 |
+
|
1290 |
+
/**
|
1291 |
+
* payment gateways for previewing in the free version
|
1292 |
+
*
|
1293 |
+
* @since 3.6.0
|
1294 |
+
*
|
1295 |
+
* @param $gateways
|
1296 |
+
*
|
1297 |
+
* @return void
|
1298 |
+
*/
|
1299 |
+
public function wpuf_payment_gateways( $gateways ) {
|
1300 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
1301 |
+
$crown = '';
|
1302 |
+
|
1303 |
+
if ( file_exists( $crown_icon ) ) {
|
1304 |
+
$crown = sprintf( '<span class="pro-icon-title"> %s</span>', file_get_contents( $crown_icon ) );
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
$gateways['stripe'] = [
|
1308 |
+
'admin_label' => __( 'Credit Card ' . $crown, 'wp-user-frontend' ),
|
1309 |
+
'checkout_label' => __( 'Credit Card', 'wp-user-frontend' ),
|
1310 |
+
'label_class' => 'pro-preview',
|
1311 |
+
];
|
1312 |
+
|
1313 |
+
return $gateways;
|
1314 |
+
}
|
1315 |
+
|
1316 |
+
/**
|
1317 |
+
* The subscription tabs from User Frontend > Subscription > Add/Edit Subscription
|
1318 |
+
*
|
1319 |
+
* @since 3.6.0
|
1320 |
+
*
|
1321 |
+
* @return void
|
1322 |
+
*/
|
1323 |
+
public function subscription_tabs() {
|
1324 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
1325 |
+
$crown = '';
|
1326 |
+
|
1327 |
+
if ( file_exists( $crown_icon ) ) {
|
1328 |
+
$crown = sprintf( '<span class="pro-icon-title"> %s</span>', file_get_contents( $crown_icon ) );
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
echo '<li><a href="#taxonomy-restriction"><span class="dashicons dashicons-image-filter"></span> ' . __( 'Taxonomy Restriction ', 'wp-user-frontend' ) . $crown . '</a></li>';
|
1332 |
+
}
|
1333 |
+
|
1334 |
+
/**
|
1335 |
+
* The subscription tab contents from User Frontend > Subscription > Add/Edit Subscription
|
1336 |
+
*
|
1337 |
+
* @since 3.6.0
|
1338 |
+
*
|
1339 |
+
* @return void
|
1340 |
+
*/
|
1341 |
+
public function subscription_tab_contents() {
|
1342 |
+
$allowed_tax_id_arr = get_post_meta( get_the_ID() , '_sub_allowed_term_ids', true );
|
1343 |
+
if ( ! $allowed_tax_id_arr ) {
|
1344 |
+
$allowed_tax_id_arr = array();
|
1345 |
+
}
|
1346 |
+
?>
|
1347 |
+
<section id="taxonomy-restriction" class="pro-preview-html">
|
1348 |
+
<table class='form-table' method='post'>
|
1349 |
+
<tr><?php _e( 'Choose the taxonomy terms you want to enable for this pack:', 'wpuf' ); ?></tr>
|
1350 |
+
<tr>
|
1351 |
+
<td>
|
1352 |
+
<?php
|
1353 |
+
$cts = get_taxonomies(array('_builtin'=>true), 'objects'); ?>
|
1354 |
+
<?php foreach ($cts as $ct) {
|
1355 |
+
if ( is_taxonomy_hierarchical( $ct->name ) ) { ?>
|
1356 |
+
<div class="metabox-holder" style="float:left; padding:5px;">
|
1357 |
+
<div class="postbox">
|
1358 |
+
<h3 class="handle"><span><?php echo $ct->label; ?></span></h3>
|
1359 |
+
<div class="inside" style="padding:0 10px;">
|
1360 |
+
<div class="taxonomydiv">
|
1361 |
+
<div class="tabs-panel" style="height: 200px; overflow-y:auto">
|
1362 |
+
<?php
|
1363 |
+
$tax_terms = get_terms ( array(
|
1364 |
+
'taxonomy' => $ct->name,
|
1365 |
+
'hide_empty' => false,
|
1366 |
+
) );
|
1367 |
+
foreach ($tax_terms as $tax_term) {
|
1368 |
+
$selected[] = $tax_term;
|
1369 |
+
?>
|
1370 |
+
<ul class="categorychecklist form-no-clear">
|
1371 |
+
<input type="checkbox" class="tax-term-class" name="allowed-term[]" value="<?php echo $tax_term->term_id; ?>" <?php echo in_array( $tax_term->term_id, $allowed_tax_id_arr ) ? ' checked="checked"' : ''; ?> name="<?php echo $tax_term->name; ?>" disabled> <?php echo $tax_term->name; ?>
|
1372 |
+
</ul>
|
1373 |
+
<?php } ?>
|
1374 |
+
</div>
|
1375 |
+
</div>
|
1376 |
+
<p style="padding-left:10px;">
|
1377 |
+
<strong><?php echo count( $selected ); ?></strong> <?php echo ( count( $selected ) > 1 || count( $selected ) == 0 ) ? 'categories' : 'category'; ?> total
|
1378 |
+
<span class="list-controls" style="float:right; margin-top: 0;">
|
1379 |
+
<input type="checkbox" class="select-all" disabled> Select All
|
1380 |
+
</span>
|
1381 |
+
</p>
|
1382 |
+
</div>
|
1383 |
+
</div>
|
1384 |
+
</div>
|
1385 |
+
<?php }
|
1386 |
+
} ?>
|
1387 |
+
</td>
|
1388 |
+
|
1389 |
+
<?php
|
1390 |
+
$cts = get_taxonomies(array('_builtin'=>false), 'objects'); ?>
|
1391 |
+
<?php foreach ($cts as $ct) {
|
1392 |
+
if ( is_taxonomy_hierarchical( $ct->name ) ) {
|
1393 |
+
$selected = array();
|
1394 |
+
?>
|
1395 |
+
<td>
|
1396 |
+
<div class="metabox-holder" style="float:left; padding:5px;">
|
1397 |
+
<div class="postbox">
|
1398 |
+
<h3 class="handle"><span><?php echo $ct->label; ?></span></h3>
|
1399 |
+
<div class="inside" style="padding:0 10px;">
|
1400 |
+
<div class="taxonomydiv">
|
1401 |
+
<div class="tabs-panel" style="height: 200px; overflow-y:auto">
|
1402 |
+
<?php
|
1403 |
+
$tax_terms = get_terms ( array(
|
1404 |
+
'taxonomy' => $ct->name,
|
1405 |
+
'hide_empty' => false,
|
1406 |
+
) );
|
1407 |
+
foreach ($tax_terms as $tax_term) {
|
1408 |
+
$selected[] = $tax_term;
|
1409 |
+
?>
|
1410 |
+
<ul class="categorychecklist form-no-clear">
|
1411 |
+
<input type="checkbox" class="tax-term-class" name="allowed-term[]" value="<?php echo $tax_term->term_id; ?>" <?php echo in_array( $tax_term->term_id, $allowed_tax_id_arr ) ? ' checked="checked"' : ''; ?> name="<?php echo $tax_term->name; ?>" disabled> <?php echo $tax_term->name; ?>
|
1412 |
+
</ul>
|
1413 |
+
<?php } ?>
|
1414 |
+
</div>
|
1415 |
+
</div>
|
1416 |
+
<p style="padding-left:10px;">
|
1417 |
+
<strong><?php echo count( $selected ); ?></strong> <?php echo ( count( $selected ) > 1 || count( $selected ) == 0 ) ? 'categories' : 'category'; ?> total
|
1418 |
+
<span class="list-controls" style="float:right; margin-top: 0;">
|
1419 |
+
<input type="checkbox" class="select-all" disabled> Select All
|
1420 |
+
</span>
|
1421 |
+
</p>
|
1422 |
+
</div>
|
1423 |
+
</div>
|
1424 |
+
</div>
|
1425 |
+
</td>
|
1426 |
+
<?php }
|
1427 |
+
} ?>
|
1428 |
+
</tr>
|
1429 |
+
</table>
|
1430 |
+
<?php
|
1431 |
+
echo wpuf_get_pro_preview_html();
|
1432 |
+
?>
|
1433 |
+
</section>
|
1434 |
+
|
1435 |
+
<?php
|
1436 |
+
}
|
1437 |
}
|
includes/free/post-form-templates/easy_digital_download.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Easy Digital Downloads post form template preview
|
4 |
+
*/
|
5 |
+
class WPUF_Pro_Form_Preview_EDD {
|
6 |
+
/**
|
7 |
+
* Template title
|
8 |
+
*
|
9 |
+
* @var string
|
10 |
+
*/
|
11 |
+
public $title;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Form Template Image
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
public $image;
|
19 |
+
|
20 |
+
public function __construct() {
|
21 |
+
$this->title = __( 'EDD Download', 'wp-user-frontend' );
|
22 |
+
$this->image = WPUF_ASSET_URI . '/images/templates/edd.png';
|
23 |
+
$this->pro_icon = WPUF_ASSET_URI . '/images/templates/crown.svg';
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get the template title
|
28 |
+
*
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
public function get_title() {
|
32 |
+
return $this->title ? $this->title : '';
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Get the template image
|
37 |
+
*
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
public function get_image() {
|
41 |
+
return $this->image ? $this->image : '';
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Get the pro icon
|
46 |
+
*
|
47 |
+
* @return string
|
48 |
+
*/
|
49 |
+
public function get_pro_icon() {
|
50 |
+
return $this->pro_icon ? $this->pro_icon : '';
|
51 |
+
}
|
52 |
+
}
|
includes/free/post-form-templates/the_events_calendar.php
CHANGED
@@ -29,22 +29,23 @@ class WPUF_Post_Form_Template_Events_Calendar extends WPUF_Post_Form_Template {
|
|
29 |
'wpuf_cond' => $this->conditionals,
|
30 |
],
|
31 |
[
|
32 |
-
'input_type'
|
33 |
-
'template'
|
34 |
-
'required'
|
35 |
-
'label'
|
36 |
-
'name'
|
37 |
-
'is_meta'
|
38 |
-
'help'
|
39 |
-
'css'
|
40 |
-
'rows'
|
41 |
-
'cols'
|
42 |
-
'placeholder'
|
43 |
-
'default'
|
44 |
-
'rich'
|
45 |
-
'insert_image'
|
46 |
-
'word_restriction'
|
47 |
-
'wpuf_cond'
|
|
|
48 |
],
|
49 |
[
|
50 |
'input_type' => 'date',
|
@@ -132,20 +133,22 @@ class WPUF_Post_Form_Template_Events_Calendar extends WPUF_Post_Form_Template {
|
|
132 |
'wpuf_cond' => $this->conditionals,
|
133 |
],
|
134 |
[
|
135 |
-
'input_type'
|
136 |
-
'template'
|
137 |
-
'required'
|
138 |
-
'label'
|
139 |
-
'name'
|
140 |
-
'is_meta'
|
141 |
-
'help'
|
142 |
-
|
143 |
-
'
|
144 |
-
'
|
145 |
-
'
|
146 |
-
'
|
147 |
-
'
|
148 |
-
'
|
|
|
|
|
149 |
],
|
150 |
[
|
151 |
'input_type' => 'text',
|
29 |
'wpuf_cond' => $this->conditionals,
|
30 |
],
|
31 |
[
|
32 |
+
'input_type' => 'textarea',
|
33 |
+
'template' => 'post_content',
|
34 |
+
'required' => 'yes',
|
35 |
+
'label' => __( 'Event details', 'wp-user-frontend' ),
|
36 |
+
'name' => 'post_content',
|
37 |
+
'is_meta' => 'no',
|
38 |
+
'help' => __( 'Write the full description of your event', 'wp-user-frontend' ),
|
39 |
+
'css' => '',
|
40 |
+
'rows' => '5',
|
41 |
+
'cols' => '25',
|
42 |
+
'placeholder' => '',
|
43 |
+
'default' => '',
|
44 |
+
'rich' => 'yes',
|
45 |
+
'insert_image' => 'yes',
|
46 |
+
'word_restriction' => '',
|
47 |
+
'wpuf_cond' => $this->conditionals,
|
48 |
+
'text_editor_control' => [],
|
49 |
],
|
50 |
[
|
51 |
'input_type' => 'date',
|
133 |
'wpuf_cond' => $this->conditionals,
|
134 |
],
|
135 |
[
|
136 |
+
'input_type' => 'textarea',
|
137 |
+
'template' => 'post_excerpt',
|
138 |
+
'required' => 'no',
|
139 |
+
'label' => __( 'Excerpt', 'wp-user-frontend' ),
|
140 |
+
'name' => 'post_excerpt',
|
141 |
+
'is_meta' => 'no',
|
142 |
+
'help' => __( 'Provide a short description of this event (optional)',
|
143 |
+
'wp-user-frontend' ),
|
144 |
+
'css' => '',
|
145 |
+
'rows' => '5',
|
146 |
+
'cols' => '25',
|
147 |
+
'placeholder' => '',
|
148 |
+
'default' => '',
|
149 |
+
'rich' => 'no',
|
150 |
+
'wpuf_cond' => $this->conditionals,
|
151 |
+
'text_editor_control' => [],
|
152 |
],
|
153 |
[
|
154 |
'input_type' => 'text',
|
includes/free/post-form-templates/woocommerce.php
CHANGED
@@ -28,38 +28,40 @@ class WPUF_Post_Form_Template_WooCommerce extends WPUF_Post_Form_Template {
|
|
28 |
'wpuf_cond' => $this->conditionals,
|
29 |
],
|
30 |
[
|
31 |
-
'input_type'
|
32 |
-
'template'
|
33 |
-
'required'
|
34 |
-
'label'
|
35 |
-
'name'
|
36 |
-
'is_meta'
|
37 |
-
'help'
|
38 |
-
'css'
|
39 |
-
'rows'
|
40 |
-
'cols'
|
41 |
-
'placeholder'
|
42 |
-
'default'
|
43 |
-
'rich'
|
44 |
-
'insert_image'
|
45 |
-
'word_restriction'
|
46 |
-
'wpuf_cond'
|
|
|
47 |
],
|
48 |
[
|
49 |
-
'input_type'
|
50 |
-
'template'
|
51 |
-
'required'
|
52 |
-
'label'
|
53 |
-
'name'
|
54 |
-
'is_meta'
|
55 |
-
'help'
|
56 |
-
'css'
|
57 |
-
'rows'
|
58 |
-
'cols'
|
59 |
-
'placeholder'
|
60 |
-
'default'
|
61 |
-
'rich'
|
62 |
-
'wpuf_cond'
|
|
|
63 |
],
|
64 |
[
|
65 |
'input_type' => 'text',
|
@@ -142,21 +144,22 @@ class WPUF_Post_Form_Template_WooCommerce extends WPUF_Post_Form_Template {
|
|
142 |
'wpuf_cond' => $this->conditionals,
|
143 |
],
|
144 |
[
|
145 |
-
'input_type'
|
146 |
-
'template'
|
147 |
-
'required'
|
148 |
-
'label'
|
149 |
-
'name'
|
150 |
-
'is_meta'
|
151 |
-
'help'
|
152 |
-
'css'
|
153 |
-
'rows'
|
154 |
-
'cols'
|
155 |
-
'placeholder'
|
156 |
-
'default'
|
157 |
-
'rich'
|
158 |
-
'word_restriction'
|
159 |
-
'wpuf_cond'
|
|
|
160 |
],
|
161 |
[
|
162 |
'input_type' => 'checkbox',
|
28 |
'wpuf_cond' => $this->conditionals,
|
29 |
],
|
30 |
[
|
31 |
+
'input_type' => 'textarea',
|
32 |
+
'template' => 'post_content',
|
33 |
+
'required' => 'yes',
|
34 |
+
'label' => 'Product description',
|
35 |
+
'name' => 'post_content',
|
36 |
+
'is_meta' => 'no',
|
37 |
+
'help' => 'Write the full description of your product',
|
38 |
+
'css' => '',
|
39 |
+
'rows' => '5',
|
40 |
+
'cols' => '25',
|
41 |
+
'placeholder' => '',
|
42 |
+
'default' => '',
|
43 |
+
'rich' => 'yes',
|
44 |
+
'insert_image' => 'yes',
|
45 |
+
'word_restriction' => '',
|
46 |
+
'wpuf_cond' => $this->conditionals,
|
47 |
+
'text_editor_control' => [],
|
48 |
],
|
49 |
[
|
50 |
+
'input_type' => 'textarea',
|
51 |
+
'template' => 'post_excerpt',
|
52 |
+
'required' => 'no',
|
53 |
+
'label' => 'Product Short Description',
|
54 |
+
'name' => 'post_excerpt',
|
55 |
+
'is_meta' => 'no',
|
56 |
+
'help' => 'Provide a short description of your product',
|
57 |
+
'css' => '',
|
58 |
+
'rows' => '5',
|
59 |
+
'cols' => '25',
|
60 |
+
'placeholder' => '',
|
61 |
+
'default' => '',
|
62 |
+
'rich' => 'no',
|
63 |
+
'wpuf_cond' => $this->conditionals,
|
64 |
+
'text_editor_control' => [],
|
65 |
],
|
66 |
[
|
67 |
'input_type' => 'text',
|
144 |
'wpuf_cond' => $this->conditionals,
|
145 |
],
|
146 |
[
|
147 |
+
'input_type' => 'textarea',
|
148 |
+
'template' => 'textarea_field',
|
149 |
+
'required' => 'no',
|
150 |
+
'label' => 'Purchase note',
|
151 |
+
'name' => '_purchase_note',
|
152 |
+
'is_meta' => 'yes',
|
153 |
+
'help' => 'Enter an optional note to send to the customer after purchase',
|
154 |
+
'css' => '',
|
155 |
+
'rows' => '5',
|
156 |
+
'cols' => '25',
|
157 |
+
'placeholder' => '',
|
158 |
+
'default' => '',
|
159 |
+
'rich' => 'no',
|
160 |
+
'word_restriction' => '',
|
161 |
+
'wpuf_cond' => $this->conditionals,
|
162 |
+
'text_editor_control' => [],
|
163 |
],
|
164 |
[
|
165 |
'input_type' => 'checkbox',
|
includes/free/prompt.php
CHANGED
@@ -16,4 +16,15 @@ class WPUF_Pro_Prompt {
|
|
16 |
public static function get_pro_prompt_text() {
|
17 |
return sprintf( 'Available in <a href="%s" target="_blank">Pro Version</a>', self::get_pro_url() );
|
18 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
16 |
public static function get_pro_prompt_text() {
|
17 |
return sprintf( 'Available in <a href="%s" target="_blank">Pro Version</a>', self::get_pro_url() );
|
18 |
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get the upgrade to pro url from the PRO Prompts
|
22 |
+
*
|
23 |
+
* @since 3.6.0
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public static function get_upgrade_to_pro_popup_url() {
|
28 |
+
return esc_url( 'https://wedevs.com/wp-user-frontend-pro/pricing/?utm_source=wpdashboard&utm_medium=popup' );
|
29 |
+
}
|
30 |
}
|
includes/free/subscription.php
CHANGED
@@ -3,9 +3,15 @@
|
|
3 |
class WPUF_Subscription_Element extends WPUF_Pro_Prompt {
|
4 |
|
5 |
public static function add_subscription_element( $sub_meta, $hidden_recurring_class, $hidden_trial_class, $obj ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
?>
|
7 |
-
<tr
|
8 |
-
<th><label><?php esc_html_e( 'Recurring', 'wp-user-frontend' ); ?></label></th>
|
9 |
<td>
|
10 |
<label for="wpuf-recuring-pay">
|
11 |
<input type="checkbox" disabled checked size="20" style="" id="wpuf-recuring-pay" value="yes" name="" />
|
@@ -16,5 +22,6 @@ class WPUF_Subscription_Element extends WPUF_Pro_Prompt {
|
|
16 |
</td>
|
17 |
</tr>
|
18 |
<?php
|
|
|
19 |
}
|
20 |
}
|
3 |
class WPUF_Subscription_Element extends WPUF_Pro_Prompt {
|
4 |
|
5 |
public static function add_subscription_element( $sub_meta, $hidden_recurring_class, $hidden_trial_class, $obj ) {
|
6 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
7 |
+
$crown = '';
|
8 |
+
|
9 |
+
if ( file_exists( $crown_icon ) ) {
|
10 |
+
$crown = sprintf( '<span class="pro-icon-title"> %s</span>', file_get_contents( $crown_icon ) );
|
11 |
+
}
|
12 |
?>
|
13 |
+
<tr>
|
14 |
+
<th><label><?php esc_html_e( 'Recurring ', 'wp-user-frontend' ); echo $crown; ?></label></th>
|
15 |
<td>
|
16 |
<label for="wpuf-recuring-pay">
|
17 |
<input type="checkbox" disabled checked size="20" style="" id="wpuf-recuring-pay" value="yes" name="" />
|
22 |
</td>
|
23 |
</tr>
|
24 |
<?php
|
25 |
+
echo wpuf_get_pro_preview_tooltip();
|
26 |
}
|
27 |
}
|
includes/upgrades/upgrade-3.6.0.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function wpuf_upgrade_3_6_0_migration() {
|
4 |
+
$args = [
|
5 |
+
'post_type' => 'wpuf_input',
|
6 |
+
'numberposts' => -1,
|
7 |
+
];
|
8 |
+
|
9 |
+
$input_fields = get_posts( $args );
|
10 |
+
|
11 |
+
if ( empty( $input_fields ) ) {
|
12 |
+
return;
|
13 |
+
}
|
14 |
+
|
15 |
+
foreach ( $input_fields as $field ) {
|
16 |
+
if ( empty( $field->post_content ) ) {
|
17 |
+
continue;
|
18 |
+
}
|
19 |
+
|
20 |
+
$content = maybe_unserialize( $field->post_content );
|
21 |
+
|
22 |
+
if ( ! empty( $content['input_type'] ) && 'textarea' === $content['input_type'] && ! isset( $content['text_editor_control'] ) ) {
|
23 |
+
$content['text_editor_control'] = [];
|
24 |
+
|
25 |
+
$field->post_content = maybe_serialize( $content );
|
26 |
+
|
27 |
+
wp_update_post( $field );
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
wpuf_upgrade_3_6_0_migration();
|
languages/wp-user-frontend.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GPL2 or later.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WP User Frontend 3.
|
6 |
"Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
|
7 |
-
"POT-Creation-Date: 2022-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -152,7 +152,6 @@ msgid "Amount"
|
|
152 |
msgstr ""
|
153 |
|
154 |
#: admin/class-admin-subscription.php:205 includes/class-privacy.php:478
|
155 |
-
#: includes/free/subscription.php:8
|
156 |
msgid "Recurring"
|
157 |
msgstr ""
|
158 |
|
@@ -176,9 +175,9 @@ msgstr ""
|
|
176 |
#: includes/fields/class-abstract-fields.php:390
|
177 |
#: includes/fields/class-abstract-fields.php:404
|
178 |
#: includes/fields/class-abstract-fields.php:468
|
179 |
-
#: includes/fields/class-field-checkbox.php:
|
180 |
-
#: includes/fields/class-field-radio.php:
|
181 |
-
#: wpuf.php:
|
182 |
msgid "Yes"
|
183 |
msgstr ""
|
184 |
|
@@ -191,9 +190,9 @@ msgstr ""
|
|
191 |
#: includes/fields/class-abstract-fields.php:391
|
192 |
#: includes/fields/class-abstract-fields.php:405
|
193 |
#: includes/fields/class-abstract-fields.php:469
|
194 |
-
#: includes/fields/class-field-checkbox.php:
|
195 |
-
#: includes/fields/class-field-radio.php:
|
196 |
-
#: wpuf.php:
|
197 |
msgid "No"
|
198 |
msgstr ""
|
199 |
|
@@ -244,7 +243,7 @@ msgid "Enable Post Expiration"
|
|
244 |
msgstr ""
|
245 |
|
246 |
#: admin/class-admin-subscription.php:452
|
247 |
-
#: admin/class-admin-subscription.php:
|
248 |
msgid "Post Expiration Time"
|
249 |
msgstr ""
|
250 |
|
@@ -322,29 +321,29 @@ msgstr ""
|
|
322 |
msgid "Remaining Posting Count"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: admin/class-admin-subscription.php:
|
326 |
msgid "Subscription Expiration Info"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: admin/class-admin-subscription.php:
|
330 |
#: includes/class-user-subscription.php:364
|
331 |
#: templates/dashboard/subscription.php:50
|
332 |
msgid "Expire date:"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: admin/class-admin-subscription.php:
|
336 |
msgid "Post Expiration Enabled"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: admin/class-admin-subscription.php:
|
340 |
msgid "Allowed Taxonomy Terms"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: admin/class-admin-subscription.php:
|
344 |
msgid "Assign Package"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: admin/class-admin-subscription.php:
|
348 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:286
|
349 |
#: class/payment.php:225 class/subscription.php:836
|
350 |
#: includes/class-list-table-subscribers.php:138 lib/appsero/Insights.php:764
|
@@ -352,24 +351,24 @@ msgstr ""
|
|
352 |
msgid "Cancel"
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: admin/class-admin-subscription.php:
|
356 |
msgid "Select Package:"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: admin/class-admin-subscription.php:
|
360 |
-
#: wpuf-functions.php:210 wpuf-functions.php:
|
361 |
msgid "— Select —"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: admin/class-admin-subscription.php:
|
365 |
msgid "Only non-recurring pack can be assigned"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: admin/class-admin-subscription.php:
|
369 |
msgid "Delete Package"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: admin/class-admin-subscription.php:
|
373 |
msgid "Learn more about <a href=\"%s\" target=\"_blank\">Subscription</a>"
|
374 |
msgstr ""
|
375 |
|
@@ -383,7 +382,7 @@ msgstr ""
|
|
383 |
|
384 |
#: admin/class-tools.php:43 admin/class-tools.php:106
|
385 |
#: admin/post-forms-list-table.php:43 class/transactions-list-table.php:95
|
386 |
-
#: includes/class-list-table-subscribers.php:136 wpuf-functions.php:
|
387 |
msgid "All"
|
388 |
msgstr ""
|
389 |
|
@@ -496,6 +495,10 @@ msgstr ""
|
|
496 |
msgid "Delete Transactions"
|
497 |
msgstr ""
|
498 |
|
|
|
|
|
|
|
|
|
499 |
#: admin/form-builder/assets/js/components/builder-stage/template.php:3
|
500 |
msgid "Add fields by dragging the fields from the right sidebar to this area."
|
501 |
msgstr ""
|
@@ -610,12 +613,12 @@ msgid "Are you sure you want to delete this field?"
|
|
610 |
msgstr ""
|
611 |
|
612 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:283
|
613 |
-
#: admin/posting.php:73 class/asset-loader.php:56 wpuf.php:
|
614 |
msgid "Yes, delete it"
|
615 |
msgstr ""
|
616 |
|
617 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:284
|
618 |
-
#: admin/posting.php:74 class/asset-loader.php:57 wpuf.php:
|
619 |
msgid "No, cancel it"
|
620 |
msgstr ""
|
621 |
|
@@ -633,10 +636,10 @@ msgid "This field must contain at least one choice"
|
|
633 |
msgstr ""
|
634 |
|
635 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:289
|
636 |
-
#: includes/fields/class-field-checkbox.php:
|
637 |
#: includes/fields/class-field-dropdown.php:105
|
638 |
#: includes/fields/class-field-multidropdown.php:82
|
639 |
-
#: includes/fields/class-field-radio.php:
|
640 |
msgid "Option"
|
641 |
msgstr ""
|
642 |
|
@@ -739,19 +742,19 @@ msgstr[1] ""
|
|
739 |
msgid "Form duplicated successfully. <a href=\"%s\">View form.</a>"
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: admin/form-template.php:
|
743 |
msgid "Want a new integration? <a href=\"%s\" target=\"_blank\">Let us know</a>."
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: admin/form-template.php:
|
747 |
msgid "Form Template"
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: admin/form-template.php:
|
751 |
msgid "— No Template —"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: admin/form-template.php:
|
755 |
msgid ""
|
756 |
"If selected a form template, it will try to execute that integration "
|
757 |
"options when new post created and updated."
|
@@ -811,7 +814,7 @@ msgstr ""
|
|
811 |
msgid "Registraton Forms"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: admin/form.php:111 includes/free/loader.php:
|
815 |
msgid "Registration Forms"
|
816 |
msgstr ""
|
817 |
|
@@ -1052,7 +1055,7 @@ msgstr ""
|
|
1052 |
msgid "After how many hours user will be locked from editing the submitted post."
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: admin/html/form-settings-post.php:7 class/post-form-templates/post.php:
|
1056 |
msgid "This page is restricted. Please %login% / %register% to view this page."
|
1057 |
msgstr ""
|
1058 |
|
@@ -1305,6 +1308,11 @@ msgstr ""
|
|
1305 |
msgid "This integration is not installed."
|
1306 |
msgstr ""
|
1307 |
|
|
|
|
|
|
|
|
|
|
|
1308 |
#: admin/html/support.php:187
|
1309 |
msgid "Related Articles:"
|
1310 |
msgstr ""
|
@@ -1437,929 +1445,959 @@ msgid "Contact Support"
|
|
1437 |
msgstr ""
|
1438 |
|
1439 |
#: admin/html/whats-new.php:8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1440 |
msgid "Short-code encryption updated for registration page"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: admin/html/whats-new.php:
|
1444 |
msgid "Updated compatibility with the latest version of WordPress 6.0"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
-
#: admin/html/whats-new.php:
|
1448 |
msgid "Improved some backend implementations"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
-
#: admin/html/whats-new.php:
|
1452 |
msgid "Email template enhanced for after activation"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: admin/html/whats-new.php:
|
1456 |
msgid "Read only option for custom field"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: admin/html/whats-new.php:
|
1460 |
msgid "Editor toolbar exclude option enhanced"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: admin/html/whats-new.php:
|
1464 |
msgid "Preview option enhanced for user profile"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: admin/html/whats-new.php:
|
1468 |
msgid "Meta key enhanced for user email notification"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: admin/html/whats-new.php:
|
1472 |
msgid "Global option for disable post edit on account"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
-
#: admin/html/whats-new.php:
|
1476 |
msgid "Filter for conditional logic for fields added"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: admin/html/whats-new.php:
|
1480 |
msgid "PHP 8 compatibility handled"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
-
#: admin/html/whats-new.php:
|
1484 |
msgid "Address / Billing address inconsistency handled"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: admin/html/whats-new.php:
|
1488 |
msgid "Content restriction several issue fixed"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: admin/html/whats-new.php:
|
1492 |
msgid "Tax calculation properly handled for all areas"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
-
#: admin/html/whats-new.php:
|
1496 |
msgid "Validation added for invalid email and URL formats"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
-
#: admin/html/whats-new.php:
|
1500 |
msgid "Special character password handled for login"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: admin/html/whats-new.php:
|
1504 |
msgid "Reset password handled for sidebar widget"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
#: admin/html/whats-new.php:
|
1508 |
msgid "Required google map issues handled"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
-
#: admin/html/whats-new.php:
|
1512 |
msgid "Translation related issue handled for admin menu"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
-
#: admin/html/whats-new.php:
|
1516 |
msgid "Label & query enhanced for transaction table"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
-
#: admin/html/whats-new.php:
|
1520 |
msgid "Template override for child theme fixed"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: admin/html/whats-new.php:
|
1524 |
msgid "Custom field modal handled for registration form"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
-
#: admin/html/whats-new.php:
|
1528 |
msgid "Redundant CSS issues handled"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#: admin/html/whats-new.php:
|
1532 |
msgid "Address field inconsistency fixed"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: admin/html/whats-new.php:
|
1536 |
msgid "Plugin page spin loading issue handled"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: admin/html/whats-new.php:
|
1540 |
msgid "Warning on exit for draft post fixed"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
-
#: admin/html/whats-new.php:
|
1544 |
msgid "Unlimited expire on admin user profile handled"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: admin/html/whats-new.php:
|
1548 |
msgid "No value checkbox issue handled"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: admin/html/whats-new.php:
|
1552 |
msgid "Tag search security Vulnerability handled"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
-
#: admin/html/whats-new.php:
|
1556 |
msgid "Multi dropdown field error handled"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: admin/html/whats-new.php:
|
1560 |
msgid "Promotion notice enhanced through api"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
-
#: admin/html/whats-new.php:
|
1564 |
msgid "Security Vulnerability fixed"
|
1565 |
msgstr ""
|
1566 |
|
1567 |
-
#: admin/html/whats-new.php:
|
1568 |
msgid "Featured item for subscriber"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
-
#: admin/html/whats-new.php:
|
1572 |
msgid "Warning added for unsaved form data on frontend"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
-
#: admin/html/whats-new.php:
|
1576 |
msgid "Settings page search implemented"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: admin/html/whats-new.php:
|
1580 |
msgid "Editor added for registration form email template"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
-
#: admin/html/whats-new.php:
|
1584 |
msgid "Fallback pay per post not working with when draft enabled"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
-
#: admin/html/whats-new.php:
|
1588 |
msgid "User Dashboard responsive issues fixed"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#: admin/html/whats-new.php:
|
1592 |
msgid "Showing wrong license expire message handled"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
-
#: admin/html/whats-new.php:
|
1596 |
msgid "Remove expire cron handled for once daily"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: admin/html/whats-new.php:
|
1600 |
msgid "Billing address validation handled"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: admin/html/whats-new.php:
|
1604 |
msgid "Promotion notice restricted for WPUF menu"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: admin/html/whats-new.php:
|
1608 |
msgid "reCaptcha issue with other plugin handled"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: admin/html/whats-new.php:
|
1612 |
msgid "Multiple post type for wpuf dashboard not working fixed"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: admin/html/whats-new.php:
|
1616 |
msgid "Billing address ajax request issue handled"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: admin/html/whats-new.php:
|
1620 |
msgid "Halloween promotion notice added"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: admin/html/whats-new.php:
|
1624 |
msgid "Content restriction for minimum, maximum value enhanced"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: admin/html/whats-new.php:
|
1628 |
msgid "New option for redirection after pay per post payment in form setting"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: admin/html/whats-new.php:
|
1632 |
msgid "Controller added for various email notification"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: admin/html/whats-new.php:
|
1636 |
msgid "Placeholder added for unauth message option"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: admin/html/whats-new.php:
|
1640 |
msgid "Subscription Post expiration option change to input field"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: admin/html/whats-new.php:
|
1644 |
msgid "Content restriction message translatable"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: admin/html/whats-new.php:
|
1648 |
msgid "ACF integration inconsistency handled"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: admin/html/whats-new.php:
|
1652 |
msgid "Enable payment checkbox handled for child option"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: admin/html/whats-new.php:
|
1656 |
msgid "Broken asset link handled for custom field popup"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: admin/html/whats-new.php:
|
1660 |
msgid "Rollback inconsistency for CPT handled"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: admin/html/whats-new.php:
|
1664 |
msgid "Login form loaded after resetting password"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: admin/html/whats-new.php:
|
1668 |
msgid "Billing address inconsistency handled"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: admin/html/whats-new.php:
|
1672 |
msgid "Form duplication on creation handled"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: admin/html/whats-new.php:
|
1676 |
msgid "Field Dragging inconsistency fixed"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: admin/html/whats-new.php:
|
1680 |
msgid "Google Map field enhanced along with acf google map"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: admin/html/whats-new.php:
|
1684 |
msgid "Filter added for dashboard account menu"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: admin/html/whats-new.php:
|
1688 |
msgid "Fallback Pay Per Post inconsistency handled"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: admin/html/whats-new.php:
|
1692 |
msgid "Google map search field not showing"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: admin/html/whats-new.php:
|
1696 |
msgid "Form preview page inconsistency with builder"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: admin/html/whats-new.php:
|
1700 |
msgid "Category not showing as hierarchy"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: admin/html/whats-new.php:
|
1704 |
msgid "TOC field randering issue with registration form"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: admin/html/whats-new.php:
|
1708 |
msgid "Custom plupload filter inconsistency with file upload handled"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: admin/html/whats-new.php:
|
1712 |
msgid "Guest Pay Per Post inconsistency handled"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: admin/html/whats-new.php:
|
1716 |
msgid "Responsive and font issue handled"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: admin/html/whats-new.php:
|
1720 |
msgid "Preview page added for post form and registration form"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: admin/html/whats-new.php:
|
1724 |
msgid "Post types menu on account page added"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: admin/html/whats-new.php:
|
1728 |
msgid "Dashboard shortcode attributes enhanced"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: admin/html/whats-new.php:
|
1732 |
msgid "Account page post type list new design"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: admin/html/whats-new.php:
|
1736 |
msgid "Payment page restricted from direct unauthenticated access"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: admin/html/whats-new.php:
|
1740 |
msgid "Timepicker conflict with dokan handled"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: admin/html/whats-new.php:
|
1744 |
msgid "Trial inconsistency with paypal fixed"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: admin/html/whats-new.php:
|
1748 |
msgid "Subscription does not cancel with paypal due to profile missing id"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: admin/html/whats-new.php:
|
1752 |
msgid "Subscription email notification inconsistency fixed"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: admin/html/whats-new.php:
|
1756 |
msgid "Various issues on payment page for non-logged in user handled"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: admin/html/whats-new.php:
|
1760 |
msgid "Column inner field cloning inconsistency fixed"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: admin/html/whats-new.php:
|
1764 |
msgid "Popup z-index changed due to other plugin z-index"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: admin/html/whats-new.php:
|
1768 |
msgid "Added Mauritian Rupee for currency"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: admin/html/whats-new.php:
|
1772 |
msgid "Added eid promotional offer notice"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: admin/html/whats-new.php:
|
1776 |
msgid "Multiple google map validation for same form"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: admin/html/whats-new.php:
|
1780 |
msgid "Various issues on verification, autologin payments & address field"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#: admin/html/whats-new.php:
|
1784 |
msgid "Docs update for file & attachments feature which is pro only"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: admin/html/whats-new.php:
|
1788 |
msgid "Overflow footer on form builder page"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#: admin/html/whats-new.php:
|
1792 |
msgid "WordPress 5.7 compatibility"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: admin/html/whats-new.php:
|
1796 |
msgid "Limited time promotion for weDevs birthday"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#: admin/html/whats-new.php:
|
1800 |
msgid "Meta key will not change if label update"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: admin/html/whats-new.php:
|
1804 |
msgid "Login redirect empty previous url"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: admin/html/whats-new.php:
|
1808 |
msgid "Email doesnt set as username"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: admin/html/whats-new.php:
|
1812 |
msgid "Post redirection to payment doesn't work"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#: admin/html/whats-new.php:
|
1816 |
msgid "Address field not working when used with conditional logic"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: admin/html/whats-new.php:
|
1820 |
msgid "Ajax type category child of not working"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
-
#: admin/html/whats-new.php:
|
1824 |
msgid "Non recurring subscription did not work"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: admin/html/whats-new.php:
|
1828 |
msgid "Menu position has chenged due to dokan has same menu position"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
-
#: admin/html/whats-new.php:
|
1832 |
msgid "Drag and drop not working properly for new field"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
-
#: admin/html/whats-new.php:
|
1836 |
msgid "QR and math captcha added to pro feature list"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
#: admin/html/whats-new.php:
|
1840 |
msgid "Tooltip for category navigate"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
-
#: admin/html/whats-new.php:
|
1844 |
msgid "Understandable guest payment notice"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: admin/html/whats-new.php:
|
1848 |
msgid "Paypal non recurring pack id does not set"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: admin/html/whats-new.php:
|
1852 |
msgid "Once trial subscription is used, it couldn't reset"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
-
#: admin/html/whats-new.php:
|
1856 |
msgid "Subscription cancel doesn't work"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
-
#: admin/html/whats-new.php:
|
1860 |
msgid "The tax rate was not calculated with the total amount"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
-
#: admin/html/whats-new.php:
|
1864 |
msgid "The width of the column field was breaking"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: admin/html/whats-new.php:
|
1868 |
msgid "Paypal recurring payment"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
-
#: admin/html/whats-new.php:
|
1872 |
msgid "Updated codebase to fix timezone mismatch"
|
1873 |
msgstr ""
|
1874 |
|
1875 |
-
#: admin/html/whats-new.php:
|
1876 |
msgid "Custom html content field's width"
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: admin/html/whats-new.php:
|
1880 |
msgid "All states of New Zealand are added"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: admin/html/whats-new.php:
|
1884 |
msgid "Get appropriate user id when role based conditions are present"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
-
#: admin/html/whats-new.php:
|
1888 |
msgid "Show Invalid subscription message if wrong pack id passed"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
-
#: admin/html/whats-new.php:
|
1892 |
msgid "URL field new window not working"
|
1893 |
msgstr ""
|
1894 |
|
1895 |
-
#: admin/html/whats-new.php:
|
1896 |
msgid "Option label not working when & use"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
-
#: admin/html/whats-new.php:
|
1900 |
msgid "Ajax type category not showing on edit"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
-
#: admin/html/whats-new.php:
|
1904 |
msgid "Multiple file image can't select"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
-
#: admin/html/whats-new.php:
|
1908 |
msgid "Subscription pack PayPal Checkout gets \"Error: Access Denied\""
|
1909 |
msgstr ""
|
1910 |
|
1911 |
-
#: admin/html/whats-new.php:
|
1912 |
msgid "Conflict image field with acf image field"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
-
#: admin/html/whats-new.php:
|
1916 |
msgid "Missing Auckland State for New Zealand country"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
-
#: admin/html/whats-new.php:
|
1920 |
msgid "Added support for WooCommerce product category value replacemen"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
-
#: admin/html/whats-new.php:
|
1924 |
msgid "Add character restriction feature"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: admin/html/whats-new.php:
|
1928 |
msgid "Make sure post author edit link works only in frontend"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
-
#: admin/html/whats-new.php:
|
1932 |
msgid "Inconsistency in lost password reset email message"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: admin/html/whats-new.php:
|
1936 |
msgid "Saving custom taxonomy terms when input type is text"
|
1937 |
msgstr ""
|
1938 |
|
1939 |
-
#: admin/html/whats-new.php:
|
1940 |
msgid "Taxonomy field JS error in builder"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
-
#: admin/html/whats-new.php:
|
1944 |
msgid "Showing WPUF edit link for WP default roles"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: admin/html/whats-new.php:
|
1948 |
msgid "Upload button unresponsive issue in iOS"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
-
#: admin/html/whats-new.php:
|
1952 |
msgid "Add post edit link for post authors in single or archive pages"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
-
#: admin/html/whats-new.php:
|
1956 |
msgid "Enhance post delete message"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
-
#: admin/html/whats-new.php:
|
1960 |
msgid "Refactor control buttons visibility in form builder"
|
1961 |
msgstr ""
|
1962 |
|
1963 |
-
#: admin/html/whats-new.php:
|
1964 |
msgid "Add missing colons after field label"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
-
#: admin/html/whats-new.php:
|
1968 |
msgid "Post edit map capability condition"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
-
#: admin/html/whats-new.php:
|
1972 |
msgid "Role based permission for accessing a post form"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: admin/html/whats-new.php:
|
1976 |
msgid "Section-break field alignment"
|
1977 |
msgstr ""
|
1978 |
|
1979 |
-
#: admin/html/whats-new.php:
|
1980 |
msgid "Pay per post doesn't work if subscription pack is activated"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
-
#: admin/html/whats-new.php:
|
1984 |
msgid "Mime type for uploading JSON files"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
-
#: admin/html/whats-new.php:
|
1988 |
msgid "File upload with same file name"
|
1989 |
msgstr ""
|
1990 |
|
1991 |
-
#: admin/html/whats-new.php:
|
1992 |
msgid "Post preview missing fields"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
-
#: admin/html/whats-new.php:
|
1996 |
msgid "Illigal variable declartion"
|
1997 |
msgstr ""
|
1998 |
|
1999 |
-
#: admin/html/whats-new.php:
|
2000 |
msgid "Featured image updating issue"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
-
#: admin/html/whats-new.php:
|
2004 |
msgid "Conflict with Phlox theme"
|
2005 |
msgstr ""
|
2006 |
|
2007 |
-
#: admin/html/whats-new.php:
|
2008 |
msgid "Textarea custom field data sanitization"
|
2009 |
msgstr ""
|
2010 |
|
2011 |
-
#: admin/html/whats-new.php:
|
2012 |
msgid "exclude_type warning in wpuf_category_checklist"
|
2013 |
msgstr ""
|
2014 |
|
2015 |
-
#: admin/html/whats-new.php:
|
2016 |
msgid "Category field not showing all child categories for selection type child of"
|
2017 |
msgstr ""
|
2018 |
|
2019 |
-
#: admin/html/whats-new.php:
|
2020 |
msgid "Conflict between image and file upload custom fields"
|
2021 |
msgstr ""
|
2022 |
|
2023 |
-
#: admin/html/whats-new.php:
|
2024 |
msgid "Login url when login page is not set"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
-
#: admin/html/whats-new.php:
|
2028 |
msgid ""
|
2029 |
"Use common names for Ivory Coast, North Korea and Sourth Korea instead of "
|
2030 |
"their official names"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
-
#: admin/html/whats-new.php:
|
2034 |
msgid "Fix condition to use default avatar"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: admin/html/whats-new.php:
|
2038 |
msgid "Make Email and URL fields clickable"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: admin/html/whats-new.php:
|
2042 |
msgid "Fix redirect after user login"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
-
#: admin/html/whats-new.php:
|
2046 |
msgid "Sanitize textarea field data"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
-
#: admin/html/whats-new.php:
|
2050 |
msgid ""
|
2051 |
"Fix missing colon to email, URL, text and textarea labels when renders "
|
2052 |
"their data"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: admin/html/whats-new.php:
|
2056 |
msgid "Prevent showing empty labels for fields that have render_field_data method"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: admin/html/whats-new.php:
|
2060 |
msgid "Add Namibian Dollar in currency list"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: admin/html/whats-new.php:
|
2064 |
msgid "Add sync values option for option data fields"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: admin/html/whats-new.php:
|
2068 |
msgid "Allow uploading image that having filesize meets php ini settings"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: admin/html/whats-new.php:
|
2072 |
msgid "Limit the selection of one image at a time"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: admin/html/whats-new.php:
|
2076 |
msgid "Use file name and size to generate hash to prevent duplicant image upload"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
-
#: admin/html/whats-new.php:
|
2080 |
msgid "Sanitize text and textarea field data"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
-
#: admin/html/whats-new.php:
|
2084 |
msgid ""
|
2085 |
"Show label instead of values for radio, checkbox, dropdown and multiselect "
|
2086 |
"data"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
-
#: admin/html/whats-new.php:
|
2090 |
msgid "Saving custom taxonomies for type text input"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
-
#: admin/html/whats-new.php:
|
2094 |
msgid "Admin settings link for recaptcha helper text"
|
2095 |
msgstr ""
|
2096 |
|
2097 |
-
#: admin/html/whats-new.php:
|
2098 |
msgid "Undefined name property for Custom HTML fields"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: admin/html/whats-new.php:
|
2102 |
msgid "Delete attachment process"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: admin/html/whats-new.php:
|
2106 |
msgid "Missing billing address in invoice PDF"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: admin/html/whats-new.php:
|
2110 |
msgid "Showing country field value in frontend post content"
|
2111 |
msgstr ""
|
2112 |
|
2113 |
-
#: admin/html/whats-new.php:
|
2114 |
msgid "Avatar size display not complying with admin settings size"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: admin/html/whats-new.php:
|
2118 |
msgid "Display default avatars on admin settings discussion page"
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: admin/html/whats-new.php:
|
2122 |
msgid "Redirect to subscription page at registration"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
-
#: admin/html/whats-new.php:
|
2126 |
msgid "Error notice regarding registration page redirect"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
-
#: admin/html/whats-new.php:
|
2130 |
msgid "Escaping html in registration errors"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
-
#: admin/html/whats-new.php:
|
2134 |
msgid "Default login redirect link"
|
2135 |
msgstr ""
|
2136 |
|
2137 |
-
#: admin/html/whats-new.php:
|
2138 |
msgid "Implementing default WP login page override option"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
-
#: admin/html/whats-new.php:
|
2142 |
msgid "Transparent background of autosuggestion dropdown"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
-
#: admin/html/whats-new.php:
|
2146 |
msgid "Import forms system"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
-
#: admin/html/whats-new.php:
|
2150 |
msgid "Password reset system"
|
2151 |
msgstr ""
|
2152 |
|
2153 |
-
#: admin/html/whats-new.php:
|
2154 |
msgid "Updated url validation regex to support modern tlds"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
-
#: admin/html/whats-new.php:
|
2158 |
msgid "Export WPUF forms individually from admin tools page"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
-
#: admin/html/whats-new.php:
|
2162 |
msgid "Subscription cycle label translation issue"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
-
#: admin/html/whats-new.php:
|
2166 |
msgid "ACF integration for checkbox fields"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: admin/html/whats-new.php:
|
2170 |
msgid "Illegal string offset warning while updating settings"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
-
#: admin/html/whats-new.php:
|
2174 |
msgid "Conditional logic for Section Break field"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
-
#: admin/html/whats-new.php:
|
2178 |
msgid "Subscriptions cannot be deleted from backend"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
-
#: admin/html/whats-new.php:
|
2182 |
msgid "A regression regarding saving checkbox data"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
-
#: admin/html/whats-new.php:
|
2186 |
msgid "Default value of multi-select fields is not showing"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: admin/html/whats-new.php:
|
2190 |
msgid "Hide post edit option when subscription is expired"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
-
#: admin/html/whats-new.php:
|
2194 |
msgid "Hide post edit option from users whose subscription pack is expired."
|
2195 |
msgstr ""
|
2196 |
|
2197 |
-
#: admin/html/whats-new.php:
|
2198 |
msgid "Check files to prevent duplicity in media upload"
|
2199 |
msgstr ""
|
2200 |
|
2201 |
-
#: admin/html/whats-new.php:
|
2202 |
msgid ""
|
2203 |
"A simple measure has been taken to prevent maliciously flooding the site by "
|
2204 |
"uploading same file multiple times. Though this won't work with already "
|
2205 |
"uploaded medias."
|
2206 |
msgstr ""
|
2207 |
|
2208 |
-
#: admin/html/whats-new.php:
|
2209 |
msgid "Refactor address fields in Account section"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
-
#: admin/html/whats-new.php:
|
2213 |
msgid "Address edit section from Account section has been rewritten to improve UX."
|
2214 |
msgstr ""
|
2215 |
|
2216 |
-
#: admin/html/whats-new.php:
|
2217 |
msgid "Update Paypal payment gateway"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: admin/html/whats-new.php:
|
2221 |
msgid "Paypal payment gateway has seen some improvements."
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: admin/html/whats-new.php:
|
2225 |
msgid "Default Category selection improvements"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: admin/html/whats-new.php:
|
2229 |
msgid ""
|
2230 |
"An intuitive way of selecting default category of a selected post type has "
|
2231 |
"been introduced."
|
2232 |
msgstr ""
|
2233 |
|
2234 |
-
#: admin/html/whats-new.php:
|
2235 |
msgid "Compatibility issue with ACF date time field"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: admin/html/whats-new.php:
|
2239 |
msgid "A Compatibility issue with ACF date time field has been addressed."
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: admin/html/whats-new.php:
|
2243 |
msgid "Media title, caption & description not saving"
|
2244 |
msgstr ""
|
2245 |
|
2246 |
-
#: admin/html/whats-new.php:
|
2247 |
msgid ""
|
2248 |
"Media title, caption & description were not saving from frontend. They will "
|
2249 |
"now."
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: admin/html/whats-new.php:
|
2253 |
msgid ""
|
2254 |
"The Events Calendar venue and organizer fields issue in WPUF Custom Fields "
|
2255 |
"metabox"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
-
#: admin/html/whats-new.php:
|
2259 |
msgid ""
|
2260 |
"A workaround has been introduced to save The Events Calendar Venue and "
|
2261 |
"Organizer fields properly from WPUF Custom Fields metabox."
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: admin/html/whats-new.php:
|
2265 |
msgid "Checkbox data not saving from WPUF Custom Fields metabox"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: admin/html/whats-new.php:
|
2269 |
msgid ""
|
2270 |
"Checkboxe data from WPUF Custom Fields metabox were not saving. It has been "
|
2271 |
"fixed."
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: admin/html/whats-new.php:
|
2275 |
msgid "Multi-column Repeater field data saving issue"
|
2276 |
msgstr ""
|
2277 |
|
2278 |
-
#: admin/html/whats-new.php:
|
2279 |
msgid ""
|
2280 |
"Multi-column Repeater field data from a form was not saving. It has been "
|
2281 |
"fixed."
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: admin/html/whats-new.php:
|
2285 |
msgid "Multistep form conflict with Elementor"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: admin/html/whats-new.php:
|
2289 |
msgid "Multistep form had a conflict with Elementor. It has been fixed."
|
2290 |
msgstr ""
|
2291 |
|
2292 |
-
#: admin/html/whats-new.php:
|
2293 |
msgid "Multiple images showing issue in frontend"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
-
#: admin/html/whats-new.php:
|
2297 |
msgid "Multiple images in a post were not showing in frontend. Now they will."
|
2298 |
msgstr ""
|
2299 |
|
2300 |
-
#: admin/html/whats-new.php:
|
2301 |
msgid "Nonce not verify on login"
|
2302 |
msgstr ""
|
2303 |
|
2304 |
-
#: admin/html/whats-new.php:
|
2305 |
msgid "Return of function wp_verify_nonce() was ignored."
|
2306 |
msgstr ""
|
2307 |
|
2308 |
-
#: admin/html/whats-new.php:
|
2309 |
msgid "Option to set which tab shows as active on the account page"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
-
#: admin/html/whats-new.php:
|
2313 |
msgid ""
|
2314 |
"Option to set which tab shows as active on the account page. To configure "
|
2315 |
"this setting navigate to wp-admin->User Frontend->Settings->My "
|
2316 |
"Account->Active Tab "
|
2317 |
msgstr ""
|
2318 |
|
2319 |
-
#: admin/html/whats-new.php:
|
2320 |
msgid "Unlock option was unavailable after the post being locked"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
-
#: admin/html/whats-new.php:
|
2324 |
msgid "Unlock option was unavailable after the post being locked."
|
2325 |
msgstr ""
|
2326 |
|
2327 |
-
#: admin/html/whats-new.php:
|
2328 |
msgid "Gutenberg block of WPUF didn't work on bedrock installation"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
-
#: admin/html/whats-new.php:
|
2332 |
msgid "Gutenberg block of WPUF didn't work on bedrock installation."
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: admin/html/whats-new.php:
|
2336 |
msgid "Sending admin payment received email twice"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
-
#: admin/html/whats-new.php:
|
2340 |
msgid ""
|
2341 |
"After processing payment admin & user was receiving payment received email "
|
2342 |
"twice."
|
2343 |
msgstr ""
|
2344 |
|
2345 |
-
#: admin/html/whats-new.php:
|
2346 |
msgid ""
|
2347 |
"Add shortcode support to display post information in the Post Expiration "
|
2348 |
"Message"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: admin/html/whats-new.php:
|
2352 |
msgid ""
|
2353 |
"Add shortcode support to display post information in the Post Expiration "
|
2354 |
"Message. You can use: <strong>{post_author} {post_url} {blogname} "
|
2355 |
"{post_title} {post_status}</strong>"
|
2356 |
msgstr ""
|
2357 |
|
2358 |
-
#: admin/html/whats-new.php:
|
2359 |
msgid "Add optin on the setup wizard"
|
2360 |
msgstr ""
|
2361 |
|
2362 |
-
#: admin/html/whats-new.php:
|
2363 |
msgid ""
|
2364 |
"Added optin on the setup wizard, admin can choose whether he/she wants to "
|
2365 |
"share server environment details (php, mysql, server, WordPress versions), "
|
@@ -2367,126 +2405,126 @@ msgid ""
|
|
2367 |
"name and url, admin name and email address. No sensitive data is tracked"
|
2368 |
msgstr ""
|
2369 |
|
2370 |
-
#: admin/html/whats-new.php:
|
2371 |
msgid "Post Owner problem"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
-
#: admin/html/whats-new.php:
|
2375 |
msgid ""
|
2376 |
"Posts were not assigned to the selected default post owner, this issue has "
|
2377 |
"been fixed."
|
2378 |
msgstr ""
|
2379 |
|
2380 |
-
#: admin/html/whats-new.php:
|
2381 |
msgid "Google reCaptcha was not working"
|
2382 |
msgstr ""
|
2383 |
|
2384 |
-
#: admin/html/whats-new.php:
|
2385 |
msgid ""
|
2386 |
"Google reCaptcha was not working, users could submit the form without "
|
2387 |
"reCaptcha validation."
|
2388 |
msgstr ""
|
2389 |
|
2390 |
-
#: admin/html/whats-new.php:
|
2391 |
msgid "Added column field"
|
2392 |
msgstr ""
|
2393 |
|
2394 |
-
#: admin/html/whats-new.php:
|
2395 |
msgid "Unable to render the events on the front-end dashboard"
|
2396 |
msgstr ""
|
2397 |
|
2398 |
-
#: admin/html/whats-new.php:
|
2399 |
msgid ""
|
2400 |
"On the frontend dashboard, the submitted events were not showing, you will "
|
2401 |
"get it fixed in this version."
|
2402 |
msgstr ""
|
2403 |
|
2404 |
-
#: admin/html/whats-new.php:
|
2405 |
msgid "Page order getting 0(zero) after editing from the frontend"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
-
#: admin/html/whats-new.php:
|
2409 |
msgid ""
|
2410 |
"Page order was not saving while editing a post using WPUF form, it has been "
|
2411 |
"fixed."
|
2412 |
msgstr ""
|
2413 |
|
2414 |
-
#: admin/html/whats-new.php:
|
2415 |
msgid "Text input field for taxonomies not working"
|
2416 |
msgstr ""
|
2417 |
|
2418 |
-
#: admin/html/whats-new.php:
|
2419 |
msgid ""
|
2420 |
"When taxonomy field type is set to `Text Input` then a fatal error was "
|
2421 |
"showing on the frontend, no error with taxonomy field in the latest version."
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: admin/html/whats-new.php:
|
2425 |
msgid ""
|
2426 |
"In radio and checkbox field use conditional logic that value does not save "
|
2427 |
"in database"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: admin/html/whats-new.php:
|
2431 |
msgid ""
|
2432 |
"The selected value of radio and checkbox field were not showing while "
|
2433 |
"editing posts from the backend or frontend, you can see the selected value "
|
2434 |
"in this version."
|
2435 |
msgstr ""
|
2436 |
|
2437 |
-
#: admin/html/whats-new.php:
|
2438 |
msgid "The args param not working with get_avatar filter"
|
2439 |
msgstr ""
|
2440 |
|
2441 |
-
#: admin/html/whats-new.php:
|
2442 |
msgid "The args parameter did not exist with get_avatar filter, which now exists."
|
2443 |
msgstr ""
|
2444 |
|
2445 |
-
#: admin/html/whats-new.php:
|
2446 |
msgid "The item in ajax taxonomy field was not selected"
|
2447 |
msgstr ""
|
2448 |
|
2449 |
-
#: admin/html/whats-new.php:
|
2450 |
msgid ""
|
2451 |
"When the taxonomy field type is set to Ajax, the submitted terms were not "
|
2452 |
"showing in the backend and frontend which have been fixed."
|
2453 |
msgstr ""
|
2454 |
|
2455 |
-
#: admin/html/whats-new.php:
|
2456 |
msgid "Unable to send new user registration email"
|
2457 |
msgstr ""
|
2458 |
|
2459 |
-
#: admin/html/whats-new.php:
|
2460 |
msgid ""
|
2461 |
"WP User Frontend default registration form `[wpuf-registration]` was unable "
|
2462 |
"to send the new user registration email."
|
2463 |
msgstr ""
|
2464 |
|
2465 |
-
#: admin/html/whats-new.php:
|
2466 |
msgid "WPUF forms block compatibility issue with the latest WP version"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
-
#: admin/html/whats-new.php:
|
2470 |
msgid ""
|
2471 |
"With the latest version of WordPress the gutenberg block of WP User "
|
2472 |
"Frontend were not working. In this version, you will get it fixed."
|
2473 |
msgstr ""
|
2474 |
|
2475 |
-
#: admin/html/whats-new.php:
|
2476 |
msgid "Page not update where `[wpuf_dashboard]` shortcode exist"
|
2477 |
msgstr ""
|
2478 |
|
2479 |
-
#: admin/html/whats-new.php:
|
2480 |
msgid ""
|
2481 |
"While using Gutenberg, the page were not being updated with WPUF shortcode "
|
2482 |
"[wpuf dashboard]"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
-
#: admin/html/whats-new.php:
|
2486 |
msgid "Retain default when determining whether to display the admin bar"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
-
#: admin/html/whats-new.php:
|
2490 |
msgid ""
|
2491 |
"From the User Frontend Settings, set that Administrator, Editor, Vendor can "
|
2492 |
"see the admin bar. Now, the super admin want, one specific user ( who has "
|
@@ -2496,11 +2534,11 @@ msgid ""
|
|
2496 |
"frontend."
|
2497 |
msgstr ""
|
2498 |
|
2499 |
-
#: admin/html/whats-new.php:
|
2500 |
msgid "Fatal error when use PHP lower version (5.4 or lower)"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
-
#: admin/html/whats-new.php:
|
2504 |
msgid ""
|
2505 |
"It was unable to install WP User Frontend with PHP 5.4 or lower version. "
|
2506 |
"Here is the error details: <br><br><strong>Fatal error: Can't use method "
|
@@ -2508,42 +2546,42 @@ msgid ""
|
|
2508 |
"/wp-user-frontend/class/frontend-form-post.php on line 194</strong>"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
-
#: admin/html/whats-new.php:
|
2512 |
msgid "Product form was unable to show the single gallery image"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
-
#: admin/html/whats-new.php:
|
2516 |
msgid ""
|
2517 |
"When user upload single image for product gallery using WPUF WooCommerce "
|
2518 |
"product form, that image were not showing on the frontend."
|
2519 |
msgstr ""
|
2520 |
|
2521 |
-
#: admin/html/whats-new.php:
|
2522 |
msgid "WooCommerce gallery images not getting saved"
|
2523 |
msgstr ""
|
2524 |
|
2525 |
-
#: admin/html/whats-new.php:
|
2526 |
msgid ""
|
2527 |
"After releasing version 2.9.3, WooCommerce gallery image field stopped "
|
2528 |
"working. You will get it fixed in this version."
|
2529 |
msgstr ""
|
2530 |
|
2531 |
-
#: admin/html/whats-new.php:
|
2532 |
msgid "The Events Calendar Integration Form"
|
2533 |
msgstr ""
|
2534 |
|
2535 |
-
#: admin/html/whats-new.php:
|
2536 |
msgid ""
|
2537 |
"Now admin can allow users to create event from the frontend. Currently WPUF "
|
2538 |
"has a one click pre-build event form that has been integrated with The "
|
2539 |
"Events Calendar plugin"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
-
#: admin/html/whats-new.php:
|
2543 |
msgid "Post Submission Facility From Account Page"
|
2544 |
msgstr ""
|
2545 |
|
2546 |
-
#: admin/html/whats-new.php:
|
2547 |
msgid ""
|
2548 |
"On the frontend account page, added a new menu item named <b>Submit "
|
2549 |
"Post</b>. Now admin can allow users to submit post from their default "
|
@@ -2552,504 +2590,504 @@ msgid ""
|
|
2552 |
"you can assign any post form that will use to submit posts."
|
2553 |
msgstr ""
|
2554 |
|
2555 |
-
#: admin/html/whats-new.php:
|
2556 |
msgid "Login/Lost Password Link Under Registration Form"
|
2557 |
msgstr ""
|
2558 |
|
2559 |
-
#: admin/html/whats-new.php:
|
2560 |
msgid "Added Login/Lost Password link under registration form"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: admin/html/whats-new.php:
|
2564 |
msgid "Added drag and drop image ordering on image upload"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: admin/html/whats-new.php:
|
2568 |
msgid ""
|
2569 |
"Now frontend users can drag & drop the images/files to change the order "
|
2570 |
"while uploading."
|
2571 |
msgstr ""
|
2572 |
|
2573 |
-
#: admin/html/whats-new.php:
|
2574 |
msgid "Added reCAPTCHA field in login form"
|
2575 |
msgstr ""
|
2576 |
|
2577 |
-
#: admin/html/whats-new.php:
|
2578 |
msgid ""
|
2579 |
"Admin has the option to show reCAPTCHA field in login form. Check the "
|
2580 |
"related settings from <strong>User Frontend > Settings > "
|
2581 |
"Login/Registration</strong>"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
-
#: admin/html/whats-new.php:
|
2585 |
msgid "Added preview option in forms"
|
2586 |
msgstr ""
|
2587 |
|
2588 |
-
#: admin/html/whats-new.php:
|
2589 |
msgid ""
|
2590 |
"You can see a nice <strong>Preview</strong> button with <strong>Save "
|
2591 |
"Form</strong> button, admin can take a quick look of the form without using "
|
2592 |
"shortcode"
|
2593 |
msgstr ""
|
2594 |
|
2595 |
-
#: admin/html/whats-new.php:
|
2596 |
msgid "Fixed hiding “Select Image” button while uploading multiple images."
|
2597 |
msgstr ""
|
2598 |
|
2599 |
-
#: admin/html/whats-new.php:
|
2600 |
msgid ""
|
2601 |
"The upload button will not be hidden until the user selects max number of "
|
2602 |
"files "
|
2603 |
msgstr ""
|
2604 |
|
2605 |
-
#: admin/html/whats-new.php:
|
2606 |
msgid "Added form limit notice before form submission"
|
2607 |
msgstr ""
|
2608 |
|
2609 |
-
#: admin/html/whats-new.php:
|
2610 |
msgid ""
|
2611 |
"Limit notice message was showing after submission, now it is showing when "
|
2612 |
"rendering the form"
|
2613 |
msgstr ""
|
2614 |
|
2615 |
-
#: admin/html/whats-new.php:
|
2616 |
msgid "Fixed: default post category not saving"
|
2617 |
msgstr ""
|
2618 |
|
2619 |
-
#: admin/html/whats-new.php:
|
2620 |
msgid ""
|
2621 |
"From the form <strong>Settings > Post Settings</strong>, default post "
|
2622 |
"category options were not saving. Now, it's fixed."
|
2623 |
msgstr ""
|
2624 |
|
2625 |
-
#: admin/html/whats-new.php:
|
2626 |
msgid ""
|
2627 |
"WPUF dashboard shortcode with form_id attribute was not showing posts "
|
2628 |
"properly"
|
2629 |
msgstr ""
|
2630 |
|
2631 |
-
#: admin/html/whats-new.php:
|
2632 |
msgid ""
|
2633 |
"Now you can list posts on the frontend by using <strong>form_id<strong/> "
|
2634 |
"attribute with <strong>[wpuf_dashboard]</strong> shortcode"
|
2635 |
msgstr ""
|
2636 |
|
2637 |
-
#: admin/html/whats-new.php:
|
2638 |
msgid "Changed text domain to `wp-user-frontend` from `wpuf` "
|
2639 |
msgstr ""
|
2640 |
|
2641 |
-
#: admin/html/whats-new.php:
|
2642 |
msgid ""
|
2643 |
"If you are using other language than English. Please <b>rename</b> your "
|
2644 |
"<i>.po and .mo </i> files to `wp-user-frontend_` from `wpuf_` <br> This "
|
2645 |
"change was made to support translations from translate.wordpress.org"
|
2646 |
msgstr ""
|
2647 |
|
2648 |
-
#: admin/html/whats-new.php:
|
2649 |
msgid "Added WP User Frontend Data export and erase functionality."
|
2650 |
msgstr ""
|
2651 |
|
2652 |
-
#: admin/html/whats-new.php:
|
2653 |
msgid "Added functionality to export WP User Frontend Data to comply with GDPR."
|
2654 |
msgstr ""
|
2655 |
|
2656 |
-
#: admin/html/whats-new.php:
|
2657 |
msgid "Added billing address customizer."
|
2658 |
msgstr ""
|
2659 |
|
2660 |
-
#: admin/html/whats-new.php:
|
2661 |
msgid "Added customizer options for billing address in payment page."
|
2662 |
msgstr ""
|
2663 |
|
2664 |
-
#: admin/html/whats-new.php:
|
2665 |
msgid "Make the payment page responsive."
|
2666 |
msgstr ""
|
2667 |
|
2668 |
-
#: admin/html/whats-new.php:
|
2669 |
msgid "Some css adjustments are made in payment page to make it responsive."
|
2670 |
msgstr ""
|
2671 |
|
2672 |
-
#: admin/html/whats-new.php:
|
2673 |
msgid "Fixed image upload issue in Safari."
|
2674 |
msgstr ""
|
2675 |
|
2676 |
-
#: admin/html/whats-new.php:
|
2677 |
msgid "Images were not showing after upload in safari, it is fixed now."
|
2678 |
msgstr ""
|
2679 |
|
2680 |
-
#: admin/html/whats-new.php:
|
2681 |
msgid "Post update issue after updating or removing post images."
|
2682 |
msgstr ""
|
2683 |
|
2684 |
-
#: admin/html/whats-new.php:
|
2685 |
msgid ""
|
2686 |
"Posts cannot be updated after updating or removing post images, it is fixed "
|
2687 |
"now."
|
2688 |
msgstr ""
|
2689 |
|
2690 |
-
#: admin/html/whats-new.php:
|
2691 |
msgid "Allow overriding form input styles using theme styling."
|
2692 |
msgstr ""
|
2693 |
|
2694 |
-
#: admin/html/whats-new.php:
|
2695 |
msgid "Overriding form input styles using theme style is now possible."
|
2696 |
msgstr ""
|
2697 |
|
2698 |
-
#: admin/html/whats-new.php:
|
2699 |
msgid "Fixed Auto Login after registration."
|
2700 |
msgstr ""
|
2701 |
|
2702 |
-
#: admin/html/whats-new.php:
|
2703 |
msgid "Auto Login after registration was not working is fixed now."
|
2704 |
msgstr ""
|
2705 |
|
2706 |
-
#: admin/html/whats-new.php:
|
2707 |
msgid "Fixed fallback cost calculation"
|
2708 |
msgstr ""
|
2709 |
|
2710 |
-
#: admin/html/whats-new.php:
|
2711 |
msgid "Fallback cost calculation was inaccurate for some cases, it is fixed now."
|
2712 |
msgstr ""
|
2713 |
|
2714 |
-
#: admin/html/whats-new.php:
|
2715 |
msgid "Removal of subscription from User Profile gets reverted if updated"
|
2716 |
msgstr ""
|
2717 |
|
2718 |
-
#: admin/html/whats-new.php:
|
2719 |
msgid "User subscription deletion gets reverted if updated is fixed."
|
2720 |
msgstr ""
|
2721 |
|
2722 |
-
#: admin/html/whats-new.php:
|
2723 |
msgid "Show Free pack users in subscribers list."
|
2724 |
msgstr ""
|
2725 |
|
2726 |
-
#: admin/html/whats-new.php:
|
2727 |
msgid "Free pack users were not showing in subscribers list, now they will."
|
2728 |
msgstr ""
|
2729 |
|
2730 |
-
#: admin/html/whats-new.php:
|
2731 |
msgid "WP User Frontend Guten Block is added"
|
2732 |
msgstr ""
|
2733 |
|
2734 |
-
#: admin/html/whats-new.php:
|
2735 |
msgid ""
|
2736 |
"WPUF Form Block is now available to be used within gutenberg editor with "
|
2737 |
"preview of the form. "
|
2738 |
msgstr ""
|
2739 |
|
2740 |
-
#: admin/html/whats-new.php:
|
2741 |
msgid "Advanced Custom Fields plugin compatibility"
|
2742 |
msgstr ""
|
2743 |
|
2744 |
-
#: admin/html/whats-new.php:
|
2745 |
msgid "Now all your ACF fields can be used within WPUF Post forms. "
|
2746 |
msgstr ""
|
2747 |
|
2748 |
-
#: admin/html/whats-new.php:
|
2749 |
msgid "Taxonomy Terms not showing for custom post types"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
-
#: admin/html/whats-new.php:
|
2753 |
msgid ""
|
2754 |
"Fixed an issue with taxonomy terms not appearing for Custom Post types "
|
2755 |
"within Form Settings and Dashboard Post Listing"
|
2756 |
msgstr ""
|
2757 |
|
2758 |
-
#: admin/html/whats-new.php:
|
2759 |
msgid "Various other code optimizations"
|
2760 |
msgstr ""
|
2761 |
|
2762 |
-
#: admin/html/whats-new.php:
|
2763 |
msgid "Code structure organization and optimization for better performance"
|
2764 |
msgstr ""
|
2765 |
|
2766 |
-
#: admin/html/whats-new.php:
|
2767 |
msgid "WoooCommerce billing address Sync"
|
2768 |
msgstr ""
|
2769 |
|
2770 |
-
#: admin/html/whats-new.php:
|
2771 |
msgid ""
|
2772 |
"If an existing customer has previously set his billing address, that will "
|
2773 |
"be imported into WPUF Billing address "
|
2774 |
msgstr ""
|
2775 |
|
2776 |
-
#: admin/html/whats-new.php:
|
2777 |
msgid "Trial subscription message not showing properly"
|
2778 |
msgstr ""
|
2779 |
|
2780 |
-
#: admin/html/whats-new.php:
|
2781 |
msgid "Subscriptions with Trial now shows trial notices"
|
2782 |
msgstr ""
|
2783 |
|
2784 |
-
#: admin/html/whats-new.php:
|
2785 |
msgid "Reset email Key not working"
|
2786 |
msgstr ""
|
2787 |
|
2788 |
-
#: admin/html/whats-new.php:
|
2789 |
msgid "Reset Email key was not working in some cases"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
-
#: admin/html/whats-new.php:
|
2793 |
msgid "Post count not showing on the frontend dashboard"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
-
#: admin/html/whats-new.php:
|
2797 |
msgid ""
|
2798 |
"Dashboard with multiple post type was not showing post counts properly, is "
|
2799 |
"now fixed and shows count for each post type"
|
2800 |
msgstr ""
|
2801 |
|
2802 |
-
#: admin/html/whats-new.php:
|
2803 |
msgid "Login Redirect showing blank page is fixed"
|
2804 |
msgstr ""
|
2805 |
|
2806 |
-
#: admin/html/whats-new.php:
|
2807 |
msgid ""
|
2808 |
"If \"Previous Page\" was set for redirection, login redirect was "
|
2809 |
"redirecting to blank page for users who hit login page directly"
|
2810 |
msgstr ""
|
2811 |
|
2812 |
-
#: admin/html/whats-new.php:
|
2813 |
msgid "Enhanced Login Redirect to redirect users to previous page"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
-
#: admin/html/whats-new.php:
|
2817 |
msgid ""
|
2818 |
"You can choose Previous Page as Login Redirect page settings now to "
|
2819 |
"redirect users to the page from which they went for Login. "
|
2820 |
msgstr ""
|
2821 |
|
2822 |
-
#: admin/html/whats-new.php:
|
2823 |
msgid "Email HTML links not Rendreing properly issue is fixed"
|
2824 |
msgstr ""
|
2825 |
|
2826 |
-
#: admin/html/whats-new.php:
|
2827 |
msgid ""
|
2828 |
"For some clients emails were not rendering the HTML links properly, this is "
|
2829 |
"now fixed"
|
2830 |
msgstr ""
|
2831 |
|
2832 |
-
#: admin/html/whats-new.php:
|
2833 |
msgid "Form Builder : Form Field's Help text styles not showing properly"
|
2834 |
msgstr ""
|
2835 |
|
2836 |
-
#: admin/html/whats-new.php:
|
2837 |
msgid "Help texts styling is now fixed and much easier to read and understand"
|
2838 |
msgstr ""
|
2839 |
|
2840 |
-
#: admin/html/whats-new.php:
|
2841 |
msgid "Various other code improvements"
|
2842 |
msgstr ""
|
2843 |
|
2844 |
-
#: admin/html/whats-new.php:
|
2845 |
msgid "Dashboard Post Listing now supports multiple post types"
|
2846 |
msgstr ""
|
2847 |
|
2848 |
-
#: admin/html/whats-new.php:
|
2849 |
msgid ""
|
2850 |
"Now you can show multiple post type in user dashboard using shortcode like "
|
2851 |
"this : <br><b>[wpuf_dashboard post_type=\"post,page,custom_type\"]</b> "
|
2852 |
msgstr ""
|
2853 |
|
2854 |
-
#: admin/html/whats-new.php:
|
2855 |
msgid "Added Login Redirect Settings"
|
2856 |
msgstr ""
|
2857 |
|
2858 |
-
#: admin/html/whats-new.php:
|
2859 |
msgid ""
|
2860 |
"You can now set a page from <i>WPUF Settings > Login/Registration > "
|
2861 |
"Redirect after Login</i>. When login redirection is active the user will be "
|
2862 |
"redirected to this page after login."
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: admin/html/whats-new.php:
|
2866 |
msgid "Image Upload field button text can be changed"
|
2867 |
msgstr ""
|
2868 |
|
2869 |
-
#: admin/html/whats-new.php:
|
2870 |
msgid ""
|
2871 |
"The upload button text can now be changed for image upload fields which "
|
2872 |
"defaults to \"Select Image\" if not set. "
|
2873 |
msgstr ""
|
2874 |
|
2875 |
-
#: admin/html/whats-new.php:
|
2876 |
msgid "Multi Step Form styles made compatible with more themes"
|
2877 |
msgstr ""
|
2878 |
|
2879 |
-
#: admin/html/whats-new.php:
|
2880 |
msgid "Multi Step form can now be styled more easily with other themes "
|
2881 |
msgstr ""
|
2882 |
|
2883 |
-
#: admin/html/whats-new.php:
|
2884 |
msgid "Required field condition for google map not working is fixed"
|
2885 |
msgstr ""
|
2886 |
|
2887 |
-
#: admin/html/whats-new.php:
|
2888 |
msgid ""
|
2889 |
"If Google Map field was set as required users were able to submit form "
|
2890 |
"without changing the default value."
|
2891 |
msgstr ""
|
2892 |
|
2893 |
-
#: admin/html/whats-new.php:
|
2894 |
msgid "Admin form builder is now fully responsive."
|
2895 |
msgstr ""
|
2896 |
|
2897 |
-
#: admin/html/whats-new.php:
|
2898 |
msgid ""
|
2899 |
"Now you can edit forms from your mobile devices directly. Our improved "
|
2900 |
"responsive layouts of form builder makes it easy for you to build forms on "
|
2901 |
"the go."
|
2902 |
msgstr ""
|
2903 |
|
2904 |
-
#: admin/html/whats-new.php:
|
2905 |
msgid "Added color schemes for creating attractive form layouts."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
-
#: admin/html/whats-new.php:
|
2909 |
msgid ""
|
2910 |
"We have added 3 new color schemes for the form layouts which you can choose "
|
2911 |
"from each form's new display settings."
|
2912 |
msgstr ""
|
2913 |
|
2914 |
-
#: admin/html/whats-new.php:
|
2915 |
msgid "Restrict Free subscription pack to be enabled multiple times "
|
2916 |
msgstr ""
|
2917 |
|
2918 |
-
#: admin/html/whats-new.php:
|
2919 |
msgid ""
|
2920 |
"Free subscription packs now can only be purchased once and the limit "
|
2921 |
"applies properly"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: admin/html/whats-new.php:
|
2925 |
msgid "Various other bug fixes and improvements were made "
|
2926 |
msgstr ""
|
2927 |
|
2928 |
-
#: admin/html/whats-new.php:
|
2929 |
msgid "Please see the change log to see full details."
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: admin/html/whats-new.php:
|
2933 |
msgid "Added upgrade function for default category"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: admin/html/whats-new.php:
|
2937 |
msgid "Upgrader added to upgrade previously set default post category."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
-
#: admin/html/whats-new.php:
|
2941 |
msgid "Subscription pack cannot be canceled"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
-
#: admin/html/whats-new.php:
|
2945 |
msgid ""
|
2946 |
"Fixed recurring subscription pack cannot be canceled from my account page "
|
2947 |
"in subscription details section."
|
2948 |
msgstr ""
|
2949 |
|
2950 |
-
#: admin/html/whats-new.php:
|
2951 |
msgid "page installer admin notice logic issue"
|
2952 |
msgstr ""
|
2953 |
|
2954 |
-
#: admin/html/whats-new.php:
|
2955 |
msgid ""
|
2956 |
"Fixed page installer admin notice logic problem due to new payment settings "
|
2957 |
"default value not set."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: admin/html/whats-new.php:
|
2961 |
msgid "Setup Wizard"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: admin/html/whats-new.php:
|
2965 |
msgid "Setup Wizard added to turn off payment options and install pages."
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: admin/html/whats-new.php:
|
2969 |
msgid "Multi-select Category"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
-
#: admin/html/whats-new.php:
|
2973 |
msgid "Add multi-select to default category in post form settings."
|
2974 |
msgstr ""
|
2975 |
|
2976 |
-
#: admin/html/whats-new.php:
|
2977 |
msgid "Select Text option for Taxonomy"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: admin/html/whats-new.php:
|
2981 |
msgid ""
|
2982 |
"Add Select Text option for taxonomy fields. Now you can add default text "
|
2983 |
"with empty value as first option for Taxonomy dropdown."
|
2984 |
msgstr ""
|
2985 |
|
2986 |
-
#: admin/html/whats-new.php:
|
2987 |
msgid "Taxonomy Checkbox Inline"
|
2988 |
msgstr ""
|
2989 |
|
2990 |
-
#: admin/html/whats-new.php:
|
2991 |
msgid ""
|
2992 |
"Added checkbox inline option to taxonomy checkbox. You can now display "
|
2993 |
"Taxonomy checkbox fields inline."
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: admin/html/whats-new.php:
|
2997 |
msgid "Manage schedule for form submission"
|
2998 |
msgstr ""
|
2999 |
|
3000 |
-
#: admin/html/whats-new.php:
|
3001 |
msgid ""
|
3002 |
"Do not accept form submission if the current date is not between the date "
|
3003 |
"range of the schedule."
|
3004 |
msgstr ""
|
3005 |
|
3006 |
-
#: admin/html/whats-new.php:
|
3007 |
msgid "Restrict form submission based on the user roles"
|
3008 |
msgstr ""
|
3009 |
|
3010 |
-
#: admin/html/whats-new.php:
|
3011 |
msgid ""
|
3012 |
"Restrict form submission based on the user roles. Now you can manage user "
|
3013 |
"role base permission on form submission."
|
3014 |
msgstr ""
|
3015 |
|
3016 |
-
#: admin/html/whats-new.php:
|
3017 |
msgid "Limit how many entries a form will accept"
|
3018 |
msgstr ""
|
3019 |
|
3020 |
-
#: admin/html/whats-new.php:
|
3021 |
msgid ""
|
3022 |
"Limit how many entries a form will accept and display a custom message when "
|
3023 |
"that limit is reached."
|
3024 |
msgstr ""
|
3025 |
|
3026 |
-
#: admin/html/whats-new.php:
|
3027 |
msgid "Show/hide Admin Bar"
|
3028 |
msgstr ""
|
3029 |
|
3030 |
-
#: admin/html/whats-new.php:
|
3031 |
msgid "Control the admin bar visibility based on user roles."
|
3032 |
msgstr ""
|
3033 |
|
3034 |
-
#: admin/html/whats-new.php:
|
3035 |
msgid "Ajax Login widget"
|
3036 |
msgstr ""
|
3037 |
|
3038 |
-
#: admin/html/whats-new.php:
|
3039 |
msgid ""
|
3040 |
"Login user is more simple now with Ajax Login Widget. The simple ajax login "
|
3041 |
"form do not required page loading for login."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: admin/html/whats-new.php:
|
3045 |
msgid "Form submission with Captcha field"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: admin/html/whats-new.php:
|
3049 |
msgid "Form field validation process updated if form submits with captcha field."
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: admin/html/whats-new.php:
|
3053 |
msgid "What's New in WPUF?"
|
3054 |
msgstr ""
|
3055 |
|
@@ -3072,7 +3110,7 @@ msgid "Congratulations!"
|
|
3072 |
msgstr ""
|
3073 |
|
3074 |
#: admin/installer.php:84 admin/settings-options.php:24
|
3075 |
-
#: includes/free/admin/shortcode-button.php:79 wpuf-functions.php:
|
3076 |
msgid "Dashboard"
|
3077 |
msgstr ""
|
3078 |
|
@@ -3087,7 +3125,7 @@ msgstr ""
|
|
3087 |
|
3088 |
#: admin/installer.php:95 class/subscription.php:410 class/subscription.php:430
|
3089 |
#: class/subscription.php:431 class/subscription.php:432
|
3090 |
-
#: includes/free/admin/shortcode-button.php:99 wpuf-functions.php:
|
3091 |
msgid "Subscription"
|
3092 |
msgstr ""
|
3093 |
|
@@ -3183,23 +3221,23 @@ msgid "Draft"
|
|
3183 |
msgstr ""
|
3184 |
|
3185 |
#: admin/posting.php:72 class/asset-loader.php:55 class/render-form.php:1682
|
3186 |
-
#: wpuf.php:
|
3187 |
msgid "Are you sure?"
|
3188 |
msgstr ""
|
3189 |
|
3190 |
-
#: admin/posting.php:80 class/asset-loader.php:63 wpuf.php:
|
3191 |
msgid "Allowed Files"
|
3192 |
msgstr ""
|
3193 |
|
3194 |
-
#: admin/posting.php:83 class/asset-loader.php:66 wpuf.php:
|
3195 |
msgid "Maximum number of files reached!"
|
3196 |
msgstr ""
|
3197 |
|
3198 |
-
#: admin/posting.php:84 class/asset-loader.php:67 wpuf.php:
|
3199 |
msgid "The file you have uploaded exceeds the file size limit. Please try again."
|
3200 |
msgstr ""
|
3201 |
|
3202 |
-
#: admin/posting.php:85 class/asset-loader.php:68 wpuf.php:
|
3203 |
msgid "You have uploaded an incorrect file type. Please try again."
|
3204 |
msgstr ""
|
3205 |
|
@@ -3239,7 +3277,7 @@ msgstr ""
|
|
3239 |
msgid "WPUF Custom Fields"
|
3240 |
msgstr ""
|
3241 |
|
3242 |
-
#: admin/posting.php:
|
3243 |
msgid "No custom fields found."
|
3244 |
msgstr ""
|
3245 |
|
@@ -3253,7 +3291,7 @@ msgid ""
|
|
3253 |
"features."
|
3254 |
msgstr ""
|
3255 |
|
3256 |
-
#: admin/premium.php:10 includes/free/loader.php:
|
3257 |
msgid "Pro Features"
|
3258 |
msgstr ""
|
3259 |
|
@@ -3264,7 +3302,7 @@ msgid ""
|
|
3264 |
"mind."
|
3265 |
msgstr ""
|
3266 |
|
3267 |
-
#: admin/premium.php:18 admin/premium.php:21 includes/free/loader.php:
|
3268 |
msgid "Registration Form Builder"
|
3269 |
msgstr ""
|
3270 |
|
@@ -3367,7 +3405,8 @@ msgid ""
|
|
3367 |
"Long and lengthy forms are uninviting, why build one?"
|
3368 |
msgstr ""
|
3369 |
|
3370 |
-
#: admin/premium.php:93
|
|
|
3371 |
msgid "Modules"
|
3372 |
msgstr ""
|
3373 |
|
@@ -3379,7 +3418,7 @@ msgstr ""
|
|
3379 |
msgid "BuddyPress Profile"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
-
#: admin/premium.php:104
|
3383 |
msgid "Social Login"
|
3384 |
msgstr ""
|
3385 |
|
@@ -3389,7 +3428,7 @@ msgid ""
|
|
3389 |
"Facebook, Twitter and LinkedIn."
|
3390 |
msgstr ""
|
3391 |
|
3392 |
-
#: admin/premium.php:111 admin/premium.php:114
|
3393 |
msgid "User Directory"
|
3394 |
msgstr ""
|
3395 |
|
@@ -4026,7 +4065,7 @@ msgstr ""
|
|
4026 |
msgid "Select the post types you will allow users to export."
|
4027 |
msgstr ""
|
4028 |
|
4029 |
-
#: admin/settings-options.php:
|
4030 |
msgid ""
|
4031 |
"Select profile/registration forms for user roles. These forms will be used "
|
4032 |
"to populate extra edit profile fields in backend."
|
@@ -4291,7 +4330,7 @@ msgstr ""
|
|
4291 |
|
4292 |
#: admin/template.php:185 includes/fields/class-abstract-fields.php:681
|
4293 |
#: includes/fields/class-field-textarea.php:9
|
4294 |
-
#: includes/fields/class-field-textarea.php:
|
4295 |
msgid "Textarea"
|
4296 |
msgstr ""
|
4297 |
|
@@ -4335,7 +4374,7 @@ msgstr ""
|
|
4335 |
#: class/upload.php:275 includes/fields/class-field-recaptcha.php:147
|
4336 |
#: includes/fields/class-field-sectionbreak.php:55
|
4337 |
#: templates/dashboard/list.php:10 templates/dashboard/posts.php:100
|
4338 |
-
#: wpuf-functions.php:
|
4339 |
msgid "Title"
|
4340 |
msgstr ""
|
4341 |
|
@@ -4352,7 +4391,7 @@ msgid "Enter the meta value"
|
|
4352 |
msgstr ""
|
4353 |
|
4354 |
#: admin/template.php:583 class/upload.php:277
|
4355 |
-
#: includes/fields/class-field-sectionbreak.php:63 wpuf-functions.php:
|
4356 |
msgid "Description"
|
4357 |
msgstr ""
|
4358 |
|
@@ -4386,27 +4425,27 @@ msgstr ""
|
|
4386 |
msgid "Import"
|
4387 |
msgstr ""
|
4388 |
|
4389 |
-
#: class/asset-loader.php:32 wpuf.php:
|
4390 |
msgid "is required"
|
4391 |
msgstr ""
|
4392 |
|
4393 |
-
#: class/asset-loader.php:33 wpuf.php:
|
4394 |
msgid "does not match"
|
4395 |
msgstr ""
|
4396 |
|
4397 |
-
#: class/asset-loader.php:34 wpuf.php:
|
4398 |
msgid "is not valid"
|
4399 |
msgstr ""
|
4400 |
|
4401 |
-
#: class/asset-loader.php:46 wpuf.php:
|
4402 |
msgid "Please fix the errors to proceed"
|
4403 |
msgstr ""
|
4404 |
|
4405 |
-
#: class/asset-loader.php:48 wpuf.php:
|
4406 |
msgid "Word limit reached"
|
4407 |
msgstr ""
|
4408 |
|
4409 |
-
#: class/asset-loader.php:49 wpuf.php:
|
4410 |
msgid "Are you sure you want to cancel your current subscription ?"
|
4411 |
msgstr ""
|
4412 |
|
@@ -4543,7 +4582,7 @@ msgid "You already have activated a free package previously."
|
|
4543 |
msgstr ""
|
4544 |
|
4545 |
#: class/payment.php:154 includes/class-customizer.php:56
|
4546 |
-
#: wpuf-functions.php:
|
4547 |
msgid "Billing Address"
|
4548 |
msgstr ""
|
4549 |
|
@@ -4643,49 +4682,49 @@ msgstr ""
|
|
4643 |
msgid "Write the full description of your Post"
|
4644 |
msgstr ""
|
4645 |
|
4646 |
-
#: class/post-form-templates/post.php:
|
4647 |
#: includes/fields/class-field-featured-image.php:9
|
4648 |
#: includes/fields/class-field-featured-image.php:142
|
4649 |
-
#: includes/free/post-form-templates/the_events_calendar.php:125
|
4650 |
#: includes/free/post-form-templates/the_events_calendar.php:126
|
|
|
4651 |
#: templates/dashboard/list.php:7 templates/dashboard/posts.php:97
|
4652 |
msgid "Featured Image"
|
4653 |
msgstr ""
|
4654 |
|
4655 |
-
#: class/post-form-templates/post.php:
|
4656 |
msgid "Upload the main image of your post"
|
4657 |
msgstr ""
|
4658 |
|
4659 |
-
#: class/post-form-templates/post.php:
|
4660 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
4661 |
msgid "Excerpt"
|
4662 |
msgstr ""
|
4663 |
|
4664 |
-
#: class/post-form-templates/post.php:
|
4665 |
msgid "Provide a short description of this post (optional)"
|
4666 |
msgstr ""
|
4667 |
|
4668 |
-
#: class/post-form-templates/post.php:
|
4669 |
#: includes/fields/class-field-post-tags.php:6
|
4670 |
msgid "Tags"
|
4671 |
msgstr ""
|
4672 |
|
4673 |
-
#: class/post-form-templates/post.php:
|
4674 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
4675 |
msgid "Separate tags with commas."
|
4676 |
msgstr ""
|
4677 |
|
4678 |
-
#: class/post-form-templates/post.php:
|
4679 |
msgid "Create Post"
|
4680 |
msgstr ""
|
4681 |
|
4682 |
-
#: class/post-form-templates/post.php:
|
4683 |
msgid ""
|
4684 |
"Post has been updated successfully. <a target=\"_blank\" "
|
4685 |
"href=\"%link%\">View post</a>"
|
4686 |
msgstr ""
|
4687 |
|
4688 |
-
#: class/post-form-templates/post.php:
|
4689 |
msgid "Update Post"
|
4690 |
msgstr ""
|
4691 |
|
@@ -4895,11 +4934,12 @@ msgid "Subtotal"
|
|
4895 |
msgstr ""
|
4896 |
|
4897 |
#: class/transactions-list-table.php:47
|
4898 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
4899 |
msgid "Cost"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
#: class/transactions-list-table.php:48 includes/class-privacy.php:334
|
|
|
4903 |
msgid "Tax"
|
4904 |
msgstr ""
|
4905 |
|
@@ -4952,7 +4992,7 @@ msgstr ""
|
|
4952 |
msgid "No transactions found."
|
4953 |
msgstr ""
|
4954 |
|
4955 |
-
#: class/upload.php:276 wpuf-functions.php:
|
4956 |
msgid "Caption"
|
4957 |
msgstr ""
|
4958 |
|
@@ -5750,6 +5790,20 @@ msgstr ""
|
|
5750 |
msgid "Expiry"
|
5751 |
msgstr ""
|
5752 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5753 |
#: includes/class-user-subscription.php:57
|
5754 |
msgid "You must <a href=\"%s\">purchase a subscription package</a> before posting"
|
5755 |
msgstr ""
|
@@ -5926,14 +5980,14 @@ msgid "Select Yes if you want to hide the field label in single post."
|
|
5926 |
msgstr ""
|
5927 |
|
5928 |
#: includes/fields/class-abstract-fields.php:465
|
5929 |
-
#: includes/fields/class-field-checkbox.php:
|
5930 |
-
#: includes/fields/class-field-radio.php:
|
5931 |
msgid "Show in inline list"
|
5932 |
msgstr ""
|
5933 |
|
5934 |
#: includes/fields/class-abstract-fields.php:475
|
5935 |
-
#: includes/fields/class-field-checkbox.php:
|
5936 |
-
#: includes/fields/class-field-radio.php:
|
5937 |
msgid "Show this option in an inline list"
|
5938 |
msgstr ""
|
5939 |
|
@@ -6029,7 +6083,7 @@ msgstr ""
|
|
6029 |
msgid "Numeric Field"
|
6030 |
msgstr ""
|
6031 |
|
6032 |
-
#: includes/fields/class-field-post-content.php:9
|
6033 |
msgid "Post Content"
|
6034 |
msgstr ""
|
6035 |
|
@@ -6174,7 +6228,7 @@ msgstr ""
|
|
6174 |
msgid "Select a form to insert"
|
6175 |
msgstr ""
|
6176 |
|
6177 |
-
#: includes/free/admin/shortcode-builder.php:9 includes/free/loader.php:
|
6178 |
msgid "Registration Form"
|
6179 |
msgstr ""
|
6180 |
|
@@ -6674,56 +6728,534 @@ msgstr ""
|
|
6674 |
msgid "Update Button text"
|
6675 |
msgstr ""
|
6676 |
|
6677 |
-
#: includes/free/loader.php:
|
6678 |
msgid "Coupons"
|
6679 |
msgstr ""
|
6680 |
|
6681 |
-
#: includes/free/loader.php:
|
6682 |
msgid "Use the shortcode %s for a simple and default WordPress registration form."
|
6683 |
msgstr ""
|
6684 |
|
6685 |
-
#: includes/free/loader.php:
|
6686 |
msgid "Learn How to Setup"
|
6687 |
msgstr ""
|
6688 |
|
6689 |
-
#: includes/free/loader.php:
|
6690 |
msgid ""
|
6691 |
"Registration form builder is a two way form which can be used both for "
|
6692 |
"<strong>user registration</strong> and <strong>profile editing</strong>."
|
6693 |
msgstr ""
|
6694 |
|
6695 |
-
#: includes/free/loader.php:
|
6696 |
msgid "Profile Form Builder"
|
6697 |
msgstr ""
|
6698 |
|
6699 |
-
#: includes/free/loader.php:
|
6700 |
msgid "Register by Subscription Package Purchase"
|
6701 |
msgstr ""
|
6702 |
|
6703 |
-
#: includes/free/loader.php:
|
6704 |
msgid "Upgrade to Pro Version"
|
6705 |
msgstr ""
|
6706 |
|
6707 |
-
#: includes/free/loader.php:
|
6708 |
msgid "Learn More"
|
6709 |
msgstr ""
|
6710 |
|
6711 |
-
#: includes/free/loader.php:
|
6712 |
msgid "Use Coupon codes for subscription for discounts."
|
6713 |
msgstr ""
|
6714 |
|
6715 |
-
#: includes/free/loader.php:
|
6716 |
msgid "This feature is only available in the Pro Version."
|
6717 |
msgstr ""
|
6718 |
|
6719 |
-
#: includes/free/loader.php:
|
6720 |
msgid "Learn more about Coupons"
|
6721 |
msgstr ""
|
6722 |
|
6723 |
-
#: includes/free/loader.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6724 |
msgid "Upgrade to Pro"
|
6725 |
msgstr ""
|
6726 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6727 |
#: includes/free/post-form-templates/the_events_calendar.php:13
|
6728 |
msgid "The Events Calendar"
|
6729 |
msgstr ""
|
@@ -6748,53 +7280,53 @@ msgstr ""
|
|
6748 |
msgid "Write the full description of your event"
|
6749 |
msgstr ""
|
6750 |
|
6751 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6752 |
msgid "Event Start"
|
6753 |
msgstr ""
|
6754 |
|
6755 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6756 |
msgid "Event End"
|
6757 |
msgstr ""
|
6758 |
|
6759 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6760 |
msgid "All Day Event"
|
6761 |
msgstr ""
|
6762 |
|
6763 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6764 |
msgid "Event Website"
|
6765 |
msgstr ""
|
6766 |
|
6767 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6768 |
msgid "Currency Symbol"
|
6769 |
msgstr ""
|
6770 |
|
6771 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6772 |
msgid "Upload the main image of your event"
|
6773 |
msgstr ""
|
6774 |
|
6775 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6776 |
msgid "Provide a short description of this event (optional)"
|
6777 |
msgstr ""
|
6778 |
|
6779 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6780 |
msgid "Event Tags"
|
6781 |
msgstr ""
|
6782 |
|
6783 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6784 |
msgid "This page is restricted. Please Log in / Register to view this page."
|
6785 |
msgstr ""
|
6786 |
|
6787 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6788 |
msgid "Create Event"
|
6789 |
msgstr ""
|
6790 |
|
6791 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6792 |
msgid ""
|
6793 |
"Event has been updated successfully. <a target=\"_blank\" "
|
6794 |
"href=\"%link%\">View event</a>"
|
6795 |
msgstr ""
|
6796 |
|
6797 |
-
#: includes/free/post-form-templates/the_events_calendar.php:
|
6798 |
msgid "Update Event"
|
6799 |
msgstr ""
|
6800 |
|
@@ -6806,7 +7338,11 @@ msgstr ""
|
|
6806 |
msgid "Create a simple product form for WooCommerce."
|
6807 |
msgstr ""
|
6808 |
|
6809 |
-
#: includes/free/subscription.php:
|
|
|
|
|
|
|
|
|
6810 |
msgid "Enable Recurring Payment"
|
6811 |
msgstr ""
|
6812 |
|
@@ -6918,7 +7454,7 @@ msgstr ""
|
|
6918 |
msgid "Submit & Deactivate"
|
6919 |
msgstr ""
|
6920 |
|
6921 |
-
#: lib/class.settings-api.php:
|
6922 |
msgid "Choose File"
|
6923 |
msgstr ""
|
6924 |
|
@@ -7229,235 +7765,231 @@ msgstr ""
|
|
7229 |
msgid "CSV"
|
7230 |
msgstr ""
|
7231 |
|
7232 |
-
#: wpuf-functions.php:
|
7233 |
msgid "Directions »"
|
7234 |
msgstr ""
|
7235 |
|
7236 |
-
#: wpuf-functions.php:
|
7237 |
-
msgid "Edit Profile"
|
7238 |
-
msgstr ""
|
7239 |
-
|
7240 |
-
#: wpuf-functions.php:2269
|
7241 |
msgid "United Arab Emirates Dirham"
|
7242 |
msgstr ""
|
7243 |
|
7244 |
-
#: wpuf-functions.php:
|
7245 |
msgid "Australian Dollars"
|
7246 |
msgstr ""
|
7247 |
|
7248 |
-
#: wpuf-functions.php:
|
7249 |
msgid "Argentine Peso"
|
7250 |
msgstr ""
|
7251 |
|
7252 |
-
#: wpuf-functions.php:
|
7253 |
msgid "Bangladeshi Taka"
|
7254 |
msgstr ""
|
7255 |
|
7256 |
-
#: wpuf-functions.php:
|
7257 |
msgid "Brazilian Real"
|
7258 |
msgstr ""
|
7259 |
|
7260 |
-
#: wpuf-functions.php:
|
7261 |
msgid "Bulgarian Lev"
|
7262 |
msgstr ""
|
7263 |
|
7264 |
-
#: wpuf-functions.php:
|
7265 |
msgid "Canadian Dollars"
|
7266 |
msgstr ""
|
7267 |
|
7268 |
-
#: wpuf-functions.php:
|
7269 |
msgid "Chilean Peso"
|
7270 |
msgstr ""
|
7271 |
|
7272 |
-
#: wpuf-functions.php:
|
7273 |
msgid "Chinese Yuan"
|
7274 |
msgstr ""
|
7275 |
|
7276 |
-
#: wpuf-functions.php:
|
7277 |
msgid "Colombian Peso"
|
7278 |
msgstr ""
|
7279 |
|
7280 |
-
#: wpuf-functions.php:
|
7281 |
msgid "Czech Koruna"
|
7282 |
msgstr ""
|
7283 |
|
7284 |
-
#: wpuf-functions.php:
|
7285 |
msgid "Danish Krone"
|
7286 |
msgstr ""
|
7287 |
|
7288 |
-
#: wpuf-functions.php:
|
7289 |
msgid "Dominican Peso"
|
7290 |
msgstr ""
|
7291 |
|
7292 |
-
#: wpuf-functions.php:
|
7293 |
msgid "Algerian Dinar"
|
7294 |
msgstr ""
|
7295 |
|
7296 |
-
#: wpuf-functions.php:
|
7297 |
msgid "Euros"
|
7298 |
msgstr ""
|
7299 |
|
7300 |
-
#: wpuf-functions.php:
|
7301 |
msgid "Hong Kong Dollar"
|
7302 |
msgstr ""
|
7303 |
|
7304 |
-
#: wpuf-functions.php:
|
7305 |
msgid "Croatia kuna"
|
7306 |
msgstr ""
|
7307 |
|
7308 |
-
#: wpuf-functions.php:
|
7309 |
msgid "Hungarian Forint"
|
7310 |
msgstr ""
|
7311 |
|
7312 |
-
#: wpuf-functions.php:
|
7313 |
msgid "Icelandic krona"
|
7314 |
msgstr ""
|
7315 |
|
7316 |
-
#: wpuf-functions.php:
|
7317 |
msgid "Indonesia Rupiah"
|
7318 |
msgstr ""
|
7319 |
|
7320 |
-
#: wpuf-functions.php:
|
7321 |
msgid "Indian Rupee"
|
7322 |
msgstr ""
|
7323 |
|
7324 |
-
#: wpuf-functions.php:
|
7325 |
msgid "Mauritian Rupee"
|
7326 |
msgstr ""
|
7327 |
|
7328 |
-
#: wpuf-functions.php:
|
7329 |
msgid "Nepali Rupee"
|
7330 |
msgstr ""
|
7331 |
|
7332 |
-
#: wpuf-functions.php:
|
7333 |
msgid "Israeli Shekel"
|
7334 |
msgstr ""
|
7335 |
|
7336 |
-
#: wpuf-functions.php:
|
7337 |
msgid "Japanese Yen"
|
7338 |
msgstr ""
|
7339 |
|
7340 |
-
#: wpuf-functions.php:
|
7341 |
msgid "Lao Kip"
|
7342 |
msgstr ""
|
7343 |
|
7344 |
-
#: wpuf-functions.php:
|
7345 |
msgid "South Korean Won"
|
7346 |
msgstr ""
|
7347 |
|
7348 |
-
#: wpuf-functions.php:
|
7349 |
msgid "Malaysian Ringgits"
|
7350 |
msgstr ""
|
7351 |
|
7352 |
-
#: wpuf-functions.php:
|
7353 |
msgid "Mexican Peso"
|
7354 |
msgstr ""
|
7355 |
|
7356 |
-
#: wpuf-functions.php:
|
7357 |
msgid "Nigerian Naira"
|
7358 |
msgstr ""
|
7359 |
|
7360 |
-
#: wpuf-functions.php:
|
7361 |
msgid "Norwegian Krone"
|
7362 |
msgstr ""
|
7363 |
|
7364 |
-
#: wpuf-functions.php:
|
7365 |
msgid "New Zealand Dollar"
|
7366 |
msgstr ""
|
7367 |
|
7368 |
-
#: wpuf-functions.php:
|
7369 |
msgid "Namibian dollar"
|
7370 |
msgstr ""
|
7371 |
|
7372 |
-
#: wpuf-functions.php:
|
7373 |
msgid "Omani Rial"
|
7374 |
msgstr ""
|
7375 |
|
7376 |
-
#: wpuf-functions.php:
|
7377 |
msgid "Iranian Rial"
|
7378 |
msgstr ""
|
7379 |
|
7380 |
-
#: wpuf-functions.php:
|
7381 |
msgid "Pakistani Rupee"
|
7382 |
msgstr ""
|
7383 |
|
7384 |
-
#: wpuf-functions.php:
|
7385 |
msgid "Paraguayan Guaraní"
|
7386 |
msgstr ""
|
7387 |
|
7388 |
-
#: wpuf-functions.php:
|
7389 |
msgid "Philippine Pesos"
|
7390 |
msgstr ""
|
7391 |
|
7392 |
-
#: wpuf-functions.php:
|
7393 |
msgid "Polish Zloty"
|
7394 |
msgstr ""
|
7395 |
|
7396 |
-
#: wpuf-functions.php:
|
7397 |
msgid "Pounds Sterling"
|
7398 |
msgstr ""
|
7399 |
|
7400 |
-
#: wpuf-functions.php:
|
7401 |
msgid "Romanian Leu"
|
7402 |
msgstr ""
|
7403 |
|
7404 |
-
#: wpuf-functions.php:
|
7405 |
msgid "Russian Ruble"
|
7406 |
msgstr ""
|
7407 |
|
7408 |
-
#: wpuf-functions.php:
|
7409 |
msgid "Saudi Riyal"
|
7410 |
msgstr ""
|
7411 |
|
7412 |
-
#: wpuf-functions.php:
|
7413 |
msgid "Singapore Dollar"
|
7414 |
msgstr ""
|
7415 |
|
7416 |
-
#: wpuf-functions.php:
|
7417 |
msgid "South African rand"
|
7418 |
msgstr ""
|
7419 |
|
7420 |
-
#: wpuf-functions.php:
|
7421 |
msgid "Swedish Krona"
|
7422 |
msgstr ""
|
7423 |
|
7424 |
-
#: wpuf-functions.php:
|
7425 |
msgid "Swiss Franc"
|
7426 |
msgstr ""
|
7427 |
|
7428 |
-
#: wpuf-functions.php:
|
7429 |
msgid "Taiwan New Dollars"
|
7430 |
msgstr ""
|
7431 |
|
7432 |
-
#: wpuf-functions.php:
|
7433 |
msgid "Thai Baht"
|
7434 |
msgstr ""
|
7435 |
|
7436 |
-
#: wpuf-functions.php:
|
7437 |
msgid "Turkish Lira"
|
7438 |
msgstr ""
|
7439 |
|
7440 |
-
#: wpuf-functions.php:
|
7441 |
msgid "Trinidad and Tobago Dollar"
|
7442 |
msgstr ""
|
7443 |
|
7444 |
-
#: wpuf-functions.php:
|
7445 |
msgid "US Dollar"
|
7446 |
msgstr ""
|
7447 |
|
7448 |
-
#: wpuf-functions.php:
|
7449 |
msgid "Vietnamese Dong"
|
7450 |
msgstr ""
|
7451 |
|
7452 |
-
#: wpuf-functions.php:
|
7453 |
msgid "Egyptian Pound"
|
7454 |
msgstr ""
|
7455 |
|
7456 |
-
#: wpuf-functions.php:
|
7457 |
msgid "Jordanian dinar"
|
7458 |
msgstr ""
|
7459 |
|
7460 |
-
#: wpuf-functions.php:
|
7461 |
msgid "None"
|
7462 |
msgstr ""
|
7463 |
|
@@ -7477,7 +8009,7 @@ msgstr ""
|
|
7477 |
msgid "Your Post Has Been Expired"
|
7478 |
msgstr ""
|
7479 |
|
7480 |
-
#: wpuf.php:
|
7481 |
msgid ""
|
7482 |
"<p style=\"font-size: 13px\">\n"
|
7483 |
" <strong class=\"highlight-text\" "
|
@@ -7490,31 +8022,31 @@ msgid ""
|
|
7490 |
" </p>"
|
7491 |
msgstr ""
|
7492 |
|
7493 |
-
#: wpuf.php:
|
7494 |
msgid "Update WP User Frontend Pro Now"
|
7495 |
msgstr ""
|
7496 |
|
7497 |
-
#: wpuf.php:
|
7498 |
msgid "Update WP User Frontend Pro NOW"
|
7499 |
msgstr ""
|
7500 |
|
7501 |
-
#: wpuf.php:
|
7502 |
msgid "Character limit reached"
|
7503 |
msgstr ""
|
7504 |
|
7505 |
-
#: wpuf.php:
|
7506 |
msgid "Minimum character required "
|
7507 |
msgstr ""
|
7508 |
|
7509 |
-
#: wpuf.php:
|
7510 |
msgid "Minimum word required "
|
7511 |
msgstr ""
|
7512 |
|
7513 |
-
#: wpuf.php:
|
7514 |
msgid "Please Cancel Your Currently Active Pack first!"
|
7515 |
msgstr ""
|
7516 |
|
7517 |
-
#: wpuf.php:
|
7518 |
msgid "Error: Nonce verification failed"
|
7519 |
msgstr ""
|
7520 |
|
@@ -7596,7 +8128,7 @@ msgctxt "enhanced select"
|
|
7596 |
msgid "Searching…"
|
7597 |
msgstr ""
|
7598 |
|
7599 |
-
#: wpuf-functions.php:
|
7600 |
msgctxt "tag delimiter"
|
7601 |
msgid ","
|
7602 |
msgstr ""
|
2 |
# This file is distributed under the GPL2 or later.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WP User Frontend 3.6.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
|
7 |
+
"POT-Creation-Date: 2022-11-23 12:11:01+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
152 |
msgstr ""
|
153 |
|
154 |
#: admin/class-admin-subscription.php:205 includes/class-privacy.php:478
|
|
|
155 |
msgid "Recurring"
|
156 |
msgstr ""
|
157 |
|
175 |
#: includes/fields/class-abstract-fields.php:390
|
176 |
#: includes/fields/class-abstract-fields.php:404
|
177 |
#: includes/fields/class-abstract-fields.php:468
|
178 |
+
#: includes/fields/class-field-checkbox.php:81
|
179 |
+
#: includes/fields/class-field-radio.php:85 includes/free/form-element.php:499
|
180 |
+
#: wpuf.php:715
|
181 |
msgid "Yes"
|
182 |
msgstr ""
|
183 |
|
190 |
#: includes/fields/class-abstract-fields.php:391
|
191 |
#: includes/fields/class-abstract-fields.php:405
|
192 |
#: includes/fields/class-abstract-fields.php:469
|
193 |
+
#: includes/fields/class-field-checkbox.php:82
|
194 |
+
#: includes/fields/class-field-radio.php:86 includes/free/form-element.php:500
|
195 |
+
#: wpuf.php:716
|
196 |
msgid "No"
|
197 |
msgstr ""
|
198 |
|
243 |
msgstr ""
|
244 |
|
245 |
#: admin/class-admin-subscription.php:452
|
246 |
+
#: admin/class-admin-subscription.php:726 includes/free/form-element.php:67
|
247 |
msgid "Post Expiration Time"
|
248 |
msgstr ""
|
249 |
|
321 |
msgid "Remaining Posting Count"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: admin/class-admin-subscription.php:693
|
325 |
msgid "Subscription Expiration Info"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: admin/class-admin-subscription.php:702
|
329 |
#: includes/class-user-subscription.php:364
|
330 |
#: templates/dashboard/subscription.php:50
|
331 |
msgid "Expire date:"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: admin/class-admin-subscription.php:715
|
335 |
msgid "Post Expiration Enabled"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: admin/class-admin-subscription.php:752
|
339 |
msgid "Allowed Taxonomy Terms"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: admin/class-admin-subscription.php:822
|
343 |
msgid "Assign Package"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: admin/class-admin-subscription.php:823
|
347 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:286
|
348 |
#: class/payment.php:225 class/subscription.php:836
|
349 |
#: includes/class-list-table-subscribers.php:138 lib/appsero/Insights.php:764
|
351 |
msgid "Cancel"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: admin/class-admin-subscription.php:829
|
355 |
msgid "Select Package:"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: admin/class-admin-subscription.php:832 admin/settings-options.php:594
|
359 |
+
#: wpuf-functions.php:210 wpuf-functions.php:1810 wpuf-functions.php:2078
|
360 |
msgid "— Select —"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: admin/class-admin-subscription.php:836
|
364 |
msgid "Only non-recurring pack can be assigned"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: admin/class-admin-subscription.php:847
|
368 |
msgid "Delete Package"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: admin/class-admin-subscription.php:901
|
372 |
msgid "Learn more about <a href=\"%s\" target=\"_blank\">Subscription</a>"
|
373 |
msgstr ""
|
374 |
|
382 |
|
383 |
#: admin/class-tools.php:43 admin/class-tools.php:106
|
384 |
#: admin/post-forms-list-table.php:43 class/transactions-list-table.php:95
|
385 |
+
#: includes/class-list-table-subscribers.php:136 wpuf-functions.php:3492
|
386 |
msgid "All"
|
387 |
msgstr ""
|
388 |
|
495 |
msgid "Delete Transactions"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: admin/dashboard-metabox.php:14
|
499 |
+
msgid "WP User Frontend News & Updates"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
#: admin/form-builder/assets/js/components/builder-stage/template.php:3
|
503 |
msgid "Add fields by dragging the fields from the right sidebar to this area."
|
504 |
msgstr ""
|
613 |
msgstr ""
|
614 |
|
615 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:283
|
616 |
+
#: admin/posting.php:73 class/asset-loader.php:56 wpuf.php:736
|
617 |
msgid "Yes, delete it"
|
618 |
msgstr ""
|
619 |
|
620 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:284
|
621 |
+
#: admin/posting.php:74 class/asset-loader.php:57 wpuf.php:737
|
622 |
msgid "No, cancel it"
|
623 |
msgstr ""
|
624 |
|
636 |
msgstr ""
|
637 |
|
638 |
#: admin/form-builder/class-wpuf-admin-form-builder.php:289
|
639 |
+
#: includes/fields/class-field-checkbox.php:108
|
640 |
#: includes/fields/class-field-dropdown.php:105
|
641 |
#: includes/fields/class-field-multidropdown.php:82
|
642 |
+
#: includes/fields/class-field-radio.php:111
|
643 |
msgid "Option"
|
644 |
msgstr ""
|
645 |
|
742 |
msgid "Form duplicated successfully. <a href=\"%s\">View form.</a>"
|
743 |
msgstr ""
|
744 |
|
745 |
+
#: admin/form-template.php:64
|
746 |
msgid "Want a new integration? <a href=\"%s\" target=\"_blank\">Let us know</a>."
|
747 |
msgstr ""
|
748 |
|
749 |
+
#: admin/form-template.php:169
|
750 |
msgid "Form Template"
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: admin/form-template.php:172
|
754 |
msgid "— No Template —"
|
755 |
msgstr ""
|
756 |
|
757 |
+
#: admin/form-template.php:180
|
758 |
msgid ""
|
759 |
"If selected a form template, it will try to execute that integration "
|
760 |
"options when new post created and updated."
|
814 |
msgid "Registraton Forms"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: admin/form.php:111 includes/free/loader.php:87
|
818 |
msgid "Registration Forms"
|
819 |
msgstr ""
|
820 |
|
1055 |
msgid "After how many hours user will be locked from editing the submitted post."
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: admin/html/form-settings-post.php:7 class/post-form-templates/post.php:130
|
1059 |
msgid "This page is restricted. Please %login% / %register% to view this page."
|
1060 |
msgstr ""
|
1061 |
|
1308 |
msgid "This integration is not installed."
|
1309 |
msgstr ""
|
1310 |
|
1311 |
+
#: admin/html/modal.php:104 includes/free/loader.php:1200
|
1312 |
+
#: includes/free/loader.php:1282
|
1313 |
+
msgid "Upgrade to PRO"
|
1314 |
+
msgstr ""
|
1315 |
+
|
1316 |
#: admin/html/support.php:187
|
1317 |
msgid "Related Articles:"
|
1318 |
msgstr ""
|
1445 |
msgstr ""
|
1446 |
|
1447 |
#: admin/html/whats-new.php:8
|
1448 |
+
msgid "Admin dashboard news and update meta-box added"
|
1449 |
+
msgstr ""
|
1450 |
+
|
1451 |
+
#: admin/html/whats-new.php:12
|
1452 |
+
msgid "Upgrade prompts design"
|
1453 |
+
msgstr ""
|
1454 |
+
|
1455 |
+
#: admin/html/whats-new.php:16
|
1456 |
+
msgid "Email style handled"
|
1457 |
+
msgstr ""
|
1458 |
+
|
1459 |
+
#: admin/html/whats-new.php:20
|
1460 |
+
msgid ""
|
1461 |
+
"text-area type selection(Normal, Rich text-area, Teeny Rich text-area) bug "
|
1462 |
+
"in field options"
|
1463 |
+
msgstr ""
|
1464 |
+
|
1465 |
+
#: admin/html/whats-new.php:24
|
1466 |
+
msgid "Frontend form validation"
|
1467 |
+
msgstr ""
|
1468 |
+
|
1469 |
+
#: admin/html/whats-new.php:28
|
1470 |
+
msgid "Default value not saving for radio, dropdown, checkbox"
|
1471 |
+
msgstr ""
|
1472 |
+
|
1473 |
+
#: admin/html/whats-new.php:32
|
1474 |
+
msgid "sweetalert2 version"
|
1475 |
+
msgstr ""
|
1476 |
+
|
1477 |
+
#: admin/html/whats-new.php:42
|
1478 |
msgid "Short-code encryption updated for registration page"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: admin/html/whats-new.php:52
|
1482 |
msgid "Updated compatibility with the latest version of WordPress 6.0"
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: admin/html/whats-new.php:56
|
1486 |
msgid "Improved some backend implementations"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: admin/html/whats-new.php:66
|
1490 |
msgid "Email template enhanced for after activation"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: admin/html/whats-new.php:70
|
1494 |
msgid "Read only option for custom field"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: admin/html/whats-new.php:74
|
1498 |
msgid "Editor toolbar exclude option enhanced"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: admin/html/whats-new.php:78
|
1502 |
msgid "Preview option enhanced for user profile"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: admin/html/whats-new.php:82
|
1506 |
msgid "Meta key enhanced for user email notification"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: admin/html/whats-new.php:86
|
1510 |
msgid "Global option for disable post edit on account"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: admin/html/whats-new.php:90
|
1514 |
msgid "Filter for conditional logic for fields added"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
+
#: admin/html/whats-new.php:94
|
1518 |
msgid "PHP 8 compatibility handled"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: admin/html/whats-new.php:98
|
1522 |
msgid "Address / Billing address inconsistency handled"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: admin/html/whats-new.php:102
|
1526 |
msgid "Content restriction several issue fixed"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: admin/html/whats-new.php:106
|
1530 |
msgid "Tax calculation properly handled for all areas"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: admin/html/whats-new.php:110
|
1534 |
msgid "Validation added for invalid email and URL formats"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: admin/html/whats-new.php:114
|
1538 |
msgid "Special character password handled for login"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: admin/html/whats-new.php:118
|
1542 |
msgid "Reset password handled for sidebar widget"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: admin/html/whats-new.php:122
|
1546 |
msgid "Required google map issues handled"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: admin/html/whats-new.php:126
|
1550 |
msgid "Translation related issue handled for admin menu"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: admin/html/whats-new.php:130
|
1554 |
msgid "Label & query enhanced for transaction table"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: admin/html/whats-new.php:134
|
1558 |
msgid "Template override for child theme fixed"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: admin/html/whats-new.php:138
|
1562 |
msgid "Custom field modal handled for registration form"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: admin/html/whats-new.php:142
|
1566 |
msgid "Redundant CSS issues handled"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: admin/html/whats-new.php:146
|
1570 |
msgid "Address field inconsistency fixed"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: admin/html/whats-new.php:150
|
1574 |
msgid "Plugin page spin loading issue handled"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: admin/html/whats-new.php:154
|
1578 |
msgid "Warning on exit for draft post fixed"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
+
#: admin/html/whats-new.php:158
|
1582 |
msgid "Unlimited expire on admin user profile handled"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: admin/html/whats-new.php:162
|
1586 |
msgid "No value checkbox issue handled"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
+
#: admin/html/whats-new.php:166
|
1590 |
msgid "Tag search security Vulnerability handled"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
+
#: admin/html/whats-new.php:170
|
1594 |
msgid "Multi dropdown field error handled"
|
1595 |
msgstr ""
|
1596 |
|
1597 |
+
#: admin/html/whats-new.php:181
|
1598 |
msgid "Promotion notice enhanced through api"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
+
#: admin/html/whats-new.php:192
|
1602 |
msgid "Security Vulnerability fixed"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
+
#: admin/html/whats-new.php:203
|
1606 |
msgid "Featured item for subscriber"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
+
#: admin/html/whats-new.php:207
|
1610 |
msgid "Warning added for unsaved form data on frontend"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
+
#: admin/html/whats-new.php:211
|
1614 |
msgid "Settings page search implemented"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
+
#: admin/html/whats-new.php:215
|
1618 |
msgid "Editor added for registration form email template"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
+
#: admin/html/whats-new.php:219
|
1622 |
msgid "Fallback pay per post not working with when draft enabled"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
+
#: admin/html/whats-new.php:223
|
1626 |
msgid "User Dashboard responsive issues fixed"
|
1627 |
msgstr ""
|
1628 |
|
1629 |
+
#: admin/html/whats-new.php:227
|
1630 |
msgid "Showing wrong license expire message handled"
|
1631 |
msgstr ""
|
1632 |
|
1633 |
+
#: admin/html/whats-new.php:231
|
1634 |
msgid "Remove expire cron handled for once daily"
|
1635 |
msgstr ""
|
1636 |
|
1637 |
+
#: admin/html/whats-new.php:235
|
1638 |
msgid "Billing address validation handled"
|
1639 |
msgstr ""
|
1640 |
|
1641 |
+
#: admin/html/whats-new.php:239
|
1642 |
msgid "Promotion notice restricted for WPUF menu"
|
1643 |
msgstr ""
|
1644 |
|
1645 |
+
#: admin/html/whats-new.php:250
|
1646 |
msgid "reCaptcha issue with other plugin handled"
|
1647 |
msgstr ""
|
1648 |
|
1649 |
+
#: admin/html/whats-new.php:254
|
1650 |
msgid "Multiple post type for wpuf dashboard not working fixed"
|
1651 |
msgstr ""
|
1652 |
|
1653 |
+
#: admin/html/whats-new.php:258
|
1654 |
msgid "Billing address ajax request issue handled"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
+
#: admin/html/whats-new.php:262
|
1658 |
msgid "Halloween promotion notice added"
|
1659 |
msgstr ""
|
1660 |
|
1661 |
+
#: admin/html/whats-new.php:273
|
1662 |
msgid "Content restriction for minimum, maximum value enhanced"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
+
#: admin/html/whats-new.php:277
|
1666 |
msgid "New option for redirection after pay per post payment in form setting"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
+
#: admin/html/whats-new.php:281
|
1670 |
msgid "Controller added for various email notification"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
+
#: admin/html/whats-new.php:285
|
1674 |
msgid "Placeholder added for unauth message option"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
+
#: admin/html/whats-new.php:289
|
1678 |
msgid "Subscription Post expiration option change to input field"
|
1679 |
msgstr ""
|
1680 |
|
1681 |
+
#: admin/html/whats-new.php:293
|
1682 |
msgid "Content restriction message translatable"
|
1683 |
msgstr ""
|
1684 |
|
1685 |
+
#: admin/html/whats-new.php:297
|
1686 |
msgid "ACF integration inconsistency handled"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
+
#: admin/html/whats-new.php:301
|
1690 |
msgid "Enable payment checkbox handled for child option"
|
1691 |
msgstr ""
|
1692 |
|
1693 |
+
#: admin/html/whats-new.php:305
|
1694 |
msgid "Broken asset link handled for custom field popup"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
+
#: admin/html/whats-new.php:309
|
1698 |
msgid "Rollback inconsistency for CPT handled"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
+
#: admin/html/whats-new.php:313
|
1702 |
msgid "Login form loaded after resetting password"
|
1703 |
msgstr ""
|
1704 |
|
1705 |
+
#: admin/html/whats-new.php:317
|
1706 |
msgid "Billing address inconsistency handled"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
+
#: admin/html/whats-new.php:321
|
1710 |
msgid "Form duplication on creation handled"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
+
#: admin/html/whats-new.php:325
|
1714 |
msgid "Field Dragging inconsistency fixed"
|
1715 |
msgstr ""
|
1716 |
|
1717 |
+
#: admin/html/whats-new.php:336
|
1718 |
msgid "Google Map field enhanced along with acf google map"
|
1719 |
msgstr ""
|
1720 |
|
1721 |
+
#: admin/html/whats-new.php:340
|
1722 |
msgid "Filter added for dashboard account menu"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
+
#: admin/html/whats-new.php:344
|
1726 |
msgid "Fallback Pay Per Post inconsistency handled"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
+
#: admin/html/whats-new.php:348
|
1730 |
msgid "Google map search field not showing"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
+
#: admin/html/whats-new.php:352
|
1734 |
msgid "Form preview page inconsistency with builder"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
+
#: admin/html/whats-new.php:356
|
1738 |
msgid "Category not showing as hierarchy"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
+
#: admin/html/whats-new.php:360
|
1742 |
msgid "TOC field randering issue with registration form"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
+
#: admin/html/whats-new.php:364
|
1746 |
msgid "Custom plupload filter inconsistency with file upload handled"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: admin/html/whats-new.php:368
|
1750 |
msgid "Guest Pay Per Post inconsistency handled"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: admin/html/whats-new.php:372
|
1754 |
msgid "Responsive and font issue handled"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: admin/html/whats-new.php:383
|
1758 |
msgid "Preview page added for post form and registration form"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
+
#: admin/html/whats-new.php:387
|
1762 |
msgid "Post types menu on account page added"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
+
#: admin/html/whats-new.php:391
|
1766 |
msgid "Dashboard shortcode attributes enhanced"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
+
#: admin/html/whats-new.php:395
|
1770 |
msgid "Account page post type list new design"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
+
#: admin/html/whats-new.php:399
|
1774 |
msgid "Payment page restricted from direct unauthenticated access"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
+
#: admin/html/whats-new.php:403
|
1778 |
msgid "Timepicker conflict with dokan handled"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
+
#: admin/html/whats-new.php:407
|
1782 |
msgid "Trial inconsistency with paypal fixed"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: admin/html/whats-new.php:411
|
1786 |
msgid "Subscription does not cancel with paypal due to profile missing id"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: admin/html/whats-new.php:415
|
1790 |
msgid "Subscription email notification inconsistency fixed"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: admin/html/whats-new.php:419
|
1794 |
msgid "Various issues on payment page for non-logged in user handled"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
+
#: admin/html/whats-new.php:423
|
1798 |
msgid "Column inner field cloning inconsistency fixed"
|
1799 |
msgstr ""
|
1800 |
|
1801 |
+
#: admin/html/whats-new.php:427
|
1802 |
msgid "Popup z-index changed due to other plugin z-index"
|
1803 |
msgstr ""
|
1804 |
|
1805 |
+
#: admin/html/whats-new.php:439
|
1806 |
msgid "Added Mauritian Rupee for currency"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
+
#: admin/html/whats-new.php:443
|
1810 |
msgid "Added eid promotional offer notice"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
+
#: admin/html/whats-new.php:447
|
1814 |
msgid "Multiple google map validation for same form"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
+
#: admin/html/whats-new.php:451
|
1818 |
msgid "Various issues on verification, autologin payments & address field"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
+
#: admin/html/whats-new.php:455
|
1822 |
msgid "Docs update for file & attachments feature which is pro only"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
+
#: admin/html/whats-new.php:466
|
1826 |
msgid "Overflow footer on form builder page"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
+
#: admin/html/whats-new.php:470
|
1830 |
msgid "WordPress 5.7 compatibility"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
+
#: admin/html/whats-new.php:474
|
1834 |
msgid "Limited time promotion for weDevs birthday"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
+
#: admin/html/whats-new.php:485
|
1838 |
msgid "Meta key will not change if label update"
|
1839 |
msgstr ""
|
1840 |
|
1841 |
+
#: admin/html/whats-new.php:489
|
1842 |
msgid "Login redirect empty previous url"
|
1843 |
msgstr ""
|
1844 |
|
1845 |
+
#: admin/html/whats-new.php:493
|
1846 |
msgid "Email doesnt set as username"
|
1847 |
msgstr ""
|
1848 |
|
1849 |
+
#: admin/html/whats-new.php:497
|
1850 |
msgid "Post redirection to payment doesn't work"
|
1851 |
msgstr ""
|
1852 |
|
1853 |
+
#: admin/html/whats-new.php:501
|
1854 |
msgid "Address field not working when used with conditional logic"
|
1855 |
msgstr ""
|
1856 |
|
1857 |
+
#: admin/html/whats-new.php:505
|
1858 |
msgid "Ajax type category child of not working"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
+
#: admin/html/whats-new.php:509
|
1862 |
msgid "Non recurring subscription did not work"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
+
#: admin/html/whats-new.php:520
|
1866 |
msgid "Menu position has chenged due to dokan has same menu position"
|
1867 |
msgstr ""
|
1868 |
|
1869 |
+
#: admin/html/whats-new.php:524
|
1870 |
msgid "Drag and drop not working properly for new field"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: admin/html/whats-new.php:535
|
1874 |
msgid "QR and math captcha added to pro feature list"
|
1875 |
msgstr ""
|
1876 |
|
1877 |
+
#: admin/html/whats-new.php:539
|
1878 |
msgid "Tooltip for category navigate"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
+
#: admin/html/whats-new.php:543
|
1882 |
msgid "Understandable guest payment notice"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
+
#: admin/html/whats-new.php:547
|
1886 |
msgid "Paypal non recurring pack id does not set"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: admin/html/whats-new.php:558
|
1890 |
msgid "Once trial subscription is used, it couldn't reset"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
+
#: admin/html/whats-new.php:562
|
1894 |
msgid "Subscription cancel doesn't work"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
+
#: admin/html/whats-new.php:566
|
1898 |
msgid "The tax rate was not calculated with the total amount"
|
1899 |
msgstr ""
|
1900 |
|
1901 |
+
#: admin/html/whats-new.php:570
|
1902 |
msgid "The width of the column field was breaking"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
+
#: admin/html/whats-new.php:574
|
1906 |
msgid "Paypal recurring payment"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: admin/html/whats-new.php:585
|
1910 |
msgid "Updated codebase to fix timezone mismatch"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
+
#: admin/html/whats-new.php:596
|
1914 |
msgid "Custom html content field's width"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: admin/html/whats-new.php:600
|
1918 |
msgid "All states of New Zealand are added"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
+
#: admin/html/whats-new.php:611
|
1922 |
msgid "Get appropriate user id when role based conditions are present"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: admin/html/whats-new.php:615
|
1926 |
msgid "Show Invalid subscription message if wrong pack id passed"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
+
#: admin/html/whats-new.php:619
|
1930 |
msgid "URL field new window not working"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: admin/html/whats-new.php:623
|
1934 |
msgid "Option label not working when & use"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: admin/html/whats-new.php:627
|
1938 |
msgid "Ajax type category not showing on edit"
|
1939 |
msgstr ""
|
1940 |
|
1941 |
+
#: admin/html/whats-new.php:631
|
1942 |
msgid "Multiple file image can't select"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
+
#: admin/html/whats-new.php:635
|
1946 |
msgid "Subscription pack PayPal Checkout gets \"Error: Access Denied\""
|
1947 |
msgstr ""
|
1948 |
|
1949 |
+
#: admin/html/whats-new.php:639
|
1950 |
msgid "Conflict image field with acf image field"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: admin/html/whats-new.php:643
|
1954 |
msgid "Missing Auckland State for New Zealand country"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: admin/html/whats-new.php:647
|
1958 |
msgid "Added support for WooCommerce product category value replacemen"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: admin/html/whats-new.php:657
|
1962 |
msgid "Add character restriction feature"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
+
#: admin/html/whats-new.php:661
|
1966 |
msgid "Make sure post author edit link works only in frontend"
|
1967 |
msgstr ""
|
1968 |
|
1969 |
+
#: admin/html/whats-new.php:665
|
1970 |
msgid "Inconsistency in lost password reset email message"
|
1971 |
msgstr ""
|
1972 |
|
1973 |
+
#: admin/html/whats-new.php:669
|
1974 |
msgid "Saving custom taxonomy terms when input type is text"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
+
#: admin/html/whats-new.php:673
|
1978 |
msgid "Taxonomy field JS error in builder"
|
1979 |
msgstr ""
|
1980 |
|
1981 |
+
#: admin/html/whats-new.php:677
|
1982 |
msgid "Showing WPUF edit link for WP default roles"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
+
#: admin/html/whats-new.php:681
|
1986 |
msgid "Upload button unresponsive issue in iOS"
|
1987 |
msgstr ""
|
1988 |
|
1989 |
+
#: admin/html/whats-new.php:691
|
1990 |
msgid "Add post edit link for post authors in single or archive pages"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
+
#: admin/html/whats-new.php:695
|
1994 |
msgid "Enhance post delete message"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
+
#: admin/html/whats-new.php:699
|
1998 |
msgid "Refactor control buttons visibility in form builder"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
+
#: admin/html/whats-new.php:703
|
2002 |
msgid "Add missing colons after field label"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: admin/html/whats-new.php:707
|
2006 |
msgid "Post edit map capability condition"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: admin/html/whats-new.php:711
|
2010 |
msgid "Role based permission for accessing a post form"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: admin/html/whats-new.php:715
|
2014 |
msgid "Section-break field alignment"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
+
#: admin/html/whats-new.php:719
|
2018 |
msgid "Pay per post doesn't work if subscription pack is activated"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: admin/html/whats-new.php:723
|
2022 |
msgid "Mime type for uploading JSON files"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: admin/html/whats-new.php:727
|
2026 |
msgid "File upload with same file name"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: admin/html/whats-new.php:731
|
2030 |
msgid "Post preview missing fields"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
+
#: admin/html/whats-new.php:735
|
2034 |
msgid "Illigal variable declartion"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
+
#: admin/html/whats-new.php:739
|
2038 |
msgid "Featured image updating issue"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
+
#: admin/html/whats-new.php:743
|
2042 |
msgid "Conflict with Phlox theme"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: admin/html/whats-new.php:747
|
2046 |
msgid "Textarea custom field data sanitization"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: admin/html/whats-new.php:751
|
2050 |
msgid "exclude_type warning in wpuf_category_checklist"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: admin/html/whats-new.php:755
|
2054 |
msgid "Category field not showing all child categories for selection type child of"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: admin/html/whats-new.php:759
|
2058 |
msgid "Conflict between image and file upload custom fields"
|
2059 |
msgstr ""
|
2060 |
|
2061 |
+
#: admin/html/whats-new.php:763
|
2062 |
msgid "Login url when login page is not set"
|
2063 |
msgstr ""
|
2064 |
|
2065 |
+
#: admin/html/whats-new.php:773
|
2066 |
msgid ""
|
2067 |
"Use common names for Ivory Coast, North Korea and Sourth Korea instead of "
|
2068 |
"their official names"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: admin/html/whats-new.php:777
|
2072 |
msgid "Fix condition to use default avatar"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: admin/html/whats-new.php:781
|
2076 |
msgid "Make Email and URL fields clickable"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: admin/html/whats-new.php:785
|
2080 |
msgid "Fix redirect after user login"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: admin/html/whats-new.php:789
|
2084 |
msgid "Sanitize textarea field data"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: admin/html/whats-new.php:793
|
2088 |
msgid ""
|
2089 |
"Fix missing colon to email, URL, text and textarea labels when renders "
|
2090 |
"their data"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
+
#: admin/html/whats-new.php:797
|
2094 |
msgid "Prevent showing empty labels for fields that have render_field_data method"
|
2095 |
msgstr ""
|
2096 |
|
2097 |
+
#: admin/html/whats-new.php:807
|
2098 |
msgid "Add Namibian Dollar in currency list"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: admin/html/whats-new.php:811
|
2102 |
msgid "Add sync values option for option data fields"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: admin/html/whats-new.php:815
|
2106 |
msgid "Allow uploading image that having filesize meets php ini settings"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: admin/html/whats-new.php:819
|
2110 |
msgid "Limit the selection of one image at a time"
|
2111 |
msgstr ""
|
2112 |
|
2113 |
+
#: admin/html/whats-new.php:823
|
2114 |
msgid "Use file name and size to generate hash to prevent duplicant image upload"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
+
#: admin/html/whats-new.php:827
|
2118 |
msgid "Sanitize text and textarea field data"
|
2119 |
msgstr ""
|
2120 |
|
2121 |
+
#: admin/html/whats-new.php:831
|
2122 |
msgid ""
|
2123 |
"Show label instead of values for radio, checkbox, dropdown and multiselect "
|
2124 |
"data"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: admin/html/whats-new.php:835
|
2128 |
msgid "Saving custom taxonomies for type text input"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: admin/html/whats-new.php:839
|
2132 |
msgid "Admin settings link for recaptcha helper text"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: admin/html/whats-new.php:843
|
2136 |
msgid "Undefined name property for Custom HTML fields"
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: admin/html/whats-new.php:847
|
2140 |
msgid "Delete attachment process"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
+
#: admin/html/whats-new.php:851
|
2144 |
msgid "Missing billing address in invoice PDF"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: admin/html/whats-new.php:855
|
2148 |
msgid "Showing country field value in frontend post content"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: admin/html/whats-new.php:859
|
2152 |
msgid "Avatar size display not complying with admin settings size"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: admin/html/whats-new.php:863
|
2156 |
msgid "Display default avatars on admin settings discussion page"
|
2157 |
msgstr ""
|
2158 |
|
2159 |
+
#: admin/html/whats-new.php:867
|
2160 |
msgid "Redirect to subscription page at registration"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: admin/html/whats-new.php:871
|
2164 |
msgid "Error notice regarding registration page redirect"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: admin/html/whats-new.php:875
|
2168 |
msgid "Escaping html in registration errors"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: admin/html/whats-new.php:879
|
2172 |
msgid "Default login redirect link"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
+
#: admin/html/whats-new.php:883
|
2176 |
msgid "Implementing default WP login page override option"
|
2177 |
msgstr ""
|
2178 |
|
2179 |
+
#: admin/html/whats-new.php:887
|
2180 |
msgid "Transparent background of autosuggestion dropdown"
|
2181 |
msgstr ""
|
2182 |
|
2183 |
+
#: admin/html/whats-new.php:897
|
2184 |
msgid "Import forms system"
|
2185 |
msgstr ""
|
2186 |
|
2187 |
+
#: admin/html/whats-new.php:901
|
2188 |
msgid "Password reset system"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
+
#: admin/html/whats-new.php:905
|
2192 |
msgid "Updated url validation regex to support modern tlds"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
+
#: admin/html/whats-new.php:909
|
2196 |
msgid "Export WPUF forms individually from admin tools page"
|
2197 |
msgstr ""
|
2198 |
|
2199 |
+
#: admin/html/whats-new.php:913
|
2200 |
msgid "Subscription cycle label translation issue"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: admin/html/whats-new.php:917
|
2204 |
msgid "ACF integration for checkbox fields"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
+
#: admin/html/whats-new.php:921
|
2208 |
msgid "Illegal string offset warning while updating settings"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
+
#: admin/html/whats-new.php:925
|
2212 |
msgid "Conditional logic for Section Break field"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
+
#: admin/html/whats-new.php:929
|
2216 |
msgid "Subscriptions cannot be deleted from backend"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: admin/html/whats-new.php:933
|
2220 |
msgid "A regression regarding saving checkbox data"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: admin/html/whats-new.php:937
|
2224 |
msgid "Default value of multi-select fields is not showing"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: admin/html/whats-new.php:947
|
2228 |
msgid "Hide post edit option when subscription is expired"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
#: admin/html/whats-new.php:949
|
2232 |
msgid "Hide post edit option from users whose subscription pack is expired."
|
2233 |
msgstr ""
|
2234 |
|
2235 |
+
#: admin/html/whats-new.php:952
|
2236 |
msgid "Check files to prevent duplicity in media upload"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
+
#: admin/html/whats-new.php:954
|
2240 |
msgid ""
|
2241 |
"A simple measure has been taken to prevent maliciously flooding the site by "
|
2242 |
"uploading same file multiple times. Though this won't work with already "
|
2243 |
"uploaded medias."
|
2244 |
msgstr ""
|
2245 |
|
2246 |
+
#: admin/html/whats-new.php:957
|
2247 |
msgid "Refactor address fields in Account section"
|
2248 |
msgstr ""
|
2249 |
|
2250 |
+
#: admin/html/whats-new.php:959
|
2251 |
msgid "Address edit section from Account section has been rewritten to improve UX."
|
2252 |
msgstr ""
|
2253 |
|
2254 |
+
#: admin/html/whats-new.php:962
|
2255 |
msgid "Update Paypal payment gateway"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
+
#: admin/html/whats-new.php:964
|
2259 |
msgid "Paypal payment gateway has seen some improvements."
|
2260 |
msgstr ""
|
2261 |
|
2262 |
+
#: admin/html/whats-new.php:967
|
2263 |
msgid "Default Category selection improvements"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: admin/html/whats-new.php:969
|
2267 |
msgid ""
|
2268 |
"An intuitive way of selecting default category of a selected post type has "
|
2269 |
"been introduced."
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: admin/html/whats-new.php:972
|
2273 |
msgid "Compatibility issue with ACF date time field"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: admin/html/whats-new.php:974
|
2277 |
msgid "A Compatibility issue with ACF date time field has been addressed."
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: admin/html/whats-new.php:977
|
2281 |
msgid "Media title, caption & description not saving"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: admin/html/whats-new.php:979
|
2285 |
msgid ""
|
2286 |
"Media title, caption & description were not saving from frontend. They will "
|
2287 |
"now."
|
2288 |
msgstr ""
|
2289 |
|
2290 |
+
#: admin/html/whats-new.php:982
|
2291 |
msgid ""
|
2292 |
"The Events Calendar venue and organizer fields issue in WPUF Custom Fields "
|
2293 |
"metabox"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
+
#: admin/html/whats-new.php:984
|
2297 |
msgid ""
|
2298 |
"A workaround has been introduced to save The Events Calendar Venue and "
|
2299 |
"Organizer fields properly from WPUF Custom Fields metabox."
|
2300 |
msgstr ""
|
2301 |
|
2302 |
+
#: admin/html/whats-new.php:987
|
2303 |
msgid "Checkbox data not saving from WPUF Custom Fields metabox"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
+
#: admin/html/whats-new.php:989
|
2307 |
msgid ""
|
2308 |
"Checkboxe data from WPUF Custom Fields metabox were not saving. It has been "
|
2309 |
"fixed."
|
2310 |
msgstr ""
|
2311 |
|
2312 |
+
#: admin/html/whats-new.php:992
|
2313 |
msgid "Multi-column Repeater field data saving issue"
|
2314 |
msgstr ""
|
2315 |
|
2316 |
+
#: admin/html/whats-new.php:994
|
2317 |
msgid ""
|
2318 |
"Multi-column Repeater field data from a form was not saving. It has been "
|
2319 |
"fixed."
|
2320 |
msgstr ""
|
2321 |
|
2322 |
+
#: admin/html/whats-new.php:997
|
2323 |
msgid "Multistep form conflict with Elementor"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
+
#: admin/html/whats-new.php:999
|
2327 |
msgid "Multistep form had a conflict with Elementor. It has been fixed."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: admin/html/whats-new.php:1002
|
2331 |
msgid "Multiple images showing issue in frontend"
|
2332 |
msgstr ""
|
2333 |
|
2334 |
+
#: admin/html/whats-new.php:1004
|
2335 |
msgid "Multiple images in a post were not showing in frontend. Now they will."
|
2336 |
msgstr ""
|
2337 |
|
2338 |
+
#: admin/html/whats-new.php:1013
|
2339 |
msgid "Nonce not verify on login"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
+
#: admin/html/whats-new.php:1015
|
2343 |
msgid "Return of function wp_verify_nonce() was ignored."
|
2344 |
msgstr ""
|
2345 |
|
2346 |
+
#: admin/html/whats-new.php:1024
|
2347 |
msgid "Option to set which tab shows as active on the account page"
|
2348 |
msgstr ""
|
2349 |
|
2350 |
+
#: admin/html/whats-new.php:1026
|
2351 |
msgid ""
|
2352 |
"Option to set which tab shows as active on the account page. To configure "
|
2353 |
"this setting navigate to wp-admin->User Frontend->Settings->My "
|
2354 |
"Account->Active Tab "
|
2355 |
msgstr ""
|
2356 |
|
2357 |
+
#: admin/html/whats-new.php:1029
|
2358 |
msgid "Unlock option was unavailable after the post being locked"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
+
#: admin/html/whats-new.php:1031
|
2362 |
msgid "Unlock option was unavailable after the post being locked."
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: admin/html/whats-new.php:1034
|
2366 |
msgid "Gutenberg block of WPUF didn't work on bedrock installation"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: admin/html/whats-new.php:1036
|
2370 |
msgid "Gutenberg block of WPUF didn't work on bedrock installation."
|
2371 |
msgstr ""
|
2372 |
|
2373 |
+
#: admin/html/whats-new.php:1039
|
2374 |
msgid "Sending admin payment received email twice"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
+
#: admin/html/whats-new.php:1041
|
2378 |
msgid ""
|
2379 |
"After processing payment admin & user was receiving payment received email "
|
2380 |
"twice."
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: admin/html/whats-new.php:1044
|
2384 |
msgid ""
|
2385 |
"Add shortcode support to display post information in the Post Expiration "
|
2386 |
"Message"
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: admin/html/whats-new.php:1046
|
2390 |
msgid ""
|
2391 |
"Add shortcode support to display post information in the Post Expiration "
|
2392 |
"Message. You can use: <strong>{post_author} {post_url} {blogname} "
|
2393 |
"{post_title} {post_status}</strong>"
|
2394 |
msgstr ""
|
2395 |
|
2396 |
+
#: admin/html/whats-new.php:1049
|
2397 |
msgid "Add optin on the setup wizard"
|
2398 |
msgstr ""
|
2399 |
|
2400 |
+
#: admin/html/whats-new.php:1051
|
2401 |
msgid ""
|
2402 |
"Added optin on the setup wizard, admin can choose whether he/she wants to "
|
2403 |
"share server environment details (php, mysql, server, WordPress versions), "
|
2405 |
"name and url, admin name and email address. No sensitive data is tracked"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
+
#: admin/html/whats-new.php:1060
|
2409 |
msgid "Post Owner problem"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
+
#: admin/html/whats-new.php:1062
|
2413 |
msgid ""
|
2414 |
"Posts were not assigned to the selected default post owner, this issue has "
|
2415 |
"been fixed."
|
2416 |
msgstr ""
|
2417 |
|
2418 |
+
#: admin/html/whats-new.php:1065
|
2419 |
msgid "Google reCaptcha was not working"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
+
#: admin/html/whats-new.php:1067
|
2423 |
msgid ""
|
2424 |
"Google reCaptcha was not working, users could submit the form without "
|
2425 |
"reCaptcha validation."
|
2426 |
msgstr ""
|
2427 |
|
2428 |
+
#: admin/html/whats-new.php:1076
|
2429 |
msgid "Added column field"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
+
#: admin/html/whats-new.php:1081
|
2433 |
msgid "Unable to render the events on the front-end dashboard"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
+
#: admin/html/whats-new.php:1083
|
2437 |
msgid ""
|
2438 |
"On the frontend dashboard, the submitted events were not showing, you will "
|
2439 |
"get it fixed in this version."
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: admin/html/whats-new.php:1086
|
2443 |
msgid "Page order getting 0(zero) after editing from the frontend"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: admin/html/whats-new.php:1088
|
2447 |
msgid ""
|
2448 |
"Page order was not saving while editing a post using WPUF form, it has been "
|
2449 |
"fixed."
|
2450 |
msgstr ""
|
2451 |
|
2452 |
+
#: admin/html/whats-new.php:1091
|
2453 |
msgid "Text input field for taxonomies not working"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: admin/html/whats-new.php:1093
|
2457 |
msgid ""
|
2458 |
"When taxonomy field type is set to `Text Input` then a fatal error was "
|
2459 |
"showing on the frontend, no error with taxonomy field in the latest version."
|
2460 |
msgstr ""
|
2461 |
|
2462 |
+
#: admin/html/whats-new.php:1096
|
2463 |
msgid ""
|
2464 |
"In radio and checkbox field use conditional logic that value does not save "
|
2465 |
"in database"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: admin/html/whats-new.php:1098
|
2469 |
msgid ""
|
2470 |
"The selected value of radio and checkbox field were not showing while "
|
2471 |
"editing posts from the backend or frontend, you can see the selected value "
|
2472 |
"in this version."
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: admin/html/whats-new.php:1101
|
2476 |
msgid "The args param not working with get_avatar filter"
|
2477 |
msgstr ""
|
2478 |
|
2479 |
+
#: admin/html/whats-new.php:1103
|
2480 |
msgid "The args parameter did not exist with get_avatar filter, which now exists."
|
2481 |
msgstr ""
|
2482 |
|
2483 |
+
#: admin/html/whats-new.php:1106
|
2484 |
msgid "The item in ajax taxonomy field was not selected"
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: admin/html/whats-new.php:1108
|
2488 |
msgid ""
|
2489 |
"When the taxonomy field type is set to Ajax, the submitted terms were not "
|
2490 |
"showing in the backend and frontend which have been fixed."
|
2491 |
msgstr ""
|
2492 |
|
2493 |
+
#: admin/html/whats-new.php:1117
|
2494 |
msgid "Unable to send new user registration email"
|
2495 |
msgstr ""
|
2496 |
|
2497 |
+
#: admin/html/whats-new.php:1119
|
2498 |
msgid ""
|
2499 |
"WP User Frontend default registration form `[wpuf-registration]` was unable "
|
2500 |
"to send the new user registration email."
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: admin/html/whats-new.php:1122
|
2504 |
msgid "WPUF forms block compatibility issue with the latest WP version"
|
2505 |
msgstr ""
|
2506 |
|
2507 |
+
#: admin/html/whats-new.php:1124
|
2508 |
msgid ""
|
2509 |
"With the latest version of WordPress the gutenberg block of WP User "
|
2510 |
"Frontend were not working. In this version, you will get it fixed."
|
2511 |
msgstr ""
|
2512 |
|
2513 |
+
#: admin/html/whats-new.php:1127
|
2514 |
msgid "Page not update where `[wpuf_dashboard]` shortcode exist"
|
2515 |
msgstr ""
|
2516 |
|
2517 |
+
#: admin/html/whats-new.php:1129
|
2518 |
msgid ""
|
2519 |
"While using Gutenberg, the page were not being updated with WPUF shortcode "
|
2520 |
"[wpuf dashboard]"
|
2521 |
msgstr ""
|
2522 |
|
2523 |
+
#: admin/html/whats-new.php:1132
|
2524 |
msgid "Retain default when determining whether to display the admin bar"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
+
#: admin/html/whats-new.php:1134
|
2528 |
msgid ""
|
2529 |
"From the User Frontend Settings, set that Administrator, Editor, Vendor can "
|
2530 |
"see the admin bar. Now, the super admin want, one specific user ( who has "
|
2534 |
"frontend."
|
2535 |
msgstr ""
|
2536 |
|
2537 |
+
#: admin/html/whats-new.php:1137
|
2538 |
msgid "Fatal error when use PHP lower version (5.4 or lower)"
|
2539 |
msgstr ""
|
2540 |
|
2541 |
+
#: admin/html/whats-new.php:1139
|
2542 |
msgid ""
|
2543 |
"It was unable to install WP User Frontend with PHP 5.4 or lower version. "
|
2544 |
"Here is the error details: <br><br><strong>Fatal error: Can't use method "
|
2546 |
"/wp-user-frontend/class/frontend-form-post.php on line 194</strong>"
|
2547 |
msgstr ""
|
2548 |
|
2549 |
+
#: admin/html/whats-new.php:1142
|
2550 |
msgid "Product form was unable to show the single gallery image"
|
2551 |
msgstr ""
|
2552 |
|
2553 |
+
#: admin/html/whats-new.php:1144
|
2554 |
msgid ""
|
2555 |
"When user upload single image for product gallery using WPUF WooCommerce "
|
2556 |
"product form, that image were not showing on the frontend."
|
2557 |
msgstr ""
|
2558 |
|
2559 |
+
#: admin/html/whats-new.php:1153
|
2560 |
msgid "WooCommerce gallery images not getting saved"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
+
#: admin/html/whats-new.php:1155
|
2564 |
msgid ""
|
2565 |
"After releasing version 2.9.3, WooCommerce gallery image field stopped "
|
2566 |
"working. You will get it fixed in this version."
|
2567 |
msgstr ""
|
2568 |
|
2569 |
+
#: admin/html/whats-new.php:1164
|
2570 |
msgid "The Events Calendar Integration Form"
|
2571 |
msgstr ""
|
2572 |
|
2573 |
+
#: admin/html/whats-new.php:1166
|
2574 |
msgid ""
|
2575 |
"Now admin can allow users to create event from the frontend. Currently WPUF "
|
2576 |
"has a one click pre-build event form that has been integrated with The "
|
2577 |
"Events Calendar plugin"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
+
#: admin/html/whats-new.php:1169
|
2581 |
msgid "Post Submission Facility From Account Page"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: admin/html/whats-new.php:1171
|
2585 |
msgid ""
|
2586 |
"On the frontend account page, added a new menu item named <b>Submit "
|
2587 |
"Post</b>. Now admin can allow users to submit post from their default "
|
2590 |
"you can assign any post form that will use to submit posts."
|
2591 |
msgstr ""
|
2592 |
|
2593 |
+
#: admin/html/whats-new.php:1174
|
2594 |
msgid "Login/Lost Password Link Under Registration Form"
|
2595 |
msgstr ""
|
2596 |
|
2597 |
+
#: admin/html/whats-new.php:1176
|
2598 |
msgid "Added Login/Lost Password link under registration form"
|
2599 |
msgstr ""
|
2600 |
|
2601 |
+
#: admin/html/whats-new.php:1185
|
2602 |
msgid "Added drag and drop image ordering on image upload"
|
2603 |
msgstr ""
|
2604 |
|
2605 |
+
#: admin/html/whats-new.php:1187
|
2606 |
msgid ""
|
2607 |
"Now frontend users can drag & drop the images/files to change the order "
|
2608 |
"while uploading."
|
2609 |
msgstr ""
|
2610 |
|
2611 |
+
#: admin/html/whats-new.php:1190
|
2612 |
msgid "Added reCAPTCHA field in login form"
|
2613 |
msgstr ""
|
2614 |
|
2615 |
+
#: admin/html/whats-new.php:1192
|
2616 |
msgid ""
|
2617 |
"Admin has the option to show reCAPTCHA field in login form. Check the "
|
2618 |
"related settings from <strong>User Frontend > Settings > "
|
2619 |
"Login/Registration</strong>"
|
2620 |
msgstr ""
|
2621 |
|
2622 |
+
#: admin/html/whats-new.php:1195
|
2623 |
msgid "Added preview option in forms"
|
2624 |
msgstr ""
|
2625 |
|
2626 |
+
#: admin/html/whats-new.php:1197
|
2627 |
msgid ""
|
2628 |
"You can see a nice <strong>Preview</strong> button with <strong>Save "
|
2629 |
"Form</strong> button, admin can take a quick look of the form without using "
|
2630 |
"shortcode"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
+
#: admin/html/whats-new.php:1200
|
2634 |
msgid "Fixed hiding “Select Image” button while uploading multiple images."
|
2635 |
msgstr ""
|
2636 |
|
2637 |
+
#: admin/html/whats-new.php:1202
|
2638 |
msgid ""
|
2639 |
"The upload button will not be hidden until the user selects max number of "
|
2640 |
"files "
|
2641 |
msgstr ""
|
2642 |
|
2643 |
+
#: admin/html/whats-new.php:1205
|
2644 |
msgid "Added form limit notice before form submission"
|
2645 |
msgstr ""
|
2646 |
|
2647 |
+
#: admin/html/whats-new.php:1207
|
2648 |
msgid ""
|
2649 |
"Limit notice message was showing after submission, now it is showing when "
|
2650 |
"rendering the form"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
+
#: admin/html/whats-new.php:1210
|
2654 |
msgid "Fixed: default post category not saving"
|
2655 |
msgstr ""
|
2656 |
|
2657 |
+
#: admin/html/whats-new.php:1212
|
2658 |
msgid ""
|
2659 |
"From the form <strong>Settings > Post Settings</strong>, default post "
|
2660 |
"category options were not saving. Now, it's fixed."
|
2661 |
msgstr ""
|
2662 |
|
2663 |
+
#: admin/html/whats-new.php:1215
|
2664 |
msgid ""
|
2665 |
"WPUF dashboard shortcode with form_id attribute was not showing posts "
|
2666 |
"properly"
|
2667 |
msgstr ""
|
2668 |
|
2669 |
+
#: admin/html/whats-new.php:1217
|
2670 |
msgid ""
|
2671 |
"Now you can list posts on the frontend by using <strong>form_id<strong/> "
|
2672 |
"attribute with <strong>[wpuf_dashboard]</strong> shortcode"
|
2673 |
msgstr ""
|
2674 |
|
2675 |
+
#: admin/html/whats-new.php:1226
|
2676 |
msgid "Changed text domain to `wp-user-frontend` from `wpuf` "
|
2677 |
msgstr ""
|
2678 |
|
2679 |
+
#: admin/html/whats-new.php:1228
|
2680 |
msgid ""
|
2681 |
"If you are using other language than English. Please <b>rename</b> your "
|
2682 |
"<i>.po and .mo </i> files to `wp-user-frontend_` from `wpuf_` <br> This "
|
2683 |
"change was made to support translations from translate.wordpress.org"
|
2684 |
msgstr ""
|
2685 |
|
2686 |
+
#: admin/html/whats-new.php:1231
|
2687 |
msgid "Added WP User Frontend Data export and erase functionality."
|
2688 |
msgstr ""
|
2689 |
|
2690 |
+
#: admin/html/whats-new.php:1233
|
2691 |
msgid "Added functionality to export WP User Frontend Data to comply with GDPR."
|
2692 |
msgstr ""
|
2693 |
|
2694 |
+
#: admin/html/whats-new.php:1236
|
2695 |
msgid "Added billing address customizer."
|
2696 |
msgstr ""
|
2697 |
|
2698 |
+
#: admin/html/whats-new.php:1238
|
2699 |
msgid "Added customizer options for billing address in payment page."
|
2700 |
msgstr ""
|
2701 |
|
2702 |
+
#: admin/html/whats-new.php:1241
|
2703 |
msgid "Make the payment page responsive."
|
2704 |
msgstr ""
|
2705 |
|
2706 |
+
#: admin/html/whats-new.php:1243
|
2707 |
msgid "Some css adjustments are made in payment page to make it responsive."
|
2708 |
msgstr ""
|
2709 |
|
2710 |
+
#: admin/html/whats-new.php:1246
|
2711 |
msgid "Fixed image upload issue in Safari."
|
2712 |
msgstr ""
|
2713 |
|
2714 |
+
#: admin/html/whats-new.php:1248
|
2715 |
msgid "Images were not showing after upload in safari, it is fixed now."
|
2716 |
msgstr ""
|
2717 |
|
2718 |
+
#: admin/html/whats-new.php:1251
|
2719 |
msgid "Post update issue after updating or removing post images."
|
2720 |
msgstr ""
|
2721 |
|
2722 |
+
#: admin/html/whats-new.php:1253
|
2723 |
msgid ""
|
2724 |
"Posts cannot be updated after updating or removing post images, it is fixed "
|
2725 |
"now."
|
2726 |
msgstr ""
|
2727 |
|
2728 |
+
#: admin/html/whats-new.php:1262
|
2729 |
msgid "Allow overriding form input styles using theme styling."
|
2730 |
msgstr ""
|
2731 |
|
2732 |
+
#: admin/html/whats-new.php:1264
|
2733 |
msgid "Overriding form input styles using theme style is now possible."
|
2734 |
msgstr ""
|
2735 |
|
2736 |
+
#: admin/html/whats-new.php:1267
|
2737 |
msgid "Fixed Auto Login after registration."
|
2738 |
msgstr ""
|
2739 |
|
2740 |
+
#: admin/html/whats-new.php:1269
|
2741 |
msgid "Auto Login after registration was not working is fixed now."
|
2742 |
msgstr ""
|
2743 |
|
2744 |
+
#: admin/html/whats-new.php:1272
|
2745 |
msgid "Fixed fallback cost calculation"
|
2746 |
msgstr ""
|
2747 |
|
2748 |
+
#: admin/html/whats-new.php:1274
|
2749 |
msgid "Fallback cost calculation was inaccurate for some cases, it is fixed now."
|
2750 |
msgstr ""
|
2751 |
|
2752 |
+
#: admin/html/whats-new.php:1277
|
2753 |
msgid "Removal of subscription from User Profile gets reverted if updated"
|
2754 |
msgstr ""
|
2755 |
|
2756 |
+
#: admin/html/whats-new.php:1279
|
2757 |
msgid "User subscription deletion gets reverted if updated is fixed."
|
2758 |
msgstr ""
|
2759 |
|
2760 |
+
#: admin/html/whats-new.php:1282
|
2761 |
msgid "Show Free pack users in subscribers list."
|
2762 |
msgstr ""
|
2763 |
|
2764 |
+
#: admin/html/whats-new.php:1284
|
2765 |
msgid "Free pack users were not showing in subscribers list, now they will."
|
2766 |
msgstr ""
|
2767 |
|
2768 |
+
#: admin/html/whats-new.php:1293
|
2769 |
msgid "WP User Frontend Guten Block is added"
|
2770 |
msgstr ""
|
2771 |
|
2772 |
+
#: admin/html/whats-new.php:1295
|
2773 |
msgid ""
|
2774 |
"WPUF Form Block is now available to be used within gutenberg editor with "
|
2775 |
"preview of the form. "
|
2776 |
msgstr ""
|
2777 |
|
2778 |
+
#: admin/html/whats-new.php:1298
|
2779 |
msgid "Advanced Custom Fields plugin compatibility"
|
2780 |
msgstr ""
|
2781 |
|
2782 |
+
#: admin/html/whats-new.php:1300
|
2783 |
msgid "Now all your ACF fields can be used within WPUF Post forms. "
|
2784 |
msgstr ""
|
2785 |
|
2786 |
+
#: admin/html/whats-new.php:1303
|
2787 |
msgid "Taxonomy Terms not showing for custom post types"
|
2788 |
msgstr ""
|
2789 |
|
2790 |
+
#: admin/html/whats-new.php:1305
|
2791 |
msgid ""
|
2792 |
"Fixed an issue with taxonomy terms not appearing for Custom Post types "
|
2793 |
"within Form Settings and Dashboard Post Listing"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
+
#: admin/html/whats-new.php:1308
|
2797 |
msgid "Various other code optimizations"
|
2798 |
msgstr ""
|
2799 |
|
2800 |
+
#: admin/html/whats-new.php:1310 admin/html/whats-new.php:1367
|
2801 |
msgid "Code structure organization and optimization for better performance"
|
2802 |
msgstr ""
|
2803 |
|
2804 |
+
#: admin/html/whats-new.php:1319
|
2805 |
msgid "WoooCommerce billing address Sync"
|
2806 |
msgstr ""
|
2807 |
|
2808 |
+
#: admin/html/whats-new.php:1321
|
2809 |
msgid ""
|
2810 |
"If an existing customer has previously set his billing address, that will "
|
2811 |
"be imported into WPUF Billing address "
|
2812 |
msgstr ""
|
2813 |
|
2814 |
+
#: admin/html/whats-new.php:1324
|
2815 |
msgid "Trial subscription message not showing properly"
|
2816 |
msgstr ""
|
2817 |
|
2818 |
+
#: admin/html/whats-new.php:1326
|
2819 |
msgid "Subscriptions with Trial now shows trial notices"
|
2820 |
msgstr ""
|
2821 |
|
2822 |
+
#: admin/html/whats-new.php:1329
|
2823 |
msgid "Reset email Key not working"
|
2824 |
msgstr ""
|
2825 |
|
2826 |
+
#: admin/html/whats-new.php:1331
|
2827 |
msgid "Reset Email key was not working in some cases"
|
2828 |
msgstr ""
|
2829 |
|
2830 |
+
#: admin/html/whats-new.php:1334
|
2831 |
msgid "Post count not showing on the frontend dashboard"
|
2832 |
msgstr ""
|
2833 |
|
2834 |
+
#: admin/html/whats-new.php:1336
|
2835 |
msgid ""
|
2836 |
"Dashboard with multiple post type was not showing post counts properly, is "
|
2837 |
"now fixed and shows count for each post type"
|
2838 |
msgstr ""
|
2839 |
|
2840 |
+
#: admin/html/whats-new.php:1339
|
2841 |
msgid "Login Redirect showing blank page is fixed"
|
2842 |
msgstr ""
|
2843 |
|
2844 |
+
#: admin/html/whats-new.php:1341
|
2845 |
msgid ""
|
2846 |
"If \"Previous Page\" was set for redirection, login redirect was "
|
2847 |
"redirecting to blank page for users who hit login page directly"
|
2848 |
msgstr ""
|
2849 |
|
2850 |
+
#: admin/html/whats-new.php:1350
|
2851 |
msgid "Enhanced Login Redirect to redirect users to previous page"
|
2852 |
msgstr ""
|
2853 |
|
2854 |
+
#: admin/html/whats-new.php:1352
|
2855 |
msgid ""
|
2856 |
"You can choose Previous Page as Login Redirect page settings now to "
|
2857 |
"redirect users to the page from which they went for Login. "
|
2858 |
msgstr ""
|
2859 |
|
2860 |
+
#: admin/html/whats-new.php:1355
|
2861 |
msgid "Email HTML links not Rendreing properly issue is fixed"
|
2862 |
msgstr ""
|
2863 |
|
2864 |
+
#: admin/html/whats-new.php:1357
|
2865 |
msgid ""
|
2866 |
"For some clients emails were not rendering the HTML links properly, this is "
|
2867 |
"now fixed"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
+
#: admin/html/whats-new.php:1360
|
2871 |
msgid "Form Builder : Form Field's Help text styles not showing properly"
|
2872 |
msgstr ""
|
2873 |
|
2874 |
+
#: admin/html/whats-new.php:1362
|
2875 |
msgid "Help texts styling is now fixed and much easier to read and understand"
|
2876 |
msgstr ""
|
2877 |
|
2878 |
+
#: admin/html/whats-new.php:1365
|
2879 |
msgid "Various other code improvements"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
+
#: admin/html/whats-new.php:1376
|
2883 |
msgid "Dashboard Post Listing now supports multiple post types"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
+
#: admin/html/whats-new.php:1378
|
2887 |
msgid ""
|
2888 |
"Now you can show multiple post type in user dashboard using shortcode like "
|
2889 |
"this : <br><b>[wpuf_dashboard post_type=\"post,page,custom_type\"]</b> "
|
2890 |
msgstr ""
|
2891 |
|
2892 |
+
#: admin/html/whats-new.php:1381
|
2893 |
msgid "Added Login Redirect Settings"
|
2894 |
msgstr ""
|
2895 |
|
2896 |
+
#: admin/html/whats-new.php:1383
|
2897 |
msgid ""
|
2898 |
"You can now set a page from <i>WPUF Settings > Login/Registration > "
|
2899 |
"Redirect after Login</i>. When login redirection is active the user will be "
|
2900 |
"redirected to this page after login."
|
2901 |
msgstr ""
|
2902 |
|
2903 |
+
#: admin/html/whats-new.php:1386
|
2904 |
msgid "Image Upload field button text can be changed"
|
2905 |
msgstr ""
|
2906 |
|
2907 |
+
#: admin/html/whats-new.php:1388
|
2908 |
msgid ""
|
2909 |
"The upload button text can now be changed for image upload fields which "
|
2910 |
"defaults to \"Select Image\" if not set. "
|
2911 |
msgstr ""
|
2912 |
|
2913 |
+
#: admin/html/whats-new.php:1391
|
2914 |
msgid "Multi Step Form styles made compatible with more themes"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
+
#: admin/html/whats-new.php:1393
|
2918 |
msgid "Multi Step form can now be styled more easily with other themes "
|
2919 |
msgstr ""
|
2920 |
|
2921 |
+
#: admin/html/whats-new.php:1396
|
2922 |
msgid "Required field condition for google map not working is fixed"
|
2923 |
msgstr ""
|
2924 |
|
2925 |
+
#: admin/html/whats-new.php:1398
|
2926 |
msgid ""
|
2927 |
"If Google Map field was set as required users were able to submit form "
|
2928 |
"without changing the default value."
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: admin/html/whats-new.php:1407
|
2932 |
msgid "Admin form builder is now fully responsive."
|
2933 |
msgstr ""
|
2934 |
|
2935 |
+
#: admin/html/whats-new.php:1409
|
2936 |
msgid ""
|
2937 |
"Now you can edit forms from your mobile devices directly. Our improved "
|
2938 |
"responsive layouts of form builder makes it easy for you to build forms on "
|
2939 |
"the go."
|
2940 |
msgstr ""
|
2941 |
|
2942 |
+
#: admin/html/whats-new.php:1412
|
2943 |
msgid "Added color schemes for creating attractive form layouts."
|
2944 |
msgstr ""
|
2945 |
|
2946 |
+
#: admin/html/whats-new.php:1414
|
2947 |
msgid ""
|
2948 |
"We have added 3 new color schemes for the form layouts which you can choose "
|
2949 |
"from each form's new display settings."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: admin/html/whats-new.php:1417
|
2953 |
msgid "Restrict Free subscription pack to be enabled multiple times "
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: admin/html/whats-new.php:1419
|
2957 |
msgid ""
|
2958 |
"Free subscription packs now can only be purchased once and the limit "
|
2959 |
"applies properly"
|
2960 |
msgstr ""
|
2961 |
|
2962 |
+
#: admin/html/whats-new.php:1422
|
2963 |
msgid "Various other bug fixes and improvements were made "
|
2964 |
msgstr ""
|
2965 |
|
2966 |
+
#: admin/html/whats-new.php:1424
|
2967 |
msgid "Please see the change log to see full details."
|
2968 |
msgstr ""
|
2969 |
|
2970 |
+
#: admin/html/whats-new.php:1433
|
2971 |
msgid "Added upgrade function for default category"
|
2972 |
msgstr ""
|
2973 |
|
2974 |
+
#: admin/html/whats-new.php:1435
|
2975 |
msgid "Upgrader added to upgrade previously set default post category."
|
2976 |
msgstr ""
|
2977 |
|
2978 |
+
#: admin/html/whats-new.php:1438
|
2979 |
msgid "Subscription pack cannot be canceled"
|
2980 |
msgstr ""
|
2981 |
|
2982 |
+
#: admin/html/whats-new.php:1440
|
2983 |
msgid ""
|
2984 |
"Fixed recurring subscription pack cannot be canceled from my account page "
|
2985 |
"in subscription details section."
|
2986 |
msgstr ""
|
2987 |
|
2988 |
+
#: admin/html/whats-new.php:1443
|
2989 |
msgid "page installer admin notice logic issue"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
+
#: admin/html/whats-new.php:1445
|
2993 |
msgid ""
|
2994 |
"Fixed page installer admin notice logic problem due to new payment settings "
|
2995 |
"default value not set."
|
2996 |
msgstr ""
|
2997 |
|
2998 |
+
#: admin/html/whats-new.php:1455
|
2999 |
msgid "Setup Wizard"
|
3000 |
msgstr ""
|
3001 |
|
3002 |
+
#: admin/html/whats-new.php:1457
|
3003 |
msgid "Setup Wizard added to turn off payment options and install pages."
|
3004 |
msgstr ""
|
3005 |
|
3006 |
+
#: admin/html/whats-new.php:1461
|
3007 |
msgid "Multi-select Category"
|
3008 |
msgstr ""
|
3009 |
|
3010 |
+
#: admin/html/whats-new.php:1463
|
3011 |
msgid "Add multi-select to default category in post form settings."
|
3012 |
msgstr ""
|
3013 |
|
3014 |
+
#: admin/html/whats-new.php:1467
|
3015 |
msgid "Select Text option for Taxonomy"
|
3016 |
msgstr ""
|
3017 |
|
3018 |
+
#: admin/html/whats-new.php:1469
|
3019 |
msgid ""
|
3020 |
"Add Select Text option for taxonomy fields. Now you can add default text "
|
3021 |
"with empty value as first option for Taxonomy dropdown."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
+
#: admin/html/whats-new.php:1472
|
3025 |
msgid "Taxonomy Checkbox Inline"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: admin/html/whats-new.php:1474
|
3029 |
msgid ""
|
3030 |
"Added checkbox inline option to taxonomy checkbox. You can now display "
|
3031 |
"Taxonomy checkbox fields inline."
|
3032 |
msgstr ""
|
3033 |
|
3034 |
+
#: admin/html/whats-new.php:1484
|
3035 |
msgid "Manage schedule for form submission"
|
3036 |
msgstr ""
|
3037 |
|
3038 |
+
#: admin/html/whats-new.php:1486
|
3039 |
msgid ""
|
3040 |
"Do not accept form submission if the current date is not between the date "
|
3041 |
"range of the schedule."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
+
#: admin/html/whats-new.php:1490
|
3045 |
msgid "Restrict form submission based on the user roles"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
+
#: admin/html/whats-new.php:1492
|
3049 |
msgid ""
|
3050 |
"Restrict form submission based on the user roles. Now you can manage user "
|
3051 |
"role base permission on form submission."
|
3052 |
msgstr ""
|
3053 |
|
3054 |
+
#: admin/html/whats-new.php:1496
|
3055 |
msgid "Limit how many entries a form will accept"
|
3056 |
msgstr ""
|
3057 |
|
3058 |
+
#: admin/html/whats-new.php:1498
|
3059 |
msgid ""
|
3060 |
"Limit how many entries a form will accept and display a custom message when "
|
3061 |
"that limit is reached."
|
3062 |
msgstr ""
|
3063 |
|
3064 |
+
#: admin/html/whats-new.php:1502
|
3065 |
msgid "Show/hide Admin Bar"
|
3066 |
msgstr ""
|
3067 |
|
3068 |
+
#: admin/html/whats-new.php:1504
|
3069 |
msgid "Control the admin bar visibility based on user roles."
|
3070 |
msgstr ""
|
3071 |
|
3072 |
+
#: admin/html/whats-new.php:1508
|
3073 |
msgid "Ajax Login widget"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
+
#: admin/html/whats-new.php:1510
|
3077 |
msgid ""
|
3078 |
"Login user is more simple now with Ajax Login Widget. The simple ajax login "
|
3079 |
"form do not required page loading for login."
|
3080 |
msgstr ""
|
3081 |
|
3082 |
+
#: admin/html/whats-new.php:1514
|
3083 |
msgid "Form submission with Captcha field"
|
3084 |
msgstr ""
|
3085 |
|
3086 |
+
#: admin/html/whats-new.php:1516
|
3087 |
msgid "Form field validation process updated if form submits with captcha field."
|
3088 |
msgstr ""
|
3089 |
|
3090 |
+
#: admin/html/whats-new.php:1530
|
3091 |
msgid "What's New in WPUF?"
|
3092 |
msgstr ""
|
3093 |
|
3110 |
msgstr ""
|
3111 |
|
3112 |
#: admin/installer.php:84 admin/settings-options.php:24
|
3113 |
+
#: includes/free/admin/shortcode-button.php:79 wpuf-functions.php:2061
|
3114 |
msgid "Dashboard"
|
3115 |
msgstr ""
|
3116 |
|
3125 |
|
3126 |
#: admin/installer.php:95 class/subscription.php:410 class/subscription.php:430
|
3127 |
#: class/subscription.php:431 class/subscription.php:432
|
3128 |
+
#: includes/free/admin/shortcode-button.php:99 wpuf-functions.php:2044
|
3129 |
msgid "Subscription"
|
3130 |
msgstr ""
|
3131 |
|
3221 |
msgstr ""
|
3222 |
|
3223 |
#: admin/posting.php:72 class/asset-loader.php:55 class/render-form.php:1682
|
3224 |
+
#: wpuf.php:735
|
3225 |
msgid "Are you sure?"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
+
#: admin/posting.php:80 class/asset-loader.php:63 wpuf.php:746
|
3229 |
msgid "Allowed Files"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: admin/posting.php:83 class/asset-loader.php:66 wpuf.php:752
|
3233 |
msgid "Maximum number of files reached!"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: admin/posting.php:84 class/asset-loader.php:67 wpuf.php:753
|
3237 |
msgid "The file you have uploaded exceeds the file size limit. Please try again."
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: admin/posting.php:85 class/asset-loader.php:68 wpuf.php:754
|
3241 |
msgid "You have uploaded an incorrect file type. Please try again."
|
3242 |
msgstr ""
|
3243 |
|
3277 |
msgid "WPUF Custom Fields"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: admin/posting.php:346
|
3281 |
msgid "No custom fields found."
|
3282 |
msgstr ""
|
3283 |
|
3291 |
"features."
|
3292 |
msgstr ""
|
3293 |
|
3294 |
+
#: admin/premium.php:10 includes/free/loader.php:116
|
3295 |
msgid "Pro Features"
|
3296 |
msgstr ""
|
3297 |
|
3302 |
"mind."
|
3303 |
msgstr ""
|
3304 |
|
3305 |
+
#: admin/premium.php:18 admin/premium.php:21 includes/free/loader.php:125
|
3306 |
msgid "Registration Form Builder"
|
3307 |
msgstr ""
|
3308 |
|
3405 |
"Long and lengthy forms are uninviting, why build one?"
|
3406 |
msgstr ""
|
3407 |
|
3408 |
+
#: admin/premium.php:93 includes/free/loader.php:88
|
3409 |
+
#: includes/free/loader.php:1241
|
3410 |
msgid "Modules"
|
3411 |
msgstr ""
|
3412 |
|
3418 |
msgid "BuddyPress Profile"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
#: admin/premium.php:104 includes/free/loader.php:226
|
3422 |
msgid "Social Login"
|
3423 |
msgstr ""
|
3424 |
|
3428 |
"Facebook, Twitter and LinkedIn."
|
3429 |
msgstr ""
|
3430 |
|
3431 |
+
#: admin/premium.php:111 admin/premium.php:114 includes/free/loader.php:233
|
3432 |
msgid "User Directory"
|
3433 |
msgstr ""
|
3434 |
|
4065 |
msgid "Select the post types you will allow users to export."
|
4066 |
msgstr ""
|
4067 |
|
4068 |
+
#: admin/settings-options.php:583
|
4069 |
msgid ""
|
4070 |
"Select profile/registration forms for user roles. These forms will be used "
|
4071 |
"to populate extra edit profile fields in backend."
|
4330 |
|
4331 |
#: admin/template.php:185 includes/fields/class-abstract-fields.php:681
|
4332 |
#: includes/fields/class-field-textarea.php:9
|
4333 |
+
#: includes/fields/class-field-textarea.php:123
|
4334 |
msgid "Textarea"
|
4335 |
msgstr ""
|
4336 |
|
4374 |
#: class/upload.php:275 includes/fields/class-field-recaptcha.php:147
|
4375 |
#: includes/fields/class-field-sectionbreak.php:55
|
4376 |
#: templates/dashboard/list.php:10 templates/dashboard/posts.php:100
|
4377 |
+
#: wpuf-functions.php:1025
|
4378 |
msgid "Title"
|
4379 |
msgstr ""
|
4380 |
|
4391 |
msgstr ""
|
4392 |
|
4393 |
#: admin/template.php:583 class/upload.php:277
|
4394 |
+
#: includes/fields/class-field-sectionbreak.php:63 wpuf-functions.php:1033
|
4395 |
msgid "Description"
|
4396 |
msgstr ""
|
4397 |
|
4425 |
msgid "Import"
|
4426 |
msgstr ""
|
4427 |
|
4428 |
+
#: class/asset-loader.php:32 wpuf.php:632
|
4429 |
msgid "is required"
|
4430 |
msgstr ""
|
4431 |
|
4432 |
+
#: class/asset-loader.php:33 wpuf.php:633
|
4433 |
msgid "does not match"
|
4434 |
msgstr ""
|
4435 |
|
4436 |
+
#: class/asset-loader.php:34 wpuf.php:634
|
4437 |
msgid "is not valid"
|
4438 |
msgstr ""
|
4439 |
|
4440 |
+
#: class/asset-loader.php:46 wpuf.php:712
|
4441 |
msgid "Please fix the errors to proceed"
|
4442 |
msgstr ""
|
4443 |
|
4444 |
+
#: class/asset-loader.php:48 wpuf.php:719
|
4445 |
msgid "Word limit reached"
|
4446 |
msgstr ""
|
4447 |
|
4448 |
+
#: class/asset-loader.php:49 wpuf.php:714
|
4449 |
msgid "Are you sure you want to cancel your current subscription ?"
|
4450 |
msgstr ""
|
4451 |
|
4582 |
msgstr ""
|
4583 |
|
4584 |
#: class/payment.php:154 includes/class-customizer.php:56
|
4585 |
+
#: wpuf-functions.php:2045
|
4586 |
msgid "Billing Address"
|
4587 |
msgstr ""
|
4588 |
|
4682 |
msgid "Write the full description of your Post"
|
4683 |
msgstr ""
|
4684 |
|
4685 |
+
#: class/post-form-templates/post.php:78 class/post-form-templates/post.php:79
|
4686 |
#: includes/fields/class-field-featured-image.php:9
|
4687 |
#: includes/fields/class-field-featured-image.php:142
|
|
|
4688 |
#: includes/free/post-form-templates/the_events_calendar.php:126
|
4689 |
+
#: includes/free/post-form-templates/the_events_calendar.php:127
|
4690 |
#: templates/dashboard/list.php:7 templates/dashboard/posts.php:97
|
4691 |
msgid "Featured Image"
|
4692 |
msgstr ""
|
4693 |
|
4694 |
+
#: class/post-form-templates/post.php:82
|
4695 |
msgid "Upload the main image of your post"
|
4696 |
msgstr ""
|
4697 |
|
4698 |
+
#: class/post-form-templates/post.php:92
|
4699 |
+
#: includes/free/post-form-templates/the_events_calendar.php:139
|
4700 |
msgid "Excerpt"
|
4701 |
msgstr ""
|
4702 |
|
4703 |
+
#: class/post-form-templates/post.php:95
|
4704 |
msgid "Provide a short description of this post (optional)"
|
4705 |
msgstr ""
|
4706 |
|
4707 |
+
#: class/post-form-templates/post.php:112
|
4708 |
#: includes/fields/class-field-post-tags.php:6
|
4709 |
msgid "Tags"
|
4710 |
msgstr ""
|
4711 |
|
4712 |
+
#: class/post-form-templates/post.php:115
|
4713 |
+
#: includes/free/post-form-templates/the_events_calendar.php:160
|
4714 |
msgid "Separate tags with commas."
|
4715 |
msgstr ""
|
4716 |
|
4717 |
+
#: class/post-form-templates/post.php:133
|
4718 |
msgid "Create Post"
|
4719 |
msgstr ""
|
4720 |
|
4721 |
+
#: class/post-form-templates/post.php:147
|
4722 |
msgid ""
|
4723 |
"Post has been updated successfully. <a target=\"_blank\" "
|
4724 |
"href=\"%link%\">View post</a>"
|
4725 |
msgstr ""
|
4726 |
|
4727 |
+
#: class/post-form-templates/post.php:149
|
4728 |
msgid "Update Post"
|
4729 |
msgstr ""
|
4730 |
|
4934 |
msgstr ""
|
4935 |
|
4936 |
#: class/transactions-list-table.php:47
|
4937 |
+
#: includes/free/post-form-templates/the_events_calendar.php:116
|
4938 |
msgid "Cost"
|
4939 |
msgstr ""
|
4940 |
|
4941 |
#: class/transactions-list-table.php:48 includes/class-privacy.php:334
|
4942 |
+
#: includes/free/loader.php:247
|
4943 |
msgid "Tax"
|
4944 |
msgstr ""
|
4945 |
|
4992 |
msgid "No transactions found."
|
4993 |
msgstr ""
|
4994 |
|
4995 |
+
#: class/upload.php:276 wpuf-functions.php:1029
|
4996 |
msgid "Caption"
|
4997 |
msgstr ""
|
4998 |
|
5790 |
msgid "Expiry"
|
5791 |
msgstr ""
|
5792 |
|
5793 |
+
#: includes/class-upgrades.php:109
|
5794 |
+
msgid "WPUF Data Update Required"
|
5795 |
+
msgstr ""
|
5796 |
+
|
5797 |
+
#: includes/class-upgrades.php:110
|
5798 |
+
msgid "Run the updater"
|
5799 |
+
msgstr ""
|
5800 |
+
|
5801 |
+
#: includes/class-upgrades.php:115
|
5802 |
+
msgid ""
|
5803 |
+
"It is strongly recommended that you backup your database before proceeding. "
|
5804 |
+
"Are you sure you wish to run the updater now?"
|
5805 |
+
msgstr ""
|
5806 |
+
|
5807 |
#: includes/class-user-subscription.php:57
|
5808 |
msgid "You must <a href=\"%s\">purchase a subscription package</a> before posting"
|
5809 |
msgstr ""
|
5980 |
msgstr ""
|
5981 |
|
5982 |
#: includes/fields/class-abstract-fields.php:465
|
5983 |
+
#: includes/fields/class-field-checkbox.php:78
|
5984 |
+
#: includes/fields/class-field-radio.php:82
|
5985 |
msgid "Show in inline list"
|
5986 |
msgstr ""
|
5987 |
|
5988 |
#: includes/fields/class-abstract-fields.php:475
|
5989 |
+
#: includes/fields/class-field-checkbox.php:88
|
5990 |
+
#: includes/fields/class-field-radio.php:92
|
5991 |
msgid "Show this option in an inline list"
|
5992 |
msgstr ""
|
5993 |
|
6083 |
msgid "Numeric Field"
|
6084 |
msgstr ""
|
6085 |
|
6086 |
+
#: includes/fields/class-field-post-content.php:9 includes/free/loader.php:856
|
6087 |
msgid "Post Content"
|
6088 |
msgstr ""
|
6089 |
|
6228 |
msgid "Select a form to insert"
|
6229 |
msgstr ""
|
6230 |
|
6231 |
+
#: includes/free/admin/shortcode-builder.php:9 includes/free/loader.php:104
|
6232 |
msgid "Registration Form"
|
6233 |
msgstr ""
|
6234 |
|
6728 |
msgid "Update Button text"
|
6729 |
msgstr ""
|
6730 |
|
6731 |
+
#: includes/free/loader.php:96 includes/free/loader.php:157
|
6732 |
msgid "Coupons"
|
6733 |
msgstr ""
|
6734 |
|
6735 |
+
#: includes/free/loader.php:106
|
6736 |
msgid "Use the shortcode %s for a simple and default WordPress registration form."
|
6737 |
msgstr ""
|
6738 |
|
6739 |
+
#: includes/free/loader.php:111
|
6740 |
msgid "Learn How to Setup"
|
6741 |
msgstr ""
|
6742 |
|
6743 |
+
#: includes/free/loader.php:119
|
6744 |
msgid ""
|
6745 |
"Registration form builder is a two way form which can be used both for "
|
6746 |
"<strong>user registration</strong> and <strong>profile editing</strong>."
|
6747 |
msgstr ""
|
6748 |
|
6749 |
+
#: includes/free/loader.php:129
|
6750 |
msgid "Profile Form Builder"
|
6751 |
msgstr ""
|
6752 |
|
6753 |
+
#: includes/free/loader.php:133
|
6754 |
msgid "Register by Subscription Package Purchase"
|
6755 |
msgstr ""
|
6756 |
|
6757 |
+
#: includes/free/loader.php:138 includes/free/loader.php:169
|
6758 |
msgid "Upgrade to Pro Version"
|
6759 |
msgstr ""
|
6760 |
|
6761 |
+
#: includes/free/loader.php:139
|
6762 |
msgid "Learn More"
|
6763 |
msgstr ""
|
6764 |
|
6765 |
+
#: includes/free/loader.php:161
|
6766 |
msgid "Use Coupon codes for subscription for discounts."
|
6767 |
msgstr ""
|
6768 |
|
6769 |
+
#: includes/free/loader.php:165
|
6770 |
msgid "This feature is only available in the Pro Version."
|
6771 |
msgstr ""
|
6772 |
|
6773 |
+
#: includes/free/loader.php:170
|
6774 |
msgid "Learn more about Coupons"
|
6775 |
msgstr ""
|
6776 |
|
6777 |
+
#: includes/free/loader.php:219
|
6778 |
+
msgid "SMS"
|
6779 |
+
msgstr ""
|
6780 |
+
|
6781 |
+
#: includes/free/loader.php:240
|
6782 |
+
msgid "Invoices"
|
6783 |
+
msgstr ""
|
6784 |
+
|
6785 |
+
#: includes/free/loader.php:254
|
6786 |
+
msgid "Content Filtering"
|
6787 |
+
msgstr ""
|
6788 |
+
|
6789 |
+
#: includes/free/loader.php:277
|
6790 |
+
msgid "Comments Per Page"
|
6791 |
+
msgstr ""
|
6792 |
+
|
6793 |
+
#: includes/free/loader.php:279
|
6794 |
+
msgid "Show how many comments per page in comments add-on"
|
6795 |
+
msgstr ""
|
6796 |
+
|
6797 |
+
#: includes/free/loader.php:287
|
6798 |
+
msgid "Ipstack API Key"
|
6799 |
+
msgstr ""
|
6800 |
+
|
6801 |
+
#: includes/free/loader.php:289
|
6802 |
+
msgid ""
|
6803 |
+
"<a target=\"_blank\" href=\"https://ipstack.com/dashboard\">Register "
|
6804 |
+
"here</a> to get your free ipstack api key"
|
6805 |
+
msgstr ""
|
6806 |
+
|
6807 |
+
#: includes/free/loader.php:296
|
6808 |
+
msgid "Google Map API"
|
6809 |
+
msgstr ""
|
6810 |
+
|
6811 |
+
#: includes/free/loader.php:298
|
6812 |
+
msgid ""
|
6813 |
+
"<a target=\"_blank\" "
|
6814 |
+
"href=\"https://developers.google.com/maps/documentation/javascript\">API</"
|
6815 |
+
"a> key is needed to render Google Maps"
|
6816 |
+
msgstr ""
|
6817 |
+
|
6818 |
+
#: includes/free/loader.php:305 wpuf-functions.php:2043
|
6819 |
+
msgid "Edit Profile"
|
6820 |
+
msgstr ""
|
6821 |
+
|
6822 |
+
#: includes/free/loader.php:307
|
6823 |
+
msgid "Allow user to update their profile information from the account page"
|
6824 |
+
msgstr ""
|
6825 |
+
|
6826 |
+
#: includes/free/loader.php:316
|
6827 |
+
msgid "Profile Form"
|
6828 |
+
msgstr ""
|
6829 |
+
|
6830 |
+
#: includes/free/loader.php:318
|
6831 |
+
msgid "User will use this form to update their information from the account page,"
|
6832 |
+
msgstr ""
|
6833 |
+
|
6834 |
+
#: includes/free/loader.php:327
|
6835 |
+
msgid "Avatar Size"
|
6836 |
+
msgstr ""
|
6837 |
+
|
6838 |
+
#: includes/free/loader.php:329
|
6839 |
+
msgid ""
|
6840 |
+
"Avatar size to crop when upload using the registration/profile "
|
6841 |
+
"form.(e.g:100x100)"
|
6842 |
+
msgstr ""
|
6843 |
+
|
6844 |
+
#: includes/free/loader.php:338
|
6845 |
+
msgid "Pending User Message"
|
6846 |
+
msgstr ""
|
6847 |
+
|
6848 |
+
#: includes/free/loader.php:340
|
6849 |
+
msgid "Pending user will see this message when try to log in."
|
6850 |
+
msgstr ""
|
6851 |
+
|
6852 |
+
#: includes/free/loader.php:341
|
6853 |
+
msgid ""
|
6854 |
+
"<strong>ERROR:</strong> Your account has to be approved by an administrator "
|
6855 |
+
"before you can login."
|
6856 |
+
msgstr ""
|
6857 |
+
|
6858 |
+
#: includes/free/loader.php:349
|
6859 |
+
msgid "Denied User Message"
|
6860 |
+
msgstr ""
|
6861 |
+
|
6862 |
+
#: includes/free/loader.php:351
|
6863 |
+
msgid "Denied user will see this message when try to log in."
|
6864 |
+
msgstr ""
|
6865 |
+
|
6866 |
+
#: includes/free/loader.php:352
|
6867 |
+
msgid ""
|
6868 |
+
"<strong>ERROR:</strong> Your account has been denied by an administrator, "
|
6869 |
+
"please contact admin to approve your account."
|
6870 |
+
msgstr ""
|
6871 |
+
|
6872 |
+
#: includes/free/loader.php:360
|
6873 |
+
msgid "<span class=\"dashicons dashicons-money\"></span> Subscription"
|
6874 |
+
msgstr ""
|
6875 |
+
|
6876 |
+
#: includes/free/loader.php:368
|
6877 |
+
msgid "<span class=\"dashicons dashicons-admin-generic\"></span> Template Settings"
|
6878 |
+
msgstr ""
|
6879 |
+
|
6880 |
+
#: includes/free/loader.php:376
|
6881 |
+
msgid "<span class=\"dashicons dashicons-unlock\"></span> Reset Email"
|
6882 |
+
msgstr ""
|
6883 |
+
|
6884 |
+
#: includes/free/loader.php:384
|
6885 |
+
msgid ""
|
6886 |
+
"<span class=\"dashicons dashicons-email-alt\"></span> Resend Confirmation "
|
6887 |
+
"Email"
|
6888 |
+
msgstr ""
|
6889 |
+
|
6890 |
+
#: includes/free/loader.php:392
|
6891 |
+
msgid "<span class=\"dashicons dashicons-groups\"></span> Pending User Email"
|
6892 |
+
msgstr ""
|
6893 |
+
|
6894 |
+
#: includes/free/loader.php:400
|
6895 |
+
msgid "<span class=\"dashicons dashicons-dismiss\"></span> Denied User Email"
|
6896 |
+
msgstr ""
|
6897 |
+
|
6898 |
+
#: includes/free/loader.php:408
|
6899 |
+
msgid "<span class=\"dashicons dashicons-smiley\"></span> Approved User Email"
|
6900 |
+
msgstr ""
|
6901 |
+
|
6902 |
+
#: includes/free/loader.php:416
|
6903 |
+
msgid "<span class=\"dashicons dashicons-smiley\"></span> Account Activated Email"
|
6904 |
+
msgstr ""
|
6905 |
+
|
6906 |
+
#: includes/free/loader.php:424
|
6907 |
+
msgid "<span class=\"dashicons dashicons-saved\"></span> Approved Post Email"
|
6908 |
+
msgstr ""
|
6909 |
+
|
6910 |
+
#: includes/free/loader.php:433 includes/free/loader.php:434
|
6911 |
+
msgid "Clickatell name"
|
6912 |
+
msgstr ""
|
6913 |
+
|
6914 |
+
#: includes/free/loader.php:440 includes/free/loader.php:441
|
6915 |
+
msgid "Clickatell Password"
|
6916 |
+
msgstr ""
|
6917 |
+
|
6918 |
+
#: includes/free/loader.php:447 includes/free/loader.php:448
|
6919 |
+
msgid "Clickatell api"
|
6920 |
+
msgstr ""
|
6921 |
+
|
6922 |
+
#: includes/free/loader.php:454 includes/free/loader.php:455
|
6923 |
+
msgid "SMSGlobal Name"
|
6924 |
+
msgstr ""
|
6925 |
+
|
6926 |
+
#: includes/free/loader.php:461 includes/free/loader.php:462
|
6927 |
+
msgid "SMSGlobal Passord"
|
6928 |
+
msgstr ""
|
6929 |
+
|
6930 |
+
#: includes/free/loader.php:468 includes/free/loader.php:469
|
6931 |
+
msgid "Nexmo API"
|
6932 |
+
msgstr ""
|
6933 |
+
|
6934 |
+
#: includes/free/loader.php:475 includes/free/loader.php:476
|
6935 |
+
msgid "Nexmo API Secret"
|
6936 |
+
msgstr ""
|
6937 |
+
|
6938 |
+
#: includes/free/loader.php:482 includes/free/loader.php:483
|
6939 |
+
msgid "Twillo From Number"
|
6940 |
+
msgstr ""
|
6941 |
+
|
6942 |
+
#: includes/free/loader.php:489 includes/free/loader.php:490
|
6943 |
+
msgid "Twillo Account SID"
|
6944 |
+
msgstr ""
|
6945 |
+
|
6946 |
+
#: includes/free/loader.php:496 includes/free/loader.php:497
|
6947 |
+
msgid "Twillo Authro Token"
|
6948 |
+
msgstr ""
|
6949 |
+
|
6950 |
+
#: includes/free/loader.php:505
|
6951 |
+
msgid "Enable Social Login"
|
6952 |
+
msgstr ""
|
6953 |
+
|
6954 |
+
#: includes/free/loader.php:507
|
6955 |
+
msgid ""
|
6956 |
+
"Enabling this will add Social Icons under registration form to allow users "
|
6957 |
+
"to login or register using Social Profiles"
|
6958 |
+
msgstr ""
|
6959 |
+
|
6960 |
+
#: includes/free/loader.php:513
|
6961 |
+
msgid "Facebook App Settings"
|
6962 |
+
msgstr ""
|
6963 |
+
|
6964 |
+
#: includes/free/loader.php:515 includes/free/loader.php:542
|
6965 |
+
#: includes/free/loader.php:570 includes/free/loader.php:598
|
6966 |
+
#: includes/free/loader.php:626
|
6967 |
+
msgid "Create an App"
|
6968 |
+
msgstr ""
|
6969 |
+
|
6970 |
+
#: includes/free/loader.php:516
|
6971 |
+
msgid " if you don't have one and fill App ID and App Secret below. "
|
6972 |
+
msgstr ""
|
6973 |
+
|
6974 |
+
#: includes/free/loader.php:521 includes/free/loader.php:577
|
6975 |
+
#: includes/free/loader.php:633
|
6976 |
+
msgid "Redirect URI"
|
6977 |
+
msgstr ""
|
6978 |
+
|
6979 |
+
#: includes/free/loader.php:528
|
6980 |
+
msgid "App Id"
|
6981 |
+
msgstr ""
|
6982 |
+
|
6983 |
+
#: includes/free/loader.php:534
|
6984 |
+
msgid "App Secret"
|
6985 |
+
msgstr ""
|
6986 |
+
|
6987 |
+
#: includes/free/loader.php:540
|
6988 |
+
msgid "Twitter App Settings"
|
6989 |
+
msgstr ""
|
6990 |
+
|
6991 |
+
#: includes/free/loader.php:543
|
6992 |
+
msgid " if you don't have one and fill Consumer key and Consumer Secret below."
|
6993 |
+
msgstr ""
|
6994 |
+
|
6995 |
+
#: includes/free/loader.php:549
|
6996 |
+
msgid "Callback URL"
|
6997 |
+
msgstr ""
|
6998 |
+
|
6999 |
+
#: includes/free/loader.php:556
|
7000 |
+
msgid "Consumer Key"
|
7001 |
+
msgstr ""
|
7002 |
+
|
7003 |
+
#: includes/free/loader.php:562
|
7004 |
+
msgid "Consumer Secret"
|
7005 |
+
msgstr ""
|
7006 |
+
|
7007 |
+
#: includes/free/loader.php:568
|
7008 |
+
msgid "Google App Settings"
|
7009 |
+
msgstr ""
|
7010 |
+
|
7011 |
+
#: includes/free/loader.php:571 includes/free/loader.php:599
|
7012 |
+
#: includes/free/loader.php:627
|
7013 |
+
msgid " if you don't have one and fill Client ID and Client Secret below."
|
7014 |
+
msgstr ""
|
7015 |
+
|
7016 |
+
#: includes/free/loader.php:584 includes/free/loader.php:612
|
7017 |
+
#: includes/free/loader.php:640
|
7018 |
+
msgid "Client ID"
|
7019 |
+
msgstr ""
|
7020 |
+
|
7021 |
+
#: includes/free/loader.php:590
|
7022 |
+
msgid "Client secret"
|
7023 |
+
msgstr ""
|
7024 |
+
|
7025 |
+
#: includes/free/loader.php:596
|
7026 |
+
msgid "Linkedin App Settings"
|
7027 |
+
msgstr ""
|
7028 |
+
|
7029 |
+
#: includes/free/loader.php:605
|
7030 |
+
msgid "Redirect URL"
|
7031 |
+
msgstr ""
|
7032 |
+
|
7033 |
+
#: includes/free/loader.php:618 includes/free/loader.php:646
|
7034 |
+
msgid "Client Secret"
|
7035 |
+
msgstr ""
|
7036 |
+
|
7037 |
+
#: includes/free/loader.php:624
|
7038 |
+
msgid "Instagram App Settings"
|
7039 |
+
msgstr ""
|
7040 |
+
|
7041 |
+
#: includes/free/loader.php:654
|
7042 |
+
msgid "Profile Gallery Image Size "
|
7043 |
+
msgstr ""
|
7044 |
+
|
7045 |
+
#: includes/free/loader.php:655
|
7046 |
+
msgid "Set the image size of picture gallery in frontend"
|
7047 |
+
msgstr ""
|
7048 |
+
|
7049 |
+
#: includes/free/loader.php:662
|
7050 |
+
msgid "Avatar Size "
|
7051 |
+
msgstr ""
|
7052 |
+
|
7053 |
+
#: includes/free/loader.php:663
|
7054 |
+
msgid "Set the image size of profile picture in frontend"
|
7055 |
+
msgstr ""
|
7056 |
+
|
7057 |
+
#: includes/free/loader.php:670
|
7058 |
+
msgid "Profile Header Template"
|
7059 |
+
msgstr ""
|
7060 |
+
|
7061 |
+
#: includes/free/loader.php:682
|
7062 |
+
msgid "User Listing Template"
|
7063 |
+
msgstr ""
|
7064 |
+
|
7065 |
+
#: includes/free/loader.php:699
|
7066 |
+
msgid "Enable Invoices"
|
7067 |
+
msgstr ""
|
7068 |
+
|
7069 |
+
#: includes/free/loader.php:700
|
7070 |
+
msgid "Enable sending invoices for completed payments"
|
7071 |
+
msgstr ""
|
7072 |
+
|
7073 |
+
#: includes/free/loader.php:707
|
7074 |
+
msgid "Show Invoices"
|
7075 |
+
msgstr ""
|
7076 |
+
|
7077 |
+
#: includes/free/loader.php:708
|
7078 |
+
msgid "Show Invoices option where <code>[wpuf_account]</code> is located"
|
7079 |
+
msgstr ""
|
7080 |
+
|
7081 |
+
#: includes/free/loader.php:716
|
7082 |
+
msgid "Set Invoice Logo"
|
7083 |
+
msgstr ""
|
7084 |
+
|
7085 |
+
#: includes/free/loader.php:717
|
7086 |
+
msgid "This sets the company Logo to be used in Invoice"
|
7087 |
+
msgstr ""
|
7088 |
+
|
7089 |
+
#: includes/free/loader.php:724
|
7090 |
+
msgid "Set Invoice Color"
|
7091 |
+
msgstr ""
|
7092 |
+
|
7093 |
+
#: includes/free/loader.php:725
|
7094 |
+
msgid "Set color code to be used in invoice"
|
7095 |
+
msgstr ""
|
7096 |
+
|
7097 |
+
#: includes/free/loader.php:732
|
7098 |
+
msgid "From Address"
|
7099 |
+
msgstr ""
|
7100 |
+
|
7101 |
+
#: includes/free/loader.php:733
|
7102 |
+
msgid ""
|
7103 |
+
"This sets the provider information of the Invoice. Note: use the <xmp "
|
7104 |
+
"class=\"wpuf-xmp-tag\"><br></xmp> tag to enter line breaks."
|
7105 |
+
msgstr ""
|
7106 |
+
|
7107 |
+
#: includes/free/loader.php:740
|
7108 |
+
msgid "Invoice Title"
|
7109 |
+
msgstr ""
|
7110 |
+
|
7111 |
+
#: includes/free/loader.php:741
|
7112 |
+
msgid "This sets the payment information title of the Invoice"
|
7113 |
+
msgstr ""
|
7114 |
+
|
7115 |
+
#: includes/free/loader.php:747
|
7116 |
+
msgid "Invoice Paragraph"
|
7117 |
+
msgstr ""
|
7118 |
+
|
7119 |
+
#: includes/free/loader.php:748
|
7120 |
+
msgid "This sets the payment information paragraph of the Invoice"
|
7121 |
+
msgstr ""
|
7122 |
+
|
7123 |
+
#: includes/free/loader.php:755
|
7124 |
+
msgid "Invoice Footer"
|
7125 |
+
msgstr ""
|
7126 |
+
|
7127 |
+
#: includes/free/loader.php:756
|
7128 |
+
msgid "This sets the footer of the Invoice"
|
7129 |
+
msgstr ""
|
7130 |
+
|
7131 |
+
#: includes/free/loader.php:762
|
7132 |
+
msgid "Invoice Filename Prefix"
|
7133 |
+
msgstr ""
|
7134 |
+
|
7135 |
+
#: includes/free/loader.php:763
|
7136 |
+
msgid "This sets the filename prefix of the Invoice"
|
7137 |
+
msgstr ""
|
7138 |
+
|
7139 |
+
#: includes/free/loader.php:769
|
7140 |
+
msgid "Set Invoice Mail Subject"
|
7141 |
+
msgstr ""
|
7142 |
+
|
7143 |
+
#: includes/free/loader.php:770
|
7144 |
+
msgid "This sets the mail subject of the Invoice"
|
7145 |
+
msgstr ""
|
7146 |
+
|
7147 |
+
#: includes/free/loader.php:776
|
7148 |
+
msgid "Set Invoice Mail Body"
|
7149 |
+
msgstr ""
|
7150 |
+
|
7151 |
+
#: includes/free/loader.php:777
|
7152 |
+
msgid "This sets the mail body of the Invoice"
|
7153 |
+
msgstr ""
|
7154 |
+
|
7155 |
+
#: includes/free/loader.php:785
|
7156 |
+
msgid "Need help?"
|
7157 |
+
msgstr ""
|
7158 |
+
|
7159 |
+
#: includes/free/loader.php:786
|
7160 |
+
msgid ""
|
7161 |
+
"Visit the <a href=\"%s\" target=\"_blank\">Tax setup documentation</a> for "
|
7162 |
+
"guidance on how to setup tax."
|
7163 |
+
msgstr ""
|
7164 |
+
|
7165 |
+
#: includes/free/loader.php:791
|
7166 |
+
msgid "Enable Tax"
|
7167 |
+
msgstr ""
|
7168 |
+
|
7169 |
+
#: includes/free/loader.php:792
|
7170 |
+
msgid "Enable tax on payments"
|
7171 |
+
msgstr ""
|
7172 |
+
|
7173 |
+
#: includes/free/loader.php:799
|
7174 |
+
msgid "Base Country and State"
|
7175 |
+
msgstr ""
|
7176 |
+
|
7177 |
+
#: includes/free/loader.php:800
|
7178 |
+
msgid "Select your base country and state"
|
7179 |
+
msgstr ""
|
7180 |
+
|
7181 |
+
#: includes/free/loader.php:805
|
7182 |
+
msgid "Tax Rates"
|
7183 |
+
msgstr ""
|
7184 |
+
|
7185 |
+
#: includes/free/loader.php:806
|
7186 |
+
msgid "Add tax rates for specific regions. Enter a percentage, such as 5 for 5%"
|
7187 |
+
msgstr ""
|
7188 |
+
|
7189 |
+
#: includes/free/loader.php:812
|
7190 |
+
msgid "Fallback Tax Rate"
|
7191 |
+
msgstr ""
|
7192 |
+
|
7193 |
+
#: includes/free/loader.php:813
|
7194 |
+
msgid ""
|
7195 |
+
"Customers not in a specific rate will be charged this tax rate. Enter a "
|
7196 |
+
"percentage, such as 5 for 5%"
|
7197 |
+
msgstr ""
|
7198 |
+
|
7199 |
+
#: includes/free/loader.php:821 includes/free/loader.php:826
|
7200 |
+
msgid "Show prices with tax"
|
7201 |
+
msgstr ""
|
7202 |
+
|
7203 |
+
#: includes/free/loader.php:822
|
7204 |
+
msgid "If frontend prices will include tax or not"
|
7205 |
+
msgstr ""
|
7206 |
+
|
7207 |
+
#: includes/free/loader.php:827
|
7208 |
+
msgid "Show prices without tax"
|
7209 |
+
msgstr ""
|
7210 |
+
|
7211 |
+
#: includes/free/loader.php:835
|
7212 |
+
msgid "Enable Content Filtering"
|
7213 |
+
msgstr ""
|
7214 |
+
|
7215 |
+
#: includes/free/loader.php:836
|
7216 |
+
msgid "Enable Content Filtering in frontend"
|
7217 |
+
msgstr ""
|
7218 |
+
|
7219 |
+
#: includes/free/loader.php:843
|
7220 |
+
msgid "Keyword Dictionary"
|
7221 |
+
msgstr ""
|
7222 |
+
|
7223 |
+
#: includes/free/loader.php:844
|
7224 |
+
msgid "Enter Keywords to Remove. Separate keywords with commas."
|
7225 |
+
msgstr ""
|
7226 |
+
|
7227 |
+
#: includes/free/loader.php:851
|
7228 |
+
msgid "Filter main content"
|
7229 |
+
msgstr ""
|
7230 |
+
|
7231 |
+
#: includes/free/loader.php:852
|
7232 |
+
msgid "Choose which content to filter."
|
7233 |
+
msgstr ""
|
7234 |
+
|
7235 |
+
#: includes/free/loader.php:855
|
7236 |
+
msgid "Post Titles"
|
7237 |
+
msgstr ""
|
7238 |
+
|
7239 |
+
#: includes/free/loader.php:872
|
7240 |
msgid "Upgrade to Pro"
|
7241 |
msgstr ""
|
7242 |
|
7243 |
+
#: includes/free/loader.php:1309
|
7244 |
+
msgid "Credit Card"
|
7245 |
+
msgstr ""
|
7246 |
+
|
7247 |
+
#: includes/free/loader.php:1331
|
7248 |
+
msgid "Taxonomy Restriction "
|
7249 |
+
msgstr ""
|
7250 |
+
|
7251 |
+
#: includes/free/loader.php:1349
|
7252 |
+
msgid "Choose the taxonomy terms you want to enable for this pack:"
|
7253 |
+
msgstr ""
|
7254 |
+
|
7255 |
+
#: includes/free/post-form-templates/easy_digital_download.php:21
|
7256 |
+
msgid "EDD Download"
|
7257 |
+
msgstr ""
|
7258 |
+
|
7259 |
#: includes/free/post-form-templates/the_events_calendar.php:13
|
7260 |
msgid "The Events Calendar"
|
7261 |
msgstr ""
|
7280 |
msgid "Write the full description of your event"
|
7281 |
msgstr ""
|
7282 |
|
7283 |
+
#: includes/free/post-form-templates/the_events_calendar.php:54
|
7284 |
msgid "Event Start"
|
7285 |
msgstr ""
|
7286 |
|
7287 |
+
#: includes/free/post-form-templates/the_events_calendar.php:67
|
7288 |
msgid "Event End"
|
7289 |
msgstr ""
|
7290 |
|
7291 |
+
#: includes/free/post-form-templates/the_events_calendar.php:80
|
7292 |
msgid "All Day Event"
|
7293 |
msgstr ""
|
7294 |
|
7295 |
+
#: includes/free/post-form-templates/the_events_calendar.php:95
|
7296 |
msgid "Event Website"
|
7297 |
msgstr ""
|
7298 |
|
7299 |
+
#: includes/free/post-form-templates/the_events_calendar.php:106
|
7300 |
msgid "Currency Symbol"
|
7301 |
msgstr ""
|
7302 |
|
7303 |
+
#: includes/free/post-form-templates/the_events_calendar.php:130
|
7304 |
msgid "Upload the main image of your event"
|
7305 |
msgstr ""
|
7306 |
|
7307 |
+
#: includes/free/post-form-templates/the_events_calendar.php:142
|
7308 |
msgid "Provide a short description of this event (optional)"
|
7309 |
msgstr ""
|
7310 |
|
7311 |
+
#: includes/free/post-form-templates/the_events_calendar.php:157
|
7312 |
msgid "Event Tags"
|
7313 |
msgstr ""
|
7314 |
|
7315 |
+
#: includes/free/post-form-templates/the_events_calendar.php:174
|
7316 |
msgid "This page is restricted. Please Log in / Register to view this page."
|
7317 |
msgstr ""
|
7318 |
|
7319 |
+
#: includes/free/post-form-templates/the_events_calendar.php:177
|
7320 |
msgid "Create Event"
|
7321 |
msgstr ""
|
7322 |
|
7323 |
+
#: includes/free/post-form-templates/the_events_calendar.php:180
|
7324 |
msgid ""
|
7325 |
"Event has been updated successfully. <a target=\"_blank\" "
|
7326 |
"href=\"%link%\">View event</a>"
|
7327 |
msgstr ""
|
7328 |
|
7329 |
+
#: includes/free/post-form-templates/the_events_calendar.php:182
|
7330 |
msgid "Update Event"
|
7331 |
msgstr ""
|
7332 |
|
7338 |
msgid "Create a simple product form for WooCommerce."
|
7339 |
msgstr ""
|
7340 |
|
7341 |
+
#: includes/free/subscription.php:14
|
7342 |
+
msgid "Recurring "
|
7343 |
+
msgstr ""
|
7344 |
+
|
7345 |
+
#: includes/free/subscription.php:18
|
7346 |
msgid "Enable Recurring Payment"
|
7347 |
msgstr ""
|
7348 |
|
7454 |
msgid "Submit & Deactivate"
|
7455 |
msgstr ""
|
7456 |
|
7457 |
+
#: lib/class.settings-api.php:409
|
7458 |
msgid "Choose File"
|
7459 |
msgstr ""
|
7460 |
|
7765 |
msgid "CSV"
|
7766 |
msgstr ""
|
7767 |
|
7768 |
+
#: wpuf-functions.php:1052
|
7769 |
msgid "Directions »"
|
7770 |
msgstr ""
|
7771 |
|
7772 |
+
#: wpuf-functions.php:2290
|
|
|
|
|
|
|
|
|
7773 |
msgid "United Arab Emirates Dirham"
|
7774 |
msgstr ""
|
7775 |
|
7776 |
+
#: wpuf-functions.php:2295
|
7777 |
msgid "Australian Dollars"
|
7778 |
msgstr ""
|
7779 |
|
7780 |
+
#: wpuf-functions.php:2300
|
7781 |
msgid "Argentine Peso"
|
7782 |
msgstr ""
|
7783 |
|
7784 |
+
#: wpuf-functions.php:2305
|
7785 |
msgid "Bangladeshi Taka"
|
7786 |
msgstr ""
|
7787 |
|
7788 |
+
#: wpuf-functions.php:2310
|
7789 |
msgid "Brazilian Real"
|
7790 |
msgstr ""
|
7791 |
|
7792 |
+
#: wpuf-functions.php:2315
|
7793 |
msgid "Bulgarian Lev"
|
7794 |
msgstr ""
|
7795 |
|
7796 |
+
#: wpuf-functions.php:2320
|
7797 |
msgid "Canadian Dollars"
|
7798 |
msgstr ""
|
7799 |
|
7800 |
+
#: wpuf-functions.php:2325
|
7801 |
msgid "Chilean Peso"
|
7802 |
msgstr ""
|
7803 |
|
7804 |
+
#: wpuf-functions.php:2330
|
7805 |
msgid "Chinese Yuan"
|
7806 |
msgstr ""
|
7807 |
|
7808 |
+
#: wpuf-functions.php:2335
|
7809 |
msgid "Colombian Peso"
|
7810 |
msgstr ""
|
7811 |
|
7812 |
+
#: wpuf-functions.php:2340
|
7813 |
msgid "Czech Koruna"
|
7814 |
msgstr ""
|
7815 |
|
7816 |
+
#: wpuf-functions.php:2345
|
7817 |
msgid "Danish Krone"
|
7818 |
msgstr ""
|
7819 |
|
7820 |
+
#: wpuf-functions.php:2350
|
7821 |
msgid "Dominican Peso"
|
7822 |
msgstr ""
|
7823 |
|
7824 |
+
#: wpuf-functions.php:2355
|
7825 |
msgid "Algerian Dinar"
|
7826 |
msgstr ""
|
7827 |
|
7828 |
+
#: wpuf-functions.php:2360
|
7829 |
msgid "Euros"
|
7830 |
msgstr ""
|
7831 |
|
7832 |
+
#: wpuf-functions.php:2365
|
7833 |
msgid "Hong Kong Dollar"
|
7834 |
msgstr ""
|
7835 |
|
7836 |
+
#: wpuf-functions.php:2370
|
7837 |
msgid "Croatia kuna"
|
7838 |
msgstr ""
|
7839 |
|
7840 |
+
#: wpuf-functions.php:2375
|
7841 |
msgid "Hungarian Forint"
|
7842 |
msgstr ""
|
7843 |
|
7844 |
+
#: wpuf-functions.php:2380
|
7845 |
msgid "Icelandic krona"
|
7846 |
msgstr ""
|
7847 |
|
7848 |
+
#: wpuf-functions.php:2385
|
7849 |
msgid "Indonesia Rupiah"
|
7850 |
msgstr ""
|
7851 |
|
7852 |
+
#: wpuf-functions.php:2390
|
7853 |
msgid "Indian Rupee"
|
7854 |
msgstr ""
|
7855 |
|
7856 |
+
#: wpuf-functions.php:2395
|
7857 |
msgid "Mauritian Rupee"
|
7858 |
msgstr ""
|
7859 |
|
7860 |
+
#: wpuf-functions.php:2400
|
7861 |
msgid "Nepali Rupee"
|
7862 |
msgstr ""
|
7863 |
|
7864 |
+
#: wpuf-functions.php:2405
|
7865 |
msgid "Israeli Shekel"
|
7866 |
msgstr ""
|
7867 |
|
7868 |
+
#: wpuf-functions.php:2410
|
7869 |
msgid "Japanese Yen"
|
7870 |
msgstr ""
|
7871 |
|
7872 |
+
#: wpuf-functions.php:2415
|
7873 |
msgid "Lao Kip"
|
7874 |
msgstr ""
|
7875 |
|
7876 |
+
#: wpuf-functions.php:2420
|
7877 |
msgid "South Korean Won"
|
7878 |
msgstr ""
|
7879 |
|
7880 |
+
#: wpuf-functions.php:2425
|
7881 |
msgid "Malaysian Ringgits"
|
7882 |
msgstr ""
|
7883 |
|
7884 |
+
#: wpuf-functions.php:2430
|
7885 |
msgid "Mexican Peso"
|
7886 |
msgstr ""
|
7887 |
|
7888 |
+
#: wpuf-functions.php:2435
|
7889 |
msgid "Nigerian Naira"
|
7890 |
msgstr ""
|
7891 |
|
7892 |
+
#: wpuf-functions.php:2440
|
7893 |
msgid "Norwegian Krone"
|
7894 |
msgstr ""
|
7895 |
|
7896 |
+
#: wpuf-functions.php:2445
|
7897 |
msgid "New Zealand Dollar"
|
7898 |
msgstr ""
|
7899 |
|
7900 |
+
#: wpuf-functions.php:2450
|
7901 |
msgid "Namibian dollar"
|
7902 |
msgstr ""
|
7903 |
|
7904 |
+
#: wpuf-functions.php:2455
|
7905 |
msgid "Omani Rial"
|
7906 |
msgstr ""
|
7907 |
|
7908 |
+
#: wpuf-functions.php:2460
|
7909 |
msgid "Iranian Rial"
|
7910 |
msgstr ""
|
7911 |
|
7912 |
+
#: wpuf-functions.php:2465
|
7913 |
msgid "Pakistani Rupee"
|
7914 |
msgstr ""
|
7915 |
|
7916 |
+
#: wpuf-functions.php:2470
|
7917 |
msgid "Paraguayan Guaraní"
|
7918 |
msgstr ""
|
7919 |
|
7920 |
+
#: wpuf-functions.php:2475
|
7921 |
msgid "Philippine Pesos"
|
7922 |
msgstr ""
|
7923 |
|
7924 |
+
#: wpuf-functions.php:2480
|
7925 |
msgid "Polish Zloty"
|
7926 |
msgstr ""
|
7927 |
|
7928 |
+
#: wpuf-functions.php:2485
|
7929 |
msgid "Pounds Sterling"
|
7930 |
msgstr ""
|
7931 |
|
7932 |
+
#: wpuf-functions.php:2490
|
7933 |
msgid "Romanian Leu"
|
7934 |
msgstr ""
|
7935 |
|
7936 |
+
#: wpuf-functions.php:2495
|
7937 |
msgid "Russian Ruble"
|
7938 |
msgstr ""
|
7939 |
|
7940 |
+
#: wpuf-functions.php:2500
|
7941 |
msgid "Saudi Riyal"
|
7942 |
msgstr ""
|
7943 |
|
7944 |
+
#: wpuf-functions.php:2505
|
7945 |
msgid "Singapore Dollar"
|
7946 |
msgstr ""
|
7947 |
|
7948 |
+
#: wpuf-functions.php:2510
|
7949 |
msgid "South African rand"
|
7950 |
msgstr ""
|
7951 |
|
7952 |
+
#: wpuf-functions.php:2515
|
7953 |
msgid "Swedish Krona"
|
7954 |
msgstr ""
|
7955 |
|
7956 |
+
#: wpuf-functions.php:2520
|
7957 |
msgid "Swiss Franc"
|
7958 |
msgstr ""
|
7959 |
|
7960 |
+
#: wpuf-functions.php:2525
|
7961 |
msgid "Taiwan New Dollars"
|
7962 |
msgstr ""
|
7963 |
|
7964 |
+
#: wpuf-functions.php:2530
|
7965 |
msgid "Thai Baht"
|
7966 |
msgstr ""
|
7967 |
|
7968 |
+
#: wpuf-functions.php:2535
|
7969 |
msgid "Turkish Lira"
|
7970 |
msgstr ""
|
7971 |
|
7972 |
+
#: wpuf-functions.php:2540
|
7973 |
msgid "Trinidad and Tobago Dollar"
|
7974 |
msgstr ""
|
7975 |
|
7976 |
+
#: wpuf-functions.php:2545
|
7977 |
msgid "US Dollar"
|
7978 |
msgstr ""
|
7979 |
|
7980 |
+
#: wpuf-functions.php:2550
|
7981 |
msgid "Vietnamese Dong"
|
7982 |
msgstr ""
|
7983 |
|
7984 |
+
#: wpuf-functions.php:2555
|
7985 |
msgid "Egyptian Pound"
|
7986 |
msgstr ""
|
7987 |
|
7988 |
+
#: wpuf-functions.php:2560
|
7989 |
msgid "Jordanian dinar"
|
7990 |
msgstr ""
|
7991 |
|
7992 |
+
#: wpuf-functions.php:3493
|
7993 |
msgid "None"
|
7994 |
msgstr ""
|
7995 |
|
8009 |
msgid "Your Post Has Been Expired"
|
8010 |
msgstr ""
|
8011 |
|
8012 |
+
#: wpuf.php:453
|
8013 |
msgid ""
|
8014 |
"<p style=\"font-size: 13px\">\n"
|
8015 |
" <strong class=\"highlight-text\" "
|
8022 |
" </p>"
|
8023 |
msgstr ""
|
8024 |
|
8025 |
+
#: wpuf.php:470
|
8026 |
msgid "Update WP User Frontend Pro Now"
|
8027 |
msgstr ""
|
8028 |
|
8029 |
+
#: wpuf.php:474
|
8030 |
msgid "Update WP User Frontend Pro NOW"
|
8031 |
msgstr ""
|
8032 |
|
8033 |
+
#: wpuf.php:717
|
8034 |
msgid "Character limit reached"
|
8035 |
msgstr ""
|
8036 |
|
8037 |
+
#: wpuf.php:718
|
8038 |
msgid "Minimum character required "
|
8039 |
msgstr ""
|
8040 |
|
8041 |
+
#: wpuf.php:720
|
8042 |
msgid "Minimum word required "
|
8043 |
msgstr ""
|
8044 |
|
8045 |
+
#: wpuf.php:728
|
8046 |
msgid "Please Cancel Your Currently Active Pack first!"
|
8047 |
msgstr ""
|
8048 |
|
8049 |
+
#: wpuf.php:899
|
8050 |
msgid "Error: Nonce verification failed"
|
8051 |
msgstr ""
|
8052 |
|
8128 |
msgid "Searching…"
|
8129 |
msgstr ""
|
8130 |
|
8131 |
+
#: wpuf-functions.php:1521
|
8132 |
msgctxt "tag delimiter"
|
8133 |
msgid ","
|
8134 |
msgstr ""
|
lib/class.settings-api.php
CHANGED
@@ -139,6 +139,7 @@ class WeDevs_Settings_API {
|
|
139 |
'min' => isset( $option['min'] ) ? $option['min'] : '',
|
140 |
'max' => isset( $option['max'] ) ? $option['max'] : '',
|
141 |
'step' => isset( $option['step'] ) ? $option['step'] : '',
|
|
|
142 |
);
|
143 |
|
144 |
add_settings_field( $section . '[' . $option['name'] . ']', $option['label'], (isset($option['callback']) ? $option['callback'] : array($this, 'callback_' . $type )), $section, $section, $args );
|
@@ -177,10 +178,15 @@ class WeDevs_Settings_API {
|
|
177 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
178 |
$type = isset( $args['type'] ) ? $args['type'] : 'text';
|
179 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
|
|
|
180 |
|
181 |
-
$html = sprintf( '<input type="%1$s" class="%2$s-text" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder );
|
182 |
$html .= $this->get_field_description( $args );
|
183 |
|
|
|
|
|
|
|
|
|
184 |
echo $html;
|
185 |
}
|
186 |
|
@@ -206,10 +212,15 @@ class WeDevs_Settings_API {
|
|
206 |
$min = empty( $args['min'] ) ? '' : ' min="' . $args['min'] . '"';
|
207 |
$max = empty( $args['max'] ) ? '' : ' max="' . $args['max'] . '"';
|
208 |
$step = empty( $args['max'] ) ? '' : ' step="' . $args['step'] . '"';
|
|
|
209 |
|
210 |
-
$html = sprintf( '<input type="%1$s" class="%2$s-number" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s%7$s%8$s%9$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $min, $max, $step );
|
211 |
$html .= $this->get_field_description( $args );
|
212 |
|
|
|
|
|
|
|
|
|
213 |
echo $html;
|
214 |
}
|
215 |
|
@@ -219,16 +230,20 @@ class WeDevs_Settings_API {
|
|
219 |
* @param array $args settings field args
|
220 |
*/
|
221 |
function callback_checkbox( $args ) {
|
222 |
-
|
223 |
-
$
|
224 |
|
225 |
$html = '<fieldset>';
|
226 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s]">', $args['section'], $args['id'] );
|
227 |
$html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="off" />', $args['section'], $args['id'] );
|
228 |
-
$html .= sprintf( '<input type="checkbox" class="checkbox" id="wpuf-%1$s[%2$s]" name="%1$s[%2$s]" value="on" %3$s />', $args['section'], $args['id'], checked( $value, 'on', false ) );
|
229 |
$html .= sprintf( '%1$s</label>', $args['desc'] );
|
230 |
$html .= '</fieldset>';
|
231 |
|
|
|
|
|
|
|
|
|
232 |
echo $html;
|
233 |
}
|
234 |
|
@@ -238,11 +253,12 @@ class WeDevs_Settings_API {
|
|
238 |
* @param array $args settings field args
|
239 |
*/
|
240 |
function callback_multicheck( $args ) {
|
|
|
|
|
|
|
241 |
|
242 |
-
$value = $this->get_option( $args['id'], $args['section'], $args['std'] );
|
243 |
-
$value = $value ? $value : array();
|
244 |
$html = '<fieldset>';
|
245 |
-
$html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="" />', $args['section'], $args['id'] );
|
246 |
foreach ( $args['options'] as $key => $label ) {
|
247 |
$checked = in_array($key, $value) ? $key : '0';
|
248 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
|
@@ -253,6 +269,10 @@ class WeDevs_Settings_API {
|
|
253 |
$html .= $this->get_field_description( $args );
|
254 |
$html .= '</fieldset>';
|
255 |
|
|
|
|
|
|
|
|
|
256 |
echo $html;
|
257 |
}
|
258 |
|
@@ -262,19 +282,23 @@ class WeDevs_Settings_API {
|
|
262 |
* @param array $args settings field args
|
263 |
*/
|
264 |
function callback_radio( $args ) {
|
265 |
-
|
266 |
-
$
|
267 |
-
$html
|
268 |
|
269 |
foreach ( $args['options'] as $key => $label ) {
|
270 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
|
271 |
-
$html .= sprintf( '<input type="radio" class="radio" id="wpuf-%1$s[%2$s][%3$s]" name="%1$s[%2$s]" value="%3$s" %4$s />', $args['section'], $args['id'], $key, checked( $value, $key, false ) );
|
272 |
$html .= sprintf( '%1$s</label><br>', $label );
|
273 |
}
|
274 |
|
275 |
$html .= $this->get_field_description( $args );
|
276 |
$html .= '</fieldset>';
|
277 |
|
|
|
|
|
|
|
|
|
278 |
echo $html;
|
279 |
}
|
280 |
|
@@ -284,10 +308,11 @@ class WeDevs_Settings_API {
|
|
284 |
* @param array $args settings field args
|
285 |
*/
|
286 |
function callback_select( $args ) {
|
|
|
|
|
|
|
287 |
|
288 |
-
$
|
289 |
-
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
290 |
-
$html = sprintf( '<select class="%1$s" name="%2$s[%3$s]" id="%2$s[%3$s]">', $size, $args['section'], $args['id'] );
|
291 |
|
292 |
foreach ( $args['options'] as $key => $label ) {
|
293 |
$html .= sprintf( '<option value="%s"%s>%s</option>', $key, selected( $value, $key, false ), $label );
|
@@ -296,6 +321,10 @@ class WeDevs_Settings_API {
|
|
296 |
$html .= sprintf( '</select>' );
|
297 |
$html .= $this->get_field_description( $args );
|
298 |
|
|
|
|
|
|
|
|
|
299 |
echo $html;
|
300 |
}
|
301 |
|
@@ -309,10 +338,15 @@ class WeDevs_Settings_API {
|
|
309 |
$value = esc_textarea( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
310 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
311 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="'.$args['placeholder'].'"';
|
|
|
312 |
|
313 |
-
$html = sprintf( '<textarea rows="5" cols="55" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]"%4$s
|
314 |
$html .= $this->get_field_description( $args );
|
315 |
|
|
|
|
|
|
|
|
|
316 |
echo $html;
|
317 |
}
|
318 |
|
@@ -323,7 +357,13 @@ class WeDevs_Settings_API {
|
|
323 |
* @return string
|
324 |
*/
|
325 |
function callback_html( $args ) {
|
326 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
}
|
328 |
|
329 |
/**
|
@@ -362,16 +402,21 @@ class WeDevs_Settings_API {
|
|
362 |
* @param array $args settings field args
|
363 |
*/
|
364 |
function callback_file( $args ) {
|
365 |
-
|
366 |
-
$
|
367 |
-
$size
|
368 |
-
$id
|
369 |
-
$label
|
370 |
-
|
371 |
-
|
|
|
372 |
$html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
|
373 |
$html .= $this->get_field_description( $args );
|
374 |
|
|
|
|
|
|
|
|
|
375 |
echo $html;
|
376 |
}
|
377 |
|
@@ -381,13 +426,17 @@ class WeDevs_Settings_API {
|
|
381 |
* @param array $args settings field args
|
382 |
*/
|
383 |
function callback_password( $args ) {
|
|
|
|
|
|
|
384 |
|
385 |
-
$
|
386 |
-
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
387 |
-
|
388 |
-
$html = sprintf( '<input type="password" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
|
389 |
$html .= $this->get_field_description( $args );
|
390 |
|
|
|
|
|
|
|
|
|
391 |
echo $html;
|
392 |
}
|
393 |
|
@@ -397,13 +446,17 @@ class WeDevs_Settings_API {
|
|
397 |
* @param array $args settings field args
|
398 |
*/
|
399 |
function callback_color( $args ) {
|
|
|
|
|
|
|
400 |
|
401 |
-
$value =
|
402 |
-
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
403 |
-
|
404 |
-
$html = sprintf( '<input type="text" class="%1$s-text wp-color-picker-field" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" data-default-color="%5$s" />', $size, $args['section'], $args['id'], $value, $args['std'] );
|
405 |
$html .= $this->get_field_description( $args );
|
406 |
|
|
|
|
|
|
|
|
|
407 |
echo $html;
|
408 |
}
|
409 |
|
@@ -512,8 +565,10 @@ class WeDevs_Settings_API {
|
|
512 |
function show_forms() {
|
513 |
?>
|
514 |
<div class="metabox-holder">
|
515 |
-
<?php foreach ( $this->settings_sections as $form ) {
|
516 |
-
|
|
|
|
|
517 |
<form method="post" action="options.php">
|
518 |
<?php
|
519 |
do_action( 'wsa_form_top_' . $form['id'], $form );
|
@@ -528,7 +583,13 @@ class WeDevs_Settings_API {
|
|
528 |
<?php endif; ?>
|
529 |
</form>
|
530 |
</div>
|
531 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
</div>
|
533 |
<?php
|
534 |
$this->script();
|
@@ -609,7 +670,10 @@ class WeDevs_Settings_API {
|
|
609 |
// Finally, open the modal
|
610 |
file_frame.open();
|
611 |
});
|
612 |
-
|
|
|
|
|
|
|
613 |
</script>
|
614 |
|
615 |
<style type="text/css">
|
139 |
'min' => isset( $option['min'] ) ? $option['min'] : '',
|
140 |
'max' => isset( $option['max'] ) ? $option['max'] : '',
|
141 |
'step' => isset( $option['step'] ) ? $option['step'] : '',
|
142 |
+
'is_pro_preview' => ! empty( $option['is_pro_preview'] ) ? $option['is_pro_preview'] : false,
|
143 |
);
|
144 |
|
145 |
add_settings_field( $section . '[' . $option['name'] . ']', $option['label'], (isset($option['callback']) ? $option['callback'] : array($this, 'callback_' . $type )), $section, $section, $args );
|
178 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
179 |
$type = isset( $args['type'] ) ? $args['type'] : 'text';
|
180 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
|
181 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
182 |
|
183 |
+
$html = sprintf( '<input type="%1$s" class="%2$s-text" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s %7$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $disabled );
|
184 |
$html .= $this->get_field_description( $args );
|
185 |
|
186 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
187 |
+
$html .= wpuf_get_pro_preview_html();
|
188 |
+
}
|
189 |
+
|
190 |
echo $html;
|
191 |
}
|
192 |
|
212 |
$min = empty( $args['min'] ) ? '' : ' min="' . $args['min'] . '"';
|
213 |
$max = empty( $args['max'] ) ? '' : ' max="' . $args['max'] . '"';
|
214 |
$step = empty( $args['max'] ) ? '' : ' step="' . $args['step'] . '"';
|
215 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
216 |
|
217 |
+
$html = sprintf( '<input type="%1$s" class="%2$s-number" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s%7$s%8$s%9$s %10$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $min, $max, $step, $disabled );
|
218 |
$html .= $this->get_field_description( $args );
|
219 |
|
220 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
221 |
+
$html .= wpuf_get_pro_preview_html();
|
222 |
+
}
|
223 |
+
|
224 |
echo $html;
|
225 |
}
|
226 |
|
230 |
* @param array $args settings field args
|
231 |
*/
|
232 |
function callback_checkbox( $args ) {
|
233 |
+
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
234 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
235 |
|
236 |
$html = '<fieldset>';
|
237 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s]">', $args['section'], $args['id'] );
|
238 |
$html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="off" />', $args['section'], $args['id'] );
|
239 |
+
$html .= sprintf( '<input type="checkbox" class="checkbox" id="wpuf-%1$s[%2$s]" name="%1$s[%2$s]" value="on" %3$s %4$s />', $args['section'], $args['id'], checked( $value, 'on', false ), $disabled );
|
240 |
$html .= sprintf( '%1$s</label>', $args['desc'] );
|
241 |
$html .= '</fieldset>';
|
242 |
|
243 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
244 |
+
$html .= wpuf_get_pro_preview_html();
|
245 |
+
}
|
246 |
+
|
247 |
echo $html;
|
248 |
}
|
249 |
|
253 |
* @param array $args settings field args
|
254 |
*/
|
255 |
function callback_multicheck( $args ) {
|
256 |
+
$value = $this->get_option( $args['id'], $args['section'], $args['std'] );
|
257 |
+
$value = $value ? $value : [];
|
258 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
259 |
|
|
|
|
|
260 |
$html = '<fieldset>';
|
261 |
+
$html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="" %3$s />', $args['section'], $args['id'], $disabled );
|
262 |
foreach ( $args['options'] as $key => $label ) {
|
263 |
$checked = in_array($key, $value) ? $key : '0';
|
264 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
|
269 |
$html .= $this->get_field_description( $args );
|
270 |
$html .= '</fieldset>';
|
271 |
|
272 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
273 |
+
$html .= wpuf_get_pro_preview_html();
|
274 |
+
}
|
275 |
+
|
276 |
echo $html;
|
277 |
}
|
278 |
|
282 |
* @param array $args settings field args
|
283 |
*/
|
284 |
function callback_radio( $args ) {
|
285 |
+
$value = $this->get_option( $args['id'], $args['section'], $args['std'] );
|
286 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
287 |
+
$html = '<fieldset>';
|
288 |
|
289 |
foreach ( $args['options'] as $key => $label ) {
|
290 |
$html .= sprintf( '<label for="wpuf-%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
|
291 |
+
$html .= sprintf( '<input type="radio" class="radio" id="wpuf-%1$s[%2$s][%3$s]" name="%1$s[%2$s]" value="%3$s" %4$s %5$s />', $args['section'], $args['id'], $key, checked( $value, $key, false ), $disabled );
|
292 |
$html .= sprintf( '%1$s</label><br>', $label );
|
293 |
}
|
294 |
|
295 |
$html .= $this->get_field_description( $args );
|
296 |
$html .= '</fieldset>';
|
297 |
|
298 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
299 |
+
$html .= wpuf_get_pro_preview_html();
|
300 |
+
}
|
301 |
+
|
302 |
echo $html;
|
303 |
}
|
304 |
|
308 |
* @param array $args settings field args
|
309 |
*/
|
310 |
function callback_select( $args ) {
|
311 |
+
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
312 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
313 |
+
$size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
|
314 |
|
315 |
+
$html = sprintf( '<select class="%1$s" name="%2$s[%3$s]" id="%2$s[%3$s]" %4$s>', $size, $args['section'], $args['id'], $disabled );
|
|
|
|
|
316 |
|
317 |
foreach ( $args['options'] as $key => $label ) {
|
318 |
$html .= sprintf( '<option value="%s"%s>%s</option>', $key, selected( $value, $key, false ), $label );
|
321 |
$html .= sprintf( '</select>' );
|
322 |
$html .= $this->get_field_description( $args );
|
323 |
|
324 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
325 |
+
$html .= wpuf_get_pro_preview_html();
|
326 |
+
}
|
327 |
+
|
328 |
echo $html;
|
329 |
}
|
330 |
|
338 |
$value = esc_textarea( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
339 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
340 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="'.$args['placeholder'].'"';
|
341 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
342 |
|
343 |
+
$html = sprintf( '<textarea rows="5" cols="55" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]"%4$s %5$s>%6$s</textarea>', $size, $args['section'], $args['id'], $placeholder, $disabled, $value );
|
344 |
$html .= $this->get_field_description( $args );
|
345 |
|
346 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
347 |
+
$html .= wpuf_get_pro_preview_html();
|
348 |
+
}
|
349 |
+
|
350 |
echo $html;
|
351 |
}
|
352 |
|
357 |
* @return string
|
358 |
*/
|
359 |
function callback_html( $args ) {
|
360 |
+
$html = $this->get_field_description( $args );
|
361 |
+
|
362 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
363 |
+
$html .= wpuf_get_pro_preview_html();
|
364 |
+
}
|
365 |
+
|
366 |
+
echo $html;
|
367 |
}
|
368 |
|
369 |
/**
|
402 |
* @param array $args settings field args
|
403 |
*/
|
404 |
function callback_file( $args ) {
|
405 |
+
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
406 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
407 |
+
$size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
|
408 |
+
$id = $args['section'] . '[' . $args['id'] . ']';
|
409 |
+
$label = isset( $args['options']['button_label'] ) ? $args['options']['button_label'] : __( 'Choose File',
|
410 |
+
'wp-user-frontend' );
|
411 |
+
|
412 |
+
$html = sprintf( '<input type="text" class="%1$s-text wpsa-url" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" %5$s/>', $size, $args['section'], $args['id'], $value, $disabled );
|
413 |
$html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
|
414 |
$html .= $this->get_field_description( $args );
|
415 |
|
416 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
417 |
+
$html .= wpuf_get_pro_preview_html();
|
418 |
+
}
|
419 |
+
|
420 |
echo $html;
|
421 |
}
|
422 |
|
426 |
* @param array $args settings field args
|
427 |
*/
|
428 |
function callback_password( $args ) {
|
429 |
+
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
430 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
431 |
+
$size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
|
432 |
|
433 |
+
$html = sprintf( '<input type="password" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" %5$s/>', $size, $args['section'], $args['id'], $value, $disabled );
|
|
|
|
|
|
|
434 |
$html .= $this->get_field_description( $args );
|
435 |
|
436 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
437 |
+
$html .= wpuf_get_pro_preview_html();
|
438 |
+
}
|
439 |
+
|
440 |
echo $html;
|
441 |
}
|
442 |
|
446 |
* @param array $args settings field args
|
447 |
*/
|
448 |
function callback_color( $args ) {
|
449 |
+
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
450 |
+
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
|
451 |
+
$size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
|
452 |
|
453 |
+
$html = sprintf( '<input type="text" class="%1$s-text wp-color-picker-field" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" data-default-color="%5$s" %6$s />', $size, $args['section'], $args['id'], $value, $args['std'], $disabled );
|
|
|
|
|
|
|
454 |
$html .= $this->get_field_description( $args );
|
455 |
|
456 |
+
if ( ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ) {
|
457 |
+
$html .= wpuf_get_pro_preview_html();
|
458 |
+
}
|
459 |
+
|
460 |
echo $html;
|
461 |
}
|
462 |
|
565 |
function show_forms() {
|
566 |
?>
|
567 |
<div class="metabox-holder">
|
568 |
+
<?php foreach ( $this->settings_sections as $form ) {
|
569 |
+
$class = ! empty( $form['class'] ) ? esc_attr( $form['class'] ) : '';
|
570 |
+
?>
|
571 |
+
<div id="<?php echo $form['id']; ?>" class="group <?php echo $class; ?>" style="display: none;">
|
572 |
<form method="post" action="options.php">
|
573 |
<?php
|
574 |
do_action( 'wsa_form_top_' . $form['id'], $form );
|
583 |
<?php endif; ?>
|
584 |
</form>
|
585 |
</div>
|
586 |
+
<?php
|
587 |
+
}
|
588 |
+
if ( ! wpuf()->is_pro() ) {
|
589 |
+
echo wpuf_get_pro_preview_html();
|
590 |
+
echo wpuf_get_pro_preview_tooltip();
|
591 |
+
}
|
592 |
+
?>
|
593 |
</div>
|
594 |
<?php
|
595 |
$this->script();
|
670 |
// Finally, open the modal
|
671 |
file_frame.open();
|
672 |
});
|
673 |
+
|
674 |
+
// disable the pro preview checkboxes
|
675 |
+
$('span.pro-icon-title').siblings('input[type="checkbox"]').prop('disabled', true);
|
676 |
+
});
|
677 |
</script>
|
678 |
|
679 |
<style type="text/css">
|
readme.txt
CHANGED
@@ -1,109 +1,109 @@
|
|
1 |
-
=== WP User Frontend -
|
2 |
Contributors: tareq1988, nizamuddinbabu, wedevs
|
3 |
Donate link: https://tareq.co/donate/
|
4 |
Tags: Forms, registration, profile-builder, login, membership, frontend-post
|
5 |
Requires at least: 4.0
|
6 |
-
Tested up to: 6.
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 3.
|
9 |
License: GPLv2
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
-
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
-
WP User Frontend
|
17 |
|
18 |
<strong>FREE FEATURES</strong>
|
19 |
|
20 |
<strong>#1 Frontend Post Submission, Membership, Profile Builder & WordPress Editor Plugin</strong>
|
21 |
|
22 |
-
Unlimited post
|
23 |
|
24 |
<strong>Update Profile from the Frontend</strong>
|
25 |
|
26 |
This WordPress Profile Plugin allows registered users to edit their profile using default fields from frontend without having backend access. Unlimited fields can be added using PRO.
|
27 |
|
28 |
-
<strong>Flexibility for
|
29 |
|
30 |
-
Admins can manage users from frontend as well as configure from backend
|
31 |
|
32 |
-
<strong>Featured
|
33 |
|
34 |
-
Users can upload
|
35 |
|
36 |
-
<strong>Drag-
|
37 |
|
38 |
-
|
39 |
|
40 |
-
<strong>Publish
|
41 |
|
42 |
-
Easily add your published forms in Gutenberg editor with the WPUF block. When users want to publish
|
43 |
|
44 |
-
<strong>Use
|
45 |
|
46 |
All of the forms get an unique shortcode which you can paste on any page and the form will generate without breaking the style of your theme.
|
47 |
|
48 |
<strong>WordPress Guest Post Submission</strong>
|
49 |
|
50 |
-
Enable guests to post from your site frontend without registering with WP User Frontend, the WordPress User Registration
|
51 |
|
52 |
-
<strong>Role
|
53 |
|
54 |
-
Enable certain user roles to make posts,
|
55 |
|
56 |
-
<strong>Submit and
|
57 |
|
58 |
-
Users can upload images, fill out forms, even
|
59 |
|
60 |
-
<strong>Build
|
61 |
|
62 |
-
Taking the advantage of custom post types will allow you to work on any platform. WP User Frontend is WooCommerce supported, so you can also create products using our forms.
|
63 |
|
64 |
-
<strong>Set
|
65 |
|
66 |
-
Assign separate default
|
67 |
|
68 |
-
<strong>Custom Redirection
|
69 |
|
70 |
-
Redirect users to another page after logging in, form submission or
|
71 |
|
72 |
-
<strong>Earn with
|
73 |
|
74 |
-
Create subscription packs to
|
75 |
|
76 |
-
<strong>Schedule
|
77 |
|
78 |
-
Choose to keep your form active for certain dates. Set a message when form expires. And limit entries to as many as required. The PRO version also allows setting up post expiration.
|
79 |
|
80 |
-
<strong>Get
|
81 |
|
82 |
-
Trigger emails on multiple events like new form
|
83 |
|
84 |
<strong>Integrate with Advanced Custom Fields (ACF)</strong>
|
85 |
|
86 |
-
Connect form fields with ACF fields to view user submissions in ACF format from dashboard. Allow users to edit fields from
|
87 |
|
88 |
-
<strong>Create
|
89 |
|
90 |
Create and subscribe users to membership packs, allow pay per post, force subscription package purchase, and set fallback pay per post charges with this WordPress Membership Plugin.
|
91 |
|
92 |
-
<strong>Manage Transactions</strong>
|
93 |
|
94 |
-
Approve or
|
95 |
|
96 |
-
<strong>Manage
|
97 |
|
98 |
-
Install required WPUF pages in a click, delete post forms, registration forms or subscriptions in one go. Import forms from other places and export forms as JSON.
|
99 |
|
100 |
-
<strong>Custom Login
|
101 |
|
102 |
-
This WordPress Registration Form Plugin also allows to build registration
|
103 |
|
104 |
<strong>Display Custom Fields Data in Post</strong>
|
105 |
|
106 |
-
Custom
|
107 |
|
108 |
= How to download and install WPUF FREE =
|
109 |
|
@@ -127,35 +127,32 @@ Try an <a href="https://wedevs.com/in/wpuf/demo">Online Demo</a> of the FREE & P
|
|
127 |
<strong>WP User Frontend PRO – Premium Features</strong>
|
128 |
|
129 |
* 20+ Modules [BuddyPress, Paid Memberships Pro, Social Login, User Directory, User Activity, Stripe, MailChimp, Private Messaging, HTML Email Templates & more]
|
130 |
-
* Content restriction
|
131 |
-
* Menu restriction
|
132 |
-
* Post expiration facility
|
133 |
-
* Conditional logic
|
134 |
-
* Profile form builder
|
135 |
-
*
|
136 |
-
* Custom taxonomy support
|
137 |
-
* Post update notification
|
138 |
-
* Multistep forms
|
139 |
-
* Payment invoice
|
140 |
-
* Coupons
|
141 |
-
*
|
142 |
-
* Profile
|
143 |
-
*
|
144 |
-
*
|
145 |
-
*
|
146 |
-
*
|
147 |
-
*
|
148 |
-
*
|
149 |
-
*
|
150 |
-
*
|
151 |
-
*
|
152 |
-
*
|
153 |
-
*
|
154 |
-
*
|
155 |
-
|
156 |
-
* More email notification options
|
157 |
-
* Tax in payments
|
158 |
-
* Vendor registration template for Dokan, WC Marketplace, WC Vendors
|
159 |
|
160 |
<strong>Premium Modules</strong>
|
161 |
|
@@ -263,6 +260,18 @@ First you need to go to the dashboard, then when you click "edit", you'll be
|
|
263 |
redirected to the edit page with that post id. Then you'll see the edit post form.
|
264 |
|
265 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
v3.5.29 (15 Sep, 2022) =
|
267 |
|
268 |
* Enhancement - Short-code encryption updated for registration page
|
1 |
+
=== WP User Frontend - Registration, User Profile, Membership, Content Restriction, User Directory, and Frontend Post Submission Plugin ===
|
2 |
Contributors: tareq1988, nizamuddinbabu, wedevs
|
3 |
Donate link: https://tareq.co/donate/
|
4 |
Tags: Forms, registration, profile-builder, login, membership, frontend-post
|
5 |
Requires at least: 4.0
|
6 |
+
Tested up to: 6.1.1
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 3.6.0
|
9 |
License: GPLv2
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
+
Get frontend post, content access & restriction, user login & registration, subscription & membership, form builder, user directory & profile builder for your website.
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
+
WP User Frontend makes the frontend better for you! It includes frontend dashboard, frontend editor, publishing, and uploader for WordPress user profile, post submissions, and memberships.
|
17 |
|
18 |
<strong>FREE FEATURES</strong>
|
19 |
|
20 |
<strong>#1 Frontend Post Submission, Membership, Profile Builder & WordPress Editor Plugin</strong>
|
21 |
|
22 |
+
Unlimited post-type form creation. The forms give users the ability to create new posts and edit their profile all from the site frontend, so that the user does not need to enter the backend admin panel to do action.
|
23 |
|
24 |
<strong>Update Profile from the Frontend</strong>
|
25 |
|
26 |
This WordPress Profile Plugin allows registered users to edit their profile using default fields from frontend without having backend access. Unlimited fields can be added using PRO.
|
27 |
|
28 |
+
<strong>Flexibility for Admins</strong>
|
29 |
|
30 |
+
Admins can manage users from the frontend as well as configure from the backend who can access the dashboard.
|
31 |
|
32 |
+
<strong>Featured Image & Image Upload</strong>
|
33 |
|
34 |
+
Users can upload images from the frontend. They can also upload featured image for a post using the Image Upload option on the post content area.
|
35 |
|
36 |
+
<strong>Drag-and-drop Form Builder</strong>
|
37 |
|
38 |
+
Quickly build your form with necessary fields using drag-and-drops and real-time preview that updates as you make changes. You can also see how your form will look like eventually from the dashboard!
|
39 |
|
40 |
+
<strong>Publish Your WPUF Forms Using Gutenberg</strong>
|
41 |
|
42 |
+
Easily add your published forms in the Gutenberg editor with the WPUF block. When users want to publish a form on a page, they can simply select it from the drop-down included in the dedicated WPUF block for Gutenberg. The entire form automatically renders within the editor as well as on the page. It’s much easier than manually copying and pasting shortcodes! Saves you a ton of time and clicks. But you can also do it the old style using the shortcodes block.
|
43 |
|
44 |
+
<strong>Use Forms Anywhere Easily with Shortcodes</strong>
|
45 |
|
46 |
All of the forms get an unique shortcode which you can paste on any page and the form will generate without breaking the style of your theme.
|
47 |
|
48 |
<strong>WordPress Guest Post Submission</strong>
|
49 |
|
50 |
+
Enable guests to post from your site frontend without registering with WP User Frontend, the WordPress User Registration plugin. Choose to require name and email address to automatically register and allow them to comment on their posts. Allow email verification for guests.
|
51 |
|
52 |
+
<strong>Role Based Access Control</strong>
|
53 |
|
54 |
+
Enable certain user roles to make posts, while restricting others. Create the unauthorized message you want to show for the restricted users.
|
55 |
|
56 |
+
<strong>Submit and Update Anything from Frontend</strong>
|
57 |
|
58 |
+
Users can upload images, fill out forms, even enter data with multiple choice menus. Allow users to update their posts from the front end.
|
59 |
|
60 |
+
<strong>Build Customized Forms with Custom Post Types</strong>
|
61 |
|
62 |
+
Taking the advantage of custom post types will allow you to work on any platform. WP User Frontend is WooCommerce supported, so you can also create products for your WooCommerce site using our forms.
|
63 |
|
64 |
+
<strong>Set Post Status, Post Message, Update Post Button text</strong>
|
65 |
|
66 |
+
Assign separate default statuses for new posts or edited posts. Set the message you want to show to users after form submission, and change the text of submit buttons as you like.
|
67 |
|
68 |
+
<strong>Custom Redirection After Login and Submission</strong>
|
69 |
|
70 |
+
Redirect users to another page after logging in, form submission, or editing form submission.
|
71 |
|
72 |
+
<strong>Earn with Subscription Based Posting</strong>
|
73 |
|
74 |
+
Create subscription packs to earn through “Pay Per Post” payments. Submissions posted via these subscriptions have duration and posting limits.
|
75 |
|
76 |
+
<strong>Schedule Forms & Restrict Entries</strong>
|
77 |
|
78 |
+
Choose to keep your form active for certain dates. Set a message when the form expires. And limit entries to as many as required. The PRO version also allows setting up post expiration.
|
79 |
|
80 |
+
<strong>Get Reminded with Emails</strong>
|
81 |
|
82 |
+
Trigger emails on multiple events like new form submissions, guest posts, publish notifications, and new subscriptions. More email notifications can be set up with the PRO version.
|
83 |
|
84 |
<strong>Integrate with Advanced Custom Fields (ACF)</strong>
|
85 |
|
86 |
+
Connect form fields with ACF fields to view user submissions in ACF format from your dashboard. Allow users to edit fields from front end.
|
87 |
|
88 |
+
<strong>Create Subscription Packs, Pay-per-posts, & Receive Payments from Users</strong>
|
89 |
|
90 |
Create and subscribe users to membership packs, allow pay per post, force subscription package purchase, and set fallback pay per post charges with this WordPress Membership Plugin.
|
91 |
|
92 |
+
<strong>Manage Transactions and Membership</strong>
|
93 |
|
94 |
+
Approve or keep membership requests pending – you’re in complete control. View all details from a single screen.
|
95 |
|
96 |
+
<strong>Manage and Import/Export Forms Easily</strong>
|
97 |
|
98 |
+
Install required WPUF pages in a click, delete post forms, registration forms, or subscriptions in one go. Import forms from other places and export forms as JSON.
|
99 |
|
100 |
+
<strong>Custom Login & Registration Form</strong>
|
101 |
|
102 |
+
This WordPress Registration Form Plugin also allows you to build registration forms using default templates. More fields can be added with PRO.
|
103 |
|
104 |
<strong>Display Custom Fields Data in Post</strong>
|
105 |
|
106 |
+
Custom field data are viewable to visitors on frontend on single post pages. Admins can also disable this if they don’t want to display custom fields to everyone.
|
107 |
|
108 |
= How to download and install WPUF FREE =
|
109 |
|
127 |
<strong>WP User Frontend PRO – Premium Features</strong>
|
128 |
|
129 |
* 20+ Modules [BuddyPress, Paid Memberships Pro, Social Login, User Directory, User Activity, Stripe, MailChimp, Private Messaging, HTML Email Templates & more]
|
130 |
+
* Content restriction: Restrict or lock your exclusive content or pages or just a specific part of a content, based on registration, user roles, or subscriptions.
|
131 |
+
* Menu restriction: Lock or hide your website's menu links for certain users based on user roles, registration, or subscriptions.
|
132 |
+
* Post expiration facility: Automatically take down published posts on your sites after a given time based on subscription packs or specific forms.
|
133 |
+
* Conditional logic: Use conditional logic in your forms to show or hide fields, sections, and pages based on user selections.
|
134 |
+
* Profile form builder: Build your own custom profile form with as many fields you need.
|
135 |
+
* 20+ custom fields: Utilize fields like Text, Text Area, Dropdown, Multi Select, Hidden, Repeat, Phone, Time, Google Maps, and a lot more to customize your forms according to your requirements.
|
136 |
+
* Custom taxonomy support: Use custom taxonomies for WooCommerce products. Use them as drop-down, multi-select, or check-box lists.
|
137 |
+
* Post update notification: Get notified through email when an author updates a new post. Make the notification email dynamic using shortcodes.
|
138 |
+
* Multistep forms: Break down a form in multi steps easily from its settings.
|
139 |
+
* Payment invoice: For every successful transaction, an invoice is generated and emailed to the user. You can customize several fields of the invoice.
|
140 |
+
* Coupons: Create and manage coupons for your Subscription Packs.
|
141 |
+
* Personalized forms: Create different registration and profile edit forms for different user roles.
|
142 |
+
* User profiles in backend: The custom elements you create in Profile Forms are generated in the admin profile area too.
|
143 |
+
* Taxonomy restriction: Restrict users to post on a taxonomy/category based on subscription packs.
|
144 |
+
* Form layouts and form templates: Quickly create forms from pre-defined templates. Drag-and-drop fields to customize it further. Vendor registration templates are available for Dokan, WC Marketplace, and WC Vendors.
|
145 |
+
* WooCommerce support: Create a frontend interface to post and manage products of your WooCommerce powered site.
|
146 |
+
* Registration form builder: Use templates or build with your own set of registration elements to register users on your site.
|
147 |
+
* Assign new roles to forms: Create different registration forms for different user roles. New users will be assigned the role according to the form they used.
|
148 |
+
* Captcha support: Prevent bots and spam attacks using Google reCAPTCHA or Really Simple CAPTCHA.
|
149 |
+
* Update user profile information from frontend: No need to go to the backend to update your profile, do it from frontend.
|
150 |
+
* Files & attachments upload: Let users upload files and attachments or embed playable audio & video files using Post Forms.
|
151 |
+
* Avatar upload: Let users upload profile pictures. It supports Gravatar and locally uploaded avatars work side by side.
|
152 |
+
* Frontend Customizer: Allows admins to customize colors and labels for some important frontend elements and features of WPUF.
|
153 |
+
* More email notification options: Configure email notifications for the important events.
|
154 |
+
* Tax in payments: Apply custom country and state-wise tax rates to: Pay Per Post Forms and
|
155 |
+
Subscription Packs.
|
|
|
|
|
|
|
156 |
|
157 |
<strong>Premium Modules</strong>
|
158 |
|
260 |
redirected to the edit page with that post id. Then you'll see the edit post form.
|
261 |
|
262 |
== Changelog ==
|
263 |
+
= v3.6.0 (23 Nov, 2022) =
|
264 |
+
|
265 |
+
* Enhancement - Admin dashboard news and update meta-box added
|
266 |
+
* Enhancement - Upgrade prompts design
|
267 |
+
|
268 |
+
* Fix - Email style handled
|
269 |
+
* Fix - text-area type selection(Normal, Rich text-area, Teeny Rich text-area) bug in field options
|
270 |
+
* Fix - Frontend form validation
|
271 |
+
* Fix - Default value not saving for radio, dropdown, checkbox
|
272 |
+
|
273 |
+
* Update - sweetalert2 version
|
274 |
+
|
275 |
v3.5.29 (15 Sep, 2022) =
|
276 |
|
277 |
* Enhancement - Short-code encryption updated for registration page
|
wpuf-functions.php
CHANGED
@@ -824,8 +824,9 @@ function wpuf_get_gateways( $context = 'admin' ) {
|
|
824 |
$return[ $id ] = $gate['admin_label'];
|
825 |
} else {
|
826 |
$return[ $id ] = [
|
827 |
-
'label'
|
828 |
-
'icon'
|
|
|
829 |
];
|
830 |
}
|
831 |
}
|
@@ -1991,6 +1992,26 @@ function wpuf_get_post_form_templates() {
|
|
1991 |
return apply_filters( 'wpuf_get_post_form_templates', $integrations );
|
1992 |
}
|
1993 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1994 |
/**
|
1995 |
* Get countries
|
1996 |
*
|
@@ -3437,15 +3458,15 @@ function get_formatted_mail_body( $message, $subject ) {
|
|
3437 |
}
|
3438 |
|
3439 |
try {
|
3440 |
-
|
3441 |
// apply CSS styles inline for picky email clients
|
3442 |
$emogrifier = new Emogrifier( $content, $css );
|
3443 |
-
$
|
|
|
|
|
3444 |
} catch ( Exception $e ) {
|
3445 |
echo esc_html( $e->getMessage() );
|
3446 |
}
|
3447 |
|
3448 |
-
return $content;
|
3449 |
}
|
3450 |
|
3451 |
return $message;
|
@@ -4420,3 +4441,58 @@ function wpuf_get_image_sizes_array( $size = '' ) {
|
|
4420 |
}
|
4421 |
return $sizes;
|
4422 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
$return[ $id ] = $gate['admin_label'];
|
825 |
} else {
|
826 |
$return[ $id ] = [
|
827 |
+
'label' => $gate['checkout_label'],
|
828 |
+
'icon' => isset( $gate['icon'] ) ? $gate['icon'] : '',
|
829 |
+
'is_pro_preview' => ! empty( $gate['is_pro_preview'] ) ? esc_attr( $gate['is_pro_preview'] ) : false,
|
830 |
];
|
831 |
}
|
832 |
}
|
1992 |
return apply_filters( 'wpuf_get_post_form_templates', $integrations );
|
1993 |
}
|
1994 |
|
1995 |
+
/**
|
1996 |
+
* Get the pro form templates list
|
1997 |
+
*
|
1998 |
+
* @since 3.6.0
|
1999 |
+
*
|
2000 |
+
* @return mixed|null
|
2001 |
+
*/
|
2002 |
+
function wpuf_get_pro_form_previews() {
|
2003 |
+
$template_names = [];
|
2004 |
+
|
2005 |
+
/**
|
2006 |
+
* Filter pro post form templates to preview
|
2007 |
+
*
|
2008 |
+
* @since 3.6.0
|
2009 |
+
*
|
2010 |
+
* @param array $template_names
|
2011 |
+
*/
|
2012 |
+
return apply_filters( 'wpuf_get_pro_form_previews', $template_names );
|
2013 |
+
}
|
2014 |
+
|
2015 |
/**
|
2016 |
* Get countries
|
2017 |
*
|
3458 |
}
|
3459 |
|
3460 |
try {
|
|
|
3461 |
// apply CSS styles inline for picky email clients
|
3462 |
$emogrifier = new Emogrifier( $content, $css );
|
3463 |
+
$emogrifier->enableCssToHtmlMapping();
|
3464 |
+
|
3465 |
+
return $emogrifier->emogrify();
|
3466 |
} catch ( Exception $e ) {
|
3467 |
echo esc_html( $e->getMessage() );
|
3468 |
}
|
3469 |
|
|
|
3470 |
}
|
3471 |
|
3472 |
return $message;
|
4441 |
}
|
4442 |
return $sizes;
|
4443 |
}
|
4444 |
+
|
4445 |
+
/**
|
4446 |
+
* The HTML preview part when hovering over a pro settings field
|
4447 |
+
*
|
4448 |
+
* @since 3.6.0
|
4449 |
+
*
|
4450 |
+
* @return string
|
4451 |
+
*/
|
4452 |
+
function wpuf_get_pro_preview_html() {
|
4453 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
4454 |
+
return sprintf( '<div class="pro-field-overlay">
|
4455 |
+
<a href="%1$s" target="%2$s" class="%3$s">Upgrade to PRO<span class="pro-icon icon-white"> %4$s</span></a>
|
4456 |
+
</div>', esc_url( WPUF_Pro_Prompt::get_upgrade_to_pro_popup_url() ), '_blank', 'wpuf-button button-upgrade-to-pro',
|
4457 |
+
file_get_contents( $crown_icon ) );
|
4458 |
+
}
|
4459 |
+
|
4460 |
+
/**
|
4461 |
+
* The HTML tooltip when hovering over a pro settings field
|
4462 |
+
*
|
4463 |
+
* @since 3.6.0
|
4464 |
+
*
|
4465 |
+
* @return string
|
4466 |
+
*/
|
4467 |
+
function wpuf_get_pro_preview_tooltip() {
|
4468 |
+
$crown_icon = WPUF_ROOT . '/assets/images/crown.svg';
|
4469 |
+
$check_icon = WPUF_ROOT . '/assets/images/check.svg';
|
4470 |
+
$features = [
|
4471 |
+
'24/7 Priority Support',
|
4472 |
+
'20+ Premium Modules',
|
4473 |
+
'User Activity and Reports',
|
4474 |
+
'Private Messaging Option',
|
4475 |
+
'License for 20 websites',
|
4476 |
+
];
|
4477 |
+
$html = '<div class="wpuf-pro-field-tooltip">';
|
4478 |
+
$html .= '<h3 class="tooltip-header">Available in Pro. Also enjoy:</h3>';
|
4479 |
+
$html .= '<ul>';
|
4480 |
+
|
4481 |
+
foreach ( $features as $feature ) {
|
4482 |
+
$html .= sprintf(
|
4483 |
+
'<li><span class="tooltip-check">%1$s</span> %2$s</li>',
|
4484 |
+
file_get_contents( $check_icon ),
|
4485 |
+
esc_html( $feature )
|
4486 |
+
);
|
4487 |
+
}
|
4488 |
+
|
4489 |
+
$html .= '</ul>';
|
4490 |
+
$html .= sprintf( '<div class="pro-link"><a href="%1$s" target="%2$s" class="%3$s">Upgrade to PRO<span class="pro-icon icon-white"> %4$s</span></a></div>',
|
4491 |
+
esc_url( WPUF_Pro_Prompt::get_upgrade_to_pro_popup_url() ), '_blank', 'wpuf-button button-upgrade-to-pro',
|
4492 |
+
file_get_contents( $crown_icon ) );
|
4493 |
+
|
4494 |
+
$html .= '<i></i>';
|
4495 |
+
$html .= '</div>';
|
4496 |
+
|
4497 |
+
return $html;
|
4498 |
+
}
|
wpuf.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP User Frontend
|
|
4 |
Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
|
5 |
Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
|
6 |
Author: weDevs
|
7 |
-
Version: 3.
|
8 |
Author URI: https://wedevs.com/?utm_source=WPUF_Author_URI
|
9 |
License: GPL2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
@@ -12,7 +12,7 @@ Text Domain: wp-user-frontend
|
|
12 |
Domain Path: /languages
|
13 |
*/
|
14 |
|
15 |
-
define( 'WPUF_VERSION', '3.
|
16 |
define( 'WPUF_FILE', __FILE__ );
|
17 |
define( 'WPUF_ROOT', __DIR__ );
|
18 |
define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );
|
@@ -318,6 +318,7 @@ final class WP_User_Frontend {
|
|
318 |
include_once WPUF_ROOT . '/includes/class-whats-new.php';
|
319 |
include_once WPUF_ROOT . '/includes/class-acf.php';
|
320 |
include_once WPUF_ROOT . '/includes/class-privacy.php';
|
|
|
321 |
} else {
|
322 |
require_once WPUF_ROOT . '/class/frontend-dashboard.php';
|
323 |
require_once WPUF_ROOT . '/includes/free/class-registration.php';
|
@@ -355,9 +356,9 @@ final class WP_User_Frontend {
|
|
355 |
$this->container['customize'] = new WPUF_Customizer_Options();
|
356 |
$this->container['log'] = new WPUF_Log();
|
357 |
|
358 |
-
|
359 |
$this->container['dokan_integration'] = new WPUF_Dokan_Integration();
|
360 |
-
}
|
361 |
|
362 |
if ( class_exists( 'WCMp' ) ) {
|
363 |
$this->container['wcmp_integration'] = new WPUF_WCMp_Integration();
|
@@ -379,6 +380,7 @@ final class WP_User_Frontend {
|
|
379 |
$this->container['whats_new'] = new WPUF_Whats_New();
|
380 |
$this->container['wpuf_acf'] = new WPUF_ACF_Compatibility();
|
381 |
$this->container['privacy'] = new WPUF_Privacy();
|
|
|
382 |
} else {
|
383 |
$this->container['dashboard'] = new WPUF_Frontend_Dashboard();
|
384 |
$this->container['payment'] = new WPUF_Payment();
|
@@ -417,11 +419,7 @@ final class WP_User_Frontend {
|
|
417 |
|
418 |
require_once WPUF_ROOT . '/includes/class-upgrades.php';
|
419 |
|
420 |
-
$
|
421 |
-
|
422 |
-
if ( $upgrader->needs_update() ) {
|
423 |
-
$upgrader->perform_updates();
|
424 |
-
}
|
425 |
}
|
426 |
|
427 |
/**
|
@@ -694,7 +692,7 @@ final class WP_User_Frontend {
|
|
694 |
public function plugin_scripts() {
|
695 |
wp_enqueue_style( 'wpuf-css' );
|
696 |
wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
|
697 |
-
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [],
|
698 |
|
699 |
wp_enqueue_script( 'jquery' );
|
700 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
@@ -705,7 +703,7 @@ final class WP_User_Frontend {
|
|
705 |
wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', [ 'jquery', 'plupload-handlers', 'jquery-ui-sortable' ] );
|
706 |
wp_enqueue_script( 'wpuf-form' );
|
707 |
wp_enqueue_script( 'wpuf-subscriptions' );
|
708 |
-
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [],
|
709 |
|
710 |
wp_localize_script(
|
711 |
'wpuf-form', 'wpuf_frontend', apply_filters(
|
4 |
Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
|
5 |
Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
|
6 |
Author: weDevs
|
7 |
+
Version: 3.6.0
|
8 |
Author URI: https://wedevs.com/?utm_source=WPUF_Author_URI
|
9 |
License: GPL2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
12 |
Domain Path: /languages
|
13 |
*/
|
14 |
|
15 |
+
define( 'WPUF_VERSION', '3.6.0' );
|
16 |
define( 'WPUF_FILE', __FILE__ );
|
17 |
define( 'WPUF_ROOT', __DIR__ );
|
18 |
define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );
|
318 |
include_once WPUF_ROOT . '/includes/class-whats-new.php';
|
319 |
include_once WPUF_ROOT . '/includes/class-acf.php';
|
320 |
include_once WPUF_ROOT . '/includes/class-privacy.php';
|
321 |
+
include_once WPUF_ROOT . '/admin/dashboard-metabox.php';
|
322 |
} else {
|
323 |
require_once WPUF_ROOT . '/class/frontend-dashboard.php';
|
324 |
require_once WPUF_ROOT . '/includes/free/class-registration.php';
|
356 |
$this->container['customize'] = new WPUF_Customizer_Options();
|
357 |
$this->container['log'] = new WPUF_Log();
|
358 |
|
359 |
+
if ( class_exists( 'WeDevs_Dokan' ) ) {
|
360 |
$this->container['dokan_integration'] = new WPUF_Dokan_Integration();
|
361 |
+
}
|
362 |
|
363 |
if ( class_exists( 'WCMp' ) ) {
|
364 |
$this->container['wcmp_integration'] = new WPUF_WCMp_Integration();
|
380 |
$this->container['whats_new'] = new WPUF_Whats_New();
|
381 |
$this->container['wpuf_acf'] = new WPUF_ACF_Compatibility();
|
382 |
$this->container['privacy'] = new WPUF_Privacy();
|
383 |
+
$this->container['dashboard_mb'] = new Dashboard_Metabox();
|
384 |
} else {
|
385 |
$this->container['dashboard'] = new WPUF_Frontend_Dashboard();
|
386 |
$this->container['payment'] = new WPUF_Payment();
|
419 |
|
420 |
require_once WPUF_ROOT . '/includes/class-upgrades.php';
|
421 |
|
422 |
+
$this->container['upgrades'] = new WPUF_Upgrades();
|
|
|
|
|
|
|
|
|
423 |
}
|
424 |
|
425 |
/**
|
692 |
public function plugin_scripts() {
|
693 |
wp_enqueue_style( 'wpuf-css' );
|
694 |
wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
|
695 |
+
wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', [], '11.4.30' );
|
696 |
|
697 |
wp_enqueue_script( 'jquery' );
|
698 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
703 |
wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', [ 'jquery', 'plupload-handlers', 'jquery-ui-sortable' ] );
|
704 |
wp_enqueue_script( 'wpuf-form' );
|
705 |
wp_enqueue_script( 'wpuf-subscriptions' );
|
706 |
+
wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', [], '11.4.30' );
|
707 |
|
708 |
wp_localize_script(
|
709 |
'wpuf-form', 'wpuf_frontend', apply_filters(
|