WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress - Version 2.8.4

Version Description

Download this release

Release Info

Developer tareq1988
Plugin Icon 128x128 WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress
Version 2.8.4
Comparing to
See all releases

Code changes from version 2.8.3 to 2.8.4

Files changed (150) hide show
  1. .gitignore +0 -13
  2. admin/class-admin-settings.php +406 -0
  3. admin/class-admin-subscription.php +834 -0
  4. admin/class-admin-welcome.php +63 -0
  5. admin/class-tools.php +390 -0
  6. admin/form-builder/class-wpuf-admin-form-builder-ajax.php +74 -0
  7. admin/form-builder/class-wpuf-admin-form-builder.php +409 -0
  8. admin/form-builder/class-wpuf-form-builder-field-settings.php +975 -0
  9. admin/form-builder/views/form-builder.php +117 -0
  10. admin/form-handler.php +370 -0
  11. admin/form-template.php +216 -0
  12. admin/form.php +930 -0
  13. admin/html/form-settings-display.php +64 -0
  14. admin/html/form-settings-payment.php +87 -0
  15. admin/html/form-settings-post-edit.php +96 -0
  16. admin/html/form-settings-post.php +205 -0
  17. admin/html/form-submission-restriction.php +190 -0
  18. admin/html/modal.php +125 -0
  19. admin/html/support.php +556 -0
  20. admin/html/whats-new.php +194 -0
  21. admin/installer.php +181 -0
  22. admin/post-forms-list-table-view.php +42 -0
  23. admin/post-forms-list-table.php +423 -0
  24. admin/posting.php +448 -0
  25. admin/premium.php +235 -0
  26. admin/promotion.php +174 -0
  27. admin/settings-options.php +476 -0
  28. admin/subscribers.php +36 -0
  29. admin/template-post.php +296 -0
  30. admin/template.php +713 -0
  31. admin/tools.php +65 -0
  32. admin/transactions.php +27 -0
  33. admin/weforms.php +56 -0
  34. assets/css/admin.css +901 -0
  35. assets/css/admin/admin.css +1 -0
  36. assets/css/admin/wpuf-setup.css +1 -0
  37. assets/css/chosen/chosen-sprite.png +0 -0
  38. assets/css/chosen/chosen-sprite@2x.png +0 -0
  39. assets/css/chosen/chosen.css +436 -0
  40. assets/css/frontend-forms.css +1268 -0
  41. assets/css/images/ui-bg_diagonals-small_75_cccccc_40x40.png +0 -0
  42. assets/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  43. assets/css/images/ui-bg_flat_0_ffffff_40x100.png +0 -0
  44. assets/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  45. assets/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  46. assets/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  47. assets/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  48. assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  49. assets/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  50. assets/css/images/ui-icons_222222_256x240.png +0 -0
  51. assets/css/images/ui-icons_2e83ff_256x240.png +0 -0
  52. assets/css/images/ui-icons_454545_256x240.png +0 -0
  53. assets/css/images/ui-icons_888888_256x240.png +0 -0
  54. assets/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  55. assets/css/jquery-ui-1.9.1.custom.css +461 -0
  56. assets/css/jquery.smallipop.css +117 -0
  57. assets/css/wpuf-form-builder.css +1372 -0
  58. assets/css/wpuf.css +467 -0
  59. assets/images/active.png +0 -0
  60. assets/images/add.png +0 -0
  61. assets/images/arrow-move.png +0 -0
  62. assets/images/arrows.png +0 -0
  63. assets/images/completed.png +0 -0
  64. assets/images/cross.png +0 -0
  65. assets/images/del-pm.png +0 -0
  66. assets/images/del.png +0 -0
  67. assets/images/delete.png +0 -0
  68. assets/images/edit.png +0 -0
  69. assets/images/help.png +0 -0
  70. assets/images/help/bugs.svg +1 -0
  71. assets/images/help/customization.svg +1 -0
  72. assets/images/help/docs.svg +1 -0
  73. assets/images/help/like.svg +1 -0
  74. assets/images/help/support.svg +1 -0
  75. assets/images/icon-128x128.png +0 -0
  76. assets/images/icon-minus.png +0 -0
  77. assets/images/icon-plus.png +0 -0
  78. assets/images/inactive.png +0 -0
  79. assets/images/modules/Social-Media-Login.png +0 -0
  80. assets/images/modules/email-templates.png +0 -0
  81. assets/images/modules/message.gif +0 -0
  82. assets/images/modules/more.png +0 -0
  83. assets/images/modules/reports.png +0 -0
  84. assets/images/modules/wpuf-activity.png +0 -0
  85. assets/images/modules/wpuf-buddypress.png +0 -0
  86. assets/images/modules/wpuf-comment.png +0 -0
  87. assets/images/modules/wpuf-mailchimp.png +0 -0
  88. assets/images/modules/wpuf-mailpoet.png +0 -0
  89. assets/images/modules/wpuf-pmpro.png +0 -0
  90. assets/images/modules/wpuf-qr.png +0 -0
  91. assets/images/modules/wpuf-sms.png +0 -0
  92. assets/images/modules/wpuf-stripe.png +0 -0
  93. assets/images/modules/wpuf-ua.png +0 -0
  94. assets/images/modules/wpuf-ul.png +0 -0
  95. assets/images/no-image.png +0 -0
  96. assets/images/paypal.png +0 -0
  97. assets/images/premium/advanced-fields.png +0 -0
  98. assets/images/premium/conditional-logic.gif +0 -0
  99. assets/images/premium/content-restrictions.gif +0 -0
  100. assets/images/premium/coupon.gif +0 -0
  101. assets/images/premium/multi-step.gif +0 -0
  102. assets/images/premium/registration.gif +0 -0
  103. assets/images/processing.png +0 -0
  104. assets/images/recaptcha-placeholder.png +0 -0
  105. assets/images/remove.png +0 -0
  106. assets/images/templates/post.png +0 -0
  107. assets/images/templates/woocommerce.png +0 -0
  108. assets/images/tick.png +0 -0
  109. assets/images/ufp.png +0 -0
  110. assets/images/welcome/Content-Locking.svg +1 -0
  111. assets/images/welcome/Create-Database.svg +1 -0
  112. assets/images/welcome/Form-Builder.svg +1 -0
  113. assets/images/welcome/Guest-Posting.svg +1 -0
  114. assets/images/welcome/My-Account.svg +1 -0
  115. assets/images/welcome/Post-Taxonomies.svg +1 -0
  116. assets/images/welcome/Profile-Builder.png +0 -0
  117. assets/images/welcome/Profile-Builder.svg +1 -0
  118. assets/images/welcome/Registration-form.svg +1 -0
  119. assets/images/welcome/Subscription-Signup.svg +1 -0
  120. assets/images/welcome/Subscriptions.png +0 -0
  121. assets/images/welcome/Support.svg +1 -0
  122. assets/images/welcome/User.svg +1 -0
  123. assets/images/welcome/frontend-posting.png +0 -0
  124. assets/images/welcome/pay-per-post.svg +1 -0
  125. assets/images/welcome/welcome-video.png +0 -0
  126. assets/images/welcome/wpuf-logo.png +0 -0
  127. assets/images/whats-new/admin-bar.png +0 -0
  128. assets/images/whats-new/category.png +0 -0
  129. assets/images/whats-new/image_upload_label.png +0 -0
  130. assets/images/whats-new/limit.png +0 -0
  131. assets/images/whats-new/role-base.png +0 -0
  132. assets/images/whats-new/schedule.png +0 -0
  133. assets/images/whats-new/wizard.gif +0 -0
  134. assets/images/wpspin_light.gif +0 -0
  135. assets/images/wpuf-pro.png +0 -0
  136. assets/js-templates/form-components.php +800 -0
  137. assets/js/admin-profile-subs.js +10 -0
  138. assets/js/admin-shortcode.js +38 -0
  139. assets/js/admin/wpuf-enhanced-select.js +276 -0
  140. assets/js/admin/wpuf-enhanced-select.min.js +1 -0
  141. assets/js/admin/wpuf-setup.js +151 -0
  142. assets/js/admin/wpuf-setup.min.js +1 -0
  143. assets/js/chosen.jquery.js +1211 -0
  144. assets/js/conditional.js +321 -0
  145. assets/js/countries.json +245 -0
  146. assets/js/frontend-form.js +1016 -0
  147. assets/js/frontend-form.min.js +1 -0
  148. assets/js/jquery-blockui/jquery.blockUI.js +619 -0
  149. assets/js/jquery-blockui/jquery.blockUI.min.js +14 -0
  150. assets/js/jquery-ui-timepicker-addon.js +239 -0
.gitignore DELETED
@@ -1,13 +0,0 @@
1
- .DS_Store
2
- plugin-deploy.sh
3
- config.codekit
4
- export.sh
5
- .idea
6
- /.DS_Store
7
- nbproject
8
- node_modules
9
- includes/pro
10
- build
11
- secret.json
12
- log.txt
13
- npm-debug.log
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/class-admin-settings.php ADDED
@@ -0,0 +1,406 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * WordPress settings API demo class
5
+ *
6
+ * @author Tareq Hasan
7
+ */
8
+ class WPUF_Admin_Settings {
9
+
10
+ /**
11
+ * Settings API
12
+ *
13
+ * @var \WeDevs_Settings_API
14
+ */
15
+ private $settings_api;
16
+
17
+ /**
18
+ * Static instance of this class
19
+ *
20
+ * @var \self
21
+ */
22
+ private static $_instance;
23
+
24
+ /**
25
+ * public instance of this class
26
+ *
27
+ * @var \self
28
+ */
29
+ public $subscribers_list_table_obj;
30
+
31
+ /**
32
+ * The menu page hooks
33
+ *
34
+ * Used for checking if any page is under WPUF menu
35
+ *
36
+ * @var array
37
+ */
38
+ private $menu_pages = array();
39
+
40
+ public function __construct() {
41
+
42
+ if ( ! class_exists( 'WeDevs_Settings_API' ) ) {
43
+ require_once dirname( dirname( __FILE__ ) ) . '/lib/class.settings-api.php';
44
+ }
45
+
46
+ $this->settings_api = new WeDevs_Settings_API();
47
+
48
+ add_action( 'admin_init', array($this, 'admin_init') );
49
+ add_action( 'admin_menu', array($this, 'admin_menu') );
50
+
51
+ add_filter( 'parent_file', array($this, 'fix_parent_menu' ) );
52
+ add_filter( 'submenu_file', array($this, 'fix_submenu_file' ) );
53
+
54
+ add_action( 'admin_init', array($this, 'handle_tools_action') );
55
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) );
56
+ }
57
+
58
+ public static function init() {
59
+ if ( !self::$_instance ) {
60
+ self::$_instance = new self();
61
+ }
62
+
63
+ return self::$_instance;
64
+ }
65
+
66
+ function admin_init() {
67
+
68
+ //set the settings
69
+ $this->settings_api->set_sections( $this->get_settings_sections() );
70
+ $this->settings_api->set_fields( $this->get_settings_fields() );
71
+
72
+ //initialize settings
73
+ $this->settings_api->admin_init();
74
+ }
75
+
76
+ /**
77
+ * Register the admin menu
78
+ *
79
+ * @since 1.0
80
+ */
81
+ function admin_menu() {
82
+ global $_registered_pages;
83
+
84
+ $capability = wpuf_admin_role();
85
+
86
+ // Translation issue: Hook name change due to translate menu title
87
+ $this->menu_pages[] = add_menu_page( __( 'WP User Frontend', 'wpuf' ), __( 'User Frontend', '' ), $capability, 'wp-user-frontend', array($this, 'wpuf_post_forms_page'), 'data:image/svg+xml;base64,' . base64_encode( '<svg width="83px" height="76px" viewBox="0 0 83 76" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="wpuf-icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="ufp" fill-rule="nonzero" fill="#9EA3A8"><path d="M49.38,51.88 C49.503348,56.4604553 45.8999295,60.2784694 41.32,60.42 C36.7400705,60.2784694 33.136652,56.4604553 33.26,51.88 L33.26,40.23 L19,40.23 L19,51.88 C19,64.77 29,75.25 41.36,75.26 L41.36,75.26 C47.3622079,75.2559227 53.0954073,72.7693647 57.2,68.39 C61.4213559,63.9375842 63.7575868,58.0253435 63.72,51.89 L63.72,40.23 L49.38,40.23 L49.38,51.88 Z" id="Shape"></path><polygon id="Shape" points="32.96 0.59 0 0.59 3.77 16.68 32.96 16.68"></polygon><path d="M68,0 L49.75,0 L49.75,16.1 L68,16.1 C68.74,16.1 69.39,17.1 69.39,18.24 C69.39,19.38 68.74,20.38 68,20.38 L49.75,20.38 L49.75,36.5 L68,36.5 C76,36.5 82.5,28.31 82.5,18.25 C82.5,8.19 76,0 68,0 Z" id="Shape"></path><polygon id="Shape" points="32.96 20.41 5.31 20.41 9.07 36.5 32.96 36.5"></polygon></g></g></svg>' ), 55 );
88
+
89
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Post Forms', 'wpuf' ), __( 'Post Forms', 'wpuf' ), $capability, 'wpuf-post-forms', array( $this, 'wpuf_post_forms_page' ) );
90
+ remove_submenu_page( 'wp-user-frontend', 'wp-user-frontend' );
91
+
92
+ /**
93
+ * @since 2.3
94
+ */
95
+ do_action( 'wpuf_admin_menu_top' );
96
+
97
+ if ( !class_exists( 'WeForms' ) ) {
98
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'weForms', 'wpuf' ), __( 'Contact Form', 'wpuf' ), $capability, 'wpuf_weforms', array($this, 'weforms_page') );
99
+ }
100
+ if ( 'on' == wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' ) ) {
101
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Subscriptions', 'wpuf' ), __( 'Subscriptions', 'wpuf' ), $capability, 'edit.php?post_type=wpuf_subscription' );
102
+ }
103
+
104
+ do_action( 'wpuf_admin_menu' );
105
+
106
+ if ( 'on' == wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' ) ) {
107
+ $transactions_page = add_submenu_page( 'wp-user-frontend', __( 'Transactions', 'wpuf' ), __( 'Transactions', 'wpuf' ), $capability, 'wpuf_transaction', array($this, 'transactions_page') );
108
+ }
109
+
110
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Tools', 'wpuf' ), __( 'Tools', 'wpuf' ), $capability, 'wpuf_tools', array($this, 'tools_page') );
111
+
112
+ do_action( 'wpuf_admin_menu_bottom' );
113
+
114
+ if ( !class_exists( 'WP_User_Frontend_Pro' ) ) {
115
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Premium', 'wpuf' ), __( 'Premium', 'wpuf' ), $capability, 'wpuf_premium', array($this, 'premium_page') );
116
+ }
117
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Help', 'wpuf' ), __( '<span style="color:#f18500">Help</span>', 'wpuf' ), $capability, 'wpuf-support', array($this, 'support_page') );
118
+ $this->menu_pages[] = add_submenu_page( 'wp-user-frontend', __( 'Settings', 'wpuf' ), __( 'Settings', 'wpuf' ), $capability, 'wpuf-settings', array($this, 'plugin_page') );
119
+
120
+ $this->menu_pages[] = add_submenu_page( 'edit.php?post_type=wpuf_subscription', __( 'Subscribers', 'wpuf' ), __( 'Subscribers', 'wpuf' ), $capability, 'wpuf_subscribers', array($this, 'subscribers_page') );
121
+ $_registered_pages['user-frontend_page_wpuf_subscribers'] = true; // hack to work the nested subscribers page
122
+
123
+ // manually add subsription page
124
+ $this->menu_pages[] = 'edit-wpuf_subscription';
125
+ $this->menu_pages[] = 'wpuf_subscribers';
126
+ $this->menu_pages[] = 'user-frontend_page_wpuf_transaction';
127
+ if ( 'on' == wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' ) ) {
128
+ add_action( "load-$transactions_page", array( $this, 'transactions_screen_option' ) );
129
+ // add_action( "load-wpuf_subscribers", array( $this, 'subscribers_screen_option' ) );
130
+ }
131
+ }
132
+
133
+ /**
134
+ * WPUF Settings sections
135
+ *
136
+ * @since 1.0
137
+ * @return array
138
+ */
139
+ function get_settings_sections() {
140
+ return wpuf_settings_sections();
141
+ }
142
+
143
+ /**
144
+ * Returns all the settings fields
145
+ *
146
+ * @return array settings fields
147
+ */
148
+ function get_settings_fields() {
149
+ return wpuf_settings_fields();
150
+ }
151
+
152
+ function plugin_page() {
153
+ ?>
154
+ <div class="wrap">
155
+
156
+ <h2 style="margin-bottom: 15px;"><?php _e( 'Settings', 'wpuf' ) ?></h2>
157
+ <div class="wpuf-settings-wrap">
158
+ <?php
159
+ settings_errors();
160
+
161
+ $this->settings_api->show_navigation();
162
+ $this->settings_api->show_forms();
163
+ ?>
164
+ </div>
165
+ </div>
166
+ <?php
167
+ }
168
+
169
+ function transactions_page() {
170
+ require_once dirname( dirname( __FILE__ ) ) . '/admin/transactions.php';
171
+ }
172
+
173
+ /**
174
+ * Callback method for Post Forms submenu
175
+ *
176
+ * @since 2.5
177
+ *
178
+ * @return void
179
+ */
180
+ function wpuf_post_forms_page() {
181
+ $action = isset( $_GET['action'] ) ? $_GET['action'] : null;
182
+ $add_new_page_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' );
183
+
184
+ switch ( $action ) {
185
+ case 'edit':
186
+ require_once WPUF_ROOT . '/views/post-form.php';
187
+ break;
188
+
189
+ case 'add-new':
190
+ require_once WPUF_ROOT . '/views/post-form.php';
191
+ break;
192
+
193
+ default:
194
+ require_once WPUF_ROOT . '/admin/post-forms-list-table-view.php';
195
+ break;
196
+ }
197
+ }
198
+
199
+ function subscription_page() {
200
+ require_once dirname( dirname( __FILE__ ) ) . '/admin/subscription.php';
201
+ }
202
+
203
+ function subscribers_page($post_ID) {
204
+ include dirname( dirname( __FILE__ ) ) . '/admin/subscribers.php';
205
+ }
206
+
207
+ function weforms_page() {
208
+ require_once dirname( dirname( __FILE__ ) ) . '/admin/weforms.php';
209
+ }
210
+
211
+ function premium_page() {
212
+ require_once dirname( dirname( __FILE__ ) ) . '/admin/premium.php';
213
+ }
214
+
215
+ function tools_page() {
216
+ include dirname( dirname( __FILE__ ) ) . '/admin/tools.php';
217
+ }
218
+
219
+ function support_page() {
220
+ require_once dirname( dirname( __FILE__ ) ) . '/admin/html/support.php';
221
+ }
222
+
223
+ /**
224
+ * Check if the current page is a settings/menu page
225
+ *
226
+ * @param string $screen_id
227
+ *
228
+ * @return boolean
229
+ */
230
+ public function is_admin_menu_page( $screen ) {
231
+ if ( $screen && in_array( $screen->id, $this->menu_pages ) ) {
232
+ return true;
233
+ }
234
+
235
+ return false;
236
+ }
237
+
238
+ /**
239
+ * highlight the proper top level menu
240
+ *
241
+ * @link http://wordpress.org/support/topic/moving-taxonomy-ui-to-another-main-menu?replies=5#post-2432769
242
+ *
243
+ * @global obj $current_screen
244
+ *
245
+ * @param string $parent_file
246
+ *
247
+ * @return string
248
+ */
249
+ function fix_parent_menu( $parent_file ) {
250
+ $current_screen = get_current_screen();
251
+
252
+ $post_types = array( 'wpuf_forms', 'wpuf_profile', 'wpuf_subscription', 'wpuf_coupon');
253
+
254
+ if ( in_array( $current_screen->post_type, $post_types ) ) {
255
+ $parent_file = 'wp-user-frontend';
256
+ }
257
+
258
+ if ( 'wpuf_subscription' == $current_screen->post_type && $current_screen->base == 'admin_page_the-slug' ) {
259
+ $parent_file = 'wp-user-frontend';
260
+ }
261
+
262
+ return $parent_file;
263
+ }
264
+
265
+ /**
266
+ * Fix the submenu class in admin menu
267
+ *
268
+ * @since 2.6.0
269
+ *
270
+ * @param string $submenu_file
271
+ *
272
+ * @return string
273
+ */
274
+ public function fix_submenu_file( $submenu_file ) {
275
+ $current_screen = get_current_screen();
276
+
277
+ if ( 'wpuf_subscription' == $current_screen->post_type && $current_screen->base == 'admin_page_wpuf_subscribers' ) {
278
+ $submenu_file = 'edit.php?post_type=wpuf_subscription';
279
+ }
280
+
281
+ return $submenu_file;
282
+ }
283
+
284
+ /**
285
+ * Hanlde tools page action
286
+ *
287
+ * @return void
288
+ */
289
+ function handle_tools_action() {
290
+ if ( ! isset( $_GET['wpuf_action'] ) ) {
291
+ return;
292
+ }
293
+
294
+ check_admin_referer( 'wpuf-tools-action' );
295
+
296
+ if ( ! current_user_can( 'manage_options' ) ) {
297
+ return;
298
+ }
299
+
300
+ global $wpdb;
301
+
302
+ $action = $_GET['wpuf_action'];
303
+ $message = 'del_forms';
304
+
305
+ switch ($action) {
306
+ case 'clear_settings':
307
+ delete_option( 'wpuf_general' );
308
+ delete_option( 'wpuf_dashboard' );
309
+ delete_option( 'wpuf_profile' );
310
+ delete_option( 'wpuf_payment' );
311
+ delete_option( '_wpuf_page_created' );
312
+
313
+ $message = 'settings_cleared';
314
+ break;
315
+
316
+ case 'del_post_forms':
317
+ $this->delete_post_type( 'wpuf_forms' );
318
+ break;
319
+
320
+ case 'del_pro_forms':
321
+ $this->delete_post_type( 'wpuf_profile' );
322
+ break;
323
+
324
+ case 'del_subs':
325
+ $this->delete_post_type( 'wpuf_subscription' );
326
+ break;
327
+
328
+ case 'del_coupon':
329
+ $this->delete_post_type( 'wpuf_coupon' );
330
+ break;
331
+
332
+ case 'clear_transaction':
333
+ $wpdb->query( "TRUNCATE TABLE {$wpdb->prefix}wpuf_transaction");
334
+
335
+ $message = 'del_trans';
336
+ break;
337
+
338
+ default:
339
+ # code...
340
+ break;
341
+ }
342
+
343
+ wp_redirect( add_query_arg( array( 'msg' => $message ), admin_url( 'admin.php?page=wpuf_tools&action=tools' ) ) );
344
+ exit;
345
+ }
346
+
347
+ /**
348
+ * Delete all posts by a post type
349
+ *
350
+ * @param string $post_type
351
+ * @return void
352
+ */
353
+ function delete_post_type( $post_type ) {
354
+ $query = new WP_Query( array(
355
+ 'post_type' => $post_type,
356
+ 'posts_per_page' => -1,
357
+ 'post_status' => array( 'publish', 'draft', 'pending', 'trash' )
358
+ ) );
359
+
360
+ $posts = $query->get_posts();
361
+
362
+ if ( $posts ) {
363
+ foreach ($posts as $item) {
364
+ wp_delete_post( $item->ID, true );
365
+ }
366
+ }
367
+ }
368
+
369
+ /**
370
+ * Screen options.
371
+ *
372
+ * @return void
373
+ */
374
+ public function transactions_screen_option() {
375
+ $option = 'per_page';
376
+ $args = array(
377
+ 'label' => __( 'Number of items per page:', 'wpuf' ),
378
+ 'default' => 20,
379
+ 'option' => 'transactions_per_page'
380
+ );
381
+
382
+ add_screen_option( $option, $args );
383
+
384
+ if ( ! class_exists( 'WPUF_Transactions_List_Table' ) ) {
385
+ require_once WPUF_ROOT . '/class/transactions-list-table.php';
386
+ }
387
+
388
+ $this->transactions_list_table_obj = new WPUF_Transactions_List_Table();
389
+ }
390
+
391
+ /**
392
+ * Enqueue styles
393
+ *
394
+ * @return void
395
+ */
396
+ public function enqueue_styles() {
397
+
398
+ if ( ! $this->is_admin_menu_page( get_current_screen() ) && get_current_screen()->parent_base == 'edit' ) {
399
+ return;
400
+ }
401
+
402
+ wp_enqueue_style( 'wpuf-admin', WPUF_ASSET_URI . '/css/admin.css', false, WPUF_VERSION );
403
+ wp_enqueue_script( 'wpuf-admin-script', WPUF_ASSET_URI . '/js/wpuf-admin.js', array( 'jquery' ), false, WPUF_VERSION );
404
+ }
405
+
406
+ }
admin/class-admin-subscription.php ADDED
@@ -0,0 +1,834 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Manage Subscription packs
5
+ *
6
+ * @package WP User Frontend
7
+ */
8
+ class WPUF_Admin_Subscription {
9
+
10
+ /**
11
+ * The class instance holder
12
+ *
13
+ * @var \Object
14
+ */
15
+ private static $_instance;
16
+
17
+ /**
18
+ * The constructor
19
+ */
20
+ public function __construct() {
21
+
22
+ add_filter( 'post_updated_messages', array($this, 'form_updated_message') );
23
+
24
+ add_action( 'show_user_profile', array($this, 'profile_subscription_details'), 30 );
25
+ add_action( 'edit_user_profile', array($this, 'profile_subscription_details'), 30 );
26
+ add_action( 'personal_options_update', array($this, 'profile_subscription_update') );
27
+ add_action( 'edit_user_profile_update', array($this, 'profile_subscription_update') );
28
+ add_action( 'wp_ajax_wpuf_delete_user_package', array($this, 'delete_user_package') );
29
+
30
+ add_filter( 'manage_wpuf_subscription_posts_columns', array( $this, 'subscription_columns_head') );
31
+ add_action( 'manage_wpuf_subscription_posts_custom_column', array( $this, 'subscription_columns_content' ),10, 2 );
32
+
33
+ // display help link to docs
34
+ add_action( 'admin_notices', array( $this, 'add_help_link' ) );
35
+
36
+ // new subscription metabox hooks
37
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
38
+ add_action( 'admin_print_styles-post-new.php', array( $this, 'enqueue_scripts' ) );
39
+ add_action( 'admin_print_styles-post.php', array( $this, 'enqueue_scripts' ) );
40
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_profile_script' ) );
41
+ }
42
+
43
+ /**
44
+ * Get singleton instance
45
+ *
46
+ * @return [type] [description]
47
+ */
48
+ public static function getInstance() {
49
+ if ( !self::$_instance ) {
50
+ self::$_instance = new self();
51
+ }
52
+
53
+ return self::$_instance;
54
+ }
55
+
56
+ /**
57
+ * Add settings metaboxes
58
+ */
59
+ public function add_meta_boxes() {
60
+ add_meta_box( 'wpuf-metabox-subscription', __( 'Pack Description', 'wpuf' ), array($this, 'pack_description_metabox'), 'wpuf_subscription', 'normal', 'high' );
61
+ add_meta_box( 'wpuf_subs_metabox', 'Subscription Options', array( $this, 'subs_meta_box' ), 'wpuf_subscription' );
62
+ }
63
+
64
+ /**
65
+ * Custom post update message
66
+ *
67
+ * @param array $messages
68
+ * @return array
69
+ */
70
+ function form_updated_message( $messages ) {
71
+ $message = array(
72
+ 0 => '',
73
+ 1 => __( 'Subscription pack updated.', 'wpuf' ),
74
+ 2 => __( 'Custom field updated.', 'wpuf' ),
75
+ 3 => __( 'Custom field deleted.', 'wpuf' ),
76
+ 4 => __( 'Subscription pack updated.', 'wpuf' ),
77
+ 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Subscription pack restored to revision from %s', 'wpuf' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
78
+ 6 => __( 'Subscription pack published.', 'wpuf' ),
79
+ 7 => __( 'Subscription pack saved.', 'wpuf' ),
80
+ 8 => __( 'Subscription pack submitted.', 'wpuf' ),
81
+ 9 => '',
82
+ 10 => __( 'Subscription pack draft updated.', 'wpuf' ),
83
+ );
84
+
85
+ $messages['wpuf_subscription'] = $message;
86
+
87
+ return $messages;
88
+ }
89
+
90
+ /**
91
+ * Update user profile lock
92
+ *
93
+ * @param int $user_id
94
+ */
95
+ function profile_subscription_update( $user_id ) {
96
+ if ( !is_admin() && !current_user_can( 'edit_users' ) ) {
97
+ return;
98
+ }
99
+
100
+ if ( !isset( $_POST['pack_id'] ) ) {
101
+ return;
102
+ }
103
+
104
+ if ( isset( $_POST['wpuf_profile_mail_noti'] ) ) {
105
+ update_user_meta( $user_id, '_pack_assign_notification', $_POST['wpuf_profile_mail_noti'] );
106
+ }
107
+
108
+ $pack_id = $_POST['pack_id'];
109
+ $pack = WPUF_Subscription::get_subscription( $_POST['pack_id'] );
110
+
111
+ $user_pack = WPUF_Subscription::get_user_pack( $_POST['user_id'] );
112
+ if ( isset ( $user_pack['pack_id'] ) && $pack_id == $user_pack['pack_id'] ) {
113
+ //updating number of posts
114
+
115
+ if( isset( $user_pack['posts'] ) ) {
116
+
117
+ foreach( $user_pack['posts'] as $post_type => $post_num ) {
118
+ $user_pack['posts'][$post_type] = $_POST[$post_type];
119
+ }
120
+
121
+ }
122
+
123
+ //post expiration enable or disable
124
+
125
+ if( isset( $_POST['is_post_expiration_enabled'] ) ) {
126
+ $user_pack['_enable_post_expiration'] = $_POST['is_post_expiration_enabled'];
127
+ } else {
128
+ unset($user_pack['_enable_post_expiration']);
129
+ }
130
+
131
+ //updating post time
132
+
133
+ if( isset( $_POST['post_expiration_settings'] ) ) {
134
+ echo $user_pack['_post_expiration_time'] = $_POST['post_expiration_settings']['expiration_time_value'].' '.$_POST['post_expiration_settings']['expiration_time_type'];
135
+ }
136
+ if ( isset( $user_pack['recurring'] ) && $user_pack['recurring'] == 'yes' ) {
137
+ foreach ( $user_pack['posts'] as $type => $value ) {
138
+ $user_pack['posts'][$type] = isset( $_POST[$type] ) ? $_POST[$type] : 0;
139
+ }
140
+ } else {
141
+ foreach ( $user_pack['posts'] as $type => $value ) {
142
+ $user_pack['posts'][$type] = isset( $_POST[$type] ) ? $_POST[$type] : 0;
143
+ }
144
+ $user_pack['expire'] = isset( $_POST['expire'] ) ? wpuf_date2mysql( $_POST['expire'] ) : $user_pack['expire'];
145
+ }
146
+ wpuf_get_user( $user_id )->subscription()->update_meta( $user_pack );
147
+ } else {
148
+ if ( $pack_id == '-1' ) {
149
+ return;
150
+ }
151
+
152
+ $user_info = get_userdata( $user_id );
153
+
154
+ $data = array(
155
+ 'user_id' => $user_id,
156
+ 'status' => 'completed',
157
+ 'cost' => $pack->$meta_value['_billing_amount'][0],
158
+ 'post_id' => 0,
159
+ 'pack_id' => $pack_id,
160
+ 'payer_first_name' => $user_info->first_name,
161
+ 'payer_last_name' => $user_info->last_name,
162
+ 'payer_email' => $user_info->user_email,
163
+ 'payment_type' => 'bank',
164
+ 'payer_address' => null,
165
+ 'transaction_id' => 0,
166
+ 'created' => current_time( 'mysql' ),
167
+ 'profile_id' => null,
168
+ );
169
+
170
+ if ( isset( $user_pack['recurring'] ) && $user_pack['recurring'] == 'yes' ) {
171
+ $is_recurring = true;
172
+ } else {
173
+ $is_recurring = false;
174
+ }
175
+
176
+ WPUF_Payment::insert_payment( $data, $transaction_id, $is_recurring );
177
+ }
178
+ }
179
+
180
+ /**
181
+ * Subscription column headings
182
+ *
183
+ * @param array $head
184
+ *
185
+ * @return array
186
+ */
187
+ function subscription_columns_head( $head ) {
188
+ unset($head['date']);
189
+ $head['title'] = __( 'Pack Name', 'wpuf' );
190
+ $head['amount'] = __( 'Amount', 'wpuf' );
191
+ $head['subscribers'] = __( 'Subscribers', 'wpuf' );
192
+ $head['recurring'] = __( 'Recurring', 'wpuf' );
193
+ $head['duration'] = __( 'Duration', 'wpuf' );
194
+
195
+ return $head;
196
+ }
197
+
198
+ /**
199
+ * Susbcription lists column content
200
+ *
201
+ * @param string $column_name
202
+ * @param integer $post_ID
203
+ *
204
+ * @return void
205
+ */
206
+ function subscription_columns_content( $column_name, $post_ID ) {
207
+ switch ( $column_name ) {
208
+ case 'amount':
209
+
210
+ $amount = get_post_meta( $post_ID, '_billing_amount', true );
211
+ if ( intval($amount) == 0 ) {
212
+ $amount = __( 'Free', 'wpuf' );
213
+ } else {
214
+ $amount = wpuf_format_price( $amount );
215
+ }
216
+ echo $amount;
217
+ break;
218
+
219
+ case 'subscribers':
220
+
221
+ $users = WPUF_Subscription::init()->subscription_pack_users( $post_ID );
222
+
223
+ echo '<a href="'. admin_url( 'edit.php?post_type=wpuf_subscription&page=wpuf_subscribers&post_ID=' . $post_ID ) . '" />' . count( $users ) . '</a>';
224
+ break;
225
+
226
+ case 'recurring':
227
+
228
+ $recurring = get_post_meta( $post_ID, '_recurring_pay', true );
229
+ if ( $recurring == 'yes' ) {
230
+ _e( 'Yes', 'wpuf' );
231
+ } else {
232
+ _e( 'No', 'wpuf' );
233
+ }
234
+ break;
235
+
236
+ case 'duration':
237
+
238
+ $recurring_pay = get_post_meta( $post_ID, '_recurring_pay', true );
239
+ $billing_cycle_number = get_post_meta( $post_ID, '_billing_cycle_number', true );
240
+ $cycle_period = get_post_meta( $post_ID, '_cycle_period', true );
241
+
242
+ if ( $recurring_pay == 'yes' ) {
243
+ echo $billing_cycle_number .' '. $cycle_period . '\'s (cycle)';
244
+ } else {
245
+ $expiration_number = get_post_meta( $post_ID, '_expiration_number', true );
246
+ $expiration_period = get_post_meta( $post_ID, '_expiration_period', true );
247
+ echo $expiration_number .' '. $expiration_period . '\'s';
248
+ }
249
+ break;
250
+ }
251
+
252
+ }
253
+
254
+ function get_post_types( $post_types = null ) {
255
+
256
+ if ( ! $post_types ) {
257
+ $post_types = WPUF_Subscription::init()->get_all_post_type();
258
+ }
259
+
260
+ ob_start();
261
+
262
+ foreach ( $post_types as $key => $name ) {
263
+ $post_type_object = get_post_type_object( $key );
264
+ if ( $post_type_object ) { ?>
265
+ <tr>
266
+ <th><label for="wpuf-<?php echo esc_attr( $key ); ?>"><?php printf( 'Number of %s', $post_type_object->label ); ?></label></th>
267
+ <td>
268
+ <input type="text" size="20" style="" id="wpuf-<?php echo esc_attr( $key ); ?>" value="<?php echo intval( $name ); ?>" name="post_type_name[<?php echo esc_attr( $key ); ?>]" />
269
+ <div><span class="description"><span><?php printf( 'How many %s the user can list with this pack? Enter <strong>-1</strong> for unlimited.', $key ); ?></span></span></div>
270
+ </td>
271
+ </tr>
272
+ <?php
273
+ }
274
+ }
275
+
276
+ return ob_get_clean();
277
+ }
278
+
279
+ /**
280
+ * Replaces default post editor with a simiple rich editor
281
+ *
282
+ * @param integer $pack_id
283
+ *
284
+ * @return void
285
+ */
286
+ function pack_description_metabox( $pack_id = null ) {
287
+ global $post;
288
+
289
+ wp_editor( $post->post_content, 'post_content', array('editor_height' => 100, 'quicktags' => false, 'media_buttons' => false) );
290
+ }
291
+
292
+ /**
293
+ * Subscription settings metabox
294
+ *
295
+ * @return void
296
+ */
297
+ public function subs_meta_box() {
298
+ global $post;
299
+
300
+ $sub_meta = WPUF_Subscription::init()->get_subscription_meta( $post->ID, $post );
301
+
302
+ $hidden_recurring_class = ( $sub_meta['recurring_pay'] != 'yes' ) ? 'none' : '';
303
+ $hidden_trial_class = ( $sub_meta['trial_status'] != 'yes' ) ? 'none' : '';
304
+ $hidden_expire = ( $sub_meta['recurring_pay'] == 'yes' ) ? 'none' : '';
305
+ $is_post_exp_selected = isset($sub_meta['_enable_post_expiration']) && $sub_meta['_enable_post_expiration'] == 'on'?'checked':'';
306
+ $_post_expiration_time = explode(' ',isset($sub_meta['_post_expiration_time'])?$sub_meta['_post_expiration_time']:' ');
307
+ $time_value = isset($_post_expiration_time[0])?$_post_expiration_time[0]:1;
308
+ $time_type = isset($_post_expiration_time[1])?$_post_expiration_time[1]:'day';
309
+
310
+ $expired_post_status = isset($sub_meta['_expired_post_status'])?$sub_meta['_expired_post_status']:'';
311
+ $is_enable_mail_after_expired = isset($sub_meta['_enable_mail_after_expired']) && $sub_meta['_enable_mail_after_expired'] == 'on'?'checked':'';
312
+ $post_expiration_message = isset($sub_meta['_post_expiration_message'])?$sub_meta['_post_expiration_message']:'';;
313
+ ?>
314
+
315
+ <div class="wpuf-subscription-pack-settings">
316
+ <nav class="subscription-nav-tab">
317
+ <ul>
318
+ <li class="tab-current">
319
+ <a href="#wpuf-payment-settings">
320
+ <span class="dashicons dashicons-cart"></span>
321
+ <?php _e( 'Payment Settings', 'wpuf' ); ?>
322
+ </a>
323
+ </li>
324
+
325
+ <li>
326
+ <a href="#wpuf-post-restriction">
327
+ <span class="dashicons dashicons-admin-post"></span>
328
+ <?php _e( 'Posting Restriction', 'wpuf' ); ?>
329
+ </a>
330
+ </li>
331
+
332
+ <?php do_action( 'wpuf_admin_subs_nav_tab', $post ); ?>
333
+ </ul>
334
+ </nav>
335
+
336
+ <div class="subscription-nav-content">
337
+ <section id="wpuf-payment-settings">
338
+ <table class="form-table">
339
+ <tbody>
340
+ <tr>
341
+ <th><label for="wpuf-billing-amount">
342
+ <span class="wpuf-biling-amount wpuf-subcription-expire" style="display: <?php echo $hidden_expire; ?>;"><?php _e( 'Billing amount:', 'wpuf' ); ?></span>
343
+ <span class="wpuf-billing-cycle wpuf-recurring-child" style="display: <?php echo $hidden_recurring_class; ?>;"><?php _e( 'Billing amount each cycle:', 'wpuf' ); ?></span></label></th>
344
+ <td>
345
+ <?php echo wpuf_get_currency( 'symbol' ); ?>
346
+ <input type="text" size="20" style="" id="wpuf-billing-amount" value="<?php echo esc_attr( $sub_meta['billing_amount'] ); ?>" name="billing_amount" />
347
+ <div><span class="description"></span></div>
348
+ </td>
349
+ </tr>
350
+ <tr class="wpuf-subcription-expire" style="display: <?php echo $hidden_expire; ?>;">
351
+ <th><label for="wpuf-expiration-number"><?php _e( 'Expires In:', 'wpuf' ); ?></label></th>
352
+ <td>
353
+ <input type="text" size="20" style="" id="wpuf-expiration-number" value="<?php echo esc_attr( $sub_meta['expiration_number'] ); ?>" name="expiration_number" />
354
+
355
+ <select id="expiration-period" name="expiration_period">
356
+ <?php echo $this->option_field( $sub_meta['expiration_period'] ); ?>
357
+ </select>
358
+ <div><span class="description"></span></div>
359
+ </td>
360
+ </tr>
361
+
362
+ <?php do_action( 'wpuf_admin_subscription_detail', $sub_meta, $hidden_recurring_class, $hidden_trial_class, $this ); ?>
363
+ </tbody>
364
+ </table>
365
+ </section>
366
+ <section id="wpuf-post-restriction">
367
+ <table class="form-table">
368
+ <tbody>
369
+ <?php echo $this->get_post_types( $sub_meta['post_type_name'] ); ?>
370
+ <?php
371
+ // do_action( 'wpuf_admin_subscription_detail', $sub_meta, $hidden_recurring_class, $hidden_trial_class, $this );
372
+ ?>
373
+ <tr class="wpuf-metabox-post_expiration">
374
+
375
+ <th><?php _e( 'Post Expiration', 'wpuf' ); ?></th>
376
+
377
+ <td>
378
+ <label>
379
+ <input type="checkbox" id="wpuf-enable_post_expiration" name="post_expiration_settings[enable_post_expiration]" value="on" <?php echo $is_post_exp_selected;?> />
380
+ <?php _e( 'Enable Post Expiration', 'wpuf' ); ?>
381
+ </label>
382
+ </td>
383
+ </tr>
384
+ <tr class="wpuf-metabox-post_expiration wpuf_subscription_expiration_field">
385
+ <?php
386
+ $timeType_array = array(
387
+ 'year' => 100,
388
+ 'month' => 12,
389
+ 'day' => 30
390
+ );
391
+ ?>
392
+ <th class="wpuf-post-exp-time"> <?php _e( 'Post Expiration Time', 'wpuf' ); ?> </th>
393
+ <td class="wpuf-post-exp-time">
394
+ <select name="post_expiration_settings[expiration_time_value]" id="wpuf-expiration_time_value">
395
+ <?php
396
+ for($i = 1;$i <= $timeType_array[$time_type];$i++){
397
+ ?>
398
+ <option value="<?php echo $i; ?>" <?php echo $i == $time_value?'selected':''; ?>><?php echo $i;?></option>
399
+ <?php
400
+ }
401
+ ?>
402
+ </select>
403
+ <select name="post_expiration_settings[expiration_time_type]" id="wpuf-expiration_time_type">
404
+ <?php
405
+ foreach($timeType_array as $each_time_type=>$each_time_type_val){
406
+ ?>
407
+ <option value="<?php echo $each_time_type;?>" <?php echo $each_time_type==$time_type?'selected':''; ?>><?php echo ucfirst($each_time_type);?></option>
408
+ <?php
409
+ }
410
+ ?>
411
+ </select>
412
+ </td>
413
+
414
+ </tr>
415
+ <tr class="wpuf_subscription_expiration_field">
416
+ <th>
417
+ <?php _e( 'Post Status', 'wpuf' ); ?>
418
+ </th>
419
+ <td>
420
+ <?php $post_statuses = get_post_statuses();
421
+ ?>
422
+ <select name="post_expiration_settings[expired_post_status]" id="wpuf-expired_post_status">
423
+ <?php
424
+ foreach($post_statuses as $post_status => $text){
425
+ ?>
426
+ <option value="<?php echo $post_status ?>" <?php echo ( $expired_post_status == $post_status )?'selected':''; ?>><?php echo $text;?></option>
427
+ <?php
428
+ }
429
+ ?>
430
+ </select>
431
+ <p class="description"><?php _e('Status of post after post expiration time is over ', 'wpuf' );?></p>
432
+ </td>
433
+ </tr>
434
+ <tr class="wpuf_subscription_expiration_field">
435
+ <th>
436
+ <?php _e( 'Expiration Mail', 'wpuf' ); ?>
437
+ </th>
438
+ <td>
439
+ <label>
440
+ <input type="checkbox" name="post_expiration_settings[enable_mail_after_expired]" value="on" <?php echo $is_enable_mail_after_expired;?> />
441
+ <?php _e( 'Send Expiration Email to Post Author', 'wpuf' ); ?>
442
+ </label>
443
+
444
+ <p class="help">
445
+ <?php _e( 'Send Mail to Author After Exceeding Post Expiration Time', 'wpuf' ); ?>
446
+ </p>
447
+ </td>
448
+ </tr>
449
+ <tr class="wpuf_subscription_expiration_field">
450
+ <th><?php _e( 'Expiration Message', 'wpuf' ); ?></th>
451
+ <td>
452
+ <textarea name="post_expiration_settings[post_expiration_message]" id="wpuf-post_expiration_message" cols="50" rows="5"><?php echo $post_expiration_message;?></textarea>
453
+ </td>
454
+ </tr>
455
+
456
+ <?php
457
+ /**
458
+ * @since 2.7.0
459
+ */
460
+ do_action( 'wpuf_admin_subscription_post_restriction', $sub_meta, $post, $this );
461
+ ?>
462
+ </tbody>
463
+ </table>
464
+ </section>
465
+
466
+ <?php do_action( 'wpuf_admin_subs_nav_content', $post ); ?>
467
+ </div>
468
+ <?php wp_nonce_field( 'subs_meta_box_nonce', 'meta_box_nonce' ); ?>
469
+ </div>
470
+
471
+ <?php
472
+ }
473
+
474
+ /**
475
+ * Enqueue script for subscription editor page
476
+ *
477
+ * @return void
478
+ */
479
+ public function enqueue_scripts() {
480
+ $screen = get_current_screen();
481
+
482
+ if ( $screen->post_type != 'wpuf_subscription' ) {
483
+ return;
484
+ }
485
+
486
+ wp_enqueue_script( 'wpuf-metabox-tabs', WPUF_ASSET_URI . '/js/metabox-tabs.js' , array( 'jquery' ) );
487
+ }
488
+
489
+ /**
490
+ * Enqueue script for profile
491
+ *
492
+ * @return void
493
+ */
494
+ public function enqueue_profile_script() {
495
+ $screen = get_current_screen();
496
+
497
+ if ( 'profile' != $screen->base ) {
498
+ return;
499
+ }
500
+
501
+ wp_enqueue_script( 'wpuf-admin-profile-subs', WPUF_ASSET_URI . '/js/admin-profile-subs.js' , array( 'jquery' ) );
502
+ }
503
+
504
+ /**
505
+ * Option fields for date type
506
+ *
507
+ * @param string $selected
508
+ *
509
+ * @return void
510
+ */
511
+ function option_field( $selected ) {
512
+ ?>
513
+ <option value="day" <?php selected( $selected, 'day' ); ?> ><?php _e( 'Day(s)', 'wpuf' ); ?></option>
514
+ <option value="week" <?php selected( $selected, 'week' ); ?> ><?php _e( 'Week(s)', 'wpuf' ); ?></option>
515
+ <option value="month" <?php selected( $selected, 'month' ); ?> ><?php _e( 'Month(s)', 'wpuf'); ?></option>
516
+ <option value="year" <?php selected( $selected, 'year' ); ?> ><?php _e( 'Year(s)', 'wpuf' ); ?></option>
517
+ <?php
518
+ }
519
+
520
+ function packdropdown_without_recurring( $packs, $selected = '' ) {
521
+ $packs = isset( $packs ) ? $packs : array();
522
+ foreach( $packs as $key => $pack ) {
523
+ $recurring = isset( $pack->meta_value['recurring_pay'] ) ? $pack->meta_value['recurring_pay'] : '';
524
+ if( $recurring == 'yes' ) {
525
+ continue;
526
+ }
527
+ ?>
528
+ <option value="<?php echo $pack->ID; ?>" <?php selected( $selected, $pack->ID ); ?>><?php echo $pack->post_title; ?></option>
529
+ <?php
530
+ }
531
+ }
532
+
533
+ /**
534
+ * Adds the postlock form in users profile
535
+ *
536
+ * @param object $profileuser
537
+ */
538
+ function profile_subscription_details( $profileuser ) {
539
+
540
+ if ( ! current_user_can( 'edit_users' ) ) {
541
+ return;
542
+ }
543
+
544
+ $current_user = wpuf_get_user();
545
+
546
+ if ( ! $current_user->subscription()->current_pack_id() ) {
547
+ // return;
548
+ }
549
+
550
+ $userdata = get_userdata( $profileuser->ID ); //wp 3.3 fix
551
+
552
+ $packs = WPUF_Subscription::init()->get_subscriptions();
553
+ $user_sub = WPUF_Subscription::get_user_pack( $userdata->ID );
554
+ $pack_id = isset( $user_sub['pack_id'] ) ? $user_sub['pack_id'] : '';
555
+ ?>
556
+ <div class="wpuf-user-subscription" style="width: 640px;">
557
+ <h3><?php _e( 'WPUF Subscription Information', 'wpuf' ); ?></h3>
558
+
559
+ <?php
560
+
561
+ if ( isset( $user_sub['pack_id'] ) ) :
562
+
563
+ $pack = WPUF_Subscription::get_subscription( $user_sub['pack_id'] );
564
+ $details_meta = WPUF_Subscription::init()->get_details_meta_value();
565
+
566
+ $billing_amount = ( isset( $pack->meta_value['billing_amount'] ) && intval( $pack->meta_value['billing_amount'] ) > 0 ) ? $details_meta['symbol'] . $pack->meta_value['billing_amount'] : __( 'Free', 'wpuf' );
567
+ $recurring_pay = ( isset( $pack->meta_value['recurring_pay'] ) && $pack->meta_value['recurring_pay'] == 'yes' ) ? true : false;
568
+
569
+ if ( $billing_amount && $recurring_pay ) {
570
+ $recurring_des = sprintf( 'For each %s %s', $pack->meta_value['billing_cycle_number'], $pack->meta_value['cycle_period'], $pack->meta_value['trial_duration_type'] );
571
+ $recurring_des .= !empty( $pack->meta_value['billing_limit'] ) ? sprintf( ', for %s installments', $pack->meta_value['billing_limit'] ) : '';
572
+ $recurring_des = $recurring_des;
573
+ } else {
574
+ $recurring_des = '';
575
+ }
576
+
577
+ ?>
578
+ <div class="wpuf-user-sub-info">
579
+
580
+ <div class="wpuf-sub-summary">
581
+ <div class="sub-name">
582
+ <span class="label">
583
+ <?php _e( 'Subcription Name', 'wpuf' ); ?>
584
+ </span>
585
+
586
+ <span class="value">
587
+ <?php echo isset( $pack->post_title ) ? $pack->post_title : ''; ?>
588
+ </span>
589
+ </div>
590
+
591
+ <div class="sub-price">
592
+ <span class="label">
593
+ <?php _e( 'Billing Info', 'wpuf' ); ?>
594
+ </span>
595
+
596
+ <span class="value">
597
+ <?php echo $billing_amount; ?>
598
+
599
+ <?php if ( $recurring_des ) : ?>
600
+ <p><?php echo $recurring_des; ?></p>
601
+ <?php endif; ?>
602
+ </span>
603
+ </div>
604
+
605
+ <?php if ( isset( $user_sub['recurring'] ) && $user_sub['recurring'] == 'yes' ) { ?>
606
+ <div class="info">
607
+ <p><?php _e( 'This user is using recurring subscription pack', 'wpuf' ); ?></p>
608
+ </div>
609
+ <?php } ?>
610
+ </div>
611
+
612
+ <div class="wpuf-sub-section remaining-posts">
613
+ <h4><?php _e( 'Remaining Posting Count', 'wpuf'); ?></h4>
614
+
615
+ <table class="form-table">
616
+
617
+ <?php foreach ( $user_sub['posts'] as $key => $value ) {
618
+ $post_type_object = get_post_type_object( $key );
619
+
620
+ if ( $post_type_object ) {
621
+ ?>
622
+ <tr>
623
+ <th><label><?php echo $post_type_object->labels->name; ?></label></th>
624
+ <td><input type="text" value="<?php echo $value; ?>" name="<?php echo $key; ?>" ></td>
625
+ </tr>
626
+ <?php
627
+ }
628
+ }
629
+ ?>
630
+ </table>
631
+ </div>
632
+
633
+ <div class="wpuf-sub-section post-expiration">
634
+ <h4><?php _e( 'Subscription Expiration Info', 'wpuf' ); ?></h4>
635
+
636
+ <table class="form-table">
637
+ <?php
638
+ if ( $user_sub['recurring'] != 'yes' ) {
639
+ if ( !empty( $user_sub['expire'] ) ) {
640
+
641
+ $expire = ( $user_sub['expire'] == 'unlimited' ) ? ucfirst( 'unlimited' ) : wpuf_date2mysql( $user_sub['expire'] );
642
+
643
+ ?>
644
+ <tr>
645
+ <th><label><?php echo _e('Expire date:' , 'wpuf'); ?></label></th>
646
+ <td><input type="text" class="wpuf-date-picker" name="expire" value="<?php echo wpuf_get_date( $expire ); ?>"></td>
647
+ </tr>
648
+ <?php
649
+ }
650
+
651
+ }
652
+
653
+ $is_post_exp_selected = isset( $user_sub['_enable_post_expiration'] ) ? 'checked' : '';
654
+ $_post_expiration_time = explode( ' ',isset($user_sub['_post_expiration_time']) ? $user_sub['_post_expiration_time'] : '' );
655
+ $time_value = isset( $_post_expiration_time[0] ) && !empty( $_post_expiration_time[0] ) ? $_post_expiration_time[0] : '1';
656
+ $time_type = isset( $_post_expiration_time[1] ) && !empty( $_post_expiration_time[1] ) ? $_post_expiration_time[1] : 'day';
657
+ ?>
658
+ <tr>
659
+ <th><label><?php echo _e('Post Expiration Enabled', 'wpuf'); ?></label></th>
660
+ <td><input type="checkbox" class="wpuf-post-exp-enabled" name="is_post_expiration_enabled" value="on" <?php echo $is_post_exp_selected;?>></td>
661
+ </tr>
662
+ <tr class="wpuf-post-exp-time">
663
+ <?php
664
+ $timeType_array = array(
665
+ 'year' => 100,
666
+ 'month' => 12,
667
+ 'day' => 30
668
+ );
669
+ ?>
670
+ <th><?php _e( 'Post Expiration Time', 'wpuf' ); ?></th>
671
+ <td>
672
+ <select name="post_expiration_settings[expiration_time_value]" id="wpuf-expiration_time_value">
673
+ <?php
674
+ for($i = 1;$i <= $timeType_array[$time_type];$i++){
675
+ ?>
676
+ <option value="<?php echo $i; ?>" <?php echo $i == $time_value?'selected':''; ?>><?php echo $i;?></option>
677
+ <?php
678
+ }
679
+ ?>
680
+ </select>
681
+ <select name="post_expiration_settings[expiration_time_type]" id="wpuf-expiration_time_type">
682
+ <?php
683
+ foreach($timeType_array as $each_time_type=>$each_time_type_val){
684
+ ?>
685
+ <option value="<?php echo $each_time_type;?>" <?php echo $each_time_type==$time_type?'selected':''; ?>><?php echo ucfirst($each_time_type);?></option>
686
+ <?php
687
+ }
688
+ ?>
689
+ </select>
690
+ </td>
691
+ </tr>
692
+ </table>
693
+ </div>
694
+
695
+ <div class="wpuf-sub-section tax-restriction">
696
+ <h4><?php _e( 'Allowed Taxonomy Terms', 'wpuf' ); ?></h4>
697
+
698
+ <table class="form-table">
699
+ <tr>
700
+ <?php
701
+ $allowed_tax_id_arr = array();
702
+ $allowed_tax_id_arr = get_post_meta( $pack_id , '_sub_allowed_term_ids', true );
703
+ if ( ! $allowed_tax_id_arr ) {
704
+ $allowed_tax_id_arr = array();
705
+ }
706
+
707
+ $builtin_taxs = get_taxonomies( array(
708
+ '_builtin' => true
709
+ ), 'objects' );
710
+
711
+ foreach ($builtin_taxs as $builtin_tax) {
712
+ if ( is_taxonomy_hierarchical( $builtin_tax->name ) ) {
713
+ $tax_terms = get_terms ( array(
714
+ 'taxonomy' => $builtin_tax->name,
715
+ 'hide_empty' => false,
716
+ ) );
717
+ foreach ($tax_terms as $tax_term) {
718
+ if ( in_array( $tax_term->term_id, $allowed_tax_id_arr ) ) {
719
+ ?> <td> <?php echo $tax_term->name; ?> </td> <?php
720
+ }
721
+ }
722
+ }
723
+ }
724
+
725
+ $custom_taxs = get_taxonomies(array('_builtin'=>false), 'objects');
726
+ foreach ($custom_taxs as $custom_tax) {
727
+ if ( is_taxonomy_hierarchical( $custom_tax->name ) ) {
728
+ $tax_terms = get_terms ( array(
729
+ 'taxonomy' => $custom_tax->name,
730
+ 'hide_empty' => false,
731
+ ) );
732
+
733
+ foreach ($tax_terms as $tax_term) {
734
+ if ( in_array( $tax_term->term_id, $allowed_tax_id_arr ) ) {
735
+ ?> <td> <?php echo $tax_term->name; ?> </td> <?php
736
+ }
737
+ }
738
+ }
739
+ }
740
+ ?>
741
+ </tr>
742
+ </table>
743
+ </div>
744
+ </div>
745
+ <?php endif;?>
746
+
747
+ <?php if ( ! isset( $user_sub['recurring'] ) || $user_sub['recurring'] != 'yes' ): ?>
748
+
749
+ <?php if ( empty( $user_sub ) ): ?>
750
+ <div class="wpuf-sub-actions">
751
+ <a class="btn button-secondary wpuf-assing-pack-btn wpuf-add-pack" href="#"><?php _e( 'Assign Package', 'wpuf' ); ?></a>
752
+ <a class="btn button-secondary wpuf-assing-pack-btn wpuf-cancel-pack" style="display:none;" href="#"><?php _e( 'Cancel', 'wpuf' ); ?></a>
753
+ </div>
754
+ <?php endif ?>
755
+
756
+ <table class="form-table wpuf-pack-dropdown" disabled="disabled" style="display: none;">
757
+ <tr>
758
+ <th><label for="wpuf_sub_pack"><?php _e( 'Select Package:', 'wpuf' ); ?> </label></th>
759
+ <td>
760
+ <select name="pack_id" id="wpuf_sub_pack">
761
+ <option value="-1"><?php _e( '&mdash; Select &mdash;', 'wpuf' ); ?></option>
762
+ <?php $this->packdropdown_without_recurring( $packs, $pack_id );//WPUF_Subscription::init()->packdropdown( $packs, $selected = '' ); ?>
763
+ </select>
764
+ </td>
765
+ </tr>
766
+ </table>
767
+ <?php endif;?>
768
+ <?php
769
+ do_action( 'wpuf_admin_subscription_content', $userdata->ID ) ?>
770
+ <?php if ( !empty( $user_sub ) ): ?>
771
+ <div class="wpuf-sub-actions">
772
+ <a class="btn button-secondary wpuf-delete-pack-btn" href="javascript:" data-userid="<?php echo $userdata->ID; ?>" data-packid="<?php echo $user_sub['pack_id']; ?>"><?php _e( 'Delete Package', 'wpuf' ); ?></a>
773
+ </div>
774
+ <?php endif; ?>
775
+ </div>
776
+ <?php
777
+
778
+ }
779
+
780
+ function lenght_type_option( $selected ) {
781
+
782
+ for ($i = 1; $i <= 30; $i++) {
783
+ ?>
784
+ <option value="<?php echo $i; ?>" <?php selected( $i, $selected ); ?>><?php echo $i; ?></option>
785
+ <?php
786
+ }
787
+
788
+ }
789
+
790
+ /**
791
+ * Ajax function. Delete user package
792
+ * @since 2.2.7
793
+ */
794
+ function delete_user_package(){
795
+ echo delete_user_meta($_POST['userid'],'_wpuf_subscription_pack');
796
+ $wpuf_paypal = new WPUF_Paypal();
797
+ $wpuf_paypal->recurring_change_status( $_POST['userid'], 'Cancel' );
798
+
799
+ if ( isset( $_POST['packid'] ) ) {
800
+ WPUF_Subscription::subscriber_cancel( $_POST['userid'], $_POST['packid'] );
801
+ }
802
+ exit;
803
+ }
804
+
805
+ /**
806
+ * Add help link to the subscriptions listing page
807
+ *
808
+ * @return void
809
+ */
810
+ public function add_help_link() {
811
+ $screen = get_current_screen();
812
+
813
+ if ( 'edit-wpuf_subscription' != $screen->id ) {
814
+ return;
815
+ }
816
+
817
+ ?>
818
+ <div class="wpuf-footer-help">
819
+ <span class="wpuf-footer-help-content">
820
+ <span class="dashicons dashicons-editor-help"></span>
821
+ <?php printf( __( 'Learn more about <a href="%s" target="_blank">Subscription</a>', 'wpuf' ), 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/?utm_source=wpuf-footer-help&utm_medium=text-link&utm_campaign=learn-more-subscription' ); ?>
822
+ </span>
823
+ </div>
824
+
825
+ <script type="text/javascript">
826
+ jQuery(function($) {
827
+ $('.wpuf-footer-help').appendTo('.wrap');
828
+ });
829
+ </script>
830
+ <?php
831
+ }
832
+ }
833
+
834
+ //$subscription = new WPUF_Admin_Subscription();
admin/class-admin-welcome.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The welcome class after install
5
+ *
6
+ * @since 2.6.0
7
+ */
8
+ class WPUF_Admin_Welcome {
9
+
10
+ function __construct() {
11
+ add_action( 'admin_menu', array( $this, 'register_menu' ) );
12
+ add_action( 'admin_head', array( $this, 'hide_menu' ) );
13
+ // add_action( 'admin_init', array( $this, 'redirect_to_page' ), 9999 );
14
+ }
15
+
16
+ /**
17
+ * Register the admin menu to setup the welcome message
18
+ *
19
+ * @return void
20
+ */
21
+ public function register_menu() {
22
+ add_dashboard_page( __( 'Welcome to WP User Frontend', 'wpuf' ), __( 'Welcome to WP User Frontend', 'wpuf' ), 'manage_options', 'wpuf-welcome', array( $this, 'welcome_page' ) );
23
+ }
24
+
25
+ /**
26
+ * Hide the menu as we don't want to show the welcome page in admin menu
27
+ *
28
+ * @return void
29
+ */
30
+ public function hide_menu() {
31
+ remove_submenu_page( 'index.php', 'wpuf-welcome' );
32
+ }
33
+
34
+ /**
35
+ * Redirect to the welcome page once the plugin is installed
36
+ *
37
+ * @return void
38
+ */
39
+ public function redirect_to_page() {
40
+ if ( ! get_transient( 'wpuf_activation_redirect' ) ) {
41
+ return;
42
+ }
43
+
44
+ delete_transient( 'wpuf_activation_redirect' );
45
+
46
+ // Only do this for single site installs.
47
+ if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
48
+ return;
49
+ }
50
+
51
+ wp_safe_redirect( admin_url( 'index.php?page=wpuf-welcome' ) );
52
+ exit;
53
+ }
54
+
55
+ /**
56
+ * Render the welcome page
57
+ *
58
+ * @return void
59
+ */
60
+ public function welcome_page() {
61
+ require_once WPUF_ROOT . '/views/welcome-page.php';
62
+ }
63
+ }
admin/class-tools.php ADDED
@@ -0,0 +1,390 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Manage Import Export
5
+ *
6
+ * @since 2.2
7
+ *
8
+ * @package WP User Frontend
9
+ */
10
+ class WPUF_Admin_Tools {
11
+
12
+ /**
13
+ * List of All the post forms
14
+ *
15
+ * @return void
16
+ */
17
+ function list_forms() {
18
+
19
+ if ( isset( $_POST['export'] ) ) {
20
+ $this->export_data( $_POST['export_content'], $_POST['formlist'] );
21
+ }
22
+
23
+ $args = array(
24
+ 'post_type' => 'wpuf_forms',
25
+ 'posts_per_page' => -1,
26
+ 'post_status' => 'publish'
27
+ );
28
+ $forms = get_posts( $args );
29
+
30
+ if ( $forms ) {
31
+ ?>
32
+ <div class="postbox" style="margin-top: 15px;">
33
+ <h3 style="padding:10px 15px"><?php _e( 'Form Export', 'wpuf' ); ?></h3>
34
+ <div class="inside">
35
+ <div class="main">
36
+ <form action="" method="post" style="margin-top: 20px;">
37
+ <p>
38
+ <input class="export_type" type="radio" name="export_content" value="all" id="wpuf-all_export" checked>
39
+ <label for="wpuf-all_export"><?php _e( 'All', 'wpuf' ); ?></label>
40
+ </p>
41
+
42
+ <p>
43
+ <input class="export_type" type="radio" name="export_content" value="selected" id="wpuf-selected_export">
44
+ <label for="wpuf-selected_export"><?php _e( 'Select individual', 'wpuf' ); ?></label></p>
45
+ <p>
46
+ <select class="formlist" name="formlist[]" multiple="multiple">
47
+ <?php foreach ( $forms as $form ) { ?>
48
+ <option value="<?php echo esc_attr( $form->ID ) ?>"><?php echo esc_attr( $form->post_title ); ?></option>
49
+ <?php } ?>
50
+ </select>
51
+ </p>
52
+
53
+ <?php wp_nonce_field( 'wpuf-export-form' ); ?>
54
+ <input type="submit" class="button button-primary" name="export" value="<?php _e( 'Export', 'wpuf' ) ?>">
55
+ </form>
56
+ </div>
57
+ </div>
58
+ </div>
59
+
60
+ <?php
61
+ } else {
62
+ sprintf( '<p>%s</p>', __( 'Sorry you have no form to export', 'wpuf' ) );
63
+ }
64
+ }
65
+
66
+ /**
67
+ * List of All Registration forms
68
+ *
69
+ * @return void
70
+ */
71
+ function list_regis_forms() {
72
+
73
+ if ( isset( $_POST['export_regis_form'] ) ) {
74
+ $this->export_regis_data( $_POST['export_regis_content'], $_POST['formlist'] );
75
+ }
76
+
77
+ $args = array(
78
+ 'post_type' => 'wpuf_profile',
79
+ 'posts_per_page' => -1,
80
+ 'post_status' => 'publish'
81
+ );
82
+
83
+ $forms = get_posts( $args );
84
+ if ( $forms ) {
85
+ ?>
86
+ <div class="postbox">
87
+ <h3 style="padding:10px 15px"><?php _e( 'Registration Form Export', 'wpuf' ); ?></h3>
88
+ <div class="inside">
89
+ <div class="main">
90
+
91
+ <form action="" method="post" style="margin-top: 20px;">
92
+
93
+ <p>
94
+ <input class="export_type" type="radio" name="export_regis_content" value="all" id="wpuf-all_regis_export" checked>
95
+ <label for="wpuf-all_regis_export"><?php _e( 'All', 'wpuf' ); ?></label>
96
+ </p>
97
+
98
+ <p>
99
+ <input class="export_type" type="radio" name="export_regis_content" value="selected" id="wpuf-selected_regis_export">
100
+ <label for="wpuf-selected_regis_export"><?php _e( 'Select individual', 'wpuf' ); ?></label>
101
+ </p>
102
+
103
+ <p>
104
+ <select class="formlist" name="formlist[]" multiple="multiple">
105
+ <?php foreach ( $forms as $form ) { ?>
106
+ <option value="<?php echo esc_attr( $form->ID ); ?>"><?php echo esc_attr( $form->post_title ); ?></option>";
107
+ <?php } ?>
108
+ </select>
109
+ </p>
110
+
111
+ <?php wp_nonce_field( 'wpuf-export-regs-form' ); ?>
112
+
113
+ <input type="submit" class="button button-primary" name="export_regis_form" value="<?php _e( 'Export', 'wpuf' ) ?>">
114
+ </form>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ <?php
119
+ } else {
120
+ sprintf( '<p>%s</p>', __( 'Sorry you have no form to export', 'wpuf' ) );
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Import functionality
126
+ */
127
+ function import_data() {
128
+
129
+ if ( isset( $_FILES['import'] ) && check_admin_referer( 'wpuf-import' ) ) {
130
+
131
+ if ( $_FILES['import']['error'] > 0 ) {
132
+
133
+ printf( '<div class="error"><p>%s</p></div>', __( 'Somthing went wrong. Please choose a file again', 'wpuf' ) );
134
+ } else {
135
+
136
+ $file_name = $_FILES['import']['name'];
137
+ $file_ext = pathinfo( $file_name, PATHINFO_EXTENSION );
138
+ $file_size = $_FILES['import']['size'];
139
+
140
+ if ( ($file_ext == "json") && ($file_size < 500000) ) {
141
+
142
+ $data = static::import_json_file( $_FILES['import']['tmp_name'] );
143
+
144
+ if ( $data ) {
145
+ printf( '<div class="updated"><p>%s</p></div>', __( 'Import successful. Have fun!', 'wpuf' ) );
146
+ }
147
+ } else {
148
+ printf( '<div class="error"><p>%s</p></div>', __( 'Invalid file or file size too big.', 'wpuf' ) );
149
+ }
150
+ }
151
+ }
152
+ ?>
153
+
154
+ <h3><?php _e( 'Import forms', 'wpuf' ); ?></h3>
155
+
156
+ <p><?php _e( 'Click Browse button and choose a json file that you backup before.', 'wpuf' ); ?></p>
157
+ <p><?php _e( 'Press <strong>Import</strong> button, we will do the rest for you.', 'wpuf' ); ?></p>
158
+
159
+ <form action="" method="post" enctype='multipart/form-data' style="margin-top: 20px;">
160
+ <?php wp_nonce_field( 'wpuf-import' ); ?>
161
+ <input type='file' name='import' />
162
+ <input type="submit" class="button button-primary" name="import_data" value="<?php _e( 'Import', 'wpuf' ); ?>">
163
+ </form>
164
+ <?php
165
+ }
166
+
167
+ /**
168
+ * Import json file into database
169
+ * @param array $file
170
+ * @return boolean
171
+ */
172
+ public static function import_json_file( $file ) {
173
+
174
+ $encode_data = file_get_contents( $file );
175
+ $options = json_decode( $encode_data, true );
176
+
177
+ foreach ( $options as $key => $value ) {
178
+
179
+ $generate_post = array(
180
+ 'post_title' => $value['post_data']['post_title'],
181
+ 'post_status' => $value['post_data']['post_status'],
182
+ 'post_type' => $value['post_data']['post_type'],
183
+ 'ping_status' => $value['post_data']['ping_status'],
184
+ 'comment_status' => $value['post_data']['comment_status']
185
+ );
186
+
187
+ $post_id = wp_insert_post( $generate_post, true );
188
+
189
+ if ( $post_id && !is_wp_error( $post_id ) ) {
190
+
191
+ foreach ( $value['meta_data']['fields'] as $order => $field ) {
192
+ wpuf_insert_form_field( $post_id, $field, false, $order );
193
+ }
194
+
195
+ update_post_meta( $post_id, 'wpuf_form_settings', $value['meta_data']['settings'] );
196
+ update_post_meta( $post_id, 'notifications', $value['meta_data']['notifications'] );
197
+ }
198
+ }
199
+
200
+ return true;
201
+ }
202
+
203
+ /**
204
+ * Export Registration form
205
+ * @param string $export_type
206
+ * @param integer $post_ids
207
+ */
208
+ function export_regis_data( $export_type, $post_ids ) {
209
+
210
+ if ( $export_type == 'all' && check_admin_referer( 'wpuf-export-regs-form' ) ) {
211
+
212
+ static::export_to_json( 'wpuf_profile' );
213
+
214
+ } elseif ( $export_type == 'selected' && check_admin_referer( 'wpuf-export-regs-form' ) ) {
215
+
216
+ if ( $_POST['formlist'] == NULL ) {
217
+ printf( '<div class="error"><p>%s</p></div>', __( 'Please select some form for exporting', 'wpuf' ) );
218
+ } else {
219
+ static::export_to_json( 'wpuf_profile', $post_ids );
220
+ }
221
+ }
222
+ }
223
+
224
+ /**
225
+ * Export normal form data
226
+ * @param string $export_type
227
+ * @param integer $post_ids
228
+ */
229
+ function export_data( $export_type, $post_ids ) {
230
+ if ( $export_type == 'all' && check_admin_referer( 'wpuf-export-form' ) ) {
231
+
232
+ static::export_to_json( 'wpuf_forms' );
233
+
234
+ } elseif ( $export_type == 'selected' && check_admin_referer( 'wpuf-export-form' ) ) {
235
+
236
+ if ( $_POST['formlist'] == NULL ) {
237
+ printf( '<div class="error"><p>%s</p></div>', __( 'Please select some form for exporting', 'wpuf' ) );
238
+ } else {
239
+ static::export_to_json( 'wpuf_forms', $post_ids );
240
+ }
241
+ }
242
+ }
243
+
244
+ /**
245
+ * Export into json file
246
+ *
247
+ * @param string $post_type
248
+ * @param array $post_ids
249
+ */
250
+ public static function export_to_json( $post_type, $post_ids = array( ) ) {
251
+
252
+ $formatted_data = array();
253
+ $ids = array();
254
+ $blogname = strtolower( str_replace( " ", "-", get_option( 'blogname' ) ) );
255
+ $date = date( "Y-m-d" );
256
+ $json_name = $blogname . "-wpuf-" . $post_type . '-' . $date; // Namming the filename will be generated.
257
+
258
+ if ( ! empty( $post_ids ) ) {
259
+ foreach ( $post_ids as $key => $value ) {
260
+ array_push( $ids, $value );
261
+ }
262
+ }
263
+
264
+ $args = array(
265
+ 'post_status' => 'publish',
266
+ 'post_type' => $post_type,
267
+ 'post__in' => (!empty( $ids ) ) ? $ids : ''
268
+ );
269
+
270
+ $query = new WP_Query( $args );
271
+
272
+ foreach ( $query->posts as $post ) {
273
+ $postdata = get_object_vars( $post );
274
+ unset( $postdata['ID'] );
275
+
276
+ $data = array(
277
+ 'post_data' => $postdata,
278
+ 'meta_data' => array(
279
+ 'fields' => wpuf_get_form_fields( $post->ID ),
280
+ 'settings' => wpuf_get_form_settings( $post->ID ),
281
+ 'notifications' => wpuf_get_form_notifications( $post->ID )
282
+ )
283
+ );
284
+
285
+ array_push( $formatted_data, $data );
286
+ }
287
+
288
+ $json_file = json_encode( $formatted_data ); // Encode data into json data
289
+
290
+ ob_clean();
291
+
292
+ echo $json_file;
293
+
294
+ header( "Content-Type: text/json; charset=" . get_option( 'blog_charset' ) );
295
+ header( "Content-Disposition: attachment; filename=$json_name.json" );
296
+
297
+ exit();
298
+ }
299
+
300
+ /**
301
+ * Formetted meta key value
302
+ *
303
+ * @param array $array
304
+ * @return array
305
+ */
306
+ function formetted_meta_key_value( $array ) {
307
+ $result = array( );
308
+
309
+ foreach ( $array as $key => $val ) {
310
+ $result[$key] = $val[0];
311
+ }
312
+
313
+ return $result;
314
+ }
315
+
316
+ function tool_page() {
317
+ $msg = isset( $_GET['msg'] ) ? $_GET['msg'] : '';
318
+ $text = '';
319
+ $confirmation_message = __( 'Are you Sure?', 'wpuf' );
320
+ switch ($msg) {
321
+ case 'del_forms':
322
+ $text = __( 'All forms has been deleted', 'wpuf' );
323
+ break;
324
+
325
+ case 'settings_cleared':
326
+ $text = __( 'Settings has been cleared!', 'wpuf' );
327
+ break;
328
+
329
+ case 'del_trans':
330
+ $text = __( 'All transactions has been deleted!', 'wpuf' );
331
+ break;
332
+ }
333
+
334
+ if ( $text ) {
335
+ ?>
336
+ <div class="updated">
337
+ <p>
338
+ <?php echo $text; ?>
339
+ </p>
340
+ </div>
341
+
342
+ <?php } ?>
343
+
344
+
345
+ <div class="metabox-holder">
346
+ <div class="postbox">
347
+ <h3><?php _e( 'Page Installation', 'wpuf' ); ?></h3>
348
+
349
+ <div class="inside">
350
+ <p><?php _e( 'Clicking this button will create required pages for the plugin. Note: It\'ll not delete/replace existing pages.', 'wpuf' ); ?></p>
351
+ <a class="button button-primary" href="<?php echo add_query_arg( array( 'install_wpuf_pages' => true ) ); ?>"><?php _e( 'Install WPUF Pages', 'wpuf' ); ?></a>
352
+ </div>
353
+ </div>
354
+
355
+ <div class="postbox">
356
+ <h3><?php _e( 'Reset Settings', 'wpuf' ); ?></h3>
357
+
358
+ <div class="inside">
359
+ <p><?php _e( '<strong>Caution:</strong> This tool will delete all the plugin settings of WP User Frontend Pro', 'wpuf' ); ?></p>
360
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'clear_settings' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('Are you sure?');"><?php _e( 'Reset Settings', 'wpuf' ); ?></a>
361
+ </div>
362
+ </div>
363
+
364
+ <div class="postbox">
365
+ <h3><?php _e( 'Delete Forms', 'wpuf' ); ?></h3>
366
+
367
+ <div class="inside">
368
+ <p><?php _e( '<strong>Caution:</strong> This tool will delete all the post and registration/profile forms.', 'wpuf' ); ?></p>
369
+
370
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'del_post_forms' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('<?php echo $confirmation_message ?>');"><?php _e( 'Delete Post Forms', 'wpuf' ); ?></a>
371
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'del_pro_forms' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('<?php echo $confirmation_message ?>');"><?php _e( 'Delete Registration Forms', 'wpuf' ); ?></a>
372
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'del_subs' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('<?php echo $confirmation_message ?>');"><?php _e( 'Delete Subscriptions', 'wpuf' ); ?></a>
373
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'del_coupon' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('<?php echo $confirmation_message ?>');"><?php _e( 'Delete Coupons', 'wpuf' ); ?></a>
374
+ </div>
375
+ </div>
376
+
377
+ <div class="postbox">
378
+ <h3><?php _e( 'Transactions', 'wpuf' ); ?></h3>
379
+
380
+ <div class="inside">
381
+ <p><?php _e( 'This tool will delete all the transactions from the transaction table.', 'wpuf' ); ?></p>
382
+
383
+ <a class="button button-primary" href="<?php echo wp_nonce_url( add_query_arg( array( 'wpuf_action' => 'clear_transaction' ), 'admin.php?page=wpuf_tools&action=tools' ), 'wpuf-tools-action' ); ?>" onclick="return confirm('<?php echo $confirmation_message ?>');"><?php _e( 'Delete Transactions', 'wpuf' ); ?></a>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ <?php
388
+ }
389
+
390
+ }
admin/form-builder/class-wpuf-admin-form-builder-ajax.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Ajax handlers
4
+ */
5
+ class WPUF_Admin_Form_Builder_Ajax {
6
+
7
+ /**
8
+ * Class contructor
9
+ *
10
+ * @since 2.5
11
+ *
12
+ * @return void
13
+ */
14
+ public function __construct() {
15
+ add_action( 'wp_ajax_wpuf_form_builder_save_form', array( $this, 'save_form' ) );
16
+ }
17
+
18
+ /**
19
+ * Save form data
20
+ *
21
+ * @since 2.5
22
+ *
23
+ * @return void
24
+ */
25
+ public function save_form() {
26
+ parse_str( $_POST['form_data'], $form_data );
27
+
28
+ if ( ! wp_verify_nonce( $form_data['wpuf_form_builder_nonce'], 'wpuf_form_builder_save_form' ) ) {
29
+ wp_send_json_error( __( 'Unauthorized operation', 'wpuf' ) );
30
+ }
31
+
32
+ if ( empty( $form_data['wpuf_form_id'] ) ) {
33
+ wp_send_json_error( __( 'Invalid form id', 'wpuf' ) );
34
+ }
35
+
36
+ $form_fields = isset( $_POST['form_fields'] ) ? $_POST['form_fields'] : '';
37
+ $notifications = isset( $_POST['notifications'] ) ? $_POST['notifications'] : '';
38
+ $settings = array();
39
+ $integrations = array();
40
+
41
+ if ( isset( $_POST['settings'] ) ) {
42
+ $settings = (array) json_decode( wp_unslash( $_POST['settings'] ) );
43
+ } else {
44
+ $settings = isset( $form_data['wpuf_settings'] ) ? $form_data['wpuf_settings'] : array();
45
+ }
46
+
47
+ if ( isset( $_POST['integrations'] ) ) {
48
+ $integrations = (array) json_decode( wp_unslash( $_POST['integrations'] ) );
49
+ }
50
+
51
+ $form_fields = wp_unslash( $form_fields );
52
+ $notifications = wp_unslash( $notifications );
53
+
54
+ $form_fields = json_decode( $form_fields, true );
55
+ $notifications = json_decode( $notifications, true );
56
+
57
+ $data = array(
58
+ 'form_id' => absint( $form_data['wpuf_form_id'] ),
59
+ 'post_title' => sanitize_text_field( $form_data['post_title'] ),
60
+ 'form_fields' => $form_fields,
61
+ 'form_settings' => $settings,
62
+ 'form_settings_key' => isset( $form_data['form_settings_key'] ) ? $form_data['form_settings_key'] : '',
63
+ 'notifications' => $notifications,
64
+ 'integrations' => $integrations
65
+ );
66
+
67
+ $form_fields = WPUF_Admin_Form_Builder::save_form( $data );
68
+
69
+ wp_send_json_success( array( 'form_fields' => $form_fields ) );
70
+ }
71
+
72
+ }
73
+
74
+ new WPUF_Admin_Form_Builder_Ajax();
admin/form-builder/class-wpuf-admin-form-builder.php ADDED
@@ -0,0 +1,409 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Form Builder framework
4
+ */
5
+
6
+ class WPUF_Admin_Form_Builder {
7
+
8
+ /**
9
+ * Form Settings
10
+ *
11
+ * @since 2.5
12
+ *
13
+ * @var string
14
+ */
15
+ private $settings = array();
16
+
17
+ /**
18
+ * Class contructor
19
+ *
20
+ * @since 2.5
21
+ *
22
+ * @return void
23
+ */
24
+ public function __construct( $settings ) {
25
+ global $post;
26
+
27
+ $defaults = array(
28
+ 'form_type' => '', // e.g 'post', 'profile' etc
29
+ 'post_type' => '', // e.g 'wpuf_forms', 'wpuf_profile' etc,
30
+ 'form_settings_key' => '',
31
+ 'post_id' => 0,
32
+ 'shortcodes' => array() // [ [ 'name' => 'wpuf_form', 'type' => 'profile' ], [ 'name' => 'wpuf_form', 'type' => 'registration' ] ]
33
+ );
34
+
35
+ $this->settings = wp_parse_args( $settings, $defaults );
36
+
37
+ // set post data to global $post
38
+ $post = get_post( $this->settings['post_id'] );
39
+
40
+ // if we have an existing post, then let's start
41
+ if ( ! empty( $post->ID ) ) {
42
+ add_action( 'in_admin_header', array( $this, 'remove_admin_notices' ) );
43
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
44
+ add_action( 'admin_print_scripts', array( $this, 'admin_print_scripts' ) );
45
+ add_action( 'admin_footer', array( $this, 'custom_dequeue' ) );
46
+ add_action( 'admin_footer', array( $this, 'admin_footer' ) );
47
+ add_action( 'wpuf-admin-form-builder', array( $this, 'include_form_builder' ) );
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Remove all kinds of admin notices
53
+ *
54
+ * Since we don't have much space left on top of the page,
55
+ * we have to remove all kinds of admin notices
56
+ *
57
+ * @since 2.5
58
+ *
59
+ * @return void
60
+ */
61
+ public function remove_admin_notices() {
62
+ remove_all_actions( 'network_admin_notices' );
63
+ remove_all_actions( 'user_admin_notices' );
64
+ remove_all_actions( 'admin_notices' );
65
+ remove_all_actions( 'all_admin_notices' );
66
+ }
67
+
68
+ /**
69
+ * Enqueue admin scripts
70
+ *
71
+ * @since 2.5
72
+ *
73
+ * @return void
74
+ */
75
+ public function admin_enqueue_scripts() {
76
+ global $post;
77
+
78
+ /**
79
+ * CSS
80
+ */
81
+ wp_enqueue_style( 'wpuf-css', WPUF_ASSET_URI . '/css/frontend-forms.css' );
82
+ wp_enqueue_style( 'wpuf-font-awesome', WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', array(), WPUF_VERSION );
83
+ wp_enqueue_style( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', array(), WPUF_VERSION );
84
+ wp_enqueue_style( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', array(), WPUF_VERSION );
85
+ wp_enqueue_style( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', array(), WPUF_VERSION );
86
+ wp_enqueue_style( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', array(), WPUF_VERSION );
87
+
88
+ $form_builder_css_deps = apply_filters( 'wpuf-form-builder-css-deps', array(
89
+ 'wpuf-css', 'wpuf-font-awesome', 'wpuf-sweetalert2', 'wpuf-selectize', 'wpuf-toastr', 'wpuf-tooltip'
90
+ ) );
91
+
92
+ wp_enqueue_style( 'wpuf-form-builder', WPUF_ASSET_URI . '/css/wpuf-form-builder.css', $form_builder_css_deps, WPUF_VERSION );
93
+
94
+ wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
95
+
96
+ do_action( 'wpuf-form-builder-enqueue-style' );
97
+
98
+ /**
99
+ * JavaScript
100
+ */
101
+ $prefix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
102
+
103
+ wp_enqueue_script( 'wpuf-vue', WPUF_ASSET_URI . '/vendor/vue/vue' . $prefix . '.js', array(), WPUF_VERSION, true );
104
+ wp_enqueue_script( 'wpuf-vuex', WPUF_ASSET_URI . '/vendor/vuex/vuex' . $prefix . '.js', array( 'wpuf-vue' ), WPUF_VERSION, true );
105
+ wp_enqueue_script( 'wpuf-sweetalert2', WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.js', array(), WPUF_VERSION, true );
106
+ wp_enqueue_script( 'wpuf-jquery-scrollTo', WPUF_ASSET_URI . '/vendor/jquery.scrollTo/jquery.scrollTo' . $prefix . '.js', array( 'jquery' ), WPUF_VERSION, true );
107
+ wp_enqueue_script( 'wpuf-selectize', WPUF_ASSET_URI . '/vendor/selectize/js/standalone/selectize' . $prefix . '.js', array( 'jquery' ), WPUF_VERSION, true );
108
+ wp_enqueue_script( 'wpuf-toastr', WPUF_ASSET_URI . '/vendor/toastr/toastr' . $prefix . '.js', array(), WPUF_VERSION, true );
109
+ wp_enqueue_script( 'wpuf-clipboard', WPUF_ASSET_URI . '/vendor/clipboard/clipboard' . $prefix . '.js', array(), WPUF_VERSION, true );
110
+ wp_enqueue_script( 'wpuf-tooltip', WPUF_ASSET_URI . '/vendor/tooltip/tooltip' . $prefix . '.js', array(), WPUF_VERSION, true );
111
+
112
+ $form_builder_js_deps = apply_filters( 'wpuf-form-builder-js-deps', array(
113
+ 'jquery', 'jquery-ui-sortable', 'jquery-ui-draggable', 'underscore',
114
+ 'wpuf-vue', 'wpuf-vuex', 'wpuf-sweetalert2', 'wpuf-jquery-scrollTo',
115
+ 'wpuf-selectize', 'wpuf-toastr', 'wpuf-clipboard', 'wpuf-tooltip'
116
+ ) );
117
+
118
+ wp_enqueue_script( 'wpuf-form-builder-mixins', WPUF_ASSET_URI . '/js/wpuf-form-builder-mixins.js', $form_builder_js_deps, WPUF_VERSION, true );
119
+
120
+ do_action( 'wpuf-form-builder-enqueue-after-mixins' );
121
+
122
+ wp_enqueue_script( 'wpuf-form-builder-components', WPUF_ASSET_URI . '/js/wpuf-form-builder-components.js', array( 'wpuf-form-builder-mixins' ), WPUF_VERSION, true );
123
+
124
+ do_action( 'wpuf-form-builder-enqueue-after-components' );
125
+
126
+ wp_enqueue_script( 'jquery-ui-timepicker', WPUF_ASSET_URI . '/js/jquery-ui-timepicker-addon.js', array( 'jquery-ui-datepicker' ) );
127
+
128
+ wp_enqueue_script( 'wpuf-form-builder', WPUF_ASSET_URI . '/js/wpuf-form-builder.js', array( 'wpuf-form-builder-components' ), WPUF_VERSION, true );
129
+
130
+ do_action( 'wpuf-form-builder-enqueue-after-main-instance' );
131
+
132
+ /*
133
+ * Data required for building the form
134
+ */
135
+ require_once WPUF_ROOT . '/admin/form-builder/class-wpuf-form-builder-field-settings.php';
136
+ require_once WPUF_ROOT . '/includes/free/prompt.php';
137
+
138
+ $wpuf_form_builder = apply_filters( 'wpuf-form-builder-localize-script', array(
139
+ 'i18n' => $this->i18n(),
140
+ 'post' => $post,
141
+ 'form_fields' => wpuf_get_form_fields( $post->ID ),
142
+ 'panel_sections' => $this->get_panel_sections(),
143
+ 'field_settings' => WPUF_Form_Builder_Field_Settings::get_field_settings(),
144
+ 'notifications' => wpuf_get_form_notifications( $post->ID ),
145
+ 'pro_link' => WPUF_Pro_Prompt::get_pro_url(),
146
+ 'site_url' => site_url('/'),
147
+ 'recaptcha_site' => wpuf_get_option( 'recaptcha_public', 'wpuf_general' ),
148
+ 'recaptcha_secret' => wpuf_get_option( 'recaptcha_private', 'wpuf_general' ),
149
+ ) );
150
+
151
+ wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_form_builder', $wpuf_form_builder );
152
+
153
+ // mixins
154
+ $wpuf_mixins = array(
155
+ 'root' => apply_filters( 'wpuf-form-builder-js-root-mixins', array() ),
156
+ 'builder_stage' => apply_filters( 'wpuf-form-builder-js-builder-stage-mixins', array() ),
157
+ 'form_fields' => apply_filters( 'wpuf-form-builder-js-form-fields-mixins', array() ),
158
+ 'field_options' => apply_filters( 'wpuf-form-builder-js-field-options-mixins', array() ),
159
+ );
160
+
161
+ wp_localize_script( 'wpuf-form-builder-mixins', 'wpuf_mixins', $wpuf_mixins );
162
+ }
163
+
164
+ /**
165
+ * Print js scripts in admin head
166
+ *
167
+ * @since 2.5
168
+ *
169
+ * @return void
170
+ */
171
+ public function admin_print_scripts() {
172
+ ?>
173
+ <script>
174
+ if (!window.Promise) {
175
+ var promise_polyfill = document.createElement('script');
176
+ promise_polyfill.setAttribute('src','https://cdn.polyfill.io/v2/polyfill.min.js');
177
+ document.head.appendChild(promise_polyfill);
178
+ }
179
+ </script>
180
+
181
+ <script>
182
+ var wpuf_form_builder_mixins = function(mixins, mixin_parent) {
183
+ if (!mixins || !mixins.length) {
184
+ return [];
185
+ }
186
+
187
+ if (!mixin_parent) {
188
+ mixin_parent = window;
189
+ }
190
+
191
+ return mixins.map(function (mixin) {
192
+ return mixin_parent[mixin];
193
+ });
194
+ };
195
+ </script>
196
+ <?php
197
+ }
198
+
199
+ /**
200
+ * Include vue component templates
201
+ *
202
+ * @since 2.5
203
+ *
204
+ * @return void
205
+ */
206
+ public function admin_footer() {
207
+ // get all vue component names
208
+
209
+ include WPUF_ROOT . '/assets/js-templates/form-components.php';
210
+
211
+ do_action( 'wpuf-form-builder-add-js-templates' );
212
+ }
213
+
214
+
215
+ /**
216
+ * Dequeue style and script to avoid conflict with Imagify Image Optimizer plugin
217
+ *
218
+ * @since 2.5
219
+ *
220
+ * @param string $template
221
+ * @param string $file_path
222
+ *
223
+ * @return void
224
+ */
225
+ public static function custom_dequeue() {
226
+ wp_dequeue_style( 'imagify-css-sweetalert' );
227
+ wp_deregister_style( 'imagify-css-sweetalert' );
228
+ wp_dequeue_script( 'imagify-js-sweetalert' );
229
+ wp_deregister_script( 'imagify-js-sweetalert' );
230
+ }
231
+
232
+ /**
233
+ * Include form builder view template
234
+ *
235
+ * @since 2.5
236
+ *
237
+ * @return void
238
+ */
239
+ public function include_form_builder() {
240
+ $form_id = $this->settings['post_id'];
241
+ $form_type = $this->settings['form_type'];
242
+ $post_type = $this->settings['post_type'];
243
+ $form_settings_key = $this->settings['form_settings_key'];
244
+ $shortcodes = $this->settings['shortcodes'];
245
+
246
+ $forms = get_posts( array( 'post_type' => $post_type, 'post_status' => 'any' ) );
247
+
248
+ include WPUF_ROOT . '/admin/form-builder/views/form-builder.php';
249
+ }
250
+
251
+ /**
252
+ * Add Fields panel sections
253
+ *
254
+ * @since 2.5
255
+ *
256
+ * @return array
257
+ */
258
+ private function get_panel_sections() {
259
+ $before_custom_fields = apply_filters( 'wpuf-form-builder-fields-section-before', array() );
260
+
261
+ $sections = array_merge( $before_custom_fields, $this->get_custom_fields() );
262
+ $sections = array_merge( $sections, $this->get_others_fields() );
263
+
264
+ $after_custom_fields = apply_filters( 'wpuf-form-builder-fields-section-after', array() );
265
+
266
+ $sections = array_merge( $sections, $after_custom_fields );
267
+
268
+ return $sections;
269
+ }
270
+
271
+ /**
272
+ * Custom field section
273
+ *
274
+ * @since 2.5
275
+ *
276
+ * @return array
277
+ */
278
+ private function get_custom_fields() {
279
+ $fields = apply_filters( 'wpuf-form-builder-fields-custom-fields', array(
280
+ 'text_field', 'textarea_field', 'dropdown_field', 'multiple_select',
281
+ 'radio_field', 'checkbox_field', 'website_url', 'email_address',
282
+ 'custom_hidden_field', 'image_upload'
283
+ ) );
284
+
285
+ return array(
286
+ array(
287
+ 'title' => __( 'Custom Fields', 'wpuf' ),
288
+ 'id' => 'custom-fields',
289
+ 'fields' => $fields
290
+ )
291
+ );
292
+ }
293
+
294
+ /**
295
+ * Others field section
296
+ *
297
+ * @since 2.5
298
+ *
299
+ * @return array
300
+ */
301
+ private function get_others_fields() {
302
+ $fields = apply_filters( 'wpuf-form-builder-fields-others-fields', array(
303
+ 'section_break', 'custom_html', 'recaptcha'
304
+ ) );
305
+
306
+ return array(
307
+ array(
308
+ 'title' => __( 'Others', 'wpuf' ),
309
+ 'id' => 'others',
310
+ 'fields' => $fields
311
+ )
312
+ );
313
+ }
314
+
315
+ /**
316
+ * i18n translatable strings
317
+ *
318
+ * @since 2.5
319
+ *
320
+ * @return array
321
+ */
322
+ private function i18n() {
323
+ return apply_filters( 'wpuf-form-builder-i18n', array(
324
+ 'advanced_options' => __( 'Advanced Options', 'wpuf' ),
325
+ 'delete_field_warn_msg' => __( 'Are you sure you want to delete this field?', 'wpuf' ),
326
+ 'yes_delete_it' => __( 'Yes, delete it', 'wpuf' ),
327
+ 'no_cancel_it' => __( 'No, cancel it', 'wpuf' ),
328
+ 'ok' => __( 'OK', 'wpuf' ),
329
+ 'cancel' => __( 'Cancel', 'wpuf' ),
330
+ 'close' => __( 'Close', 'wpuf' ),
331
+ 'last_choice_warn_msg' => __( 'This field must contain at least one choice', 'wpuf' ),
332
+ 'option' => __( 'Option', 'wpuf' ),
333
+ 'column' => __( 'Column', 'wpuf' ),
334
+ 'last_column_warn_msg' => __( 'This field must contain at least one column', 'wpuf' ),
335
+ 'is_a_pro_feature' => __( 'is available in Pro version', 'wpuf' ),
336
+ 'pro_feature_msg' => __( 'Please upgrade to the Pro version to unlock all these awesome features', 'wpuf' ),
337
+ 'upgrade_to_pro' => __( 'Get the Pro version', 'wpuf' ),
338
+ 'select' => __( 'Select', 'wpuf' ),
339
+ 'saved_form_data' => __( 'Saved form data', 'wpuf' ),
340
+ 'unsaved_changes' => __( 'You have unsaved changes.', 'wpuf' ),
341
+ 'copy_shortcode' => __( 'Click to copy shortcode', 'wpuf' ),
342
+ ) );
343
+ }
344
+
345
+ /**
346
+ * Save form data
347
+ *
348
+ * @since 2.5
349
+ *
350
+ * @param array $data Contains form_fields, form_settings, form_settings_key data
351
+ *
352
+ * @return boolean
353
+ */
354
+ public static function save_form( $data ) {
355
+ $saved_wpuf_inputs = array();
356
+
357
+ wp_update_post( array( 'ID' => $data['form_id'], 'post_status' => 'publish', 'post_title' => $data['post_title'] ) );
358
+
359
+ $existing_wpuf_input_ids = get_children( array(
360
+ 'post_parent' => $data['form_id'],
361
+ 'post_status' => 'publish',
362
+ 'post_type' => 'wpuf_input',
363
+ 'numberposts' => '-1',
364
+ 'orderby' => 'menu_order',
365
+ 'order' => 'ASC',
366
+ 'fields' => 'ids'
367
+ ) );
368
+
369
+ $new_wpuf_input_ids = array();
370
+
371
+ if ( ! empty( $data['form_fields'] ) ) {
372
+
373
+ foreach ( $data['form_fields'] as $order => $field ) {
374
+ if ( ! empty( $field['is_new'] ) ) {
375
+ unset( $field['is_new'] );
376
+ unset( $field['id'] );
377
+
378
+ $field_id = 0;
379
+
380
+ } else {
381
+ $field_id = $field['id'];
382
+ }
383
+
384
+ $field_id = wpuf_insert_form_field( $data['form_id'], $field, $field_id, $order );
385
+
386
+ $new_wpuf_input_ids[] = $field_id;
387
+
388
+ $field['id'] = $field_id;
389
+
390
+ $saved_wpuf_inputs[] = $field;
391
+ }
392
+
393
+ }
394
+
395
+ $inputs_to_delete = array_diff( $existing_wpuf_input_ids, $new_wpuf_input_ids );
396
+
397
+ if ( ! empty( $inputs_to_delete ) ) {
398
+ foreach ( $inputs_to_delete as $delete_id ) {
399
+ wp_delete_post( $delete_id , true );
400
+ }
401
+ }
402
+
403
+ update_post_meta( $data['form_id'], $data['form_settings_key'], $data['form_settings'] );
404
+ update_post_meta( $data['form_id'], 'notifications', $data['notifications'] );
405
+ update_post_meta( $data['form_id'], 'integrations', $data['integrations'] );
406
+
407
+ return $saved_wpuf_inputs;
408
+ }
409
+ }
admin/form-builder/class-wpuf-form-builder-field-settings.php ADDED
@@ -0,0 +1,975 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Field settings properties
4
+ */
5
+ class WPUF_Form_Builder_Field_Settings {
6
+
7
+ /**
8
+ * All field settings
9
+ *
10
+ * @since 2.5
11
+ *
12
+ * @return array
13
+ */
14
+ public static function get_field_settings() {
15
+ return apply_filters( 'wpuf-form-builder-field-settings', array(
16
+ 'text_field' => self::text_field(),
17
+ 'textarea_field' => self::textarea_field(),
18
+ 'dropdown_field' => self::dropdown_field(),
19
+ 'multiple_select' => self::multiple_select(),
20
+ 'radio_field' => self::radio_field(),
21
+ 'checkbox_field' => self::checkbox_field(),
22
+ 'website_url' => self::website_url(),
23
+ 'email_address' => self::email_address(),
24
+ 'custom_hidden_field' => self::custom_hidden_field(),
25
+ 'image_upload' => self::image_upload(),
26
+ 'section_break' => self::section_break(),
27
+ 'custom_html' => self::custom_html(),
28
+ 'recaptcha' => self::recaptcha(),
29
+ ) );
30
+ }
31
+
32
+ /**
33
+ * Common properties for all kinds of fields
34
+ *
35
+ * @since 2.5
36
+ *
37
+ * @param boolean $is_meta
38
+ *
39
+ * @return array
40
+ */
41
+ public static function get_common_properties( $is_meta = true ) {
42
+ $common_properties = array(
43
+ array(
44
+ 'name' => 'label',
45
+ 'title' => __( 'Field Label', 'wpuf' ),
46
+ 'type' => 'text',
47
+ 'section' => 'basic',
48
+ 'priority' => 10,
49
+ 'help_text' => __( 'Enter a title of this field', 'wpuf' ),
50
+ ),
51
+
52
+ array(
53
+ 'name' => 'help',
54
+ 'title' => __( 'Help text', 'wpuf' ),
55
+ 'type' => 'text',
56
+ 'section' => 'basic',
57
+ 'priority' => 20,
58
+ 'help_text' => __( 'Give the user some information about this field', 'wpuf' ),
59
+ ),
60
+
61
+ array(
62
+ 'name' => 'required',
63
+ 'title' => __( 'Required', 'wpuf' ),
64
+ 'type' => 'radio',
65
+ 'options' => array(
66
+ 'yes' => __( 'Yes', 'wpuf' ),
67
+ 'no' => __( 'No', 'wpuf' ),
68
+ ),
69
+ 'section' => 'basic',
70
+ 'priority' => 21,
71
+ 'default' => 'no',
72
+ 'inline' => true,
73
+ 'help_text' => __( 'Check this option to mark the field required. A form will not submit unless all required fields are provided.', 'wpuf' ),
74
+ ),
75
+
76
+ array(
77
+ 'name' => 'width',
78
+ 'title' => __( 'Field Size', 'wpuf' ),
79
+ 'type' => 'radio',
80
+ 'options' => array(
81
+ 'small' => __( 'Small', 'wpuf' ),
82
+ 'medium' => __( 'Medium', 'wpuf' ),
83
+ 'large' => __( 'Large', 'wpuf' ),
84
+ ),
85
+ 'section' => 'advanced',
86
+ 'priority' => 23,
87
+ 'default' => 'large',
88
+ 'inline' => true,
89
+ ),
90
+
91
+ array(
92
+ 'name' => 'css',
93
+ 'title' => __( 'CSS Class Name', 'wpuf' ),
94
+ 'type' => 'text',
95
+ 'section' => 'advanced',
96
+ 'priority' => 22,
97
+ 'help_text' => __( 'Provide a container class name for this field.', 'wpuf' ),
98
+ )
99
+ );
100
+
101
+ if ( is_wpuf_post_form_builder() ) {
102
+ $common_properties = array_merge($common_properties, array(
103
+ array(
104
+ 'name' => 'wpuf_visibility',
105
+ 'title' => __( 'Visibility', 'wpuf' ),
106
+ 'type' => 'visibility',
107
+ 'section' => 'advanced',
108
+ 'options' => array(
109
+ 'everyone' => __( 'Everyone', 'wpuf' ),
110
+ 'hidden' => __( 'Hidden', 'wpuf' ),
111
+ 'logged_in' => __( 'Logged in users only', 'wpuf' ),
112
+ 'subscribed_users' => __( 'Subscription users only', 'wpuf' ),
113
+ ),
114
+ 'priority' => 30,
115
+ 'inline' => true,
116
+ 'help_text' => __( 'Select option', 'wpuf' ),
117
+ )
118
+ ));
119
+ }
120
+
121
+ if ( $is_meta ) {
122
+ $common_properties = array_merge($common_properties, array(
123
+ array(
124
+ 'name' => 'name',
125
+ 'title' => __( 'Meta Key', 'wpuf' ),
126
+ 'type' => 'text-meta',
127
+ 'section' => 'basic',
128
+ 'priority' => 11,
129
+ 'help_text' => __( 'Name of the meta key this field will save to', 'wpuf' ),
130
+ )
131
+ ));
132
+
133
+ if ( is_wpuf_post_form_builder() ) {
134
+ $common_properties = array_merge($common_properties, array(
135
+ array(
136
+ 'name' => 'show_in_post',
137
+ 'title' => __( 'Show Data in Post', 'wpuf' ),
138
+ 'type' => 'radio',
139
+ 'options' => array(
140
+ 'yes' => __( 'Yes', 'wpuf' ),
141
+ 'no' => __( 'No', 'wpuf' ),
142
+ ),
143
+ 'section' => 'advanced',
144
+ 'priority' => 24,
145
+ 'default' => 'yes',
146
+ 'inline' => true,
147
+ 'help_text' => __( 'Select Yes if you want to show the field data in single post.', 'wpuf' ),
148
+ )
149
+ ));
150
+ }
151
+ }
152
+
153
+ return apply_filters( 'wpuf-form-builder-fields-common-properties', $common_properties );
154
+ }
155
+
156
+ /**
157
+ * Common properties of a text input field
158
+ *
159
+ * @since 2.5
160
+ *
161
+ * @return array
162
+ */
163
+ public static function get_common_text_properties( $word_restriction = false ) {
164
+ $properties = array(
165
+ array(
166
+ 'name' => 'placeholder',
167
+ 'title' => __( 'Placeholder text', 'wpuf' ),
168
+ 'type' => 'text',
169
+ 'section' => 'advanced',
170
+ 'priority' => 10,
171
+ 'help_text' => __( 'Text for HTML5 placeholder attribute', 'wpuf' ),
172
+ ),
173
+
174
+ array(
175
+ 'name' => 'default',
176
+ 'title' => __( 'Default value', 'wpuf' ),
177
+ 'type' => 'text',
178
+ 'section' => 'advanced',
179
+ 'priority' => 11,
180
+ 'help_text' => __( 'The default value this field will have', 'wpuf' ),
181
+ ),
182
+
183
+ array(
184
+ 'name' => 'size',
185
+ 'title' => __( 'Size', 'wpuf' ),
186
+ 'type' => 'text',
187
+ 'variation' => 'number',
188
+ 'section' => 'advanced',
189
+ 'priority' => 20,
190
+ 'help_text' => __( 'Size of this input field', 'wpuf' ),
191
+ )
192
+ );
193
+
194
+ if ( $word_restriction ) {
195
+ $properties[] = array(
196
+ 'name' => 'word_restriction',
197
+ 'title' => __( 'Word Restriction', 'wpuf' ),
198
+ 'type' => 'text',
199
+ 'section' => 'advanced',
200
+ 'priority' => 15,
201
+ 'help_text' => __( 'Numebr of words the author to be restricted in', 'wpuf' ),
202
+ );
203
+ }
204
+
205
+ return apply_filters( 'wpuf-form-builder-common-text-fields-properties', $properties );
206
+ }
207
+
208
+ /**
209
+ * Common properties of a textarea field
210
+ *
211
+ * @since 2.5
212
+ *
213
+ * @return array
214
+ */
215
+ public static function get_common_textarea_properties() {
216
+ return array(
217
+ array(
218
+ 'name' => 'rows',
219
+ 'title' => __( 'Rows', 'wpuf' ),
220
+ 'type' => 'text',
221
+ 'section' => 'advanced',
222
+ 'priority' => 10,
223
+ 'help_text' => __( 'Number of rows in textarea', 'wpuf' ),
224
+ ),
225
+
226
+ array(
227
+ 'name' => 'cols',
228
+ 'title' => __( 'Columns', 'wpuf' ),
229
+ 'type' => 'text',
230
+ 'section' => 'advanced',
231
+ 'priority' => 11,
232
+ 'help_text' => __( 'Number of columns in textarea', 'wpuf' ),
233
+ ),
234
+
235
+ array(
236
+ 'name' => 'placeholder',
237
+ 'title' => __( 'Placeholder text', 'wpuf' ),
238
+ 'type' => 'text',
239
+ 'section' => 'advanced',
240
+ 'priority' => 12,
241
+ 'help_text' => __( 'Text for HTML5 placeholder attribute', 'wpuf' ),
242
+ 'dependencies' => array(
243
+ 'rich' => 'no'
244
+ )
245
+ ),
246
+
247
+ array(
248
+ 'name' => 'default',
249
+ 'title' => __( 'Default value', 'wpuf' ),
250
+ 'type' => 'text',
251
+ 'section' => 'advanced',
252
+ 'priority' => 13,
253
+ 'help_text' => __( 'The default value this field will have', 'wpuf' ),
254
+ ),
255
+
256
+ array(
257
+ 'name' => 'rich',
258
+ 'title' => __( 'Textarea', 'wpuf' ),
259
+ 'type' => 'radio',
260
+ 'options' => array(
261
+ 'no' => __( 'Normal', 'wpuf' ),
262
+ 'yes' => __( 'Rich textarea', 'wpuf' ),
263
+ 'teeny' => __( 'Teeny Rich textarea', 'wpuf' ),
264
+ ),
265
+ 'section' => 'advanced',
266
+ 'priority' => 14,
267
+ 'default' => 'no',
268
+ ),
269
+
270
+ array(
271
+ 'name' => 'word_restriction',
272
+ 'title' => __( 'Word Restriction', 'wpuf' ),
273
+ 'type' => 'text',
274
+ 'section' => 'advanced',
275
+ 'priority' => 15,
276
+ 'help_text' => __( 'Numebr of words the author to be restricted in', 'wpuf' ),
277
+ ),
278
+ );
279
+ }
280
+
281
+ /**
282
+ * wpuf_visibility property for all fields
283
+ *
284
+ * @since 2.6
285
+ *
286
+ * @return array
287
+ */
288
+ public static function get_wpuf_visibility_prop( $default = 'everyone' ) {
289
+ return array(
290
+ 'selected' => $default,
291
+ 'choices' => array()
292
+ );
293
+ }
294
+
295
+ /**
296
+ * wpuf_cond property for all fields
297
+ *
298
+ * @since 2.5
299
+ *
300
+ * @return array
301
+ */
302
+ public static function get_wpuf_cond_prop() {
303
+ return array(
304
+ 'condition_status' => 'no',
305
+ 'cond_field' => array(),
306
+ 'cond_operator' => array( '=' ),
307
+ 'cond_option' => array( __( '- select -', 'wpuf' ) ),
308
+ 'cond_logic' => 'all'
309
+ );
310
+ }
311
+
312
+ /**
313
+ * Text field settings
314
+ *
315
+ * @since 2.5
316
+ *
317
+ * @return array
318
+ */
319
+ public static function text_field() {
320
+ $settings = self::get_common_properties();
321
+ $settings = array_merge( $settings, self::get_common_text_properties( true ) );
322
+
323
+ return array(
324
+ 'template' => 'text_field',
325
+ 'title' => __( 'Text', 'wpuf' ),
326
+ 'icon' => 'text-width',
327
+ 'settings' => $settings,
328
+ 'field_props' => array(
329
+ 'input_type' => 'text',
330
+ 'template' => 'text_field',
331
+ 'required' => 'no',
332
+ 'label' => __( 'Text', 'wpuf' ),
333
+ 'name' => '',
334
+ 'is_meta' => 'yes',
335
+ 'help' => '',
336
+ 'width' => '',
337
+ 'css' => '',
338
+ 'placeholder' => '',
339
+ 'default' => '',
340
+ 'size' => 40,
341
+ 'word_restriction' => '',
342
+ 'id' => 0,
343
+ 'is_new' => true,
344
+ 'show_in_post' => 'yes',
345
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
346
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
347
+ )
348
+ );
349
+ }
350
+
351
+ /**
352
+ * Textarea field settings
353
+ *
354
+ * @since 2.5
355
+ *
356
+ * @return array
357
+ */
358
+ public static function textarea_field() {
359
+ $settings = self::get_common_properties();
360
+ $settings = array_merge( $settings, self::get_common_textarea_properties() );
361
+
362
+ return array(
363
+ 'template' => 'textarea_field',
364
+ 'title' => __( 'Textarea', 'wpuf' ),
365
+ 'icon' => 'paragraph',
366
+ 'settings' => $settings,
367
+ 'field_props' => array(
368
+ 'input_type' => 'textarea',
369
+ 'template' => 'textarea_field',
370
+ 'required' => 'no',
371
+ 'label' => __( 'Textarea', 'wpuf' ),
372
+ 'name' => '',
373
+ 'is_meta' => 'yes',
374
+ 'help' => '',
375
+ 'width' => '',
376
+ 'css' => '',
377
+ 'rows' => 5,
378
+ 'cols' => 25,
379
+ 'placeholder' => '',
380
+ 'default' => '',
381
+ 'rich' => 'no',
382
+ 'word_restriction' => '',
383
+ 'id' => 0,
384
+ 'is_new' => true,
385
+ 'show_in_post' => 'yes',
386
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
387
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
388
+ )
389
+ );
390
+ }
391
+
392
+ /**
393
+ * Option data for option based fields
394
+ *
395
+ * @since 2.5
396
+ *
397
+ * @param boolean $is_multiple
398
+ *
399
+ * @return array
400
+ */
401
+ public static function get_option_data_setting( $is_multiple = false ) {
402
+ return array(
403
+ 'name' => 'options',
404
+ 'title' => __( 'Options', 'wpuf' ),
405
+ 'type' => 'option-data',
406
+ 'is_multiple' => $is_multiple,
407
+ 'section' => 'basic',
408
+ 'priority' => 12,
409
+ 'help_text' => __( 'Add options for the form field', 'wpuf' ),
410
+ );
411
+ }
412
+
413
+ /**
414
+ * Dropdown/Select field settings
415
+ *
416
+ * @since 2.5
417
+ *
418
+ * @return array
419
+ */
420
+ public static function dropdown_field() {
421
+ $settings = self::get_common_properties();
422
+
423
+ $dropdown_settings = array(
424
+ self::get_option_data_setting(),
425
+
426
+ array(
427
+ 'name' => 'first',
428
+ 'title' => __( 'Select Text', 'wpuf' ),
429
+ 'type' => 'text',
430
+ 'section' => 'basic',
431
+ 'priority' => 13,
432
+ 'help_text' => __( "First element of the select dropdown. Leave this empty if you don't want to show this field", 'wpuf' ),
433
+ ),
434
+ );
435
+
436
+ $settings = array_merge( $settings, $dropdown_settings );
437
+
438
+ return array(
439
+ 'template' => 'dropdown_field',
440
+ 'title' => __( 'Dropdown', 'wpuf' ),
441
+ 'icon' => 'caret-square-o-down',
442
+ 'settings' => $settings,
443
+ 'field_props' => array(
444
+ 'input_type' => 'select',
445
+ 'template' => 'dropdown_field',
446
+ 'required' => 'no',
447
+ 'label' => __( 'Dropdown', 'wpuf' ),
448
+ 'name' => '',
449
+ 'is_meta' => 'yes',
450
+ 'help' => '',
451
+ 'width' => '',
452
+ 'css' => '',
453
+ 'selected' => '',
454
+ 'options' => array( 'Option' => __( 'Option', 'wpuf' ) ),
455
+ 'first' => __( '- select -', 'wpuf' ),
456
+ 'id' => 0,
457
+ 'is_new' => true,
458
+ 'show_in_post' => 'yes',
459
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
460
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
461
+ )
462
+ );
463
+ }
464
+
465
+ /**
466
+ * Multiselect field settings
467
+ *
468
+ * @since 2.5
469
+ *
470
+ * @return array
471
+ */
472
+ public static function multiple_select() {
473
+ $settings = self::get_common_properties();
474
+
475
+ $dropdown_settings = array(
476
+ self::get_option_data_setting( true )
477
+ );
478
+
479
+ $settings = array_merge( $settings, $dropdown_settings );
480
+
481
+ return array(
482
+ 'template' => 'multiple_select',
483
+ 'title' => __( 'Multi Select', 'wpuf' ),
484
+ 'icon' => 'list-ul',
485
+ 'settings' => $settings,
486
+ 'field_props' => array(
487
+ 'input_type' => 'multiselect',
488
+ 'template' => 'multiple_select',
489
+ 'required' => 'no',
490
+ 'label' => __( 'Multi Select', 'wpuf' ),
491
+ 'name' => '',
492
+ 'is_meta' => 'yes',
493
+ 'help' => '',
494
+ 'width' => '',
495
+ 'css' => '',
496
+ 'selected' => array(),
497
+ 'options' => array( 'Option' => __( 'Option', 'wpuf' ) ),
498
+ 'first' => __( '- select -', 'wpuf' ),
499
+ 'id' => 0,
500
+ 'is_new' => true,
501
+ 'show_in_post' => 'yes',
502
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
503
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
504
+ )
505
+ );
506
+ }
507
+
508
+ /**
509
+ * Radio field settings
510
+ *
511
+ * @since 2.5
512
+ *
513
+ * @return array
514
+ */
515
+ public static function radio_field() {
516
+ $settings = self::get_common_properties();
517
+
518
+ $dropdown_settings = array(
519
+ self::get_option_data_setting(),
520
+
521
+ array(
522
+ 'name' => 'inline',
523
+ 'title' => __( 'Show in inline list', 'wpuf' ),
524
+ 'type' => 'radio',
525
+ 'options' => array(
526
+ 'yes' => __( 'Yes', 'wpuf' ),
527
+ 'no' => __( 'No', 'wpuf' ),
528
+ ),
529
+ 'default' => 'no',
530
+ 'inline' => true,
531
+ 'section' => 'advanced',
532
+ 'priority' => 23,
533
+ 'help_text' => __( 'Show this option in an inline list', 'wpuf' ),
534
+ )
535
+ );
536
+
537
+ $settings = array_merge( $settings, $dropdown_settings );
538
+
539
+ return array(
540
+ 'template' => 'radio_field',
541
+ 'title' => __( 'Radio', 'wpuf' ),
542
+ 'icon' => 'dot-circle-o',
543
+ 'settings' => $settings,
544
+ 'field_props' => array(
545
+ 'input_type' => 'radio',
546
+ 'template' => 'radio_field',
547
+ 'required' => 'no',
548
+ 'label' => __( 'Radio Field', 'wpuf' ),
549
+ 'name' => '',
550
+ 'is_meta' => 'yes',
551
+ 'help' => '',
552
+ 'width' => '',
553
+ 'css' => '',
554
+ 'selected' => '',
555
+ 'inline' => 'no',
556
+ 'options' => array( 'Option' => __( 'Option', 'wpuf' ) ),
557
+ 'id' => 0,
558
+ 'is_new' => true,
559
+ 'show_in_post' => 'yes',
560
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
561
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
562
+ )
563
+ );
564
+ }
565
+
566
+ /**
567
+ * Checkbox field settings
568
+ *
569
+ * @since 2.5
570
+ *
571
+ * @return array
572
+ */
573
+ public static function checkbox_field() {
574
+ $settings = self::get_common_properties();
575
+
576
+ $dropdown_settings = array(
577
+ self::get_option_data_setting( true ),
578
+
579
+ array(
580
+ 'name' => 'inline',
581
+ 'title' => __( 'Show in inline list', 'wpuf' ),
582
+ 'type' => 'radio',
583
+ 'options' => array(
584
+ 'yes' => __( 'Yes', 'wpuf' ),
585
+ 'no' => __( 'No', 'wpuf' ),
586
+ ),
587
+ 'default' => 'no',
588
+ 'inline' => true,
589
+ 'section' => 'advanced',
590
+ 'priority' => 23,
591
+ 'help_text' => __( 'Show this option in an inline list', 'wpuf' ),
592
+ )
593
+ );
594
+
595
+ $settings = array_merge( $settings, $dropdown_settings );
596
+
597
+ return array(
598
+ 'template' => 'checkbox_field',
599
+ 'title' => __( 'Checkbox', 'wpuf' ),
600
+ 'icon' => 'check-square-o',
601
+ 'settings' => $settings,
602
+ 'field_props' => array(
603
+ 'input_type' => 'checkbox',
604
+ 'template' => 'checkbox_field',
605
+ 'required' => 'no',
606
+ 'label' => __( 'Checkbox Field', 'wpuf' ),
607
+ 'name' => '',
608
+ 'is_meta' => 'yes',
609
+ 'help' => '',
610
+ 'width' => '',
611
+ 'css' => '',
612
+ 'selected' => array(),
613
+ 'inline' => 'no',
614
+ 'options' => array( 'Option' => __( 'Option', 'wpuf' ) ),
615
+ 'id' => 0,
616
+ 'is_new' => true,
617
+ 'show_in_post' => 'yes',
618
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
619
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
620
+ )
621
+ );
622
+ }
623
+
624
+ /**
625
+ * Website URL field settings
626
+ *
627
+ * @since 2.5
628
+ *
629
+ * @return array
630
+ */
631
+ public static function website_url() {
632
+ $settings = self::get_common_properties();
633
+ $settings = array_merge( $settings, self::get_common_text_properties() );
634
+ $settings[] = array(
635
+ 'name' => 'open_window',
636
+ 'title' => __( 'Open in : ', 'wpuf' ),
637
+ 'type' => 'radio',
638
+ 'options' => array(
639
+ 'same' => __( 'Same Window', 'wpuf' ),
640
+ 'new' => __( 'New Window', 'wpuf' ),
641
+ ),
642
+ 'section' => 'basic',
643
+ 'default' => 'same',
644
+ 'inline' => true,
645
+ 'priority' => 32,
646
+ 'help_text' => __( 'Choose whether the link will open in new tab or same window', 'wpuf' ),
647
+ );
648
+
649
+ return array(
650
+ 'template' => 'website_url',
651
+ 'title' => __( 'URL', 'wpuf' ),
652
+ 'icon' => 'link',
653
+ 'settings' => $settings,
654
+ 'field_props' => array(
655
+ 'input_type' => 'url',
656
+ 'template' => 'website_url',
657
+ 'required' => 'no',
658
+ 'label' => __( 'URL', 'wpuf' ),
659
+ 'name' => '',
660
+ 'is_meta' => 'yes',
661
+ 'help' => '',
662
+ 'width' => 'large',
663
+ 'css' => '',
664
+ 'placeholder' => '',
665
+ 'default' => '',
666
+ 'open_window' => 'same',
667
+ 'size' => 40,
668
+ 'id' => 0,
669
+ 'is_new' => true,
670
+ 'show_in_post' => 'yes',
671
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
672
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
673
+ )
674
+ );
675
+ }
676
+
677
+ /**
678
+ * Email field settings
679
+ *
680
+ * @since 2.5
681
+ *
682
+ * @return array
683
+ */
684
+ public static function email_address() {
685
+ $settings = self::get_common_properties();
686
+ $settings = array_merge( $settings, self::get_common_text_properties() );
687
+
688
+ return array(
689
+ 'template' => 'email_address',
690
+ 'title' => __( 'Email Address', 'wpuf' ),
691
+ 'icon' => 'envelope-o',
692
+ 'settings' => $settings,
693
+ 'field_props' => array(
694
+ 'input_type' => 'email',
695
+ 'template' => 'email_address',
696
+ 'required' => 'no',
697
+ 'label' => __( 'Email', 'wpuf' ),
698
+ 'name' => '',
699
+ 'is_meta' => 'yes',
700
+ 'help' => '',
701
+ 'width' => 'large',
702
+ 'css' => '',
703
+ 'placeholder' => '',
704
+ 'default' => '',
705
+ 'size' => 40,
706
+ 'id' => 0,
707
+ 'is_new' => true,
708
+ 'show_in_post' => 'yes',
709
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
710
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
711
+ )
712
+ );
713
+ }
714
+
715
+ /**
716
+ * Hidden field settings
717
+ *
718
+ * @since 2.5
719
+ *
720
+ * @return array
721
+ */
722
+ public static function custom_hidden_field() {
723
+ $settings = array(
724
+ array(
725
+ 'name' => 'name',
726
+ 'title' => __( 'Meta Key', 'wpuf' ),
727
+ 'type' => 'text',
728
+ 'section' => 'basic',
729
+ 'priority' => 10,
730
+ 'help_text' => __( 'Name of the meta key this field will save to', 'wpuf' ),
731
+ ),
732
+
733
+ array(
734
+ 'name' => 'meta_value',
735
+ 'title' => __( 'Meta Value', 'wpuf' ),
736
+ 'type' => 'text',
737
+ 'section' => 'basic',
738
+ 'priority' => 11,
739
+ 'help_text' => __( 'Enter the meta value', 'wpuf' ),
740
+ ),
741
+ );
742
+
743
+ return array(
744
+ 'template' => 'custom_hidden_field',
745
+ 'title' => __( 'Hidden Field', 'wpuf' ),
746
+ 'icon' => 'eye-slash',
747
+ 'settings' => $settings,
748
+ 'field_props' => array(
749
+ 'input_type' => 'hidden',
750
+ 'template' => 'custom_hidden_field',
751
+ 'label' => '',
752
+ 'name' => '',
753
+ 'meta_value' => '',
754
+ 'is_meta' => 'yes',
755
+ 'id' => 0,
756
+ 'is_new' => true,
757
+ 'show_in_post' => 'yes',
758
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
759
+ 'wpuf_cond' => null
760
+ )
761
+ );
762
+ }
763
+
764
+ /**
765
+ * Image field settings
766
+ *
767
+ * @since 2.5
768
+ *
769
+ * @return array
770
+ */
771
+ public static function image_upload() {
772
+ $settings = self::get_common_properties();
773
+
774
+ $settings = array_merge( $settings, array(
775
+ array(
776
+ 'name' => 'button_label',
777
+ 'title' => __( 'Button Label', 'wpuf' ),
778
+ 'type' => 'text',
779
+ 'default' => __( 'Select Image', 'wpuf' ),
780
+ 'section' => 'basic',
781
+ 'priority' => 30,
782
+ 'help_text' => __( 'Enter a label for the Select button', 'wpuf' ),
783
+ ),
784
+ array(
785
+ 'name' => 'max_size',
786
+ 'title' => __( 'Max. file size', 'wpuf' ),
787
+ 'type' => 'text',
788
+ 'section' => 'advanced',
789
+ 'priority' => 20,
790
+ 'help_text' => __( 'Enter maximum upload size limit in KB', 'wpuf' ),
791
+ ),
792
+ array(
793
+ 'name' => 'count',
794
+ 'title' => __( 'Max. files', 'wpuf' ),
795
+ 'type' => 'text',
796
+ 'section' => 'advanced',
797
+ 'priority' => 21,
798
+ 'help_text' => __( 'Number of images can be uploaded', 'wpuf' ),
799
+ ),
800
+ ) );
801
+
802
+ return array(
803
+ 'template' => 'image_upload',
804
+ 'title' => __( 'Image Upload', 'wpuf' ),
805
+ 'icon' => 'file-image-o',
806
+ 'settings' => $settings,
807
+ 'field_props' => array(
808
+ 'input_type' => 'image_upload',
809
+ 'template' => 'image_upload',
810
+ 'required' => 'no',
811
+ 'label' => __( 'Image Upload', 'wpuf' ),
812
+ 'name' => '',
813
+ 'button_label' => __( 'Select Image', 'wpuf' ),
814
+ 'is_meta' => 'yes',
815
+ 'help' => '',
816
+ 'width' => '',
817
+ 'css' => '',
818
+ 'max_size' => '1024',
819
+ 'count' => '1',
820
+ 'id' => 0,
821
+ 'is_new' => true,
822
+ 'show_in_post' => 'yes',
823
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
824
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
825
+ )
826
+ );
827
+ }
828
+
829
+ /**
830
+ * Section break field settings
831
+ *
832
+ * @since 2.5
833
+ *
834
+ * @return array
835
+ */
836
+ public static function section_break() {
837
+ $settings = array(
838
+ array(
839
+ 'name' => 'label',
840
+ 'title' => __( 'Title', 'wpuf' ),
841
+ 'type' => 'text',
842
+ 'section' => 'basic',
843
+ 'priority' => 10,
844
+ 'help_text' => __( 'Title of the section', 'wpuf' ),
845
+ ),
846
+
847
+ array(
848
+ 'name' => 'description',
849
+ 'title' => __( 'Description', 'wpuf' ),
850
+ 'type' => 'textarea',
851
+ 'section' => 'basic',
852
+ 'priority' => 11,
853
+ 'help_text' => __( 'Some details text about the section', 'wpuf' ),
854
+ ),
855
+ );
856
+
857
+ return array(
858
+ 'template' => 'section_break',
859
+ 'title' => __( 'Section Break', 'wpuf' ),
860
+ 'icon' => 'columns',
861
+ 'is_full_width' => true,
862
+ 'settings' => $settings,
863
+ 'field_props' => array(
864
+ 'input_type' => 'section_break',
865
+ 'template' => 'section_break',
866
+ 'label' => __( 'Section Break', 'wpuf' ),
867
+ 'description' => __( 'Some description about this section', 'wpuf' ),
868
+ 'id' => 0,
869
+ 'is_new' => true,
870
+ 'show_in_post' => 'yes',
871
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
872
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
873
+ )
874
+ );
875
+ }
876
+
877
+ /**
878
+ * HTML field settings
879
+ *
880
+ * @since 2.5
881
+ *
882
+ * @return array
883
+ */
884
+ public static function custom_html() {
885
+ $settings = array(
886
+ array(
887
+ 'name' => 'html',
888
+ 'title' => __( 'HTML Codes', 'wpuf' ),
889
+ 'type' => 'textarea',
890
+ 'section' => 'basic',
891
+ 'priority' => 11,
892
+ 'help_text' => __( 'Paste your HTML codes, WordPress shortcodes will also work here', 'wpuf' ),
893
+ ),
894
+ );
895
+
896
+ return array(
897
+ 'template' => 'custom_html',
898
+ 'title' => __( 'Custom HTML', 'wpuf' ),
899
+ 'icon' => 'code',
900
+ 'is_full_width' => true,
901
+ 'settings' => $settings,
902
+ 'field_props' => array(
903
+ 'input_type' => 'html',
904
+ 'template' => 'custom_html',
905
+ 'label' => __( 'Custom HTML', 'wpuf' ),
906
+ 'html' => sprintf( '<p>%s</p>', __( 'Some description about this section', 'wpuf' ) ),
907
+ 'id' => 0,
908
+ 'is_new' => true,
909
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
910
+ 'wpuf_cond' => self::get_wpuf_cond_prop()
911
+ )
912
+ );
913
+ }
914
+
915
+ /**
916
+ * Recaptcha
917
+ *
918
+ * @since 2.5
919
+ *
920
+ * @return array
921
+ */
922
+ public static function recaptcha() {
923
+ $settings = array(
924
+ array(
925
+ 'name' => 'label',
926
+ 'title' => __( 'Title', 'wpuf' ),
927
+ 'type' => 'text',
928
+ 'section' => 'basic',
929
+ 'priority' => 10,
930
+ 'help_text' => __( 'Title of the section', 'wpuf' ),
931
+ ),
932
+
933
+ array(
934
+ 'name' => 'recaptcha_type',
935
+ 'title' => 'reCaptcha type',
936
+ 'type' => 'radio',
937
+ 'options' => array(
938
+ 'enable_no_captcha' => __( 'Enable noCaptcha', 'wpuf' ),
939
+ 'invisible_recaptcha' => __( 'Enable Invisible reCaptcha', 'wpuf' ),
940
+ ),
941
+ 'default' => 'enable_no_captcha',
942
+ 'section' => 'basic',
943
+ 'priority' => 11,
944
+ 'help_text' => __( 'Select reCaptcha type', 'wpuf' ),
945
+ )
946
+ );
947
+
948
+ return array(
949
+ 'template' => 'recaptcha',
950
+ 'title' => __( 'reCaptcha', 'wpuf' ),
951
+ 'icon' => 'qrcode',
952
+ 'validator' => array(
953
+ 'callback' => 'has_recaptcha_api_keys',
954
+ 'button_class' => 'button-faded',
955
+ 'msg_title' => __( 'Site key and Secret key', 'wpuf' ),
956
+ 'msg' => sprintf(
957
+ __( 'You need to set Site key and Secret key in <a href="%s" target="_blank">Settings</a> in order to use "Recaptcha" field. <a href="%s" target="_blank">Click here to get the these key</a>.', 'wpuf' ),
958
+ admin_url( 'admin.php?page=wpuf-settings' ),
959
+ 'https://www.google.com/recaptcha/'
960
+ ),
961
+ ),
962
+ 'settings' => $settings,
963
+ 'field_props' => array(
964
+ 'input_type' => 'recaptcha',
965
+ 'template' => 'recaptcha',
966
+ 'label' => '',
967
+ 'recaptcha_type' => 'enable_no_captcha',
968
+ 'id' => 0,
969
+ 'is_new' => true,
970
+ 'wpuf_visibility' => self::get_wpuf_visibility_prop(),
971
+ 'wpuf_cond' => self::get_wpuf_cond_prop(),
972
+ )
973
+ );
974
+ }
975
+ }
admin/form-builder/views/form-builder.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <form id="wpuf-form-builder" class="wpuf-form-builder-<?php echo $form_type; ?>" method="post" action="" @submit.prevent="save_form_builder" v-cloak>
2
+ <fieldset :class="[is_form_saving ? 'disabled' : '']" :disabled="is_form_saving">
3
+ <h2 class="nav-tab-wrapper">
4
+ <a href="#wpuf-form-builder-container" class="nav-tab nav-tab-active">
5
+ <?php _e( 'Form Editor', 'wpuf' ); ?>
6
+ </a>
7
+
8
+ <a href="#wpuf-form-builder-settings" class="nav-tab">
9
+ <?php _e( 'Settings', 'wpuf' ); ?>
10
+ </a>
11
+
12
+ <?php do_action( "wpuf-form-builder-tabs-{$form_type}" ); ?>
13
+
14
+ <span class="pull-right">
15
+ <button v-if="!is_form_saving" type="button" class="button button-primary" @click="save_form_builder">
16
+ <?php _e( 'Save Form', 'wpuf' ); ?>
17
+ </button>
18
+
19
+ <button v-else type="button" class="button button-primary button-ajax-working" disabled>
20
+ <span class="loader"></span> <?php _e( 'Saving Form Data', 'wpuf' ); ?>
21
+ </button>
22
+ </span>
23
+ <span id="wpuf-toggle-field-options"><?php _e( 'Add Fields', 'wpuf' ); ?></span>
24
+ <span id="wpuf-toggle-show-form"><?php _e( 'Show Form', 'wpuf' ); ?></span>
25
+ </h2>
26
+
27
+ <div class="tab-contents">
28
+ <div id="wpuf-form-builder-container" class="group active">
29
+ <div id="builder-stage">
30
+ <header class="clearfix">
31
+ <span v-if="!post_title_editing" class="form-title" @click.prevent="post_title_editing = true">{{ post.post_title }}</span>
32
+
33
+ <span v-show="post_title_editing">
34
+ <input type="text" v-model="post.post_title" name="post_title" />
35
+ <button type="button" class="button button-small" style="margin-top: 13px;" @click.prevent="post_title_editing = false"><i class="fa fa-check"></i></button>
36
+ </span>
37
+
38
+ <i :class="(is_form_switcher ? 'fa fa-angle-up' : 'fa fa-angle-down') + ' form-switcher-arrow'" @click.prevent="switch_form"></i>
39
+ <?php
40
+ $form_id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0;
41
+
42
+ if ( count( $shortcodes ) > 1 && isset( $shortcodes[0]['type'] ) ) {
43
+ foreach ( $shortcodes as $shortcode ) {
44
+ printf( "<span class=\"form-id\" title=\"%s\" data-clipboard-text='%s'><i class=\"fa fa-clipboard\" aria-hidden=\"true\"></i> %s: #{{ post.ID }}</span>", sprintf( __( 'Click to copy %s shortcode', 'wpuf' ), $shortcode['type'] ), sprintf( '[%s type="%s" id="%s"]', $shortcode['name'], $shortcode['type'], $form_id ), ucwords( $shortcode['type'] ), $shortcode['type'] );
45
+ }
46
+ } else {
47
+ printf( "<span class=\"form-id\" title=\"%s\" data-clipboard-text='%s'><i class=\"fa fa-clipboard\" aria-hidden=\"true\"></i> #{{ post.ID }}</span>", __( 'Click to copy shortcode', 'wpuf' ), '[' . $shortcodes[0]['name'] . ' id="' . $form_id . '"]' );
48
+ }
49
+ ?>
50
+ </header>
51
+
52
+ <ul v-if="is_form_switcher" class="form-switcher-content">
53
+ <?php
54
+ foreach ( $forms as $form ) {
55
+ ?>
56
+ <li><a class="<?php echo ( $form->ID == $_GET['id'] ) ? 'active' : ''; ?>" href="<?php echo admin_url( 'admin.php?page=wpuf-' . $form_type . '-forms&action=edit&id=' . $form->ID ); ?>"><?php echo $form->post_title; ?></a></li>
57
+ <?php
58
+ }
59
+ ?>
60
+ </ul>
61
+
62
+ <section>
63
+ <div id="form-preview">
64
+ <builder-stage></builder-stage>
65
+ </div>
66
+ </section>
67
+ </div><!-- #builder-stage -->
68
+
69
+ <div id="builder-form-fields">
70
+ <header>
71
+ <ul class="clearfix">
72
+ <li :class="['form-fields' === current_panel ? 'active' : '']">
73
+ <a href="#add-fields" @click.prevent="set_current_panel('form-fields')">
74
+ <?php _e( 'Add Fields', 'wpuf' ); ?>
75
+ </a>
76
+ </li>
77
+
78
+ <li :class="['field-options' === current_panel ? 'active' : '', !form_fields_count ? 'disabled' : '']">
79
+ <a href="#field-options" @click.prevent="set_current_panel('field-options')">
80
+ <?php _e( 'Field Options', 'wpuf' ); ?>
81
+ </a>
82
+ </li>
83
+ </ul>
84
+ </header>
85
+
86
+ <section>
87
+ <div class="wpuf-form-builder-panel">
88
+ <component :is="current_panel"></component>
89
+ </div>
90
+ </section>
91
+ </div><!-- #builder-form-fields -->
92
+ </div><!-- #wpuf-form-builder-container -->
93
+
94
+ <div id="wpuf-form-builder-settings" class="group clearfix">
95
+ <fieldset>
96
+ <h2 id="wpuf-form-builder-settings-tabs" class="nav-tab-wrapper">
97
+ <?php do_action( "wpuf-form-builder-settings-tabs-{$form_type}" ); ?>
98
+ </h2><!-- #wpuf-form-builder-settings-tabs -->
99
+
100
+ <div id="wpuf-form-builder-settings-contents" class="tab-contents">
101
+ <?php do_action( "wpuf-form-builder-settings-tab-contents-{$form_type}" ); ?>
102
+ </div><!-- #wpuf-form-builder-settings-contents -->
103
+ </fieldset>
104
+ </div><!-- #wpuf-form-builder-settings -->
105
+
106
+ <?php do_action( "wpuf-form-builder-tab-contents-{$form_type}" ); ?>
107
+ </div>
108
+
109
+ <?php if ( ! empty( $form_settings_key ) ): ?>
110
+ <input type="hidden" name="form_settings_key" value="<?php echo $form_settings_key; ?>">
111
+ <?php endif; ?>
112
+
113
+ <?php wp_nonce_field( 'wpuf_form_builder_save_form', 'wpuf_form_builder_nonce' ); ?>
114
+
115
+ <input type="hidden" name="wpuf_form_id" value="<?php echo $form_id; ?>">
116
+ </fieldset>
117
+ </form><!-- #wpuf-form-builder -->
admin/form-handler.php ADDED
@@ -0,0 +1,370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class WPUF_Admin_Form_Handler {
3
+
4
+ public function __construct() {
5
+ // post forms list table
6
+ add_action( "load-user-frontend_page_wpuf-post-forms", array( $this, 'post_forms_actions' ) );
7
+ add_action( "load-user-frontend_page_wpuf-profile-forms", array( $this, 'profile_forms_actions' ) );
8
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
9
+ add_action( 'removable_query_args', array( $this, 'removable_query_args' ) );
10
+ }
11
+
12
+ /**
13
+ * Check current page actions
14
+ *
15
+ * @since 2.5
16
+ *
17
+ * @param integer $page_id
18
+ * @param integer $bulk_action
19
+ *
20
+ * @return boolean
21
+ */
22
+ public function verify_current_page_screen( $page_id, $bulk_action ) {
23
+
24
+ if ( ! isset( $_GET['_wpnonce'] ) || ! isset( $_GET['page'] ) ) {
25
+ return false;
26
+ }
27
+
28
+ if ( $_GET['page'] != $page_id ) {
29
+ return false;
30
+ }
31
+
32
+ if ( ! wp_verify_nonce( $_GET['_wpnonce'], $bulk_action ) ) {
33
+ return false;
34
+ }
35
+
36
+ return true;
37
+ }
38
+
39
+ /**
40
+ * Handle Post Forms list table action
41
+ *
42
+ * @since 2.5
43
+ *
44
+ * @return void
45
+ */
46
+ public function post_forms_actions() {
47
+ // Nonce validation
48
+ if ( ! $this->verify_current_page_screen( 'wpuf-post-forms', 'bulk-post-forms' ) ) {
49
+ return;
50
+ }
51
+
52
+ // Check permission if not wpuf admin then go out from here
53
+ if ( ! current_user_can( wpuf_admin_role() ) ) {
54
+ wp_die( __( 'You do not have sufficient permissions to do this action', 'wpuf' ) );
55
+ }
56
+
57
+
58
+ $post_forms = new WPUF_Admin_Post_Forms_List_Table();
59
+ $action = $post_forms->current_action();
60
+
61
+ if ( $action ) {
62
+
63
+ $remove_query_args = array(
64
+ '_wp_http_referer', '_wpnonce', 'action', 'id', 'post', 'action2',
65
+ );
66
+
67
+ $add_query_args = array();
68
+
69
+ switch ( $action ) {
70
+ case 'post_form_search':
71
+ $redirect = remove_query_arg( array( 'post_form_search' ), $redirect );
72
+
73
+ break;
74
+
75
+ case 'trash' :
76
+
77
+ if ( ! empty( $_GET['id'] ) ) {
78
+ delete_post_meta( $_GET['id'], '_wp_trash_meta_status' );
79
+ delete_post_meta( $_GET['id'], '_wp_trash_meta_time' );
80
+ delete_post_meta( $_GET['id'], '_wp_desired_post_slug' );
81
+
82
+ wp_trash_post( $_GET['id'] );
83
+
84
+ $add_query_args['trashed'] = 1;
85
+
86
+ } else if ( ! empty( $_GET['post'] ) ) {
87
+ foreach ( $_GET['post'] as $post_id ) {
88
+ delete_post_meta( $post_id, '_wp_trash_meta_status' );
89
+ delete_post_meta( $post_id, '_wp_trash_meta_time' );
90
+ delete_post_meta( $post_id, '_wp_desired_post_slug' );
91
+
92
+ wp_trash_post( $post_id );
93
+ }
94
+
95
+ $add_query_args['trashed'] = count( $_GET['post'] );
96
+ }
97
+
98
+ break;
99
+
100
+ case 'restore' :
101
+ if ( !empty( $_GET['id'] ) ) {
102
+ $trash_meta_status = get_post_meta( $_GET['id'], '_wp_trash_meta_status', true );
103
+
104
+ $args = array(
105
+ 'ID' => $_GET['id'],
106
+ 'post_status' => $trash_meta_status,
107
+ );
108
+
109
+ wp_update_post( $args );
110
+
111
+ $add_query_args['untrashed'] = 1;
112
+
113
+ } else if ( ! empty( $_GET['post'] ) ) {
114
+ foreach ( $_GET['post'] as $post_id ) {
115
+ $trash_meta_status = get_post_meta( $post_id, '_wp_trash_meta_status', true );
116
+
117
+ $args = array(
118
+ 'ID' => $post_id,
119
+ 'post_status' => $trash_meta_status,
120
+ );
121
+
122
+ wp_update_post( $args );
123
+
124
+ $add_query_args['untrashed'] = count( $_GET['post'] );
125
+ }
126
+ }
127
+
128
+ break;
129
+
130
+ case 'delete' :
131
+
132
+ if ( ! empty( $_GET['id'] ) ) {
133
+ wp_delete_post( $_GET['id'] );
134
+
135
+ $add_query_args['deleted'] = 1;
136
+
137
+ } else if ( ! empty( $_GET['post'] ) ) {
138
+ foreach ( $_GET['post'] as $post_id ) {
139
+ wp_delete_post( $post_id );
140
+ }
141
+
142
+ $add_query_args['deleted'] = count( $_GET['post'] );
143
+ }
144
+
145
+ $add_query_args['post_status'] = 'trash';
146
+
147
+ break;
148
+
149
+ case 'duplicate':
150
+ if ( ! empty( $_GET['id'] ) ) {
151
+ $add_query_args['duplicated'] = wpuf_duplicate_form( $_GET['id'] );
152
+ }
153
+
154
+ break;
155
+ }
156
+
157
+ $redirect = remove_query_arg( $remove_query_args, wp_unslash( $_SERVER['REQUEST_URI'] ) );
158
+
159
+ $redirect = add_query_arg( $add_query_args, $redirect );
160
+
161
+ wp_redirect( $redirect );
162
+ exit();
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Handle Profile Forms list table action
168
+ *
169
+ * @since 2.5
170
+ *
171
+ * @return void
172
+ */
173
+ public function profile_forms_actions() {
174
+ // Nonce validation
175
+ if ( ! $this->verify_current_page_screen( 'wpuf-profile-forms', 'bulk-profile-forms' ) ) {
176
+ return;
177
+ }
178
+
179
+ // Check permission if not wpuf admin then go out from here
180
+ if ( ! current_user_can( wpuf_admin_role() ) ) {
181
+ wp_die( __( 'You do not have sufficient permissions to do this action', 'wpuf' ) );
182
+ }
183
+
184
+
185
+ $profile_forms = new WPUF_Admin_Profile_Forms_List_Table();
186
+ $action = $profile_forms->current_action();
187
+
188
+ if ( $action ) {
189
+
190
+ $remove_query_args = array(
191
+ '_wp_http_referer', '_wpnonce', 'action', 'id', 'post', 'action2',
192
+ );
193
+
194
+ $add_query_args = array();
195
+
196
+ switch ( $action ) {
197
+ case 'profile_form_search':
198
+ $redirect = remove_query_arg( array( 'profile_form_search' ), $redirect );
199
+
200
+ break;
201
+
202
+ case 'trash' :
203
+
204
+ if ( ! empty( $_GET['id'] ) ) {
205
+ delete_post_meta( $_GET['id'], '_wp_trash_meta_status' );
206
+ delete_post_meta( $_GET['id'], '_wp_trash_meta_time' );
207
+ delete_post_meta( $_GET['id'], '_wp_desired_post_slug' );
208
+
209
+ wp_trash_post( $_GET['id'] );
210
+
211
+ $add_query_args['trashed'] = 1;
212
+
213
+ } else if ( ! empty( $_GET['post'] ) ) {
214
+ foreach ( $_GET['post'] as $post_id ) {
215
+ delete_post_meta( $post_id, '_wp_trash_meta_status' );
216
+ delete_post_meta( $post_id, '_wp_trash_meta_time' );
217
+ delete_post_meta( $post_id, '_wp_desired_post_slug' );
218
+
219
+ wp_trash_post( $post_id );
220
+ }
221
+
222
+ $add_query_args['trashed'] = count( $_GET['post'] );
223
+ }
224
+
225
+ break;
226
+
227
+ case 'restore' :
228
+ if ( !empty( $_GET['id'] ) ) {
229
+ $trash_meta_status = get_post_meta( $_GET['id'], '_wp_trash_meta_status', true );
230
+
231
+ $args = array(
232
+ 'ID' => $_GET['id'],
233
+ 'post_status' => $trash_meta_status,
234
+ );
235
+
236
+ wp_update_post( $args );
237
+
238
+ $add_query_args['untrashed'] = 1;
239
+
240
+ } else if ( ! empty( $_GET['post'] ) ) {
241
+ foreach ( $_GET['post'] as $post_id ) {
242
+ $trash_meta_status = get_post_meta( $post_id, '_wp_trash_meta_status', true );
243
+
244
+ $args = array(
245
+ 'ID' => $post_id,
246
+ 'post_status' => $trash_meta_status,
247
+ );
248
+
249
+ wp_update_post( $args );
250
+
251
+ $add_query_args['untrashed'] = count( $_GET['post'] );
252
+ }
253
+ }
254
+
255
+ break;
256
+
257
+ case 'delete' :
258
+
259
+ if ( ! empty( $_GET['id'] ) ) {
260
+ wp_delete_post( $_GET['id'] );
261
+
262
+ $add_query_args['deleted'] = 1;
263
+
264
+ } else if ( ! empty( $_GET['post'] ) ) {
265
+ foreach ( $_GET['post'] as $post_id ) {
266
+ wp_delete_post( $post_id );
267
+ }
268
+
269
+ $add_query_args['deleted'] = count( $_GET['post'] );
270
+ }
271
+
272
+ $add_query_args['post_status'] = 'trash';
273
+
274
+ break;
275
+
276
+ case 'duplicate':
277
+ if ( ! empty( $_GET['id'] ) ) {
278
+ $add_query_args['duplicated'] = wpuf_duplicate_form( $_GET['id'] );
279
+ }
280
+
281
+ break;
282
+ }
283
+
284
+ $redirect = remove_query_arg( $remove_query_args, wp_unslash( $_SERVER['REQUEST_URI'] ) );
285
+
286
+ $redirect = add_query_arg( $add_query_args, $redirect );
287
+
288
+ wp_redirect( $redirect );
289
+ exit();
290
+ }
291
+ }
292
+
293
+ /**
294
+ * Print notices for WordPress
295
+ *
296
+ * @since 2.5
297
+ *
298
+ * @param string $text
299
+ * @param string $type
300
+ *
301
+ * @return void
302
+ */
303
+ public function display_notice( $text, $type = 'updated' ) {
304
+ printf( '<div class="%s"><p>%s</p></div>', esc_attr( $type ), $text );
305
+ }
306
+
307
+ /**
308
+ * Admin notices
309
+ *
310
+ * @since 2.5
311
+ *
312
+ * @return void
313
+ */
314
+ public function admin_notices() {
315
+ if ( !empty( $_GET['page'] ) && 'wpuf-post-forms' === $_GET['page'] ) {
316
+ if ( !empty( $_GET['trashed'] ) ) {
317
+ $notice = sprintf( _n( '%d form moved to the trash.', '%d forms moved to the trash.', $_GET['trashed'], 'wpuf' ), $_GET['trashed'] );
318
+ $this->display_notice( $notice );
319
+
320
+ } else if ( !empty( $_GET['untrashed'] ) ) {
321
+ $notice = sprintf( _n( '%d form restored from the trash.', '%d forms restored from the trash.', $_GET['untrashed'], 'wpuf' ), $_GET['untrashed'] );
322
+ $this->display_notice( $notice );
323
+
324
+ } else if ( !empty( $_GET['deleted'] ) ) {
325
+ $notice = sprintf( _n( '%d form permanently deleted.', '%d forms permanently deleted.', $_GET['deleted'], 'wpuf' ), $_GET['deleted'] );
326
+ $this->display_notice( $notice );
327
+
328
+ } else if ( !empty( $_GET['duplicated'] ) ) {
329
+ $form_url = admin_url( 'admin.php?page=wpuf-post-forms&action=edit&id=' . $_GET['duplicated'] );
330
+ $notice = sprintf( __( 'Form duplicated successfully. <a href="%s">View form.</a>', 'wpuf' ), $form_url );
331
+ $this->display_notice( $notice );
332
+ }
333
+ }
334
+
335
+ if ( !empty( $_GET['page'] ) && 'wpuf-profile-forms' === $_GET['page'] ) {
336
+ if ( !empty( $_GET['trashed'] ) ) {
337
+ $notice = sprintf( _n( '%d form moved to the trash.', '%d forms moved to the trash.', $_GET['trashed'], 'wpuf' ), $_GET['trashed'] );
338
+ $this->display_notice( $notice );
339
+
340
+ } else if ( !empty( $_GET['untrashed'] ) ) {
341
+ $notice = sprintf( _n( '%d form restored from the trash.', '%d forms restored from the trash.', $_GET['untrashed'], 'wpuf' ), $_GET['untrashed'] );
342
+ $this->display_notice( $notice );
343
+
344
+ } else if ( !empty( $_GET['deleted'] ) ) {
345
+ $notice = sprintf( _n( '%d form permanently deleted.', '%d forms permanently deleted.', $_GET['deleted'], 'wpuf' ), $_GET['deleted'] );
346
+ $this->display_notice( $notice );
347
+
348
+ } else if ( !empty( $_GET['duplicated'] ) ) {
349
+ $form_url = admin_url( 'admin.php?page=wpuf-profile-forms&action=edit&id=' . $_GET['duplicated'] );
350
+ $notice = sprintf( __( 'Form duplicated successfully. <a href="%s">View form.</a>', 'wpuf' ), $form_url );
351
+ $this->display_notice( $notice );
352
+ }
353
+ }
354
+ }
355
+
356
+ /**
357
+ * Add custom query args to the wp removable query args
358
+ *
359
+ * @since 2.5
360
+ *
361
+ * @param array $args
362
+ *
363
+ * @return array
364
+ */
365
+ public function removable_query_args() {
366
+ $args[] = 'duplicated';
367
+
368
+ return $args;
369
+ }
370
+ }
admin/form-template.php ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Admin form template handler
5
+ *
6
+ * Create forms based on form templates
7
+ *
8
+ * @since 2.4
9
+ */
10
+ class WPUF_Admin_Form_Template {
11
+
12
+ public function __construct() {
13
+ add_action( 'admin_enqueue_scripts', array($this, 'enqueue_scripts') );
14
+
15
+ // post form templates
16
+ add_action( 'admin_footer', array( $this, 'render_post_form_templates' ) );
17
+ add_filter( 'admin_action_wpuf_post_form_template', array( $this, 'create_post_form_from_template' ) );
18
+
19
+ // form settings
20
+ add_action( 'wpuf_form_setting', array( $this, 'post_form_settings' ), 8, 2 );
21
+
22
+ // frontend insert/update
23
+ add_action( 'wpuf_add_post_after_insert', array( $this, 'post_form_submission' ), 10, 3 );
24
+ add_action( 'wpuf_edit_post_after_update', array( $this, 'post_form_submission' ), 10, 3 );
25
+ }
26
+
27
+ /**
28
+ * Should a form displayed or sciprt enqueued?
29
+ *
30
+ * @return boolean
31
+ */
32
+ public function should_display() {
33
+ $current_screen = get_current_screen();
34
+
35
+ if ( in_array( $current_screen->id, array( 'user-frontend_page_wpuf-post-forms' ) ) ) {
36
+ return true;
37
+ }
38
+
39
+ return false;
40
+ }
41
+
42
+ public function enqueue_scripts() {
43
+ if ( ! $this->should_display() ) {
44
+ return;
45
+ }
46
+
47
+ wp_enqueue_style( 'wpuf-formbuilder', WPUF_ASSET_URI . '/css/wpuf-form-builder.css' );
48
+ }
49
+
50
+ /**
51
+ * Render the forms in the modal
52
+ *
53
+ * @return void
54
+ */
55
+ public function render_post_form_templates() {
56
+ if ( ! $this->should_display() ) {
57
+ return;
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>.', 'wpuf'), 'mailto:support@wedevs.com?subject=WPUF Custom Post Template Integration Request' );
64
+
65
+ if ( ! $registry ) {
66
+ return;
67
+ }
68
+
69
+ include dirname( __FILE__ ) . '/html/modal.php';
70
+ }
71
+
72
+ /**
73
+ * Get a template object by name from the registry
74
+ *
75
+ * @param string $template
76
+ *
77
+ * @return boolean|WPUF_Post_Form_Template
78
+ */
79
+ public function get_template_object( $template ) {
80
+ $registry = wpuf_get_post_form_templates();
81
+
82
+ if ( ! array_key_exists( $template, $registry ) ) {
83
+ return false;
84
+ }
85
+
86
+ $template_object = $registry[ $template ];
87
+
88
+ if ( ! is_a( $template_object, 'WPUF_Post_Form_Template') ) {
89
+ return false;
90
+ }
91
+
92
+ return $template_object;
93
+ }
94
+
95
+ /**
96
+ * Create a posting form from a post template
97
+ *
98
+ * @since 2.4
99
+ *
100
+ * @return void
101
+ */
102
+ public function create_post_form_from_template() {
103
+ check_admin_referer( 'wpuf_create_from_template' );
104
+
105
+ $template_name = isset( $_GET['template'] ) ? sanitize_text_field( $_GET['template'] ) : '';
106
+
107
+ if ( ! $template_name ) {
108
+ return;
109
+ }
110
+
111
+ $template_object = $this->get_template_object( $template_name );
112
+
113
+ if ( false === $template_object ) {
114
+ return;
115
+ }
116
+
117
+ $current_user = get_current_user_id();
118
+
119
+ $form_post_data = array(
120
+ 'post_title' => $template_object->get_title(),
121
+ 'post_type' => 'wpuf_forms',
122
+ 'post_status' => 'publish',
123
+ 'post_author' => $current_user
124
+ );
125
+
126
+ $form_id = wp_insert_post( $form_post_data );
127
+
128
+ if ( is_wp_error( $form_id ) ) {
129
+ return;
130
+ }
131
+
132
+ // form has been created, lets setup
133
+ update_post_meta( $form_id, 'wpuf_form_settings', $template_object->get_form_settings() );
134
+
135
+ $form_fields = $template_object->get_form_fields();
136
+
137
+ if ( ! $form_fields ) {
138
+ return;
139
+ }
140
+
141
+ foreach ($form_fields as $menu_order => $field) {
142
+ wp_insert_post( array(
143
+ 'post_type' => 'wpuf_input',
144
+ 'post_status' => 'publish',
145
+ 'post_content' => maybe_serialize( $field ),
146
+ 'post_parent' => $form_id,
147
+ 'menu_order' => $menu_order
148
+ ) );
149
+ }
150
+
151
+ wp_redirect( admin_url( 'admin.php?page=wpuf-post-forms&action=edit&id=' . $form_id ) );
152
+ exit;
153
+ }
154
+
155
+ /**
156
+ * Add settings field to override a form template
157
+ *
158
+ * @param array $form_settings
159
+ * @param object $post
160
+ *
161
+ * @return void
162
+ */
163
+ public function post_form_settings( $form_settings, $post ) {
164
+ $registry = wpuf_get_post_form_templates();
165
+ $selected = isset( $form_settings['form_template'] ) ? $form_settings['form_template'] : '';
166
+ ?>
167
+ <tr>
168
+ <th><?php _e( 'Form Template', 'wpuf' ); ?></th>
169
+ <td>
170
+ <select name="wpuf_settings[form_template]">
171
+ <option value=""><?php echo __( '&mdash; No Template &mdash;', 'wpuf' ); ?></option>
172
+ <?php
173
+ if ( $registry ) {
174
+ foreach ($registry as $key => $template) {
175
+ printf( '<option value="%s"%s>%s</option>' . "\n", $key, selected( $selected, $key, false ), $template->get_title() );
176
+ }
177
+ }
178
+ ?>
179
+ </select>
180
+ <p class="description"><?php _e( 'If selected a form template, it will try to execute that integration options when new post created and updated.', 'wpuf' ); ?></p>
181
+ </td>
182
+ </tr>
183
+ <?php
184
+ }
185
+
186
+ /**
187
+ * Call the integration functions on form submission/update
188
+ *
189
+ * @param int $post_id
190
+ * @param int $form_id
191
+ * @param array $form_settings
192
+ *
193
+ * @return void
194
+ */
195
+ public function post_form_submission( $post_id, $form_id, $form_settings ) {
196
+ $template = isset( $form_settings['form_template'] ) ? $form_settings['form_template'] : '';
197
+
198
+ if ( !$template ) {
199
+ return;
200
+ }
201
+
202
+ $template_object = $this->get_template_object( $template );
203
+
204
+ if ( false === $template_object ) {
205
+ return;
206
+ }
207
+
208
+ $current_action = current_action();
209
+
210
+ if ( $current_action == 'wpuf_add_post_after_insert' ) {
211
+ $template_object->after_insert( $post_id, $form_id, $form_settings );
212
+ } elseif ( $current_action == 'wpuf_edit_post_after_update' ) {
213
+ $template_object->after_update( $post_id, $form_id, $form_settings );
214
+ }
215
+ }
216
+ }
admin/form.php ADDED
@@ -0,0 +1,930 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Post Forms or wpuf_forms form builder class
4
+ *
5
+ * @package WP User Frontend
6
+ */
7
+
8
+ class WPUF_Admin_Form {
9
+ /**
10
+ * Form type of which we're working on
11
+ *
12
+ * @var string
13
+ */
14
+ private $form_type = 'post';
15
+
16
+ /**
17
+ * Form settings key
18
+ *
19
+ * @var string
20
+ */
21
+ private $form_settings_key = 'wpuf_form_settings';
22
+
23
+ /**
24
+ * WP post types
25
+ *
26
+ * @var string
27
+ */
28
+ private $wp_post_types = array();
29
+
30
+ /**
31
+ * Add neccessary actions and filters
32
+ *
33
+ * @return void
34
+ */
35
+ public function __construct() {
36
+ add_action( 'init', array($this, 'register_post_type') );
37
+ add_action( "load-user-frontend_page_wpuf-post-forms", array( $this, 'post_forms_builder_init' ) );
38
+ }
39
+
40
+ /**
41
+ * Register form post types
42
+ *
43
+ * @return void
44
+ */
45
+ public function register_post_type() {
46
+ $capability = wpuf_admin_role();
47
+
48
+ register_post_type( 'wpuf_forms', array(
49
+ 'label' => __( 'Forms', 'wpuf' ),
50
+ 'public' => false,
51
+ 'show_ui' => false,
52
+ 'show_in_menu' => false, //false,
53
+ 'capability_type' => 'post',
54
+ 'hierarchical' => false,
55
+ 'query_var' => false,
56
+ 'supports' => array('title'),
57
+ 'capabilities' => array(
58
+ 'publish_posts' => $capability,
59
+ 'edit_posts' => $capability,
60
+ 'edit_others_posts' => $capability,
61
+ 'delete_posts' => $capability,
62
+ 'delete_others_posts' => $capability,
63
+ 'read_private_posts' => $capability,
64
+ 'edit_post' => $capability,
65
+ 'delete_post' => $capability,
66
+ 'read_post' => $capability,
67
+ ),
68
+ 'labels' => array(
69
+ 'name' => __( 'Forms', 'wpuf' ),
70
+ 'singular_name' => __( 'Form', 'wpuf' ),
71
+ 'menu_name' => __( 'Forms', 'wpuf' ),
72
+ 'add_new' => __( 'Add Form', 'wpuf' ),
73
+ 'add_new_item' => __( 'Add New Form', 'wpuf' ),
74
+ 'edit' => __( 'Edit', 'wpuf' ),
75
+ 'edit_item' => __( 'Edit Form', 'wpuf' ),
76
+ 'new_item' => __( 'New Form', 'wpuf' ),
77
+ 'view' => __( 'View Form', 'wpuf' ),
78
+ 'view_item' => __( 'View Form', 'wpuf' ),
79
+ 'search_items' => __( 'Search Form', 'wpuf' ),
80
+ 'not_found' => __( 'No Form Found', 'wpuf' ),
81
+ 'not_found_in_trash' => __( 'No Form Found in Trash', 'wpuf' ),
82
+ 'parent' => __( 'Parent Form', 'wpuf' ),
83
+ ),
84
+ ) );
85
+
86
+ register_post_type( 'wpuf_profile', array(
87
+ 'label' => __( 'Registraton Forms', 'wpuf' ),
88
+ 'public' => false,
89
+ 'show_ui' => false,
90
+ 'show_in_menu' => false,
91
+ 'capability_type' => 'post',
92
+ 'hierarchical' => false,
93
+ 'query_var' => false,
94
+ 'supports' => array('title'),
95
+ 'capabilities' => array(
96
+ 'publish_posts' => $capability,
97
+ 'edit_posts' => $capability,
98
+ 'edit_others_posts' => $capability,
99
+ 'delete_posts' => $capability,
100
+ 'delete_others_posts' => $capability,
101
+ 'read_private_posts' => $capability,
102
+ 'edit_post' => $capability,
103
+ 'delete_post' => $capability,
104
+ 'read_post' => $capability,
105
+ ),
106
+ 'labels' => array(
107
+ 'name' => __( 'Forms', 'wpuf' ),
108
+ 'singular_name' => __( 'Form', 'wpuf' ),
109
+ 'menu_name' => __( 'Registration Forms', 'wpuf' ),
110
+ 'add_new' => __( 'Add Form', 'wpuf' ),
111
+ 'add_new_item' => __( 'Add New Form', 'wpuf' ),
112
+ 'edit' => __( 'Edit', 'wpuf' ),
113
+ 'edit_item' => __( 'Edit Form', 'wpuf' ),
114
+ 'new_item' => __( 'New Form', 'wpuf' ),
115
+ 'view' => __( 'View Form', 'wpuf' ),
116
+ 'view_item' => __( 'View Form', 'wpuf' ),
117
+ 'search_items' => __( 'Search Form', 'wpuf' ),
118
+ 'not_found' => __( 'No Form Found', 'wpuf' ),
119
+ 'not_found_in_trash' => __( 'No Form Found in Trash', 'wpuf' ),
120
+ 'parent' => __( 'Parent Form', 'wpuf' ),
121
+ ),
122
+ ) );
123
+
124
+ register_post_type( 'wpuf_input', array(
125
+ 'public' => false,
126
+ 'show_ui' => false,
127
+ 'show_in_menu' => false,
128
+ ) );
129
+ }
130
+
131
+ /**
132
+ * Initiate form builder for wpuf_forms post type
133
+ *
134
+ * @since 2.5
135
+ *
136
+ * @return void
137
+ */
138
+ public function post_forms_builder_init() {
139
+
140
+ if ( ! isset( $_GET['action'] ) ) {
141
+ return;
142
+ }
143
+
144
+ if ( 'add-new' === $_GET['action'] && empty( $_GET['id'] ) ) {
145
+ $form_id = wpuf_create_sample_form( 'Sample Form', 'wpuf_forms', true );
146
+ $add_new_page_url = add_query_arg( array( 'id' => $form_id ), admin_url( 'admin.php?page=wpuf-post-forms&action=edit' ) );
147
+ wp_redirect( $add_new_page_url );
148
+ }
149
+
150
+ if ( ( 'edit' === $_GET['action'] ) && ! empty( $_GET['id'] ) ) {
151
+
152
+ add_action( 'wpuf-form-builder-tabs-post', array( $this, 'add_primary_tabs' ) );
153
+ add_action( 'wpuf-form-builder-tab-contents-post', array( $this, 'add_primary_tab_contents' ) );
154
+ add_action( 'wpuf-form-builder-settings-tabs-post', array( $this, 'add_settings_tabs' ) );
155
+ add_action( 'wpuf-form-builder-settings-tab-contents-post', array( $this, 'add_settings_tab_contents' ) );
156
+ add_filter( 'wpuf-form-builder-fields-section-before', array( $this, 'add_post_field_section' ) );
157
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
158
+ add_action( 'wpuf-form-builder-js-deps', array( $this, 'js_dependencies' ) );
159
+ add_filter( 'wpuf-form-builder-js-root-mixins', array( $this, 'js_root_mixins' ) );
160
+ add_filter( 'wpuf-form-builder-js-builder-stage-mixins', array( $this, 'js_builder_stage_mixins' ) );
161
+ add_filter( 'wpuf-form-builder-js-field-options-mixins', array( $this, 'js_field_options_mixins' ) );
162
+ add_action( 'wpuf-form-builder-template-builder-stage-submit-area', array( $this, 'add_form_submit_area' ) );
163
+ add_action( 'wpuf-form-builder-localize-script', array( $this, 'add_to_localize_script' ) );
164
+ add_filter( 'wpuf-form-builder-field-settings', array( $this, 'add_field_settings' ) );
165
+ add_filter( 'wpuf-form-builder-i18n', array( $this, 'i18n' ) );
166
+
167
+ do_action( 'wpuf-form-builder-init-type-wpuf_forms' );
168
+
169
+ $this->set_wp_post_types();
170
+
171
+ $settings = array(
172
+ 'form_type' => 'post',
173
+ 'post_type' => 'wpuf_forms',
174
+ 'post_id' => $_GET['id'],
175
+ 'form_settings_key' => $this->form_settings_key,
176
+ 'shortcodes' => array( array( 'name' => 'wpuf_form' ) )
177
+ );
178
+
179
+ new WPUF_Admin_Form_Builder( $settings );
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Additional primary tabs
185
+ *
186
+ * @since 2.5
187
+ *
188
+ * @return void
189
+ */
190
+ public function add_primary_tabs() {
191
+ ?>
192
+
193
+ <a href="#wpuf-form-builder-notification" class="nav-tab">
194
+ <?php _e( 'Notification', 'wpuf' ); ?>
195
+ </a>
196
+
197
+ <?php
198
+ }
199
+
200
+ /**
201
+ * Add primary tab contents
202
+ *
203
+ * @since 2.5
204
+ *
205
+ * @return void
206
+ */
207
+ public function add_primary_tab_contents() {
208
+ ?>
209
+
210
+ <div id="wpuf-form-builder-notification" class="group">
211
+ <?php do_action('wpuf_form_settings_post_notification'); ?>
212
+ </div><!-- #wpuf-form-builder-notification -->
213
+
214
+ <?php
215
+ }
216
+
217
+ /**
218
+ * Add settings tabs
219
+ *
220
+ * @since 2.5
221
+ *
222
+ * @return void
223
+ */
224
+ public function add_settings_tabs() {
225
+ ?>
226
+
227
+ <a href="#wpuf-metabox-settings" class="nav-tab"><?php _e( 'Post Settings', 'wpuf' ); ?></a>
228
+ <a href="#wpuf-metabox-settings-update" class="nav-tab"><?php _e( 'Edit Settings', 'wpuf' ); ?></a>
229
+ <a href="#wpuf-metabox-submission-restriction" class="nav-tab"><?php _e( 'Submission Restriction', 'wpuf' ); ?></a>
230
+ <a href="#wpuf-metabox-settings-payment" class="nav-tab"><?php _e( 'Payment Settings', 'wpuf' ); ?></a>
231
+ <a href="#wpuf-metabox-settings-display" class="nav-tab"><?php _e( 'Display Settings', 'wpuf' ); ?></a>
232
+ <a href="#wpuf-metabox-post_expiration" class="nav-tab"><?php _e( 'Post Expiration', 'wpuf' ); ?></a>
233
+
234
+ <?php do_action( 'wpuf_post_form_tab' ); ?>
235
+
236
+ <?php
237
+ }
238
+
239
+ /**
240
+ * Add settings tabs
241
+ *
242
+ * @since 2.5
243
+ *
244
+ * @return void
245
+ */
246
+ public function add_settings_tab_contents() {
247
+ global $post;
248
+
249
+ $form_settings = wpuf_get_form_settings( $post->ID );
250
+ ?>
251
+
252
+ <div id="wpuf-metabox-settings" class="group">
253
+ <?php include_once dirname( __FILE__ ) . '/html/form-settings-post.php'; ?>
254
+ </div>
255
+
256
+ <div id="wpuf-metabox-settings-update" class="group">
257
+ <?php include_once dirname( __FILE__ ) . '/html/form-settings-post-edit.php'; ?>
258
+ </div>
259
+
260
+ <div id="wpuf-metabox-submission-restriction" class="group">
261
+ <?php include_once dirname( __FILE__ ) . '/html/form-submission-restriction.php'; ?>
262
+ </div>
263
+
264
+ <div id="wpuf-metabox-settings-payment" class="group">
265
+ <?php include_once dirname( __FILE__ ) . '/html/form-settings-payment.php'; ?>
266
+ </div>
267
+
268
+ <div id="wpuf-metabox-settings-display" class="group">
269
+ <?php include_once dirname( __FILE__ ) . '/html/form-settings-display.php'; ?>
270
+ </div>
271
+
272
+ <div id="wpuf-metabox-post_expiration" class="group wpuf-metabox-post_expiration">
273
+ <?php $this->form_post_expiration(); ?>
274
+ </div>
275
+
276
+ <?php do_action( 'wpuf_post_form_tab_content' ); ?>
277
+
278
+ <?php
279
+ }
280
+
281
+ /**
282
+ * Subscription dropdown
283
+ *
284
+ * @since 2.5
285
+ *
286
+ * @param string $selected
287
+ *
288
+ * @return void
289
+ */
290
+ public function subscription_dropdown( $selected = null ) {
291
+ $subscriptions = WPUF_Subscription::init()->get_subscriptions();
292
+
293
+ if ( ! $subscriptions ) {
294
+ printf( '<option>%s</option>', __( '- Select -', 'wpuf' ), 'wpuf' );
295
+ return;
296
+ }
297
+
298
+ printf( '<option>%s</option>', __( '- Select -', 'wpuf' ) );
299
+
300
+ foreach ( $subscriptions as $key => $subscription ) {
301
+ ?>
302
+ <option value="<?php echo esc_attr( $subscription->ID ); ?>" <?php selected( $selected, $subscription->ID ); ?> ><?php echo $subscription->post_title; ?></option>
303
+ <?php
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Settings for post expiration
309
+ *
310
+ * @since 2.2.7
311
+ *
312
+ * @global $post
313
+ */
314
+ public function form_post_expiration(){
315
+ do_action('wpuf_form_post_expiration');
316
+ }
317
+
318
+ /**
319
+ * Add post fields in form builder
320
+ *
321
+ * @since 2.5
322
+ *
323
+ * @return array
324
+ */
325
+ public function add_post_field_section() {
326
+ $post_fields = apply_filters( 'wpuf-form-builder-wp_forms-fields-section-post-fields', array(
327
+ 'post_title', 'post_content', 'post_excerpt', 'featured_image'
328
+ ) );
329
+
330
+ return array(
331
+ array(
332
+ 'title' => __( 'Post Fields', 'wpuf' ),
333
+ 'id' => 'post-fields',
334
+ 'fields' => $post_fields
335
+ ),
336
+
337
+ array(
338
+ 'title' => __( 'Taxonomies', 'wpuf' ),
339
+ 'id' => 'taxonomies',
340
+ 'fields' => array()
341
+ )
342
+ );
343
+ }
344
+
345
+ /**
346
+ * Admin script form wpuf_forms form builder
347
+ *
348
+ * @since 2.5
349
+ *
350
+ * @return void
351
+ */
352
+ public function admin_enqueue_scripts() {
353
+ wp_register_script(
354
+ 'wpuf-form-builder-wpuf-forms',
355
+ WPUF_ASSET_URI . '/js/wpuf-form-builder-wpuf-forms.js',
356
+ array( 'jquery', 'underscore', 'wpuf-vue', 'wpuf-vuex' ),
357
+ WPUF_VERSION,
358
+ true
359
+ );
360
+ }
361
+
362
+ /**
363
+ * Add dependencies to form builder script
364
+ *
365
+ * @since 2.5
366
+ *
367
+ * @param array $deps
368
+ *
369
+ * @return array
370
+ */
371
+ public function js_dependencies( $deps ) {
372
+ $deps[] = 'wpuf-form-builder-wpuf-forms';
373
+
374
+ return apply_filters( 'wpuf-form-builder-wpuf-forms-js-deps', $deps );
375
+ }
376
+
377
+ /**
378
+ * Add mixins to root instance
379
+ *
380
+ * @since 2.5
381
+ *
382
+ * @param array $mixins
383
+ *
384
+ * @return array
385
+ */
386
+ public function js_root_mixins( $mixins ) {
387
+ array_push( $mixins , 'wpuf_forms_mixin_root' );
388
+
389
+ return $mixins;
390
+ }
391
+
392
+ /**
393
+ * Add mixins to form builder builder stage component
394
+ *
395
+ * @since 2.5
396
+ *
397
+ * @param array $mixins
398
+ *
399
+ * @return array
400
+ */
401
+ public function js_builder_stage_mixins( $mixins ) {
402
+ array_push( $mixins , 'wpuf_forms_mixin_builder_stage' );
403
+
404
+ return $mixins;
405
+ }
406
+
407
+ /**
408
+ * Add mixins to form builder field options component
409
+ *
410
+ * @since 2.5
411
+ *
412
+ * @param array $mixins
413
+ *
414
+ * @return array
415
+ */
416
+ public function js_field_options_mixins( $mixins ) {
417
+ array_push( $mixins , 'wpuf_forms_mixin_field_options' );
418
+
419
+ return $mixins;
420
+ }
421
+
422
+ /**
423
+ * Add buttons in form submit area
424
+ *
425
+ * @since 2.5
426
+ *
427
+ * @return void
428
+ */
429
+ public function add_form_submit_area() {
430
+ ?>
431
+ <input @click.prevent="" type="submit" name="submit" :value="post_form_settings.submit_text">
432
+
433
+ <a
434
+ v-if="post_form_settings.draft_post"
435
+ @click.prevent=""
436
+ href="#"
437
+ class="btn"
438
+ id="wpuf-post-draft"
439
+ >
440
+ <?php _e( 'Save Draft', 'wpuf' ); ?>
441
+ </a>
442
+ <?php
443
+ }
444
+
445
+ /**
446
+ * Populate available wp post types
447
+ *
448
+ * @since 2.5
449
+ *
450
+ * @return void
451
+ */
452
+ public function set_wp_post_types() {
453
+ $args = array( '_builtin' => true );
454
+
455
+ $wpuf_post_types = wpuf_get_post_types( $args );
456
+
457
+ $ignore_taxonomies = apply_filters( 'wpuf-ignore-taxonomies', array(
458
+ 'post_format'
459
+ ) );
460
+
461
+ foreach ( $wpuf_post_types as $post_type ) {
462
+ $this->wp_post_types[ $post_type ] = array();
463
+
464
+ $taxonomies = get_object_taxonomies( $post_type, 'object' );
465
+
466
+ foreach ( $taxonomies as $tax_name => $taxonomy ) {
467
+ if ( ! in_array( $tax_name, $ignore_taxonomies ) ) {
468
+ $this->wp_post_types[ $post_type ][ $tax_name ] = array(
469
+ 'title' => $taxonomy->label,
470
+ 'hierarchical' => $taxonomy->hierarchical
471
+ );
472
+
473
+ $this->wp_post_types[ $post_type ][ $tax_name ]['terms'] = get_terms( array(
474
+ 'taxonomy' => $tax_name,
475
+ 'hide_empty' => false
476
+ ) );
477
+ }
478
+ }
479
+ }
480
+ }
481
+
482
+ /**
483
+ * Add data to localize_script
484
+ *
485
+ * @since 2.5
486
+ *
487
+ * @param array $data
488
+ *
489
+ * @return array
490
+ */
491
+ public function add_to_localize_script( $data ) {
492
+ return array_merge( $data, array(
493
+ 'wp_post_types' => $this->wp_post_types
494
+ ) );
495
+ }
496
+
497
+ /**
498
+ * Add field settings
499
+ *
500
+ * @since 2.5
501
+ *
502
+ * @param array $field_settings
503
+ *
504
+ * @return array
505
+ */
506
+ public function add_field_settings( $field_settings ) {
507
+ $field_settings = array_merge( $field_settings, array(
508
+ 'post_title' => self::post_title(),
509
+ 'post_content' => self::post_content(),
510
+ 'post_excerpt' => self::post_excerpt(),
511
+ 'featured_image' => self::featured_image()
512
+ ) );
513
+
514
+ $taxonomy_templates = array();
515
+
516
+ foreach ( $this->wp_post_types as $post_type => $taxonomies ) {
517
+
518
+ if ( ! empty( $taxonomies ) ) {
519
+
520
+ foreach ( $taxonomies as $tax_name => $taxonomy ) {
521
+ if ( 'post_tag' === $tax_name ) {
522
+ $taxonomy_templates['post_tag'] = self::post_tags();
523
+ } else {
524
+ $taxonomy_templates[ $tax_name ] = self::taxonomy_template( $tax_name, $taxonomy );
525
+ }
526
+ }
527
+
528
+ }
529
+
530
+ }
531
+
532
+ $field_settings = array_merge( $field_settings, $taxonomy_templates );
533
+
534
+ return $field_settings;
535
+ }
536
+
537
+ /**
538
+ * Post Title field settings
539
+ *
540
+ * @since 2.5
541
+ *
542
+ * @return array
543
+ */
544
+ public static function post_title() {
545
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
546
+ $settings = array_merge( $settings, WPUF_Form_Builder_Field_Settings::get_common_text_properties( true ) );
547
+
548
+ return array(
549
+ 'template' => 'post_title',
550
+ 'title' => __( 'Post Title', 'wpuf' ),
551
+ 'icon' => 'header',
552
+ 'settings' => $settings,
553
+ 'field_props' => array(
554
+ 'input_type' => 'text',
555
+ 'template' => 'post_title',
556
+ 'required' => 'no',
557
+ 'label' => __( 'Post Title', 'wpuf' ),
558
+ 'name' => 'post_title',
559
+ 'is_meta' => 'no',
560
+ 'help' => '',
561
+ 'width' => 'large',
562
+ 'css' => '',
563
+ 'placeholder' => '',
564
+ 'default' => '',
565
+ 'size' => 40,
566
+ 'word_restriction' => '',
567
+ 'id' => 0,
568
+ 'is_new' => true,
569
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
570
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
571
+ )
572
+ );
573
+ }
574
+
575
+ /**
576
+ * Post Content field settings
577
+ *
578
+ * @since 2.5
579
+ *
580
+ * @return array
581
+ */
582
+ public static function post_content() {
583
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
584
+ $settings = array_merge( $settings, WPUF_Form_Builder_Field_Settings::get_common_textarea_properties() );
585
+
586
+ $settings = array_merge( $settings, array(
587
+ array(
588
+ 'name' => 'insert_image',
589
+ 'title' => __( 'Enable Image Insertion', 'wpuf' ),
590
+ 'type' => 'checkbox',
591
+ 'options' => array( 'yes' => __( 'Enable image upload in post area', 'wpuf' ) ),
592
+ 'is_single_opt' => true,
593
+ 'section' => 'advanced',
594
+ 'priority' => 14,
595
+ ),
596
+ ) );
597
+
598
+ return array(
599
+ 'template' => 'post_content',
600
+ 'title' => __( 'Post Body', 'wpuf' ),
601
+ 'icon' => 'file-text',
602
+ 'settings' => $settings,
603
+ 'field_props' => array(
604
+ 'input_type' => 'textarea',
605
+ 'template' => 'post_content',
606
+ 'required' => 'no',
607
+ 'label' => __( 'Post Body', 'wpuf' ),
608
+ 'name' => 'post_content',
609
+ 'is_meta' => 'no',
610
+ 'help' => '',
611
+ 'width' => '',
612
+ 'css' => '',
613
+ 'rows' => 5,
614
+ 'cols' => 25,
615
+ 'placeholder' => '',
616
+ 'default' => '',
617
+ 'rich' => 'yes',
618
+ 'word_restriction' => '',
619
+ 'id' => 0,
620
+ 'is_new' => true,
621
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
622
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
623
+ )
624
+ );
625
+ }
626
+
627
+ /**
628
+ * Post Excerpt field settings
629
+ *
630
+ * @since 2.5
631
+ *
632
+ * @return array
633
+ */
634
+ public static function post_excerpt() {
635
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
636
+ $settings = array_merge( $settings, WPUF_Form_Builder_Field_Settings::get_common_textarea_properties() );
637
+
638
+ $index = array_search( 'rich', array_column( $settings, 'name' ) );
639
+ if ( ! empty( $index ) ) {
640
+ unset( $settings[ $index ] );
641
+ }
642
+
643
+
644
+ return array(
645
+ 'template' => 'post_excerpt',
646
+ 'title' => __( 'Excerpt', 'wpuf' ),
647
+ 'icon' => 'compress',
648
+ 'settings' => $settings,
649
+ 'field_props' => array(
650
+ 'input_type' => 'textarea',
651
+ 'template' => 'post_excerpt',
652
+ 'required' => 'no',
653
+ 'label' => __( 'Excerpt', 'wpuf' ),
654
+ 'name' => 'post_excerpt',
655
+ 'is_meta' => 'no',
656
+ 'help' => '',
657
+ 'width' => '',
658
+ 'css' => '',
659
+ 'rows' => 5,
660
+ 'cols' => 25,
661
+ 'placeholder' => '',
662
+ 'default' => '',
663
+ 'rich' => 'no',
664
+ 'word_restriction' => '',
665
+ 'id' => 0,
666
+ 'is_new' => true,
667
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
668
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
669
+ )
670
+ );
671
+ }
672
+
673
+ /**
674
+ * Featured Image
675
+ *
676
+ * @since 2.5
677
+ *
678
+ * @return array
679
+ */
680
+ public static function featured_image() {
681
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
682
+
683
+ $settings = array_merge( $settings, array(
684
+ array(
685
+ 'name' => 'max_size',
686
+ 'title' => __( 'Max. file size', 'wpuf' ),
687
+ 'type' => 'text',
688
+ 'section' => 'advanced',
689
+ 'priority' => 20,
690
+ 'help_text' => __( 'Enter maximum upload size limit in KB', 'wpuf' ),
691
+ )
692
+ ) );
693
+
694
+ return array(
695
+ 'template' => 'featured_image',
696
+ 'title' => __( 'Featured Image', 'wpuf' ),
697
+ 'icon' => 'picture-o',
698
+ 'settings' => $settings,
699
+ 'field_props' => array(
700
+ 'input_type' => 'image_upload',
701
+ 'template' => 'featured_image',
702
+ 'required' => 'no',
703
+ 'label' => __( 'Featured Image', 'wpuf' ),
704
+ 'name' => 'featured_image',
705
+ 'is_meta' => 'no',
706
+ 'help' => '',
707
+ 'css' => '',
708
+ 'max_size' => '1024',
709
+ 'count' => '1',
710
+ 'id' => 0,
711
+ 'is_new' => true,
712
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
713
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
714
+ )
715
+ );
716
+ }
717
+
718
+ /**
719
+ * Post Tag
720
+ *
721
+ * @since 2.5
722
+ *
723
+ * @return array
724
+ */
725
+ public static function post_tags() {
726
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
727
+ $settings = array_merge( $settings, WPUF_Form_Builder_Field_Settings::get_common_text_properties() );
728
+
729
+ return array(
730
+ 'template' => 'post_tags',
731
+ 'title' => __( 'Tags', 'wpuf' ),
732
+ 'settings' => $settings,
733
+ 'field_props' => array(
734
+ 'input_type' => 'text',
735
+ 'template' => 'post_tags',
736
+ 'required' => 'no',
737
+ 'label' => __( 'Tags', 'wpuf' ),
738
+ 'name' => 'tags',
739
+ 'is_meta' => 'no',
740
+ 'help' => '',
741
+ 'width' => 'large',
742
+ 'css' => '',
743
+ 'placeholder' => '',
744
+ 'default' => '',
745
+ 'size' => 40,
746
+ 'id' => 0,
747
+ 'is_new' => true,
748
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
749
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
750
+ )
751
+ );
752
+ }
753
+
754
+ /**
755
+ * Common settings for taxonomy fields
756
+ *
757
+ * @since 2.5
758
+ *
759
+ * @return array
760
+ */
761
+ public static function taxonomy_template( $tax_name, $taxonomy ) {
762
+ $settings = WPUF_Form_Builder_Field_Settings::get_common_properties( false );
763
+
764
+ $settings = array_merge( $settings, array(
765
+ array(
766
+ 'name' => 'type',
767
+ 'title' => __( 'Type', 'wpuf' ),
768
+ 'type' => 'select',
769
+ 'options' => array(
770
+ 'select' => __( 'Select', 'wpuf' ),
771
+ 'multiselect' => __( 'Multi Select', 'wpuf' ),
772
+ 'checkbox' => __( 'Checkbox', 'wpuf' ),
773
+ 'text' => __( 'Text Input', 'wpuf' ),
774
+ 'ajax' => __( 'Ajax', 'wpuf' ),
775
+ ),
776
+ 'section' => 'advanced',
777
+ 'priority' => 23,
778
+ 'default' => 'select',
779
+ ),
780
+
781
+ array(
782
+ 'name' => 'first',
783
+ 'title' => __( 'Select Text', 'wpuf' ),
784
+ 'type' => 'text',
785
+ 'section' => 'basic',
786
+ 'priority' => 13,
787
+ 'help_text' => __( "First element of the select dropdown. Leave this empty if you don't want to show this field", 'wpuf' ),
788
+ ),
789
+
790
+ array(
791
+ 'name' => 'show_inline',
792
+ 'title' => __( 'Show in inline list', 'wpuf' ),
793
+ 'type' => 'radio',
794
+ 'options' => array(
795
+ 'yes' => __( 'Yes', 'wpuf' ),
796
+ 'no' => __( 'No', 'wpuf' ),
797
+ ),
798
+ 'default' => 'no',
799
+ 'inline' => true,
800
+ 'section' => 'advanced',
801
+ 'priority' => 23,
802
+ 'help_text' => __( 'Show this option in an inline list', 'wpuf' ),
803
+ ),
804
+
805
+ array(
806
+ 'name' => 'orderby',
807
+ 'title' => __( 'Order By', 'wpuf' ),
808
+ 'type' => 'select',
809
+ 'options' => array(
810
+ 'name' => __( 'Name', 'wpuf' ),
811
+ 'term_id' => __( 'Term ID', 'wpuf' ), // NOTE: before 2.5 the key was 'id' not 'term_id'
812
+ 'slug' => __( 'Slug', 'wpuf' ),
813
+ 'count' => __( 'Count', 'wpuf' ),
814
+ 'term_group' => __( 'Term Group', 'wpuf' ),
815
+ ),
816
+ 'section' => 'advanced',
817
+ 'priority' => 24,
818
+ 'default' => 'name',
819
+ ),
820
+
821
+ array(
822
+ 'name' => 'order',
823
+ 'title' => __( 'Order', 'wpuf' ),
824
+ 'type' => 'radio',
825
+ 'inline' => true,
826
+ 'options' => array(
827
+ 'ASC' => __( 'ASC', 'wpuf' ),
828
+ 'DESC' => __( 'DESC', 'wpuf' ),
829
+ ),
830
+ 'section' => 'advanced',
831
+ 'priority' => 25,
832
+ 'default' => 'ASC',
833
+ ),
834
+
835
+ array(
836
+ 'name' => 'exclude_type',
837
+ 'title' => __( 'Selection Type', 'wpuf' ),
838
+ 'type' => 'select',
839
+ 'options' => array(
840
+ 'exclude' => __( 'Exclude', 'wpuf' ),
841
+ 'include' => __( 'Include', 'wpuf' ),
842
+ 'child_of' => __( 'Child of', 'wpuf' ),
843
+ ),
844
+ 'section' => 'advanced',
845
+ 'priority' => 26,
846
+ 'default' => '',
847
+ ),
848
+
849
+ array(
850
+ 'name' => 'exclude',
851
+ 'title' => __( 'Selection Terms', 'wpuf' ),
852
+ 'type' => 'text',
853
+ 'section' => 'advanced',
854
+ 'priority' => 27,
855
+ 'help_text' => __( 'Enter the term IDs as comma separated (without space) to exclude/include in the form.', 'wpuf' ),
856
+ ),
857
+
858
+ array(
859
+ 'name' => 'woo_attr',
860
+ 'type' => 'checkbox',
861
+ 'is_single_opt' => true,
862
+ 'options' => array(
863
+ 'yes' => __( 'This taxonomy is a WooCommerce attribute', 'wpuf' )
864
+ ),
865
+ 'section' => 'advanced',
866
+ 'priority' => 28,
867
+ ),
868
+
869
+ array(
870
+ 'name' => 'woo_attr_vis',
871
+ 'type' => 'checkbox',
872
+ 'is_single_opt' => true,
873
+ 'options' => array(
874
+ 'yes' => __( 'Visible on product page', 'wpuf' )
875
+ ),
876
+ 'section' => 'advanced',
877
+ 'priority' => 29,
878
+ 'dependencies' => array(
879
+ 'woo_attr' => 'yes'
880
+ )
881
+ ),
882
+ ) );
883
+
884
+ return array(
885
+ 'template' => 'taxonomy',
886
+ 'title' => $taxonomy['title'],
887
+ 'settings' => $settings,
888
+ 'field_props' => array(
889
+ 'input_type' => 'taxonomy',
890
+ 'template' => 'taxonomy',
891
+ 'required' => 'no',
892
+ 'label' => $taxonomy['title'],
893
+ 'name' => $tax_name,
894
+ 'is_meta' => 'no',
895
+ 'help' => '',
896
+ 'width' => 'small',
897
+ 'css' => '',
898
+ 'type' => 'select',
899
+ 'first' => __( '- select -', 'wpuf' ),
900
+ 'show_inline' => 'inline',
901
+ 'orderby' => 'name',
902
+ 'order' => 'ASC',
903
+ 'exclude_type' => '',
904
+ 'exclude' => '',
905
+ 'woo_attr' => '',
906
+ 'woo_attr_vis' => '',
907
+ 'id' => 0,
908
+ 'is_new' => true,
909
+ 'wpuf_visibility' => WPUF_Form_Builder_Field_Settings::get_wpuf_visibility_prop(),
910
+ 'wpuf_cond' => WPUF_Form_Builder_Field_Settings::get_wpuf_cond_prop()
911
+ )
912
+ );
913
+ }
914
+
915
+ /**
916
+ * i18n strings specially for Post Forms
917
+ *
918
+ * @since 2.5
919
+ *
920
+ * @param array $i18n
921
+ *
922
+ * @return array
923
+ */
924
+ public function i18n( $i18n ) {
925
+ return array_merge( $i18n, array(
926
+ 'any_of_three_needed' => __( 'Post Forms must have either Post Title, Post Body or Excerpt field', 'wpuf' )
927
+ ) );
928
+ }
929
+
930
+ }
admin/html/form-settings-display.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $label_position = isset( $form_settings['label_position'] ) ? $form_settings['label_position'] : 'left';
3
+ $form_layout = isset( $form_settings['form_layout'] ) ? $form_settings['form_layout'] : 'layout1';
4
+ ?>
5
+
6
+ <table class="form-table">
7
+
8
+ <tr class="wpuf-label-position">
9
+ <th><?php _e( 'Label Position', 'wpuf' ); ?></th>
10
+ <td>
11
+ <select name="wpuf_settings[label_position]">
12
+ <?php
13
+ $positions = array(
14
+ 'above' => __( 'Above Element', 'wpuf' ),
15
+ 'left' => __( 'Left of Element', 'wpuf' ),
16
+ 'right' => __( 'Right of Element', 'wpuf' ),
17
+ 'hidden' => __( 'Hidden', 'wpuf' ),
18
+ );
19
+
20
+ foreach ($positions as $to => $label) {
21
+ printf('<option value="%s"%s>%s</option>', $to, selected( $label_position, $to, false ), $label );
22
+ }
23
+ ?>
24
+ </select>
25
+
26
+ <p class="description">
27
+ <?php _e( 'Where the labels of the form should display', 'wpuf' ) ?>
28
+ </p>
29
+ </td>
30
+ </tr>
31
+
32
+ <?php if( class_exists( 'WP_User_Frontend_Pro' ) ) : ?>
33
+ <tr class="wpuf-form-layouts">
34
+ <th><?php _e( 'Form Style', 'wpuf' ); ?></th>
35
+ <td>
36
+ <ul>
37
+ <?php
38
+ $layouts = array(
39
+ 'layout1' => WPUF_PRO_ASSET_URI . '/images/forms/layout1.png',
40
+ 'layout2' => WPUF_PRO_ASSET_URI . '/images/forms/layout2.png',
41
+ 'layout3' => WPUF_PRO_ASSET_URI . '/images/forms/layout3.png'
42
+ );
43
+
44
+ foreach ( $layouts as $key => $image ) {
45
+ $class = '';
46
+
47
+ if ( $key == $form_layout ) {
48
+ $class = 'active';
49
+ }
50
+
51
+ $output = '<li class="' . $class . '">';
52
+ $output .= '<input type="radio" name="wpuf_settings[form_layout]" value="' . $key . '" ' . checked( $form_layout, $key, false ). '>';
53
+ $output .= '<img src="' . $image . '" alt="">';
54
+ $output .= '</li>';
55
+
56
+ echo $output;
57
+ }
58
+ ?>
59
+ </ul>
60
+ </td>
61
+ </tr>
62
+ <?php endif; ?>
63
+
64
+ </table>
admin/html/form-settings-payment.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $post;
3
+
4
+ $form_settings = wpuf_get_form_settings( $post->ID );
5
+
6
+ $payment_options = isset( $form_settings['payment_options'] ) ? $form_settings['payment_options'] : 'false';
7
+ $enable_pay_per_post = isset( $form_settings['enable_pay_per_post'] ) ? $form_settings['enable_pay_per_post'] : 'false';
8
+ $force_pack_purchase = isset( $form_settings['force_pack_purchase'] ) ? $form_settings['force_pack_purchase'] : 'false';
9
+
10
+ $pay_per_post_cost = isset( $form_settings['pay_per_post_cost'] ) ? $form_settings['pay_per_post_cost'] : 2;
11
+ $fallback_ppp_enable = isset( $form_settings['fallback_ppp_enable'] ) ? $form_settings['fallback_ppp_enable'] : 'false';
12
+ $fallback_ppp_cost = isset( $form_settings['fallback_ppp_cost'] ) ? $form_settings['fallback_ppp_cost'] : 1;
13
+
14
+ ?>
15
+ <table class="form-table">
16
+
17
+ <!-- Added Payment Settings -->
18
+
19
+ <tr>
20
+ <th><?php _e( 'Payment Options', 'wpuf' ); ?></th>
21
+ <td>
22
+ <label>
23
+ <input type="hidden" name="wpuf_settings[payment_options]" value="false">
24
+ <input type="checkbox" name="wpuf_settings[payment_options]" value="true"<?php checked( $payment_options, 'true' ); ?> />
25
+ <?php _e( 'Enable Payments', 'wpuf' ) ?>
26
+ </label>
27
+ <p class="description"><?php _e( 'Check to enable Payments for this form.', 'wpuf' ); ?></p>
28
+ </td>
29
+ </tr>
30
+
31
+ <tr class="show-if-payment">
32
+ <th>&mdash; <?php _e( 'Force Pack', 'wpuf' ); ?></th>
33
+ <td>
34
+ <label>
35
+ <input type="hidden" name="wpuf_settings[force_pack_purchase]" value="false">
36
+ <input type="checkbox" name="wpuf_settings[force_pack_purchase]" value="true"<?php checked( $force_pack_purchase, 'true' ); ?> />
37
+ <?php _e( 'Force subscription pack', 'wpuf' ) ?>
38
+ </label>
39
+ <p class="description"><?php _e( 'Force users to purchase and use subscription pack.', 'wpuf' ); ?></p>
40
+ </td>
41
+ </tr>
42
+
43
+ <tr class="show-if-payment show-if-force-pack">
44
+ <th>&mdash; &mdash; <?php _e( 'Fallback to pay per post', 'wpuf' ); ?></th>
45
+ <td>
46
+ <label>
47
+ <input type="hidden" name="wpuf_settings[fallback_ppp_enable]" value="false">
48
+ <input type="checkbox" name="wpuf_settings[fallback_ppp_enable]" value="true"<?php checked( $fallback_ppp_enable, 'true' ); ?> />
49
+ <?php _e( 'Fallback pay per post charging', 'wpuf' ) ?>
50
+ </label>
51
+ <p class="description"><?php _e( 'Fallback to pay per post charging if pack limit exceeds', 'wpuf' ); ?></p>
52
+ </td>
53
+ </tr>
54
+
55
+ <tr class="show-if-payment show-if-force-pack">
56
+ <th>&mdash; &mdash; <?php _e( 'Fallback cost', 'wpuf' ); ?></th>
57
+ <td>
58
+ <label>
59
+ <input type="number" name="wpuf_settings[fallback_ppp_cost]" value="<?php echo esc_attr( $fallback_ppp_cost ); ?>" />
60
+ </label>
61
+ <p class="description"><?php _e( 'Cost of pay per post after a subscription pack limit is reached.', 'wpuf' ); ?></p>
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="show-if-payment">
66
+ <th>&mdash; <?php _e( 'Pay Per Post', 'wpuf' ); ?></th>
67
+ <td>
68
+ <label>
69
+ <input type="hidden" name="wpuf_settings[enable_pay_per_post]" value="false">
70
+ <input type="checkbox" name="wpuf_settings[enable_pay_per_post]" value="true"<?php checked( $enable_pay_per_post, 'true' ); ?> />
71
+ <?php _e( 'Enable Pay Per Post', 'wpuf' ) ?>
72
+ </label>
73
+ <p class="description"><?php _e( 'Charge users for posting,', 'wpuf' ); ?><a target="_blank" href="https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/how-to-charge-for-each-post-submission/"><?php _e( ' Learn More about Pay Per Post.', 'wpuf' ); ?></a></p>
74
+ </td>
75
+ </tr>
76
+
77
+ <tr class="show-if-payment show-if-pay-per-post">
78
+ <th>&mdash; &mdash; <?php _e( 'Cost Settings', 'wpuf' ); ?></th>
79
+ <td>
80
+ <label>
81
+ <input type="number" name="wpuf_settings[pay_per_post_cost]" value="<?php echo esc_attr( $pay_per_post_cost ); ?>" />
82
+ </label>
83
+ <p class="description"><?php _e( 'Amount to be charged per post', 'wpuf' ); ?></p>
84
+ </td>
85
+ </tr>
86
+ <?php do_action( 'wpuf_form_setting_payment', $form_settings, $post ); ?>
87
+ </table>
admin/html/form-settings-post-edit.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $post_status_selected = isset( $form_settings['edit_post_status'] ) ? $form_settings['edit_post_status'] : 'publish';
3
+ $redirect_to = isset( $form_settings['edit_redirect_to'] ) ? $form_settings['edit_redirect_to'] : 'same';
4
+ $update_message = isset( $form_settings['update_message'] ) ? $form_settings['update_message'] : __( 'Post updated successfully', 'wpuf' );
5
+ $page_id = isset( $form_settings['edit_page_id'] ) ? $form_settings['edit_page_id'] : 0;
6
+ $url = isset( $form_settings['edit_url'] ) ? $form_settings['edit_url'] : '';
7
+ $update_text = isset( $form_settings['update_text'] ) ? $form_settings['update_text'] : __( 'Update', 'wpuf' );
8
+ $subscription = isset( $form_settings['subscription'] ) ? $form_settings['subscription'] : null;
9
+ ?>
10
+ <table class="form-table">
11
+
12
+ <tr class="wpuf-post-status">
13
+ <th><?php _e( 'Set Post Status to', 'wpuf' ); ?></th>
14
+ <td>
15
+ <select name="wpuf_settings[edit_post_status]">
16
+ <?php
17
+ $statuses = get_post_statuses();
18
+
19
+ foreach ($statuses as $status => $label) {
20
+ printf('<option value="%s"%s>%s</option>', $status, selected( $post_status_selected, $status, false ), $label );
21
+ }
22
+
23
+ printf( '<option value="_nochange"%s>%s</option>', selected( $post_status_selected, '_nochange', false ), __( 'No Change', 'wpuf' ) );
24
+ ?>
25
+ </select>
26
+ </td>
27
+ </tr>
28
+
29
+ <tr class="wpuf-redirect-to">
30
+ <th><?php _e( 'Redirect To', 'wpuf' ); ?></th>
31
+ <td>
32
+ <select name="wpuf_settings[edit_redirect_to]">
33
+ <?php
34
+ $redirect_options = array(
35
+ 'post' => __( 'Newly created post', 'wpuf' ),
36
+ 'same' => __( 'Same Page', 'wpuf' ),
37
+ 'page' => __( 'To a page', 'wpuf' ),
38
+ 'url' => __( 'To a custom URL', 'wpuf' )
39
+ );
40
+
41
+ foreach ($redirect_options as $to => $label) {
42
+ printf('<option value="%s"%s>%s</option>', $to, selected( $redirect_to, $to, false ), $label );
43
+ }
44
+ ?>
45
+ </select>
46
+ <p class="description">
47
+ <?php _e( 'After successfull submit, where the page will redirect to', $domain = 'wpuf' ) ?>
48
+ </p>
49
+ </td>
50
+ </tr>
51
+
52
+ <tr class="wpuf-same-page">
53
+ <th><?php _e( 'Post Update Message', 'wpuf' ); ?></th>
54
+ <td>
55
+ <textarea rows="3" cols="40" name="wpuf_settings[update_message]"><?php echo esc_textarea( $update_message ); ?></textarea>
56
+ </td>
57
+ </tr>
58
+
59
+ <tr class="wpuf-page-id">
60
+ <th><?php _e( 'Page', 'wpuf' ); ?></th>
61
+ <td>
62
+ <select name="wpuf_settings[edit_page_id]">
63
+ <?php
64
+ $pages = get_posts( array( 'numberposts' => -1, 'post_type' => 'page') );
65
+
66
+ foreach ($pages as $page) {
67
+ printf('<option value="%s"%s>%s</option>', $page->ID, selected( $page_id, $page->ID, false ), esc_attr( $page->post_title ) );
68
+ }
69
+ ?>
70
+ </select>
71
+ </td>
72
+ </tr>
73
+
74
+ <tr class="wpuf-url">
75
+ <th><?php _e( 'Custom URL', 'wpuf' ); ?></th>
76
+ <td>
77
+ <input type="url" name="wpuf_settings[edit_url]" value="<?php echo esc_attr( $url ); ?>">
78
+ </td>
79
+ </tr>
80
+
81
+ <tr class="wpuf-subscription-pack" style="display: none;">
82
+ <th><?php _e( 'Subscription Title', 'wpuf'); ?></th>
83
+ <td>
84
+ <select id="wpuf-subscription-list" name="wpuf_settings[subscription]">
85
+ <?php $this->subscription_dropdown( $subscription ); ?>
86
+ </select>
87
+ </td>
88
+ </tr>
89
+
90
+ <tr class="wpuf-update-text">
91
+ <th><?php _e( 'Update Post Button text', 'wpuf' ); ?></th>
92
+ <td>
93
+ <input type="text" name="wpuf_settings[update_text]" value="<?php echo esc_attr( $update_text ); ?>">
94
+ </td>
95
+ </tr>
96
+ </table>
admin/html/form-settings-post.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $post;
3
+
4
+ $form_settings = wpuf_get_form_settings( $post->ID );
5
+
6
+ $post_status_selected = isset( $form_settings['post_status'] ) ? $form_settings['post_status'] : 'publish';
7
+ $restrict_message = __( "This page is restricted. Please Log in / Register to view this page.", 'wpuf' );
8
+
9
+ $post_type_selected = isset( $form_settings['post_type'] ) ? $form_settings['post_type'] : 'post';
10
+
11
+ $post_format_selected = isset( $form_settings['post_format'] ) ? $form_settings['post_format'] : 0;
12
+ $default_cat = isset( $form_settings['default_cat'] ) ? $form_settings['default_cat'] : array();
13
+
14
+ $redirect_to = isset( $form_settings['redirect_to'] ) ? $form_settings['redirect_to'] : 'post';
15
+ $message = isset( $form_settings['message'] ) ? $form_settings['message'] : __( 'Post saved', 'wpuf' );
16
+ $update_message = isset( $form_settings['update_message'] ) ? $form_settings['update_message'] : __( 'Post updated successfully', 'wpuf' );
17
+ $page_id = isset( $form_settings['page_id'] ) ? $form_settings['page_id'] : 0;
18
+ $url = isset( $form_settings['url'] ) ? $form_settings['url'] : '';
19
+ $comment_status = isset( $form_settings['comment_status'] ) ? $form_settings['comment_status'] : 'open';
20
+
21
+ $submit_text = isset( $form_settings['submit_text'] ) ? $form_settings['submit_text'] : __( 'Submit', 'wpuf' );
22
+ $draft_text = isset( $form_settings['draft_text'] ) ? $form_settings['draft_text'] : __( 'Save Draft', 'wpuf' );
23
+ $preview_text = isset( $form_settings['preview_text'] ) ? $form_settings['preview_text'] : __( 'Preview', 'wpuf' );
24
+ $draft_post = isset( $form_settings['draft_post'] ) ? $form_settings['draft_post'] : 'false';
25
+
26
+ ?>
27
+ <table class="form-table">
28
+
29
+ <tr class="wpuf-post-type">
30
+ <th><?php _e( 'Post Type', 'wpuf' ); ?></th>
31
+ <td>
32
+ <select name="wpuf_settings[post_type]">
33
+ <?php
34
+ $post_types = get_post_types();
35
+ unset($post_types['attachment']);
36
+ unset($post_types['revision']);
37
+ unset($post_types['nav_menu_item']);
38
+ unset($post_types['wpuf_forms']);
39
+ unset($post_types['wpuf_profile']);
40
+ unset($post_types['wpuf_input']);
41
+ unset($post_types['wpuf_subscription']);
42
+ unset($post_types['custom_css']);
43
+ unset($post_types['customize_changeset']);
44
+ unset($post_types['wpuf_coupon']);
45
+ unset($post_types['oembed_cache']);
46
+
47
+ foreach ($post_types as $post_type) {
48
+ printf('<option value="%s"%s>%s</option>', $post_type, selected( $post_type_selected, $post_type, false ), $post_type );
49
+ }
50
+ ?>
51
+ </select>
52
+ <p class="description"><?php _e( 'Custom Post Type will appear here. ', 'wpuf' );?><a target="_blank" href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/different-custom-post-type-submission-2/"><?php _e('Learn More ', 'wpuf')?></a></p>
53
+ </td>
54
+ </tr>
55
+
56
+ <tr class="wpuf-post-status">
57
+ <th><?php _e( 'Post Status', 'wpuf' ); ?></th>
58
+ <td>
59
+ <select name="wpuf_settings[post_status]">
60
+ <?php
61
+ $statuses = get_post_statuses();
62
+ foreach ($statuses as $status => $label) {
63
+ printf('<option value="%s"%s>%s</option>', $status, selected( $post_status_selected, $status, false ), $label );
64
+ }
65
+ ?>
66
+ </select>
67
+ </td>
68
+ </tr>
69
+
70
+ <tr class="wpuf-post-fromat">
71
+ <th><?php _e( 'Post Format', 'wpuf' ); ?></th>
72
+ <td>
73
+ <select name="wpuf_settings[post_format]">
74
+ <option value="0"><?php _e( '- None -', 'wpuf' ); ?></option>
75
+ <?php
76
+ $post_formats = get_theme_support( 'post-formats' );
77
+
78
+ if ( isset($post_formats[0]) && is_array( $post_formats[0] ) ) {
79
+ foreach ($post_formats[0] as $format) {
80
+ printf('<option value="%s"%s>%s</option>', $format, selected( $post_format_selected, $format, false ), $format );
81
+ }
82
+ }
83
+ ?>
84
+ </select>
85
+ </td>
86
+ </tr>
87
+
88
+ <tr class="wpuf-default-cat">
89
+ <th><?php _e( 'Default Post Category', 'wpuf' ); ?></th>
90
+ <td>
91
+ <?php
92
+
93
+ if ( !is_array( $default_cat ) ) {
94
+ $default_cat = (array) $default_cat;
95
+ }
96
+
97
+ $args = array(
98
+ 'hide_empty' => false,
99
+ 'hierarchical' => true,
100
+ 'selected' => $default_cat,
101
+ 'taxonomy' => ( $post_type_selected == 'product' ) ? 'product_cat' : 'category'
102
+ );
103
+
104
+ echo '<select multiple name="wpuf_settings[default_cat][]">';
105
+
106
+ $categories = get_categories( $args );
107
+
108
+ foreach ( $categories as $category ) {
109
+ $selected = '';
110
+ if ( in_array( $category->term_id, $default_cat ) ) {
111
+ $selected = 'selected ';
112
+ }
113
+ echo '<option ' . $selected . 'value="' . $category->term_id . '">' . $category->name . '</option>';
114
+ }
115
+
116
+ echo '</select>';
117
+
118
+ ?>
119
+ <p class="description"><?php echo __( 'If users are not allowed to choose any category, this category will be used instead (if post type supports)', 'wpuf' ); ?></p>
120
+ </td>
121
+ </tr>
122
+
123
+ <tr class="wpuf-redirect-to">
124
+ <th><?php _e( 'Redirect To', 'wpuf' ); ?></th>
125
+ <td>
126
+ <select name="wpuf_settings[redirect_to]">
127
+ <?php
128
+ $redirect_options = array(
129
+ 'post' => __( 'Newly created post', 'wpuf' ),
130
+ 'same' => __( 'Same Page', 'wpuf' ),
131
+ 'page' => __( 'To a page', 'wpuf' ),
132
+ 'url' => __( 'To a custom URL', 'wpuf' )
133
+ );
134
+
135
+ foreach ($redirect_options as $to => $label) {
136
+ printf('<option value="%s"%s>%s</option>', $to, selected( $redirect_to, $to, false ), $label );
137
+ }
138
+ ?>
139
+ </select>
140
+ <p class="description">
141
+ <?php _e( 'After successfull submit, where the page will redirect to', $domain = 'wpuf' ) ?>
142
+ </p>
143
+ </td>
144
+ </tr>
145
+
146
+ <tr class="wpuf-same-page">
147
+ <th><?php _e( 'Message to show', 'wpuf' ); ?></th>
148
+ <td>
149
+ <textarea rows="3" cols="40" name="wpuf_settings[message]"><?php echo esc_textarea( $message ); ?></textarea>
150
+ </td>
151
+ </tr>
152
+
153
+ <tr class="wpuf-page-id">
154
+ <th><?php _e( 'Page', 'wpuf' ); ?></th>
155
+ <td>
156
+ <select name="wpuf_settings[page_id]">
157
+ <?php
158
+ $pages = get_posts( array( 'numberposts' => -1, 'post_type' => 'page') );
159
+
160
+ foreach ($pages as $page) {
161
+ printf('<option value="%s"%s>%s</option>', $page->ID, selected( $page_id, $page->ID, false ), esc_attr( $page->post_title ) );
162
+ }
163
+ ?>
164
+ </select>
165
+ </td>
166
+ </tr>
167
+
168
+ <tr class="wpuf-url">
169
+ <th><?php _e( 'Custom URL', 'wpuf' ); ?></th>
170
+ <td>
171
+ <input type="url" name="wpuf_settings[url]" value="<?php echo esc_attr( $url ); ?>">
172
+ </td>
173
+ </tr>
174
+
175
+ <tr class="wpuf-comment">
176
+ <th><?php _e( 'Comment Status', 'wpuf' ); ?></th>
177
+ <td>
178
+ <select name="wpuf_settings[comment_status]">
179
+ <option value="open" <?php selected( $comment_status, 'open'); ?>><?php _e('Open', 'wpuf'); ?></option>
180
+ <option value="closed" <?php selected( $comment_status, 'closed'); ?>><?php _e('Closed', 'wpuf'); ?></option>
181
+ </select>
182
+ </td>
183
+ </tr>
184
+
185
+ <tr class="wpuf-submit-text">
186
+ <th><?php _e( 'Submit Post Button text', 'wpuf' ); ?></th>
187
+ <td>
188
+ <input type="text" name="wpuf_settings[submit_text]" value="<?php echo esc_attr( $submit_text ); ?>">
189
+ </td>
190
+ </tr>
191
+
192
+ <tr>
193
+ <th><?php _e( 'Post Draft', 'wpuf' ); ?></th>
194
+ <td>
195
+ <label>
196
+ <input type="hidden" name="wpuf_settings[draft_post]" value="false">
197
+ <input type="checkbox" name="wpuf_settings[draft_post]" value="true"<?php checked( $draft_post, 'true' ); ?> />
198
+ <?php _e( 'Enable Saving as draft', 'wpuf' ) ?>
199
+ </label>
200
+ <p class="description"><?php _e( 'It will show a button to save as draft', 'wpuf' ); ?></p>
201
+ </td>
202
+ </tr>
203
+
204
+ <?php do_action( 'wpuf_form_setting', $form_settings, $post ); ?>
205
+ </table>
admin/html/form-submission-restriction.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $post;
3
+
4
+ $form_settings = wpuf_get_form_settings( $post->ID );
5
+
6
+ $guest_post = !empty( $form_settings['guest_post'] ) ? $form_settings['guest_post'] : 'false';
7
+ $role_base = !empty( $form_settings['role_base'] ) ? $form_settings['role_base'] : 'false';
8
+ $roles = !empty( $form_settings['roles'] ) ? $form_settings['roles'] : array( 'administrator' );
9
+ $guest_details = !empty( $form_settings['guest_details'] ) ? $form_settings['guest_details'] : 'true';
10
+ $guest_email_verify = !empty( $form_settings['guest_email_verify'] ) ? $form_settings['guest_email_verify'] : 'false';
11
+ $name_label = !empty( $form_settings['name_label'] ) ? $form_settings['name_label'] : __( 'Name', 'wpuf' );
12
+ $email_label = !empty( $form_settings['email_label'] ) ? $form_settings['email_label'] : __( 'Email', 'wpuf' );
13
+ $message_restrict = !empty( $form_settings['message_restrict'] ) ? $form_settings['message_restrict'] : $restrict_message;
14
+
15
+ $schedule_form = !empty( $form_settings['schedule_form'] ) ? $form_settings['schedule_form'] : 'false';
16
+ $schedule_start = !empty( $form_settings['schedule_start'] ) ? $form_settings['schedule_start'] : '';
17
+ $schedule_end = !empty( $form_settings['schedule_end'] ) ? $form_settings['schedule_end'] : '';
18
+ $form_pending_message = !empty( $form_settings['form_pending_message'] ) ? $form_settings['form_pending_message'] : 'Form submission not started.';
19
+ $form_expired_message = !empty( $form_settings['form_expired_message'] ) ? $form_settings['form_expired_message'] : 'Submission date expired.';
20
+
21
+ $limit_entries = !empty( $form_settings['limit_entries'] ) ? $form_settings['limit_entries'] : 'false';
22
+ $limit_number = !empty( $form_settings['limit_number'] ) ? $form_settings['limit_number'] : 100;
23
+ $limit_message = !empty( $form_settings['limit_message'] ) ? $form_settings['limit_message'] : 'Form submission limit exceeded';
24
+ ?>
25
+ <table class="form-table">
26
+
27
+ <!-- Added Submission Restriction Settings -->
28
+ <tr>
29
+ <th><?php _e( 'Guest Post', 'wpuf' ); ?></th>
30
+ <td>
31
+ <label>
32
+ <input type="hidden" name="wpuf_settings[guest_post]" value="false">
33
+ <input type="checkbox" name="wpuf_settings[guest_post]" value="true"<?php checked( $guest_post, 'true' ); ?> />
34
+ <?php _e( 'Enable Guest Post', 'wpuf' ) ?>
35
+ </label>
36
+ <p class="description"><?php _e( 'Unregistered users will be able to submit posts', 'wpuf' ); ?>. <a href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/guest-posting/"><?php _e( 'Learn more about guest posting.', 'wpuf' ); ?></a></p>
37
+ </td>
38
+ </tr>
39
+
40
+ <tr class="show-if-guest">
41
+ <th>&mdash; <?php _e( 'User Details', 'wpuf' ); ?></th>
42
+ <td>
43
+ <label>
44
+ <input type="hidden" name="wpuf_settings[guest_details]" value="false">
45
+ <input type="checkbox" name="wpuf_settings[guest_details]" value="true"<?php checked( $guest_details, 'true' ); ?> />
46
+ <?php _e( 'Require Name and Email address', 'wpuf' ) ?>
47
+ </label>
48
+ <p class="description"><?php _e( 'If requires, users will be automatically registered to the site using the name and email address', 'wpuf' ); ?></p>
49
+ </td>
50
+ </tr>
51
+
52
+ <tr class="show-if-guest show-if-details">
53
+ <th>&mdash; &mdash; <?php _e( 'Name Label', 'wpuf' ); ?></th>
54
+ <td>
55
+ <label>
56
+ <input type="text" name="wpuf_settings[name_label]" value="<?php echo esc_attr( $name_label ); ?>" />
57
+ </label>
58
+ <p class="description"><?php _e( 'Label text for name field', 'wpuf' ); ?></p>
59
+ </td>
60
+ </tr>
61
+
62
+ <tr class="show-if-guest show-if-details">
63
+ <th>&mdash; &mdash; <?php _e( 'E-Mail Label', 'wpuf' ); ?></th>
64
+ <td>
65
+ <label>
66
+ <input type="text" name="wpuf_settings[email_label]" value="<?php echo esc_attr( $email_label ); ?>" />
67
+ </label>
68
+ <p class="description"><?php _e( 'Label text for email field', 'wpuf' ); ?></p>
69
+ </td>
70
+ </tr>
71
+
72
+ <tr class="show-if-guest">
73
+ <th>&mdash; <?php _e( 'Email Verification', 'wpuf' ); ?></th>
74
+ <td>
75
+ <label>
76
+ <input type="checkbox" name="wpuf_settings[guest_email_verify]" value="true"<?php checked( $guest_email_verify, 'true' ); ?> />
77
+ <?php _e( 'Require Email Verification for Guests', 'wpuf' ) ?>
78
+ </label>
79
+ <p class="description"><?php _e( 'If requires, users will be required to verify their email adress.', 'wpuf' ); ?></p>
80
+ </td>
81
+ </tr>
82
+
83
+ <tr class="show-if-not-guest">
84
+ <th>&mdash; <?php _e( 'Role Base', 'wpuf' ); ?></th>
85
+ <td>
86
+ <label>
87
+ <input type="hidden" name="wpuf_settings[role_base]" value="false">
88
+ <input type="checkbox" name="wpuf_settings[role_base]" value="true"<?php checked( $role_base, 'true' ); ?> />
89
+ <?php _e( 'Enable role base post', 'wpuf' ) ?>
90
+ </label>
91
+ <p class="description"><?php _e( 'You can choose which role can submit posts by this form.', 'wpuf' ); ?></p>
92
+ </td>
93
+ </tr>
94
+
95
+ <tr class="show-if-not-guest show-if-roles">
96
+ <th>&mdash; &mdash; <?php _e( 'Roles', 'wpuf' ); ?></th>
97
+ <td>
98
+ <?php
99
+ foreach ( wpuf_get_user_roles() as $key => $role ) { ?>
100
+ <label>
101
+ <input type="checkbox" name="wpuf_settings[roles][]" value="<?php echo $key; ?>"
102
+ <?php echo in_array($key, $roles) || 'administrator' == $key ? 'checked="checked"' : '';
103
+ echo 'administrator' == $key ? 'disabled' : '';
104
+ ?> />
105
+ <?php echo $role; ?>
106
+ </label><br>
107
+ <?php } ?>
108
+ <input type="hidden" name="wpuf_settings[roles][]" value="administrator">
109
+ <p class="description"><?php _e( 'Choose which roles can submit posts.', 'wpuf' ); ?></p>
110
+ </td>
111
+ </tr>
112
+
113
+ <tr class="show-if-not-guest">
114
+ <th>&mdash; <?php _e( 'Unauthorized Message', 'wpuf' ); ?></th>
115
+ <td>
116
+ <textarea rows="3" cols="40" name="wpuf_settings[message_restrict]"><?php echo esc_textarea( $message_restrict ); ?></textarea>
117
+ <p class="description"><?php _e( 'Not logged in users will see this message', 'wpuf' ); ?></p>
118
+ </td>
119
+ </tr>
120
+
121
+ <tr>
122
+ <th><?php _e( 'Schedule form', 'wpuf' ); ?></th>
123
+ <td>
124
+ <label>
125
+ <input type="hidden" name="wpuf_settings[schedule_form]" value="false">
126
+ <input type="checkbox" name="wpuf_settings[schedule_form]" value="true"<?php checked( $schedule_form, 'true' ); ?> />
127
+ <?php _e( 'Schedule form for a period', 'wpuf' ) ?>
128
+ </label>
129
+ <p class="description"><?php _e( 'Schedule for a time period the form is active.', 'wpuf' ); ?></p>
130
+ </td>
131
+ </tr>
132
+
133
+ <tr class="show-if-schedule">
134
+ <th>&mdash; <?php _e( 'Schedule Period', 'wpuf' ); ?></th>
135
+ <td>
136
+
137
+ <?php _e( 'From', 'wpuf' ); ?>
138
+ <input type="text" name="wpuf_settings[schedule_start]" id="schedule_start" value="<?php echo $schedule_start; ?>" class="datepicker">
139
+ <!-- <datepicker name="wpuf_settings[schedule_start]"></datepicker> -->
140
+
141
+ <?php _e( 'To', 'wpuf' ); ?>
142
+ <input type="text" name="wpuf_settings[schedule_end]" id="schedule_end" value="<?php echo $schedule_end; ?>" class="datepicker">
143
+ <!-- <datepicker name="wpuf_settings[schedule_end]"></datepicker> -->
144
+ </td>
145
+ </tr>
146
+
147
+ <tr class="show-if-schedule">
148
+ <th>&mdash; <?php _e( 'Form Pending Message', 'wpuf' ); ?></th>
149
+ <td>
150
+ <textarea rows="3" cols="40" name="wpuf_settings[form_pending_message]"><?php echo esc_textarea( $form_pending_message ); ?></textarea>
151
+ </td>
152
+ </tr>
153
+
154
+ <tr class="show-if-schedule">
155
+ <th>&mdash; <?php _e( 'Form Expired Message', 'wpuf' ); ?></th>
156
+ <td>
157
+ <textarea rows="3" cols="40" name="wpuf_settings[form_expired_message]"><?php echo esc_textarea( $form_expired_message ); ?></textarea>
158
+ </td>
159
+ </tr>
160
+
161
+ <tr class="wpuf-limit-entries">
162
+ <th><?php _e( 'Limit Entries', 'wpuf' ); ?></th>
163
+ <td>
164
+ <label>
165
+ <input type="hidden" name="wpuf_settings[limit_entries]" value="false">
166
+ <input type="checkbox" name="wpuf_settings[limit_entries]" value="true"<?php checked( $limit_entries, 'true' ); ?> />
167
+ <?php _e( 'Enable form entry limit', 'wpuf' ); ?>
168
+ </label>
169
+
170
+ <p class="description">
171
+ <?php _e( 'Limit the number of entries allowed for this form', 'wpuf' ) ?>
172
+ </p>
173
+ </td>
174
+ </tr>
175
+
176
+ <tr class="show-if-limit-entries">
177
+ <th>&mdash; <?php _e( 'Number of Entries', 'wpuf' ); ?></th>
178
+ <td>
179
+ <input type="number" value="<?php echo esc_attr( $limit_number ); ?>" name="wpuf_settings[limit_number]">
180
+ </td>
181
+ </tr>
182
+
183
+ <tr class="show-if-limit-entries">
184
+ <th>&mdash; <?php _e( 'Limit Reached Message', 'wpuf' ); ?></th>
185
+ <td>
186
+ <textarea rows="3" cols="40" name="wpuf_settings[limit_message]"><?php echo esc_textarea( $limit_message ); ?></textarea>
187
+ </td>
188
+ </tr>
189
+ <?php do_action( 'wpuf_form_submission_restriction', $form_settings, $post ); ?>
190
+ </table>
admin/html/modal.php ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="wpuf-form-template-modal">
2
+ <div class="wpuf-form-template-modal">
3
+
4
+ <span id="modal-label" class="screen-reader-text"><?php _e( 'Modal window. Press escape to close.', 'wpuf' ); ?></span>
5
+ <a href="#" class="close">× <span class="screen-reader-text"><?php _e( 'Close modal window', 'wpuf' ); ?></span></a>
6
+
7
+ <header class="modal-header">
8
+ <h2>
9
+ <?php _e( 'Select a Template', 'wpuf' ); ?>
10
+ <small><?php
11
+ printf(
12
+ __( 'Select from a pre-defined template or from a <a href="%s">blank form</a>', 'wpuf' ),
13
+ $blank_form_url
14
+ ); ?></small>
15
+ </h2>
16
+ </header>
17
+
18
+ <div class="content-container modal-footer">
19
+ <div class="content">
20
+
21
+ <ul>
22
+ <li class="blank-form">
23
+ <h3><?php _e( 'Blank Form', 'wpuf' ); ?></h3>
24
+
25
+ <div class="form-middle-text">
26
+ <span class="dashicons dashicons-plus"></span>
27
+ <div class="title"><?php _e( 'Blank Form', 'wpuf' ); ?></div>
28
+ </div>
29
+
30
+ <div class="form-create-overlay">
31
+ <div class="title"><?php _e( 'Blank Form', 'wpuf' ); ?></div>
32
+ <br>
33
+ <a href="<?php echo $blank_form_url; ?>" class="button button-primary" title="<?php echo esc_attr('Blank Form'); ?>">
34
+ <?php _e('Create Form', 'wpuf' ); ?>
35
+ </a>
36
+ </div>
37
+ </li>
38
+
39
+ <?php
40
+ foreach ($registry as $key => $template ) {
41
+ $class = 'template-active';
42
+ $title = $template->title;
43
+ $image = $template->image ? $template->image : '';
44
+
45
+ $url = esc_url( add_query_arg( array(
46
+ 'action' => $action_name,
47
+ 'template' => $key,
48
+ '_wpnonce' => wp_create_nonce( 'wpuf_create_from_template' )
49
+ ), admin_url( 'admin.php' ) ) );
50
+
51
+ if ( ! $template->is_enabled() ) {
52
+ $url = '#';
53
+ $class = 'template-inactive';
54
+ $title = __( 'This integration is not installed.', 'wpuf' );
55
+ }
56
+ ?>
57
+
58
+ <li class="<?php echo $class; ?>">
59
+ <h3><?php echo $template->get_title(); ?></h3>
60
+ <?php if ( $image ) { printf( '<img src="%s" alt="%s">', $image, $title ); } ?>
61
+
62
+ <div class="form-create-overlay">
63
+ <div class="title"><?php echo $template->get_title(); ?></div>
64
+ <div class="description"><?php echo $template->get_description(); ?></div>
65
+ <br>
66
+ <a href="<?php echo $url; ?>" class="button button-primary" title="<?php echo $template->get_title(); ?>">
67
+ <?php _e('Create Form', 'wpuf' ); ?>
68
+ </a>
69
+ </div>
70
+ </li>
71
+
72
+ <?php } ?>
73
+ </ul>
74
+ </div>
75
+ </div>
76
+
77
+ <?php if ( $footer_help ) : ?>
78
+ <footer>
79
+ <?php echo $footer_help; ?>
80
+ </footer>
81
+ <?php endif; ?>
82
+ </div>
83
+ <div class="wpuf-form-template-modal-backdrop"></div>
84
+ </div>
85
+
86
+
87
+ <script type="text/javascript">
88
+ (function($) {
89
+ var popup = {
90
+ init: function() {
91
+ $('.wrap').on('click', 'a.page-title-action.add-form', this.openModal);
92
+ $('.wpuf-form-template-modal-backdrop, .wpuf-form-template-modal .close').on('click', $.proxy(this.closeModal, this) );
93
+
94
+ $('body').on( 'keydown', $.proxy(this.onEscapeKey, this) );
95
+ },
96
+
97
+ openModal: function(e) {
98
+ e.preventDefault();
99
+
100
+ $('.wpuf-form-template-modal').show();
101
+ $('.wpuf-form-template-modal-backdrop').show();
102
+ },
103
+
104
+ onEscapeKey: function(e) {
105
+ if ( 27 === e.keyCode ) {
106
+ this.closeModal(e);
107
+ }
108
+ },
109
+
110
+ closeModal: function(e) {
111
+ if ( typeof e !== 'undefined' ) {
112
+ e.preventDefault();
113
+ }
114
+
115
+ $('.wpuf-form-template-modal').hide();
116
+ $('.wpuf-form-template-modal-backdrop').hide();
117
+ }
118
+ };
119
+
120
+ $(function() {
121
+ popup.init();
122
+ });
123
+
124
+ })(jQuery);
125
+ </script>
admin/html/support.php ADDED
@@ -0,0 +1,556 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $current_user = wp_get_current_user();
3
+
4
+ $articles = array(
5
+ 'setup' => array(
6
+ array(
7
+ 'title' => 'How to Install',
8
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/getting-started/how-to-install/'
9
+ ),
10
+ array(
11
+ 'title' => 'License Activation',
12
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/getting-started/license-activation/'
13
+ ),
14
+ array(
15
+ 'title' => 'Shortcodes',
16
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/getting-started/wpuf-shortcodes/'
17
+ ),
18
+ array(
19
+ 'title' => 'User Dashboard',
20
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/getting-started/user-dashboard/'
21
+ ),
22
+ ),
23
+ 'posting' => array(
24
+ array(
25
+ 'title' => 'Creating Posting Forms',
26
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/creating-posting-forms/'
27
+ ),
28
+ array(
29
+ 'title' => 'Available Form Elements',
30
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/form-elements/'
31
+ ),
32
+ array(
33
+ 'title' => 'Creating Forms Using The Form Templates',
34
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/form-templates/'
35
+ ),
36
+ array(
37
+ 'title' => 'How to Allow Guest Posting',
38
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/guest-posting/'
39
+ ),
40
+ array(
41
+ 'title' => 'Setup Automatic Post Expiration',
42
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/using-post-expiration-wp-user-frontend/'
43
+ ),
44
+ array(
45
+ 'title' => 'How to create Multistep forms',
46
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/how-to-add-multi-step-form/'
47
+ ),
48
+ ),
49
+ 'dashboard' => array(
50
+ array(
51
+ 'title' => 'Setting up Frontend Dashboard for Users',
52
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/frontend/configuring-dashboard-settings/'
53
+ ),
54
+ array(
55
+ 'title' => 'Unified My Account Page',
56
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/frontend/how-to-create-my-account-page/'
57
+ ),
58
+ array(
59
+ 'title' => 'Showing meta fields in frontend',
60
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/frontend/showing-meta-fields-in-frontend/'
61
+ ),
62
+ ),
63
+ 'settings' => array(
64
+ array(
65
+ 'title' => 'General Options',
66
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/settings/configuring-general-options/'
67
+ ),
68
+ array(
69
+ 'title' => 'Dashboard Settings',
70
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/settings/configuring-dashboard-settings/'
71
+ ),
72
+ array(
73
+ 'title' => 'Login Registration Settings',
74
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/settings/login-registration-settings/'
75
+ ),
76
+ array(
77
+ 'title' => 'Payment Settings',
78
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/settings/configuring-payment-settings/'
79
+ ),
80
+ ),
81
+ 'registration' => array(
82
+ array(
83
+ 'title' => 'Creating Registration Form',
84
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-forms/'
85
+ ),
86
+ array(
87
+ 'title' => 'Creating a Multistep Registration Form',
88
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/creating-a-multistep-registration-form/'
89
+ ),
90
+ array(
91
+ 'title' => 'Setting Up Confirmation Message',
92
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/setup-confirmation-message/'
93
+ ),
94
+ array(
95
+ 'title' => 'Paid Membership Registration',
96
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/paid-membership-registration/'
97
+ ),
98
+ array(
99
+ 'title' => 'Setting Up Email Verification for New Users',
100
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/setting-up-email-verification-for-new-users/'
101
+ ),
102
+ ),
103
+ 'profile' => array(
104
+ array(
105
+ 'title' => 'Creating a Profile Editing Form',
106
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/wordpress-edit-user-profile-from-front-end/'
107
+ ),
108
+ ),
109
+ 'subscription' => array(
110
+ array(
111
+ 'title' => 'Creating Subscription Packs',
112
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/creating-subscription-packs/'
113
+ ),
114
+ array(
115
+ 'title' => 'Payment & Gateway Settings',
116
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/configuring-payment-settings/'
117
+ ),
118
+ array(
119
+ 'title' => 'Setting Up Recurring Payment',
120
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/setting-up-recurring-payment/'
121
+ ),
122
+ array(
123
+ 'title' => 'Forcing Subscription Pack For Post Submission',
124
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/forcing-subscription-pack-for-post-submission/'
125
+ ),
126
+ array(
127
+ 'title' => 'How to Charge for Each Post Submission?',
128
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/how-to-charge-for-each-post-submission/'
129
+ ),
130
+ array(
131
+ 'title' => 'Creating Coupons',
132
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/coupons/'
133
+ ),
134
+ ),
135
+
136
+ 'developer' => array(
137
+ array(
138
+ 'title' => 'Action Hook Field',
139
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/developer-docs/action-hook-field/'
140
+ ),
141
+ array(
142
+ 'title' => 'Add a New Tab on My Account Page',
143
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/developer-docs/add-a-new-tab-on-my-account-page/'
144
+ ),
145
+ array(
146
+ 'title' => 'Insert/update checkbox or radio field data as serialize',
147
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/developer-docs/insertupdate-checkbox-or-radio-field-data-as-serialize/'
148
+ ),
149
+ array(
150
+ 'title' => 'Filters',
151
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/developer-docs/filters/'
152
+ ),
153
+ array(
154
+ 'title' => 'Actions',
155
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/developer-docs/actions/'
156
+ ),
157
+ array(
158
+ 'title' => 'Changelog',
159
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/changelog/'
160
+ ),
161
+ ),
162
+ 'restriction' => array(
163
+ array(
164
+ 'title' => 'Content Restriction for Logged in Users',
165
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/content-restriction/content-restriction/'
166
+ ),
167
+ array(
168
+ 'title' => 'Restricting Content by User Roles',
169
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/content-restriction/restricting-content-by-user-roles/'
170
+ ),
171
+ array(
172
+ 'title' => 'Restricting Contents for Different Subscription Packs',
173
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/content-restriction/restricting-contents-for-different-subscription-packs/'
174
+ ),
175
+ )
176
+ );
177
+
178
+ /**
179
+ * Print related articles
180
+ *
181
+ * @param array $articles
182
+ *
183
+ * @return void
184
+ */
185
+ function wpuf_help_related_articles( $articles ) {
186
+ ?>
187
+ <h2><?php _e( 'Related Articles:', 'wpuf' ); ?></h2>
188
+
189
+ <ul class="related-articles">
190
+ <?php
191
+ foreach ( $articles as $article ) {
192
+ ?>
193
+ <li>
194
+ <span class="dashicons dashicons-media-text"></span>
195
+ <a href="<?php echo trailingslashit( $article['link'] ); ?>?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=<?php echo sanitize_title( $article['title'] ); ?>" target="_blank"><?php echo $article['title']; ?></a>
196
+ </li>
197
+ <?php
198
+ }
199
+ ?>
200
+ </ul>
201
+ <?php
202
+ }
203
+ ?>
204
+
205
+ <div class="wrap wpuf-help-page">
206
+ <h1><?php _e( 'General Help Questions', 'wpuf' ); ?> <a href="https://wedevs.com/docs/wp-user-frontend-pro/?utm_source=wpuf-help-page&utm_medium=button-primary&utm_campaign=view-all-docs" target="_blank" class="page-title-action"><span class="dashicons dashicons-external" style="margin-top: 8px;"></span> <?php _e( 'View all Documentations', 'wpuf' ); ?></a></h1>
207
+
208
+ <form class="wpuf-subscribe-box" id="wpuf-form-subscribe" action="https://wedevs.us16.list-manage.com/subscribe/post-json?u=66e606cfe0af264974258f030&id=0d176bb256&c=?" method="get">
209
+
210
+ <div class="text-wrap">
211
+ <h3><?php _e( 'Subscribe to Our Newsletter', 'wpuf' ); ?></h3>
212
+ <p>
213
+ <?php _e( 'Subscribe to our newsletter for regular <strong>tips</strong>, <strong>offers</strong> and <strong>news updates</strong>.', 'wpuf' ); ?>
214
+ </p>
215
+ </div>
216
+
217
+ <div class="form-wrap">
218
+ <div class="fname">
219
+ <label for="fname"><?php _e( 'First Name', 'wpuf' ); ?></label>
220
+ <input type="text" name="FNAME" id="fname" class="regular-text" value="<?php echo esc_attr( $current_user->first_name ); ?>" required>
221
+ </div>
222
+
223
+ <div class="email">
224
+ <label for="email"><?php _e( 'Email', 'wpuf' ); ?></label>
225
+ <input type="email" name="EMAIL" id="email" class="regular-text" value="<?php echo esc_attr( $current_user->user_email ); ?>" required>
226
+ </div>
227
+
228
+ <div class="submit-btn">
229
+ <input type="hidden" name="group[3555][1]" value="1">
230
+ <input type="submit" class="button button-primary" value="<?php echo esc_attr( __( 'Subscribe', 'wpuf' ) ); ?>">
231
+ </div>
232
+ </div>
233
+ </form>
234
+
235
+ <div class="wpuf-help-tabbed">
236
+ <nav>
237
+ <ul>
238
+ <li class="tab-current">
239
+ <a href="#setup">
240
+ <span class="dashicons dashicons-admin-home"></span>
241
+ <label><?php _e( 'Plugin Setup', 'wpuf' ); ?></label>
242
+ </a>
243
+ </li>
244
+ <li>
245
+ <a href="#frontend-posting">
246
+ <span class="dashicons dashicons-media-text"></span>
247
+ <label><?php _e( 'Frontend Posting', 'wpuf' ); ?></label>
248
+ </a>
249
+ </li>
250
+ <li>
251
+ <a href="#frontend-dashboard">
252
+ <span class="dashicons dashicons-dashboard"></span>
253
+ <label><?php _e( 'Frontend Dashboard', 'wpuf' ); ?></label>
254
+ </a>
255
+ </li>
256
+ <li>
257
+ <a href="#user-registration">
258
+ <span class="dashicons dashicons-admin-users"></span>
259
+ <label><?php _e( 'User Registration', 'wpuf' ); ?></label>
260
+ </a>
261
+ </li>
262
+ <li>
263
+ <a href="#login-page">
264
+ <span class="dashicons dashicons-lock"></span>
265
+ <label><?php _e( 'User Login', 'wpuf' ); ?></label>
266
+ </a>
267
+ </li>
268
+ <li>
269
+ <a href="#profile-editing">
270
+ <span class="dashicons dashicons-edit"></span>
271
+ <label><?php _e( 'Profile Editing', 'wpuf' ); ?></label>
272
+ </a>
273
+ </li>
274
+ <li>
275
+ <a href="#subscription-payment">
276
+ <span class="dashicons dashicons-cart"></span>
277
+ <label><?php _e( 'Subscription &amp; Payment', 'wpuf' ); ?></label>
278
+ </a>
279
+ </li>
280
+ <li>
281
+ <a href="#content-restriction">
282
+ <span class="dashicons dashicons-unlock"></span>
283
+ <label><?php _e( 'Content Restriction', 'wpuf' ); ?></label>
284
+ </a>
285
+ </li>
286
+ </ul>
287
+ </nav>
288
+
289
+ <div class="nav-content">
290
+ <section id="setup" class="content-current">
291
+ <h2>Plugin Setup Guide</h2>
292
+
293
+ <p>Setting up WP User Frontend is very easy. Here are few things that you should consider.</p>
294
+
295
+ <ol>
296
+ <li><strong>Install WPUF Pages</strong> with a single click. Check your admin dashboard for a message to install WPUF required pages.</li>
297
+ <li>You can create amazing frontend posting forms with more than 20 useful form fields. </li>
298
+ <li>Posting the forms in the frontend is also very easy. All you have to do is <strong>put the shortcode</strong> of your form to a page. </li>
299
+ <li>Building registration &amp; profile editing forms has never been easier, thanks to WP User Frontend. <a href="<?php echo admin_url( 'admin.php?page=wpuf-profile-forms' ); ?>" target="_blank">Build registration &amp; profile forms</a> on the go with simple steps.</li>
300
+ <li>Add customized <strong>login forms</strong> using simple shortcodes and override default WordPress login and registration.</li>
301
+ <li>Create customized <strong>subscription forms</strong> and let your users buy with multiple payment gateways.</li>
302
+ <li><strong>Enable guest posting</strong> and earn from each posts without any difficulties. </li>
303
+ </ol>
304
+
305
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/getting-started/how-to-install/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=how-to-install" target="_blank"><?php _e( 'Learn More About Installation', 'wpuf' ); ?></a>
306
+
307
+ <?php wpuf_help_related_articles( $articles['setup'] ); ?>
308
+ </section>
309
+ <section id="frontend-posting">
310
+ <h2>Frontend Posting</h2>
311
+
312
+ <p>Posting Forms are used to <strong>create new</strong> blog posts, WooCommerce Products, Directory Listing Entries etc. You can create any custom post type from the front using this feature. You just need to create a form with necessary fields and embed the form in a page and your users will be able to create posts from frontend in no time.</p>
313
+ <p>To create a posting form, go to <a href="<?php echo admin_url( 'admin.php?page=wpuf-post-forms' ); ?>" target="_blank">Post Forms</a> → Add Form and start building your ultimate frontend posting forms. </p>
314
+ <p>After building your forms, <strong>use the shortcodes</strong> on any new page or post and publish them before sharing.</p>
315
+
316
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=frontend-posting" target="_blank"><?php _e( 'Learn More About Frontend Posting', 'wpuf' ); ?></a>
317
+
318
+ <?php wpuf_help_related_articles( $articles['posting'] ); ?>
319
+ </section>
320
+ <section id="frontend-dashboard">
321
+ <h2>Frontend Dashboard</h2>
322
+
323
+ <p>WP User Frontend generates <strong>Frontend Dashboard</strong> and <strong>My Account</strong> page for all your users. Using these pages, they can get a list of their posts and subscriptions directly at frontend. They can also customize the details of their profile. You don’t need to give them access to the backend at all!</p>
324
+ <p>To crate this page, <a href="<?php echo admin_url( 'post-new.php?post_type=page' ); ?>" target="_blank">create a new page</a>, put a title and simply copy-paste the following shortcode: <code>[wpuf_dashboard]</code>. Alternatively, there is an unified <a href="https://wedevs.com/docs/wp-user-frontend-pro/frontend/how-to-create-my-account-page/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=unified-my-account-page" target="_blank">my account page</a> as well. Finally, hit the publish button and you are done.</p>
325
+
326
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/frontend/configuring-dashboard-settings/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=frontend-dashboard" target="_blank"><?php _e( 'Learn More About Frontend Dashboard', 'wpuf' ); ?></a>
327
+
328
+ <?php wpuf_help_related_articles( $articles['dashboard'] ); ?>
329
+ </section>
330
+ <section id="user-registration">
331
+ <h2>User Registration</h2>
332
+
333
+ <p>You can create as many registration forms as you want and assign them to different user roles. Creating Registration forms are easy. Navigate to <a href="<?php echo admin_url( 'admin.php?page=wpuf-profile-forms' ); ?>" target="_blank">Registration Forms</a>.</p>
334
+ <p>You can create new forms just you would create posts in WordPress.</p>
335
+
336
+ <ol>
337
+ <li>Give your form a name and click on Form Elements on the right sidebar.</li>
338
+ <li>The form elements will appear to the Form Editor tab with some options.</li>
339
+ </ol>
340
+
341
+ <p>From settings you can –</p>
342
+
343
+ <ul>
344
+ <li>Assign New User Roles</li>
345
+ <li>Can redirect to any custom page or same page with successful message</li>
346
+ </ul>
347
+
348
+ <h3>Showing Registration Form</h3>
349
+
350
+ <ul>
351
+ <li>By using short-code you can show your registration form into any page or post</li>
352
+ <li>You will get different short-codes for each registration forms separately.</li>
353
+ </ul>
354
+
355
+
356
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=registration-profile-forms" target="_blank"><?php _e( 'Learn More About Registration', 'wpuf' ); ?></a>
357
+
358
+ <?php wpuf_help_related_articles( $articles['registration'] ); ?>
359
+ </section>
360
+ <section id="login-page">
361
+ <h2>Login Page</h2>
362
+
363
+ <p>WP User Frontend Automatically creates important pages when you install it for the first time. You can also create login forms manually. </p>
364
+
365
+ <p>Navigate to <a href="<?php echo admin_url( 'admin.php?page=wpuf-settings' ); ?>" target="_blank">Settings</a> → <strong>Login/Registration</strong> tab.
366
+ In this page, you will find several useful settings related to WPUF login. You can override default registration and login forms with WPUF login &amp; registration feature if you want. To do this, check the <strong>Login/Registration override option</strong>.</p>
367
+
368
+ <p>You can also specify the login page. WPUF automatically adds the default login page that it has created. If you manually create one, use the following shortcode – <code>[wpuf-login]</code></p>
369
+
370
+ <p>Simply, create a new page and put the above shortcode. Finally, publish the page and add it to the Login Page option in the settings.</p>
371
+
372
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/user-login/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=learn-more-login" target="_blank"><?php _e( 'Learn More About Login', 'wpuf' ); ?></a>
373
+ </section>
374
+ <section id="profile-editing">
375
+ <h2>Creating a Profile Editing Form</h2>
376
+
377
+ <p>When you are making a registration form, you get two shortcodes:
378
+ For embedding the registration form: this is something like <code>[wpuf_profile type=&quot;registration&quot; id=&quot;3573&quot;]</code></p>
379
+
380
+ <p>For profile edit page: this is something like <code>[wpuf_profile type=&quot;profile&quot; id=&quot;3573&quot;]</code></p>
381
+
382
+ <p>You already know that how to make a registration form in WP User Frontend Pro and embed that into a page. The very same process is for creating the profile edit page.</p>
383
+
384
+ <h2>How to get the shortcode</h2>
385
+
386
+ <p>We assume that you already have created a registration form. If not you can use the default registration form, that was created automatically while installing the plugin.
387
+ So to get the shortcode, navigate to <strong>User Frontend</strong> → <strong>Registration Forms</strong> and you will be able to see the shortcodes on the right side of your screen.</p>
388
+
389
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=registration-profile-forms" target="_blank"><?php _e( 'Learn More About Profile Editing', 'wpuf' ); ?></a>
390
+
391
+ <?php wpuf_help_related_articles( $articles['profile'] ); ?>
392
+ </section>
393
+ <section id="subscription-payment">
394
+ <h2>Subscription Payment</h2>
395
+
396
+ <p>WP User Frontend allows you to create as many subscription packs you want. Simply, navigate to - WP-Admin → User Frontend → Subscription → Add Subscription</p>
397
+
398
+ <ol>
399
+ <li>Enter your subscription name and pack description.</li>
400
+ <li>Include the billing amount and the validity of the pack. You can choose day, week, month or year in case of expiry.</li>
401
+ <li>You can enable post expiration if you want to expire post after a certain amount of time. To do so check the Enable Post Expiration box.</li>
402
+ <li>This will enable some new settings. You have to specify post expiration time and the post status after the post expires.</li>
403
+ <li>You can also notify users when a post expires. To do so, check the Send Mail option.</li>
404
+ <li>Now, enter the message you want to send the user in the Post Expiration Message field.</li>
405
+ <li>You can specify the number of posts you are giving away with this subscription pack. If you want to provide unlimited posts, enter ‘-1’ in the number of posts field.</li>
406
+ <li>You can also set the number of pages and custom CSS. For unlimited value, enter ‘-1’.</li>
407
+ <li>WPUF offers you recurring payment while creating a Subscription pack. Enable this option if you want to set recurring payment for this pack. It will provide you some new options for the recurring payment.</li>
408
+ <li>Now, select the billing cycle.</li>
409
+ <li>You can also stop the billing cycle if you want. If you don’t want to stop the cycle select Never.</li>
410
+ <li>To enable trial period, check the Trial box. You can set the trial amount to be paid by the user for trial period.</li>
411
+ <li>Now, specify the trial period. Enter number of days, week, month or year.</li>
412
+ <li>You can also enable post number rollback. If enabled, number of posts will be restored if the post is deleted.</li>
413
+ <li>Finally, click on the publish button to create the subscription pack.</li>
414
+ </ol>
415
+ <h2>Subscription Packs on Frontend</h2>
416
+ <p>To view the created subscription packs on frontend, visit the Subscription page.</p>
417
+
418
+ <p>Short-code for creating the Subscription page – <code>[wpuf_sub_pack]</code>.</p>
419
+ <h2>Payment &amp; Gateway Settings</h2>
420
+ <p>Post subscription and payment system is a module where you can add paid posting system with WP User Frontend. You can introduce two types of payment system. Pay per post and subscription pack based.</p>
421
+
422
+
423
+ <h2>Pay Per Post</h2>
424
+
425
+
426
+ <p>With this you can introduce pay per post feature where users pay to publish their posts each post. When pay per post is enabled from “Settings → Payments → Charge for posting“, users see a notice right before the post creation form in frontend about payment. When the submits a post, the post status gets pending and he is redirected to the payment page (to setup the payment page, create a Page Payment and select the page at “Settings → Payments → Payment Page“. No shortcode is needed). Currently by default PayPal is only supported gateway. Upon selecting PayPal, he is redirected to PayPal for payment. After successful payment he is redirected back to the site and the post gets published.</p>
427
+
428
+
429
+ <h2>Subscription Pack</h2>
430
+
431
+
432
+ <p>There is an another option for charged posting. With this feature, you can create unlimited subscription pack. In each pack, you can configure the number of posts, validity date and the cost.</p>
433
+ <p>When a user buys a subscription package, he gets to create some posts (e.g. 10) in X days (e.g: 30 days). If he crosses the number of posts or the validity date, he can’t post again. You can force the user to buy a pack before posting “Settings → Payments → Force pack purchase“.</p>
434
+ <p>To show the subscription packs in a page, you can use the shortcode: <code>[wpuf_sub_pack]</code>. To show the user subscription info: <code>[wpuf_sub_info]</code>. The info will show the user about his pack’s remaining post count and expiration date of his pack.</p>
435
+
436
+
437
+ <h2>Payment Gateway</h2>
438
+
439
+ <p>Currently only PayPal basic gateway is supported. The plugin is extension aware, that means other gateways can be integrated.</p>
440
+
441
+
442
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=subscription-payment" target="_blank"><?php _e( 'Learn More About Payments', 'wpuf' ); ?></a>
443
+
444
+ <?php wpuf_help_related_articles( $articles['subscription'] ); ?>
445
+ </section>
446
+ <section id="content-restriction">
447
+ <h2>Content Restriction</h2>
448
+
449
+ <p>To set content restriction for a certain form, navigate to <a href="<?php echo admin_url( 'edit.php?post_type=page' ); ?>" target="_blank">Pages</a></strong></p>
450
+
451
+ <ol>
452
+ <li>Now, select the page that has the shortcode of the selected form.</li>
453
+ <li>Scroll down and you will find the <strong>WPUF Content Restriction</strong> settings.</li>
454
+ <li>You can set the form visible to three types of people: <strong>Everyone</strong>, <strong>Logged in users only</strong> or <strong>Subscription users only</strong></li>
455
+ <li>You can also set <strong>subscription plans</strong> for the form. For this, check the box of relevant subscription pack.</li>
456
+ <li>Finally, update the page.</li>
457
+ </ol>
458
+
459
+ <a class="button button-primary button-large" href="https://wedevs.com/docs/wp-user-frontend-pro/content-restriction/?utm_source=wpuf-help-page&utm_medium=help-links&utm_campaign=wpuf-help&utm_term=content-restriction" target="_blank"><?php _e( 'Learn More About Content Restriction', 'wpuf' ); ?></a>
460
+
461
+ <?php wpuf_help_related_articles( $articles['restriction'] ); ?>
462
+ </section>
463
+ </div>
464
+ </div>
465
+
466
+ <div class="help-blocks">
467
+ <div class="help-block">
468
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/help/like.svg" alt="<?php esc_attr_e( 'Like The Plugin?', 'wpuf' ); ?>">
469
+
470
+ <h3><?php _e( 'Like The Plugin?', 'wpuf' ); ?></h3>
471
+
472
+ <p><?php _e( 'Your Review is very important to us as it helps us to grow more.', 'wpuf' ); ?></p>
473
+
474
+ <a target="_blank" class="button button-primary" href="https://wordpress.org/support/plugin/wp-user-frontend/reviews/?rate=5#new-post"><?php _e( 'Review Us on WP.org', 'wpuf' ); ?></a>
475
+ </div>
476
+
477
+ <div class="help-block">
478
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/help/bugs.svg" alt="<?php esc_attr_e( 'Found Any Bugs?', 'wpuf' ); ?>">
479
+
480
+ <h3><?php _e( 'Found Any Bugs?', 'wpuf' ); ?></h3>
481
+
482
+ <p><?php _e( 'Report any Bug that you Discovered, Get Instant Solutions.', 'wpuf' ); ?></p>
483
+
484
+ <a target="_blank" class="button button-primary" href="https://github.com/weDevsOfficial/wp-user-frontend/?utm_source=wpuf-help-page&utm_medium=help-block&utm_campaign=found-bugs"><?php _e( 'Report to GitHub', 'wpuf' ); ?></a>
485
+ </div>
486
+
487
+ <div class="help-block">
488
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/help/support.svg" alt="<?php esc_attr_e( 'Need Any Assistance?', 'wpuf' ); ?>">
489
+
490
+ <h3><?php _e( 'Need Any Assistance?', 'wpuf' ); ?></h3>
491
+
492
+ <p><?php _e( 'Our EXPERT Support Team is always ready to Help you out.', 'wpuf' ); ?></p>
493
+
494
+ <a target="_blank" class="button button-primary" href="https://wedevs.com/account/tickets/?utm_source=wpuf-help-page&utm_medium=help-block&utm_campaign=need-assistance"><?php _e( 'Contact Support', 'wpuf' ); ?></a>
495
+ </div>
496
+ </div>
497
+ </div>
498
+
499
+ <script type="text/javascript">
500
+ jQuery(function($) {
501
+ var tabs = $('.wpuf-help-tabbed > nav > ul > li' ),
502
+ items = $('.wpuf-help-tabbed .nav-content > section');
503
+
504
+ tabs.first().addClass('tab-current');
505
+ items.first().addClass('content-current');
506
+
507
+ tabs.on('click', 'a', function(event) {
508
+ event.preventDefault();
509
+
510
+ var self = $(this);
511
+
512
+ tabs.removeClass('tab-current');
513
+ self.parent('li').addClass('tab-current');
514
+
515
+ $.each(items, function(index, val) {
516
+ var element = $(val);
517
+
518
+ if ( '#' + element.attr( 'id' ) === self.attr('href') ) {
519
+ element.addClass('content-current');
520
+ } else {
521
+ element.removeClass('content-current');
522
+ }
523
+ });
524
+ });
525
+
526
+ $('#wpuf-form-subscribe').submit(function(e) {
527
+ e.preventDefault();
528
+
529
+ var form = $(this);
530
+
531
+ form.find('input[type="submit"]').prop('disabled', true);
532
+
533
+ $.ajax({
534
+ url: form.attr('action'),
535
+ data: form.serialize(),
536
+ type: 'GET',
537
+ dataType: 'json',
538
+ cache: false,
539
+ contentType: "application/json; charset=utf-8",
540
+ })
541
+ .done(function(data) {
542
+ // console.log(data);
543
+
544
+ if (data.result != "success") {
545
+ // do something
546
+ }
547
+ })
548
+ .fail(function() {
549
+ // console.log("error");
550
+ })
551
+ .always(function(response) {
552
+ $('.form-wrap', form).html( '<div class="thank-you">' + response.msg + '</div>' );
553
+ });
554
+ });
555
+ });
556
+ </script>
admin/html/whats-new.php ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $changelog = array(
3
+ array(
4
+ 'version' => 'Version 2.8.4',
5
+ 'released' => '2018-03-04',
6
+ 'changes' => array(
7
+ array(
8
+ 'title' => __( 'Dashboard Post Listing now supports multiple post types', 'wpuf' ),
9
+ 'type' => 'New',
10
+ 'description' => __( 'Now you can show multiple post type in user dashboard using shortcode like this : <br><b>[wpuf_dashboard post_type="post,page,custom_type"]</b> ', 'wpuf' )
11
+ ),
12
+ array(
13
+ 'title' => __( 'Added Login Redirect Settings', 'wpuf' ),
14
+ 'type' => 'New',
15
+ 'description' => __( 'You can now set a page from <i>WPUF Settings > Login/Registration > Redirect after Login</i>. When login redirection is active the user will be redirected to this page after login.', 'wpuf' ),
16
+ ),
17
+ array(
18
+ 'title' => __( 'Image Upload field button text can be changed', 'wpuf' ),
19
+ 'type' => 'New',
20
+ 'description' => __( 'The upload button text can now be changed for image upload fields which defaults to "Select Image" if not set. ', 'wpuf' ).'<img src="'. WPUF_ASSET_URI .'/images/whats-new/image_upload_label.png" alt="Multi-select Category">',
21
+ ),
22
+ array(
23
+ 'title' => __( 'Multi Step Form styles made compatible with more themes', 'wpuf' ),
24
+ 'type' => 'Fix',
25
+ 'description' => __( 'Multi Step form can now be styled more easily with other themes ', 'wpuf' ),
26
+ ),
27
+ array(
28
+ 'title' => __( 'Required field condition for google map not working is fixed', 'wpuf' ),
29
+ 'type' => 'Fix',
30
+ 'description' => __( 'If Google Map field was set as required users were able to submit form without changing the default value.', 'wpuf' ),
31
+ )
32
+ )
33
+ ),
34
+ array(
35
+ 'version' => 'Version 2.8.3',
36
+ 'released' => '2018-02-15',
37
+ 'changes' => array(
38
+ array(
39
+ 'title' => __( 'Admin form builder is now fully responsive.', 'wpuf' ),
40
+ 'type' => 'New',
41
+ 'description' => __( 'Now you can edit forms from your mobile devices directly. Our improved responsive layouts of form builder makes it easy for you to build forms on the go.', 'wpuf' )
42
+ ),
43
+ array(
44
+ 'title' => __( 'Added color schemes for creating attractive form layouts.', 'wpuf' ),
45
+ 'type' => 'New',
46
+ 'description' => __( 'We have added 3 new color schemes for the form layouts which you can choose from each form\'s new display settings.', 'wpuf' ),
47
+ ),
48
+ array(
49
+ 'title' => __( 'Restrict Free subscription pack to be enabled multiple times ', 'wpuf' ),
50
+ 'type' => 'Fix',
51
+ 'description' => __( 'Free subscription packs now can only be purchased once and the limit applies properly', 'wpuf' ),
52
+ ),
53
+ array(
54
+ 'title' => __( 'Various other bug fixes and improvements were made ', 'wpuf' ),
55
+ 'type' => 'Fix',
56
+ 'description' => __( 'Please see the change log to see full details.', 'wpuf' ),
57
+ ),
58
+ )
59
+ ),
60
+ array(
61
+ 'version' => 'Version 2.8.2',
62
+ 'released' => '2018-01-23',
63
+ 'changes' => array(
64
+ array(
65
+ 'title' => __( 'Added upgrade function for default category', 'wpuf' ),
66
+ 'type' => 'Improvement',
67
+ 'description' => __( 'Upgrader added to upgrade previously set default post category.', 'wpuf' )
68
+ ),
69
+ array(
70
+ 'title' => __( 'Subscription pack cannot be canceled', 'wpuf' ),
71
+ 'type' => 'Fix',
72
+ 'description' => __( 'Fixed recurring subscription pack cannot be canceled from my account page in subscription details section.', 'wpuf' ),
73
+ ),
74
+ array(
75
+ 'title' => __( 'page installer admin notice logic issue', 'wpuf' ),
76
+ 'type' => 'Fix',
77
+ 'description' => __( 'Fixed page installer admin notice logic problem due to new payment settings default value not set.', 'wpuf' ),
78
+ ),
79
+ )
80
+ ),
81
+
82
+ array(
83
+ 'version' => 'Version 2.8.1',
84
+ 'released' => '2018-01-14',
85
+ 'changes' => array(
86
+ array(
87
+ 'title' => __( 'Setup Wizard', 'wpuf' ),
88
+ 'type' => 'New',
89
+ 'description' => __( 'Setup Wizard added to turn off payment options and install pages.', 'wpuf' ) .
90
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/wizard.gif" alt="Setup Wizard">'
91
+ ),
92
+ array(
93
+ 'title' => __( 'Multi-select Category', 'wpuf' ),
94
+ 'type' => 'New',
95
+ 'description' => __( 'Add multi-select to default category in post form settings.', 'wpuf' ) .
96
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/category.png" alt="Multi-select Category">'
97
+ ),
98
+ array(
99
+ 'title' => __( 'Select Text option for Taxonomy', 'wpuf' ),
100
+ 'type' => 'Improvement',
101
+ 'description' => __( 'Add Select Text option for taxonomy fields. Now you can add default text with empty value as first option for Taxonomy dropdown.', 'wpuf' )
102
+ ),
103
+ array(
104
+ 'title' => __( 'Taxonomy Checkbox Inline', 'wpuf' ),
105
+ 'type' => 'Improvement',
106
+ 'description' => __( 'Added checkbox inline option to taxonomy checkbox. You can now display Taxonomy checkbox fields inline.', 'wpuf' )
107
+ ),
108
+ )
109
+ ),
110
+
111
+ array(
112
+ 'version' => 'Version 2.8',
113
+ 'released' => '2018-01-06',
114
+ 'changes' => array(
115
+ array(
116
+ 'title' => __( 'Manage schedule for form submission', 'wpuf' ),
117
+ 'type' => 'New',
118
+ 'description' => __( 'Do not accept form submission if the current date is not between the date range of the schedule.', 'wpuf' ) .
119
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/schedule.png" alt="Manage schedule for form submission">'
120
+ ),
121
+ array(
122
+ 'title' => __( 'Restrict form submission based on the user roles', 'wpuf' ),
123
+ 'type' => 'New',
124
+ 'description' => __( 'Restrict form submission based on the user roles. Now you can manage user role base permission on form submission.', 'wpuf' ) .
125
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/role-base.png" alt="Restrict form submission based on the users role">'
126
+ ),
127
+ array(
128
+ 'title' => __( 'Limit how many entries a form will accept', 'wpuf' ),
129
+ 'type' => 'New',
130
+ 'description' => __( 'Limit how many entries a form will accept and display a custom message when that limit is reached.', 'wpuf' ) .
131
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/limit.png" alt="Limit how many entries a form will accept">'
132
+ ),
133
+ array(
134
+ 'title' => __( 'Show/hide Admin Bar', 'wpuf' ),
135
+ 'type' => 'New',
136
+ 'description' => __( 'Control the admin bar visibility based on user roles.', 'wpuf' ) .
137
+ '<img src="'. WPUF_ASSET_URI .'/images/whats-new/admin-bar.png" alt="Show/hide Admin Bar">'
138
+ ),
139
+ array(
140
+ 'title' => __( 'Ajax Login widget', 'wpuf' ),
141
+ 'type' => 'New',
142
+ 'description' => __( 'Login user is more simple now with Ajax Login Widget. The simple ajax login form do not required page loading for login.', 'wpuf' ) .
143
+ '<br><br><iframe width="100%" height="372" src="https://www.youtube.com/embed/eZYSuXsCw8E" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>'
144
+ ),
145
+ array(
146
+ 'title' => __( 'Form submission with Captcha field', 'wpuf' ),
147
+ 'type' => 'Improvement',
148
+ 'description' => __( 'Form field validation process updated if form submits with captcha field.', 'wpuf' )
149
+ ),
150
+ )
151
+ )
152
+ );
153
+
154
+ function _wpuf_changelog_content( $content ) {
155
+ $content = wpautop( $content, true );
156
+
157
+ return $content;
158
+ }
159
+ ?>
160
+
161
+ <div class="wrap wpuf-whats-new">
162
+ <h1><?php _e( 'What\'s New in WPUF?', 'wpuf' ); ?></h1>
163
+
164
+ <div class="wedevs-changelog-wrapper">
165
+
166
+ <?php foreach ( $changelog as $release ) { ?>
167
+ <div class="wedevs-changelog">
168
+ <div class="wedevs-changelog-version">
169
+ <h3><?php echo esc_html( $release['version'] ); ?></h3>
170
+ <p class="released">
171
+ (<?php echo human_time_diff( time(), strtotime( $release['released'] ) ); ?> ago)
172
+ </p>
173
+ </div>
174
+ <div class="wedevs-changelog-history">
175
+ <ul>
176
+ <?php foreach ( $release['changes'] as $change ) { ?>
177
+ <li>
178
+ <h4>
179
+ <span class="title"><?php echo esc_html( $change['title'] ); ?></span>
180
+ <span class="label <?php echo strtolower( $change['type'] ); ?>"><?php echo esc_html( $change['type'] ); ?></span>
181
+ </h4>
182
+
183
+ <div class="description">
184
+ <?php echo _wpuf_changelog_content( $change['description'] ); ?>
185
+ </div>
186
+ </li>
187
+ <?php } ?>
188
+ </ul>
189
+ </div>
190
+ </div>
191
+ <?php } ?>
192
+ </div>
193
+
194
+ </div>
admin/installer.php ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Page installer
5
+ *
6
+ * @since 2.3
7
+ */
8
+ class WPUF_Admin_Installer {
9
+
10
+ function __construct() {
11
+ add_action( 'admin_notices', array($this, 'admin_notice') );
12
+ add_action( 'admin_init', array($this, 'handle_request') );
13
+ }
14
+
15
+ /**
16
+ * Print admin notices
17
+ *
18
+ * @return void
19
+ */
20
+ function admin_notice() {
21
+ $page_created = get_option( '_wpuf_page_created' );
22
+
23
+ if ( $page_created != '1' && 'off' == wpuf_get_option( 'install_wpuf_pages', 'wpuf_general', 'on' ) ) {
24
+ ?>
25
+ <div class="updated error">
26
+ <p>
27
+ <?php _e( 'If you have not created <strong>WP User Frontend</strong> pages yet, you can do this by one click.', 'wpuf' ); ?>
28
+ </p>
29
+ <p class="submit">
30
+ <a class="button button-primary" href="<?php echo add_query_arg( array( 'install_wpuf_pages' => true ), admin_url( 'admin.php?page=wpuf-settings' ) ); ?>"><?php _e( 'Install WPUF Pages', 'wpuf' ); ?></a>
31
+ <?php _e( 'or', 'wpuf' ); ?>
32
+ <a class="button" href="<?php echo add_query_arg( array( 'wpuf_hide_page_nag' => true ) ); ?>"><?php _e( 'Skip Setup', 'wpuf' ); ?></a>
33
+ </p>
34
+ </div>
35
+ <?php
36
+ }
37
+
38
+ if ( isset( $_GET['wpuf_page_installed'] ) && $_GET['wpuf_page_installed'] == '1' ) {
39
+ ?>
40
+ <div class="updated">
41
+ <p>
42
+ <strong><?php _e( 'Congratulations!', 'wpuf' ); ?></strong> <?php _e( 'Pages for <strong>WP User Frontend</strong> has been successfully installed and saved!', 'wpuf' ); ?>
43
+ </p>
44
+ </div>
45
+ <?php
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Handle the page creation button requests
51
+ *
52
+ * @return void
53
+ */
54
+ function handle_request() {
55
+ if ( isset( $_GET['install_wpuf_pages'] ) && $_GET['install_wpuf_pages'] == '1' ) {
56
+ $this->init_pages();
57
+ }
58
+
59
+ if ( isset( $_GET['wpuf_hide_page_nag'] ) && $_GET['wpuf_hide_page_nag'] == '1' ) {
60
+ update_option( '_wpuf_page_created', '1' );
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Initialize the plugin with some default page/settings
66
+ *
67
+ * @since 2.2
68
+ * @return void
69
+ */
70
+ function init_pages() {
71
+
72
+ // create a dashboard page
73
+ $dashboard_page = $this->create_page( __( 'Dashboard', 'wpuf' ), '[wpuf_dashboard]' );
74
+ $account_page = $this->create_page( __( 'Account', 'wpuf' ), '[wpuf_account]' );
75
+ $edit_page = $this->create_page( __( 'Edit', 'wpuf' ), '[wpuf_edit]' );
76
+
77
+ // login page
78
+ $login_page = $this->create_page( __( 'Login', 'wpuf' ), '[wpuf-login]' );
79
+
80
+ $post_form = $this->create_form();
81
+
82
+ if ( 'on' == wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' ) ) {
83
+ // payment page
84
+ $subscr_page = $this->create_page( __( 'Subscription', 'wpuf' ), __( '[wpuf_sub_pack]', 'wpuf') );
85
+ $payment_page = $this->create_page( __( 'Payment', 'wpuf' ), __( 'Please select a gateway for payment', 'wpuf') );
86
+ $thank_page = $this->create_page( __( 'Thank You', 'wpuf' ), __( '<h1>Payment is complete</h1><p>Congratulations, your payment has been completed!</p>', 'wpuf') );
87
+ $bank_page = $this->create_page( __( 'Order Received', 'wpuf' ), __( 'Hi, we have received your order. We will validate the order and will take necessary steps to move forward.', 'wpuf') );
88
+ }
89
+
90
+ // save the settings
91
+ if ( $edit_page ) {
92
+ update_option( 'wpuf_frontend_posting', array(
93
+ 'edit_page_id' => $edit_page,
94
+ 'default_post_form' => $post_form
95
+ ) );
96
+ }
97
+
98
+ // profile pages
99
+ $profile_options = array();
100
+ $reg_page = false;
101
+
102
+ if ( $login_page ) {
103
+ $profile_options['login_page'] = $login_page;
104
+ }
105
+
106
+ $data = apply_filters( 'wpuf_pro_page_install', $profile_options );
107
+
108
+ if ( is_array( $data ) ) {
109
+
110
+ if ( isset ( $data['profile_options'] ) ) {
111
+ $profile_options = $data['profile_options'];
112
+ }
113
+ if ( isset ( $data['reg_page'] ) ) {
114
+ $reg_page = $data['reg_page'];
115
+ }
116
+ }
117
+
118
+ if ( $login_page && $reg_page ) {
119
+ $profile_options['register_link_override'] = 'on';
120
+ }
121
+
122
+ update_option( 'wpuf_profile', $profile_options );
123
+
124
+ if ( 'on' == wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' ) ) {
125
+ // payment pages
126
+ update_option( 'wpuf_payment', array(
127
+ 'subscription_page' => $subscr_page,
128
+ 'payment_page' => $payment_page,
129
+ 'payment_success' => $thank_page,
130
+ 'bank_success' => $bank_page
131
+ ) );
132
+ }
133
+
134
+ update_option( '_wpuf_page_created', '1' );
135
+
136
+ wp_redirect( admin_url( 'admin.php?page=wpuf-settings&wpuf_page_installed=1' ) );
137
+ exit;
138
+ }
139
+
140
+ /**
141
+ * Create a page with title and content
142
+ *
143
+ * @param string $page_title
144
+ * @param string $post_content
145
+ * @return false|int
146
+ */
147
+ function create_page( $page_title, $post_content = '', $post_type = 'page' ) {
148
+ $page_id = wp_insert_post( array(
149
+ 'post_title' => $page_title,
150
+ 'post_type' => $post_type,
151
+ 'post_status' => 'publish',
152
+ 'comment_status' => 'closed',
153
+ 'post_content' => $post_content
154
+ ) );
155
+
156
+ if ( $page_id && ! is_wp_error( $page_id ) ) {
157
+ return $page_id;
158
+ }
159
+
160
+ return false;
161
+ }
162
+
163
+ /**
164
+ * Create a basic registration form by default
165
+ *
166
+ * @return int|boolean
167
+ */
168
+ function create_reg_form() {
169
+ return wpuf_create_sample_form( __( 'Registration', 'wpuf' ), 'wpuf_profile' );
170
+ }
171
+
172
+ /**
173
+ * Create a post form
174
+ *
175
+ * @return void
176
+ */
177
+ function create_form() {
178
+ return wpuf_create_sample_form( __( 'Sample Form', 'wpuf' ), 'wpuf_forms' );
179
+ }
180
+
181
+ }
admin/post-forms-list-table-view.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2>
3
+ <?php
4
+ _e( 'Post Forms', 'wpuf' );
5
+
6
+ if ( current_user_can( wpuf_admin_role() ) ):
7
+ ?>
8
+ <a href="<?php echo $add_new_page_url; ?>" id="new-wpuf-post-form" class="page-title-action add-form"><?php _e( 'Add Form', 'wpuf' ); ?></a>
9
+ <?php
10
+ endif;
11
+ ?>
12
+ </h2>
13
+
14
+
15
+ <div class="list-table-wrap wpuf-post-form-wrap">
16
+ <div class="list-table-inner wpuf-post-form-wrap-inner">
17
+
18
+ <form method="get">
19
+ <input type="hidden" name="page" value="wpuf-post-forms">
20
+ <?php
21
+ $wpuf_post_form = new WPUF_Admin_Post_Forms_List_Table();
22
+ $wpuf_post_form->prepare_items();
23
+ $wpuf_post_form->search_box( __( 'Search Forms', 'wpuf' ), 'wpuf-post-form-search' );
24
+
25
+ if ( current_user_can( wpuf_admin_role() ) ) {
26
+ $wpuf_post_form->views();
27
+ }
28
+
29
+ $wpuf_post_form->display();
30
+ ?>
31
+ </form>
32
+
33
+ </div><!-- .list-table-inner -->
34
+ </div><!-- .list-table-wrap -->
35
+
36
+ <div class="wpuf-footer-help">
37
+ <span class="wpuf-footer-help-content">
38
+ <span class="dashicons dashicons-editor-help"></span>
39
+ <?php printf( __( 'Learn more about <a href="%s" target="_blank">Frontend Posting</a>', 'wpuf' ), 'https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/?utm_source=wpuf-footer-help&utm_medium=text-link&utm_campaign=learn-more-frontend-posting' ); ?>
40
+ </span>
41
+ </div>
42
+ </div>
admin/post-forms-list-table.php ADDED
@@ -0,0 +1,423 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! class_exists( 'WP_List_Table' ) ) {
4
+ require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
5
+ }
6
+
7
+ /**
8
+ * Post Forms list table class
9
+ *
10
+ * @since 2.5
11
+ */
12
+ class WPUF_Admin_Post_Forms_List_Table extends WP_List_Table {
13
+
14
+ /**
15
+ * Class constructor
16
+ *
17
+ * @since 2.5
18
+ *
19
+ * @return void
20
+ */
21
+ public function __construct() {
22
+ global $status, $page, $page_status;
23
+
24
+ parent::__construct( array(
25
+ 'singular' => 'post-form',
26
+ 'plural' => 'post-forms',
27
+ 'ajax' => false
28
+ ) );
29
+ }
30
+
31
+ /**
32
+ * Top filters like All, Published, Trash etc
33
+ *
34
+ * @since 2.5
35
+ *
36
+ * @return array
37
+ */
38
+ public function get_views() {
39
+ $status_links = array();
40
+ $base_link = admin_url( 'admin.php?page=wpuf-post-forms' );
41
+
42
+ $post_statuses = apply_filters( 'wpuf_post_forms_list_table_post_statuses', array(
43
+ 'all' => __( 'All', 'wpuf' ),
44
+ 'publish' => __( 'Published', 'wpuf' ),
45
+ 'trash' => __( 'Trash', 'wpuf' )
46
+ ) );
47
+
48
+ $current_status = isset( $_GET['post_status'] ) ? $_GET['post_status'] : 'all';
49
+
50
+ $post_counts = (array) wp_count_posts( 'wpuf_forms' );
51
+
52
+ if ( isset( $post_counts['auto-draft'] ) ) {
53
+ unset( $post_counts['auto-draft'] );
54
+ }
55
+
56
+ foreach ( $post_statuses as $status => $status_title ) {
57
+ $link = ( 'all' === $status ) ? $base_link : admin_url( 'admin.php?page=wpuf-post-forms&post_status=' . $status );
58
+
59
+ if ( $status === $current_status ) {
60
+ $class = 'current';
61
+ } else {
62
+ $class = '';
63
+ }
64
+
65
+ switch ( $status ) {
66
+ case 'all':
67
+ $without_trash = $post_counts;
68
+ unset( $without_trash['trash'] );
69
+
70
+ $count = array_sum( $without_trash );
71
+ break;
72
+
73
+ default:
74
+ $count = isset( $post_counts[ $status ] ) ? $post_counts[ $status ] : 0;
75
+ break;
76
+ }
77
+
78
+ $status_links[ $status ] = sprintf(
79
+ '<a class="%s" href="%s">%s <span class="count">(%s)</span></a>',
80
+ $class, $link, $status_title, $count
81
+ );
82
+ }
83
+
84
+ return apply_filters( 'wpuf_post_forms_list_table_get_views', $status_links, $post_statuses, $current_status );
85
+ }
86
+
87
+ /**
88
+ * Message to show if no item found
89
+ *
90
+ * @since 2.5
91
+ *
92
+ * @return void
93
+ */
94
+ public function no_items() {
95
+ _e( 'No form found.', 'wpuf' );
96
+ }
97
+
98
+ /**
99
+ * Bulk actions dropdown
100
+ *
101
+ * @since 2.5
102
+ *
103
+ * @return array
104
+ */
105
+ public function get_bulk_actions() {
106
+ $actions = array();
107
+
108
+ if ( ! isset( $_GET['post_status'] ) || 'trash' !== $_GET['post_status'] ) {
109
+ $actions['trash'] = __( 'Move to Trash', 'wpuf' );
110
+ }
111
+
112
+ if ( isset( $_GET['post_status'] ) && 'trash' === $_GET['post_status'] ) {
113
+ $actions['restore'] = __( 'Restore', 'wpuf' );
114
+ $actions['delete'] = __( 'Delete Permanently', 'wpuf' );
115
+ }
116
+
117
+ return apply_filters( 'wpuf_post_forms_list_table_get_bulk_actions', $actions );
118
+ }
119
+
120
+ /**
121
+ * List table search box
122
+ *
123
+ * @since 2.5
124
+ *
125
+ * @param string $text
126
+ * @param string $input_id
127
+ *
128
+ * @return void
129
+ */
130
+ public function search_box( $text, $input_id ) {
131
+ if ( empty( $_GET['s'] ) && ! $this->has_items() ) {
132
+ return;
133
+ }
134
+
135
+ if ( ! empty( $_GET['orderby'] ) ) {
136
+ echo '<input type="hidden" name="orderby" value="' . esc_attr( $_GET['orderby'] ) . '" />';
137
+ }
138
+
139
+ if ( ! empty( $_GET['order'] ) ) {
140
+ echo '<input type="hidden" name="order" value="' . esc_attr( $_GET['order'] ) . '" />';
141
+ }
142
+
143
+ if ( ! empty( $_GET['post_status'] ) ) {
144
+ echo '<input type="hidden" name="post_status" value="' . esc_attr( $_GET['post_status'] ) . '" />';
145
+ }
146
+
147
+ do_action( 'wpuf_post_forms_list_table_search_box', $text, $input_id );
148
+
149
+ $input_id = $input_id . '-search-input';
150
+
151
+ ?>
152
+ <p class="search-box">
153
+ <label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
154
+ <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>" />
155
+ <?php submit_button( $text, 'button', 'post_form_search', false, array( 'id' => 'search-submit' ) ); ?>
156
+ </p>
157
+ <?php
158
+ }
159
+
160
+ /**
161
+ * Decide which action is currently performing
162
+ *
163
+ * @since 2.5
164
+ *
165
+ * @return string
166
+ */
167
+ public function current_action() {
168
+
169
+ if ( isset( $_GET['post_form_search'] ) ) {
170
+ return 'post_form_search';
171
+ }
172
+
173
+ return parent::current_action();
174
+ }
175
+
176
+ /**
177
+ * Prepare table data
178
+ *
179
+ * @since 2.5
180
+ *
181
+ * @return void
182
+ */
183
+ public function prepare_items() {
184
+ $columns = $this->get_columns();
185
+ $hidden = array();
186
+ $sortable = $this->get_sortable_columns();
187
+ $this->_column_headers = array( $columns, $hidden, $sortable );
188
+
189
+ $per_page = get_option( 'posts_per_page', 20 );
190
+ $current_page = $this->get_pagenum();
191
+ $offset = ( $current_page - 1 ) * $per_page;
192
+
193
+ $args = array(
194
+ 'offset' => $offset,
195
+ 'posts_per_page' => $per_page,
196
+ );
197
+
198
+ if ( isset( $_GET['s'] ) && !empty( $_GET['s'] ) ) {
199
+ $args['s'] = $_GET['s'];
200
+ }
201
+
202
+ if ( isset( $_GET['post_status'] ) && !empty( $_GET['post_status'] ) ) {
203
+ $args['post_status'] = $_GET['post_status'];
204
+ }
205
+
206
+ if ( isset( $_GET['orderby'] ) && !empty( $_GET['orderby'] ) ) {
207
+ $args['orderby'] = $_GET['orderby'];
208
+ }
209
+
210
+ if ( isset( $_GET['order'] ) && !empty( $_GET['order'] ) ) {
211
+ $args['order'] = $_GET['order'];
212
+ }
213
+
214
+
215
+ $items = $this->item_query( $args );
216
+
217
+ $this->counts = $items['count'];
218
+ $this->items = $items['forms'];
219
+
220
+ $this->set_pagination_args( array(
221
+ 'total_items' => $items['count'],
222
+ 'per_page' => $per_page
223
+ ) );
224
+ }
225
+
226
+ /**
227
+ * WP_Query for post forms
228
+ *
229
+ * @since 2.5
230
+ *
231
+ * @param array $args
232
+ *
233
+ * @return array
234
+ */
235
+ public function item_query( $args ) {
236
+ $defauls = array(
237
+ 'post_status' => 'any',
238
+ 'orderby' => 'DESC',
239
+ 'order' => 'ID',
240
+ );
241
+
242
+ $args = wp_parse_args( $args, $defauls );
243
+
244
+ $args['post_type'] = 'wpuf_forms';
245
+
246
+ $query = new WP_Query( $args );
247
+
248
+ $forms = array();
249
+
250
+ if ( $query->have_posts() ) {
251
+
252
+ $i = 0;
253
+
254
+ while ( $query->have_posts() ) {
255
+ $query->the_post();
256
+
257
+ $form = $query->posts[ $i ];
258
+
259
+ $settings = get_post_meta( get_the_ID(), 'wpuf_form_settings', true );
260
+
261
+ $forms[ $i ] = array(
262
+ 'ID' => $form->ID,
263
+ 'post_title' => $form->post_title,
264
+ 'post_status' => $form->post_status,
265
+ 'settings_post_type' => $settings['post_type'],
266
+ 'settings_post_status' => $settings['post_status'],
267
+ 'settings_guest_post' => $settings['guest_post']
268
+ );
269
+
270
+
271
+ $i++;
272
+ }
273
+ }
274
+
275
+ $forms = apply_filters( 'wpuf_post_forms_list_table_query_results', $forms, $query, $args );
276
+ $count = $query->found_posts;
277
+
278
+ wp_reset_postdata();
279
+
280
+ return array(
281
+ 'forms' => $forms,
282
+ 'count' => $count
283
+ );
284
+ }
285
+
286
+ /**
287
+ * Get the column names
288
+ *
289
+ * @since 2.5
290
+ *
291
+ * @return array
292
+ */
293
+ public function get_columns() {
294
+ $columns = array(
295
+ 'cb' => '<input type="checkbox" />',
296
+ 'form_name' => __( 'Form Name', 'wpuf' ),
297
+ 'post_type' => __( 'Post Type', 'wpuf' ),
298
+ 'post_status' => __( 'Post Status', 'wpuf' ),
299
+ 'guest_post' => __( 'Guest Post', 'wpuf' ),
300
+ 'shortcode' => __( 'Shortcode', 'wpuf' ),
301
+ );
302
+
303
+ return apply_filters( 'wpuf_post_forms_list_table_cols', $columns );
304
+ }
305
+
306
+ /**
307
+ * Get sortable columns
308
+ *
309
+ * @since 2.5
310
+ *
311
+ * @return array
312
+ */
313
+ public function get_sortable_columns() {
314
+ $sortable_columns = array(
315
+ 'form_name' => array( 'form_name', false ),
316
+ );
317
+
318
+ return apply_filters( 'wpuf_post_forms_list_table_sortable_columns', $sortable_columns );
319
+ }
320
+
321
+ /**
322
+ * Column values
323
+ *
324
+ * @since 2.5
325
+ *
326
+ * @param array $item
327
+ * @param string $column_name
328
+ *
329
+ * @return string
330
+ */
331
+ public function column_default( $item, $column_name ) {
332
+ switch ( $column_name ) {
333
+ case 'post_type':
334
+ return $item['settings_post_type'];
335
+
336
+ case 'post_status':
337
+ return wpuf_admin_post_status( $item['settings_post_status'] );
338
+
339
+ case 'guest_post':
340
+ $is_guest_post = $item['settings_guest_post'];
341
+ $url = WPUF_ASSET_URI . '/images/';
342
+ $image = '<img src="%s" alt="%s">';
343
+
344
+ return filter_var( $is_guest_post, FILTER_VALIDATE_BOOLEAN ) ?
345
+ sprintf( $image, $url . 'tick.png', __( 'Yes', 'wpuf' ) ) :
346
+ sprintf( $image, $url . 'cross.png', __( 'No', 'wpuf' ) );
347
+
348
+ case 'shortcode':
349
+ return '<code>[wpuf_form id="' . $item['ID'] . '"]</code>';
350
+
351
+ default:
352
+ return apply_filter( 'wpuf_post_forms_list_table_column_default', $item, $column_name );
353
+ }
354
+ }
355
+
356
+ /**
357
+ * Checkbox column value
358
+ *
359
+ * @since 2.5
360
+ *
361
+ * @param array $item
362
+ *
363
+ * @return string
364
+ */
365
+ public function column_cb( $item ) {
366
+ return sprintf( '<input type="checkbox" name="post[]" value="%d" />', $item['ID'] );
367
+ }
368
+
369
+ /**
370
+ * Form name column value
371
+ *
372
+ * @since 2.5
373
+ *
374
+ * @param array $item
375
+ *
376
+ * @return string
377
+ */
378
+ public function column_form_name( $item ) {
379
+ $actions = array();
380
+
381
+ $edit_url = admin_url( 'admin.php?page=wpuf-post-forms&action=edit&id=' . $item['ID'] );
382
+
383
+ $wpnonce = wp_create_nonce( 'bulk-post-forms' );
384
+ $admin_url = admin_url( 'admin.php?page=wpuf-post-forms&id=' . $item['ID'] . '&_wpnonce=' . $wpnonce );
385
+
386
+ $duplicate_url = $admin_url . '&action=duplicate';
387
+ $trash_url = $admin_url . '&action=trash';
388
+ $restore_url = $admin_url . '&action=restore';
389
+ $delete_url = $admin_url . '&action=delete';
390
+
391
+ if ( ( !isset( $_GET['post_status'] ) || 'trash' !== $_GET['post_status'] ) && current_user_can( wpuf_admin_role() ) ) {
392
+ $actions['edit'] = sprintf( '<a href="%s">%s</a>', $edit_url, __( 'Edit', 'wpuf' ) );
393
+ $actions['trash'] = sprintf( '<a href="%s" class="submitdelete">%s</a>', $trash_url, __( 'Trash', 'wpuf' ) );
394
+ $actions['duplicate'] = sprintf( '<a href="%s">%s</a>', $duplicate_url, __( 'Duplicate', 'wpuf' ) );
395
+
396
+ $title = sprintf(
397
+ '<a class="row-title" href="%1s" aria-label="%2s">%3s</a>',
398
+ $edit_url,
399
+ '"' . $item['post_title'] . '" (Edit)',
400
+ $item['post_title']
401
+ );
402
+ }
403
+
404
+ if ( ( isset( $_GET['post_status'] ) && 'trash' === $_GET['post_status'] ) && current_user_can( wpuf_admin_role() ) ) {
405
+ $actions['restore'] = sprintf( '<a href="%s">%s</a>', $restore_url, __( 'Restore', 'wpuf' ) );
406
+ $actions['delete'] = sprintf( '<a href="%s" class="submitdelete">%s</a>', $delete_url, __( 'Delete Permanently', 'wpuf' ) );
407
+
408
+ $title = sprintf(
409
+ '<strong>%1s</strong>',
410
+ $item['post_title']
411
+ );
412
+ }
413
+
414
+ $draft_marker = ( 'draft' === $item['post_status'] ) ?
415
+ '<strong> — <span class="post-state">' . __( 'Draft', 'wpuf' ) . '</span></strong>' :
416
+ '';
417
+
418
+ $form_name = sprintf( '%1s %2s %3s', $title, $draft_marker, $this->row_actions( $actions ) );
419
+
420
+ return apply_filters( 'wpuf_post_forms_list_table_column_form_name', $form_name, $item );
421
+ }
422
+
423
+ }
admin/posting.php ADDED
@@ -0,0 +1,448 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Admin side posting handler
5
+ *
6
+ * Builds custom fields UI for post add/edit screen
7
+ * and handles value saving.
8
+ *
9
+ * @package WP User Frontend
10
+ */
11
+ class WPUF_Admin_Posting extends WPUF_Render_Form {
12
+
13
+ private static $_instance;
14
+
15
+ function __construct() {
16
+ // meta boxes
17
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes') );
18
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box_form_select') );
19
+
20
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_script') );
21
+
22
+ add_action( 'save_post', array( $this, 'save_meta'), 1, 2 ); // save the custom fields
23
+ add_action( 'save_post', array( $this, 'form_selection_metabox_save' ), 1, 2 ); // save edit form id
24
+ }
25
+
26
+ public static function init() {
27
+ if ( !self::$_instance ) {
28
+ self::$_instance = new self();
29
+ }
30
+
31
+ return self::$_instance;
32
+ }
33
+
34
+ function enqueue_script() {
35
+ global $pagenow;
36
+
37
+ if ( !in_array( $pagenow, array( 'profile.php', 'post-new.php', 'post.php', 'user-edit.php' ) ) ) {
38
+ return;
39
+ }
40
+
41
+ $scheme = is_ssl() ? 'https' : 'http';
42
+ $api_key = wpuf_get_option( 'gmap_api_key', 'wpuf_general' );
43
+
44
+ wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' );
45
+
46
+ wp_enqueue_script( 'jquery-ui-datepicker' );
47
+ wp_enqueue_script( 'jquery-ui-slider' );
48
+ wp_enqueue_script( 'jquery-ui-timepicker', WPUF_ASSET_URI . '/js/jquery-ui-timepicker-addon.js', array('jquery-ui-datepicker') );
49
+
50
+ if ( !empty( $api_key ) ) {
51
+ wp_enqueue_script( 'google-maps', $scheme . '://maps.google.com/maps/api/js?libraries=places&key='.$api_key, array(), null );
52
+ } else {
53
+ add_action('admin_head', 'wpuf_hide_google_map_button');
54
+
55
+ function wpuf_hide_google_map_button() {
56
+ echo "<style>
57
+ button.button[data-name='custom_map'] {
58
+ display: none;
59
+ }
60
+ </style>";
61
+ }
62
+ }
63
+
64
+ wp_enqueue_script( 'wpuf-upload', WPUF_ASSET_URI . '/js/upload.js', array('jquery', 'plupload-handlers') );
65
+ wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', array(
66
+ 'confirmMsg' => __( 'Are you sure?', 'wpuf' ),
67
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
68
+ 'nonce' => wp_create_nonce( 'wpuf_nonce' ),
69
+ 'plupload' => array(
70
+ 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ),
71
+ 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
72
+ 'filters' => array(array('title' => __( 'Allowed Files', 'wpuf' ), 'extensions' => '*')),
73
+ 'multipart' => true,
74
+ 'urlstream_upload' => true,
75
+ 'warning' => __( 'Maximum number of files reached!', 'wpuf' ),
76
+ 'size_error' => __( 'The file you have uploaded exceeds the file size limit. Please try again.', 'wpuf' ),
77
+ 'type_error' => __( 'You have uploaded an incorrect file type. Please try again.', 'wpuf' )
78
+ )
79
+ ) );
80
+ }
81
+
82
+ /**
83
+ * Meta box for all Post form selection
84
+ *
85
+ * Registers a meta box in public post types to select the desired WPUF
86
+ * form select box to assign a form id.
87
+ *
88
+ * @since 2.5.2
89
+ *
90
+ * @return void
91
+ */
92
+ function add_meta_box_form_select() {
93
+
94
+ $post_types = get_post_types( array('public' => true) );
95
+ foreach ($post_types as $post_type) {
96
+ add_meta_box( 'wpuf-select-form', __('WPUF Form', 'wpuf'), array($this, 'form_selection_metabox'), $post_type, 'side', 'high' );
97
+ }
98
+ }
99
+
100
+
101
+ /**
102
+ * Form selection meta box in post types
103
+ *
104
+ * Registered via $this->add_meta_box_form_select()
105
+ *
106
+ * @since 2.5.2
107
+ *
108
+ * @global object $post
109
+ */
110
+ function form_selection_metabox() {
111
+ global $post;
112
+
113
+ $forms = get_posts( array('post_type' => 'wpuf_forms', 'numberposts' => '-1') );
114
+ $selected = get_post_meta( $post->ID, '_wpuf_form_id', true );
115
+ ?>
116
+
117
+ <input type="hidden" name="wpuf_form_select_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
118
+
119
+ <select name="wpuf_form_select">
120
+ <option value="">--</option>
121
+ <?php foreach ($forms as $form) { ?>
122
+ <option value="<?php echo $form->ID; ?>"<?php selected($selected, $form->ID); ?>><?php echo $form->post_title; ?></option>
123
+ <?php } ?>
124
+ </select>
125
+ <?php
126
+ }
127
+
128
+ /**
129
+ * Saves the form ID from form selection meta box
130
+ *
131
+ * @since 2.5.2
132
+ *
133
+ * @param int $post_id
134
+ * @param object $post
135
+ * @return int|void
136
+ */
137
+ function form_selection_metabox_save( $post_id, $post ) {
138
+ if ( !isset($_POST['wpuf_form_select'])) {
139
+ return $post->ID;
140
+ }
141
+
142
+ if ( !wp_verify_nonce( $_POST['wpuf_form_select_nonce'], plugin_basename( __FILE__ ) ) ) {
143
+ return $post->ID;
144
+ }
145
+
146
+ // Is the user allowed to edit the post or page?
147
+ if ( !current_user_can( 'edit_post', $post->ID ) ) {
148
+ return $post->ID;
149
+ }
150
+
151
+ update_post_meta( $post->ID, '_wpuf_form_id', $_POST['wpuf_form_select'] );
152
+ }
153
+
154
+ /**
155
+ * Meta box to show WPUF Custom Fields
156
+ *
157
+ * Registers a meta box in public post types to show WPUF Custom Fields
158
+ *
159
+ * @since 2.5
160
+ *
161
+ * @return void
162
+ */
163
+ function add_meta_boxes() {
164
+ $post_types = get_post_types( array('public' => true) );
165
+
166
+ foreach ($post_types as $post_type) {
167
+ add_meta_box( 'wpuf-custom-fields', __( 'WPUF Custom Fields', 'wpuf' ), array($this, 'render_form'), $post_type, 'normal', 'high' );
168
+ }
169
+ }
170
+
171
+ /**
172
+ * function to hide form custom field
173
+ *
174
+ * @since 2.5
175
+ *
176
+ * @return void
177
+ */
178
+ function hide_form() {
179
+ ?>
180
+ <style type="text/css">
181
+ #wpuf-custom-fields { display: none; }
182
+ </style>
183
+ <?php
184
+ }
185
+
186
+ /**
187
+ * generate frontend form field
188
+ *
189
+ * @since 2.5
190
+ *
191
+ * @param int $form_id
192
+ * @param int $post_id
193
+ *
194
+ * @return void
195
+ */
196
+ function render_form( $form_id, $post_id = null ) {
197
+ global $post;
198
+
199
+ $form_id = get_post_meta( $post->ID, '_wpuf_form_id', true );
200
+ $form_settings = wpuf_get_form_settings( $form_id );
201
+
202
+ // hide the metabox itself if no form ID is set
203
+ if ( !$form_id || class_exists('acf') ) {
204
+ $this->hide_form();
205
+ return;
206
+ }
207
+
208
+ list($post_fields, $taxonomy_fields, $custom_fields) = $this->get_input_fields( $form_id );
209
+
210
+ if ( empty( $custom_fields ) ) {
211
+ _e( 'No custom fields found.', 'wpuf' );
212
+ return;
213
+ }
214
+ ?>
215
+
216
+ <input type="hidden" name="wpuf_cf_update" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
217
+ <input type="hidden" name="wpuf_cf_form_id" value="<?php echo $form_id; ?>" />
218
+
219
+ <table class="form-table wpuf-cf-table">
220
+ <tbody>
221
+ <?php
222
+ $this->render_items( $custom_fields, $post->ID, 'post', $form_id, $form_settings );
223
+ ?>
224
+ </tbody>
225
+ </table>
226
+ <?php
227
+ $this->scripts_styles();
228
+ }
229
+
230
+ /**
231
+ * Prints form input label
232
+ *
233
+ * @param string $attr
234
+ */
235
+ function label( $attr, $post_id = 0 ) {
236
+ ?>
237
+ <?php echo $attr['label'] . $this->required_mark( $attr ); ?>
238
+ <?php
239
+ }
240
+
241
+ /**
242
+ * generate table header of frontend form field
243
+ *
244
+ * @since 2.5
245
+ *
246
+ * @param array $form_field
247
+ * @param int $post_id
248
+ *
249
+ * @return void
250
+ */
251
+ function render_item_before( $form_field, $post_id = 0 ) {
252
+ echo '<tr>';
253
+ echo '<th><strong>';
254
+ $this->label( $form_field );
255
+ echo '</strong></th>';
256
+ echo '<td>';
257
+ }
258
+
259
+ /**
260
+ * generate table bottom of frontend form field
261
+ *
262
+ * @since 2.5
263
+ *
264
+ * @param array $form_field
265
+ *
266
+ * @return void
267
+ */
268
+ function render_item_after( $form_field ) {
269
+ echo '</td>';
270
+ echo '</tr>';
271
+ }
272
+
273
+ function scripts_styles() {
274
+ ?>
275
+ <script type="text/javascript">
276
+ jQuery(function($){
277
+ var wpuf = {
278
+ init: function() {
279
+ $('.wpuf-cf-table').on('click', 'img.wpuf-clone-field', this.cloneField);
280
+ $('.wpuf-cf-table').on('click', 'img.wpuf-remove-field', this.removeField);
281
+ $('.wpuf-cf-table').on('click', 'a.wpuf-delete-avatar', this.deleteAvatar);
282
+ },
283
+ cloneField: function(e) {
284
+ e.preventDefault();
285
+
286
+ var $div = $(this).closest('tr');
287
+ var $clone = $div.clone();
288
+ // console.log($clone);
289
+
290
+ //clear the inputs
291
+ $clone.find('input').val('');
292
+ $clone.find(':checked').attr('checked', '');
293
+ $div.after($clone);
294
+ },
295
+
296
+ removeField: function() {
297
+ //check if it's the only item
298
+ var $parent = $(this).closest('tr');
299
+ var items = $parent.siblings().andSelf().length;
300
+
301
+ if( items > 1 ) {
302
+ $parent.remove();
303
+ }
304
+ },
305
+
306
+ deleteAvatar: function(e) {
307
+ e.preventDefault();
308
+
309
+ var data = {
310
+ action: 'wpuf_delete_avatar',
311
+ user_id : $('#profile-page').find('#user_id').val(),
312
+ _wpnonce: '<?php echo wp_create_nonce( 'wpuf_nonce' ); ?>'
313
+ };
314
+
315
+ if ( confirm( $(this).data('confirm') ) ) {
316
+ $.post(ajaxurl, data, function() {
317
+ window.location.reload();
318
+ });
319
+ }
320
+ }
321
+ };
322
+
323
+ wpuf.init();
324
+ });
325
+
326
+ </script>
327
+ <style type="text/css">
328
+ ul.wpuf-attachment-list li {
329
+ display: inline-block;
330
+ border: 1px solid #dfdfdf;
331
+ padding: 5px;
332
+ -webkit-border-radius: 5px;
333
+ -moz-border-radius: 5px;
334
+ border-radius: 5px;
335
+ margin-right: 5px;
336
+ }
337
+ ul.wpuf-attachment-list li a.attachment-delete {
338
+ text-decoration: none;
339
+ padding: 3px 12px;
340
+ border: 1px solid #C47272;
341
+ color: #ffffff;
342
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
343
+ -webkit-border-radius: 3px;
344
+ -moz-border-radius: 3px;
345
+ border-radius: 3px;
346
+ background-color: #da4f49;
347
+ background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
348
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
349
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
350
+ background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
351
+ background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
352
+ background-repeat: repeat-x;
353
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
354
+ border-color: #bd362f #bd362f #802420;
355
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
356
+ *background-color: #bd362f;
357
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
358
+ }
359
+ ul.wpuf-attachment-list li a.attachment-delete:hover,
360
+ ul.wpuf-attachment-list li a.attachment-delete:active {
361
+ color: #ffffff;
362
+ background-color: #bd362f;
363
+ *background-color: #a9302a;
364
+ }
365
+
366
+ .wpuf-cf-table table th,
367
+ .wpuf-cf-table table td{
368
+ padding-left: 0 !important;
369
+ }
370
+
371
+ .wpuf-cf-table .required { color: red;}
372
+ .wpuf-cf-table textarea { width: 400px; }
373
+
374
+ .wpuf-field-google-map {
375
+ height: 300px;
376
+ width: 100%;
377
+ }
378
+ .wpuf-form-google-map {
379
+ height: 300px;
380
+ width: 100%;
381
+ }
382
+ input[type="text"].wpuf-google-map-search {
383
+ margin-top: 10px !important;
384
+ border: 1px solid transparent !important;
385
+ border-radius: 2px 0 0 2px !important;
386
+ box-sizing: border-box !important;
387
+ -moz-box-sizing: border-box !important;
388
+ height: 32px !important;
389
+ outline: none !important;
390
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;
391
+ background-color: #fff !important;
392
+ text-overflow: ellipsis !important;
393
+ width: 170px !important;
394
+ font-family: Roboto !important;
395
+ font-size: 15px !important;
396
+ font-weight: 300 !important;
397
+ padding: 0 11px 0 13px !important;
398
+ display: none;
399
+ }
400
+ .gm-style input[type="text"].wpuf-google-map-search {
401
+ display: block;
402
+ }
403
+ .wpuf-form-google-map-container input[type="text"].wpuf-google-map-search {
404
+ width: 230px !important;
405
+ }
406
+ .wpuf-form-google-map-container.hide-search-box .gm-style input[type="text"].wpuf-google-map-search {
407
+ display: none;
408
+ }
409
+
410
+ </style>
411
+ <?php
412
+ }
413
+
414
+ /**
415
+ * save post meta
416
+ *
417
+ * @since 2.5
418
+ *
419
+ * @param object $post
420
+ *
421
+ * @return void
422
+ */
423
+ // Save the Metabox Data
424
+ function save_meta( $post_id, $post ) {
425
+
426
+ if ( !isset( $post->ID ) ) {
427
+ return;
428
+ }
429
+
430
+ if ( !isset( $_POST['wpuf_cf_update'] ) ) {
431
+ return $post->ID;
432
+ }
433
+
434
+ if ( !wp_verify_nonce( $_POST['wpuf_cf_update'], plugin_basename( __FILE__ ) ) ) {
435
+ return $post->ID;
436
+ }
437
+
438
+ // Is the user allowed to edit the post or page?
439
+ if ( !current_user_can( 'edit_post', $post->ID ) ) {
440
+ return $post->ID;
441
+ }
442
+
443
+ list( $post_vars, $tax_vars, $meta_vars ) = self::get_input_fields( $_POST['wpuf_cf_form_id'] );
444
+
445
+ WPUF_Frontend_Form_Post::update_post_meta( $meta_vars, $post->ID );
446
+ }
447
+
448
+ }
admin/premium.php ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap wpuf-premium about-wrap">
2
+ <h1><?php _e( 'WPUF Pro', 'wpuf' ); ?></h1>
3
+
4
+ <p class="about-text"><?php _e( 'Upgrade to the premium versions of WPUF and unlock even more useful features.', 'wpuf' ); ?></p>
5
+ <div class="wp-badge"><?php _e( 'WPUF Pro', 'wpuf' ); ?></div>
6
+
7
+ <hr>
8
+ <div class="feature-section one-col">
9
+ <div class="col">
10
+ <h2><?php _e( 'Pro Features', 'wpuf' ); ?></h2>
11
+ <p style="text-align: center; font-size: 16px;"><?php _e( 'WPUF Pro is designed just for you, specially to fulfil your business needs. We have designed and curated every feature keeping your requirements in mind.', 'wpuf' ); ?></p>
12
+ </div>
13
+ </div>
14
+
15
+ <div class="feature-section two-col">
16
+ <div class="col feature-wrap">
17
+ <div class="feature-image">
18
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/registration.gif" alt="<?php _e( 'Registration Form Builder', 'wpuf' ); ?>">
19
+ </div>
20
+ <div class="feature-details">
21
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/registration-profile-forms/how-to-setup-registrationlogin-page/" target="_blank"><?php _e( 'Registration Form Builder', 'wpuf' ); ?></a></h3>
22
+ <p><?php _e( 'Registration form builder is a two way form which can be used both for user registration and profile editing. You could also manage Register for Subscription Package Purchase.', 'wpuf' ); ?></p>
23
+ </div>
24
+ </div>
25
+
26
+ <div class="col feature-wrap">
27
+ <div class="feature-image">
28
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/advanced-fields.png" alt="<?php _e( 'Advanced Fields', 'wpuf' ); ?>">
29
+ </div>
30
+ <div class="feature-details">
31
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/form-elements/" target="_blank"><?php _e( 'Advanced Fields', 'wpuf' ); ?></a></h3>
32
+ <ul>
33
+ <li><?php _e( 'Country List', 'wpuf' ); ?></li>
34
+ <li><?php _e( 'Address', 'wpuf' ); ?></li>
35
+ <li><?php _e( 'Date Field', 'wpuf' ); ?></li>
36
+ <li><?php _e( 'Google Map', 'wpuf' ); ?></li>
37
+ <li><?php _e( 'Action Hook', 'wpuf' ); ?></li>
38
+ <li><?php _e( 'Rating', 'wpuf' ); ?></li>
39
+ <li><?php _e( 'Shortcode', 'wpuf' ); ?></li>
40
+ <li><?php _e( 'Number', 'wpuf' ); ?></li>
41
+ <li><?php _e( 'Repeater', 'wpuf' ); ?></li>
42
+ <li><?php _e( 'File Upload', 'wpuf' ); ?></li>
43
+ <li><?php _e( 'Captcha', 'wpuf' ); ?></li>
44
+ <li><?php _e( 'TOC', 'wpuf' ); ?></li>
45
+ </ul>
46
+ </div>
47
+ </div>
48
+
49
+ <div class="col feature-wrap">
50
+ <div class="feature-image">
51
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/coupon.gif" alt="<?php _e( 'Manage Coupons', 'wpuf' ); ?>">
52
+ </div>
53
+ <div class="feature-details">
54
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/subscription-payment/coupons/" target="_blank"><?php _e( 'Manage Coupons', 'wpuf' ); ?></a></h3>
55
+ <p><?php _e( 'Simple yet powerful coupon management system. Use Coupon codes for selling subscription pack with discounts.', 'wpuf' ); ?></p>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="col feature-wrap">
60
+ <div class="feature-image">
61
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/content-restrictions.gif" alt="<?php _e( 'Content Restrictions', 'wpuf' ); ?>">
62
+ </div>
63
+ <div class="feature-details">
64
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/content-restriction/content-restriction/" target="_blank"><?php _e( 'Content Restrictions', 'wpuf' ); ?></a></h3>
65
+ <p><?php _e( 'You can restrict premium content for users by access role, registration or subscriptions only with just a shortcode.', 'wpuf' ); ?></p>
66
+ </div>
67
+ </div>
68
+
69
+ <div class="col feature-wrap">
70
+ <div class="feature-image">
71
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/conditional-logic.gif" alt="<?php _e( 'Conditional Logic', 'wpuf' ); ?>">
72
+ </div>
73
+ <div class="feature-details">
74
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/how-to-use-conditional-logic/" target="_blank"><?php _e( 'Conditional Logic', 'wpuf' ); ?></a></h3>
75
+ <p><?php _e( 'Configure your form’s settings and user flow based on conditional selection. Your forms should appear just the way you want it.', 'wpuf' ); ?></p>
76
+ </div>
77
+ </div>
78
+
79
+ <div class="col feature-wrap">
80
+ <div class="feature-image">
81
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/premium/multi-step.gif" alt="<?php _e( 'Multi-step Form', 'wpuf' ); ?>">
82
+ </div>
83
+ <div class="feature-details">
84
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/posting-forms/how-to-add-multi-step-form/" target="_blank"><?php _e( 'Multi-step Form', 'wpuf' ); ?></a></h3>
85
+ <p><?php _e( 'Break down the long forms into smaller and attractive multi step forms. Long and lengthy forms are uninviting, why build one?', 'wpuf' ); ?></p>
86
+ </div>
87
+ </div>
88
+ </div>
89
+
90
+ <hr>
91
+ <div class="feature-section one-col">
92
+ <div class="col">
93
+ <h2><?php _e( 'Modules', 'wpuf' ); ?></h2>
94
+ <p style="text-align: center; font-size: 16px;"><?php _e( 'A bunch of awesome modules to speed up your business growth.', 'wpuf' ); ?></p>
95
+ </div>
96
+ </div>
97
+
98
+ <div class="headline-feature two-col">
99
+ <div class="col module-wrap">
100
+ <div class="module-image">
101
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/Social-Media-Login.png" alt="<?php _e( 'BuddyPress Profile', 'wpuf' ); ?>">
102
+ </div>
103
+ <div class="module-details">
104
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/social-login-registration/" target="_blank"><?php _e( 'Social Login', 'wpuf' ); ?></a></h3>
105
+ <p><?php _e( 'Allow your users to Register or Login using Social networks like Google, Facebook, Twitter and LinkedIn.', 'wpuf' ); ?></p>
106
+ </div>
107
+ </div>
108
+
109
+ <div class="col module-wrap">
110
+ <div class="module-image">
111
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-ul.png" alt="<?php _e( 'User Directory', 'wpuf' ); ?>">
112
+ </div>
113
+ <div class="module-details">
114
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/user-listing-profile/" target="_blank"><?php _e( 'User Directory', 'wpuf' ); ?></a></h3>
115
+ <p><?php _e( 'Handle user listing and user profile in the frontend. Create a directory site easily.', 'wpuf' ); ?></p>
116
+ </div>
117
+ </div>
118
+
119
+ <div class="col module-wrap">
120
+ <div class="module-image">
121
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-buddypress.png" alt="<?php _e( 'BuddyPress Profile', 'wpuf' ); ?>">
122
+ </div>
123
+ <div class="module-details">
124
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/buddypress-profile-integration/" target="_blank"><?php _e( 'BuddyPress Profile', 'wpuf' ); ?></a></h3>
125
+ <p><?php _e( 'Register and upgrade user profiles and sync data with BuddyPress.', 'wpuf' ); ?></p>
126
+ </div>
127
+ </div>
128
+
129
+ <div class="col module-wrap">
130
+ <div class="module-image">
131
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-ua.png" alt="<?php _e( 'MailChimp Integration', 'wpuf' ); ?>">
132
+ </div>
133
+ <div class="module-details">
134
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/user-analytics/" target="_blank"><?php _e( 'User Analytics', 'wpuf' ); ?></a></h3>
135
+ <p><?php _e( 'Show user tracking info during post and registration directly on Frontend.', 'wpuf' ); ?></p>
136
+ </div>
137
+ </div>
138
+
139
+ <div class="col module-wrap">
140
+ <div class="module-image">
141
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-pmpro.png" alt="<?php _e( 'Paid Membership Pro', 'wpuf' ); ?>">
142
+ </div>
143
+ <div class="module-details">
144
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/install-and-configure-pmpro-add-on-for-wpuf/" target="_blank"><?php _e( 'Paid Membership Pro', 'wpuf' ); ?></a></h3>
145
+ <p><?php _e( 'Membership Integration of WP User Frontend with Paid Membership Pro.', 'wpuf' ); ?></p>
146
+ </div>
147
+ </div>
148
+
149
+ <div class="col module-wrap">
150
+ <div class="module-image">
151
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-stripe.png" alt="<?php _e( 'Stripe Payment', 'wpuf' ); ?>">
152
+ </div>
153
+ <div class="module-details">
154
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/stripe/" target="_blank"><?php _e( 'Stripe Payment', 'wpuf' ); ?></a></h3>
155
+ <p><?php _e( 'Stripe payment gateway for WP User Frontend. Get your subscription payment with Stripe.', 'wpuf' ); ?></p>
156
+ </div>
157
+ </div>
158
+
159
+ <div class="col module-wrap">
160
+ <div class="module-image">
161
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-mailpoet.png" alt="<?php _e( 'Mailpoet', 'wpuf' ); ?>">
162
+ </div>
163
+ <div class="module-details">
164
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/mailpoet/" target="_blank"><?php _e( 'Mailpoet', 'wpuf' ); ?></a></h3>
165
+ <p><?php _e( 'Add subscribers to mailpoet mailing list when they registers via WP User Frontend Pro.', 'wpuf' ); ?></p>
166
+ </div>
167
+ </div>
168
+
169
+ <div class="col module-wrap">
170
+ <div class="module-image">
171
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-mailchimp.png" alt="<?php _e( 'MailChimp Integration', 'wpuf' ); ?>">
172
+ </div>
173
+ <div class="module-details">
174
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/add-users-to-mailchimp-subscribers-list-upon-registration-from-frontend/" target="_blank"><?php _e( 'MailChimp', 'wpuf' ); ?></a></h3>
175
+ <p><?php _e( 'Integrate your desired form to your MailChimp email newsletter using latest API.', 'wpuf' ); ?></p>
176
+ </div>
177
+ </div>
178
+
179
+ <div class="col module-wrap">
180
+ <div class="module-image">
181
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-sms.png" alt="<?php _e( 'SMS Notification', 'wpuf' ); ?>">
182
+ </div>
183
+ <div class="module-details">
184
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/sms-notification/" target="_blank"><?php _e( 'SMS Notification', 'wpuf' ); ?></a></h3>
185
+ <p><?php _e( 'Get instant SMS notification on your mobile when post submits on your site.', 'wpuf' ); ?></p>
186
+ </div>
187
+ </div>
188
+
189
+ <div class="col module-wrap">
190
+ <div class="module-image">
191
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-comment.png" alt="<?php _e( 'SMS Notification', 'wpuf' ); ?>">
192
+ </div>
193
+ <div class="module-details">
194
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/frontend-comment-manager/" target="_blank"><?php _e( 'Comment Manager', 'wpuf' ); ?></a></h3>
195
+ <p><?php _e( 'Handle comments in frontend. View / reply comments on post.', 'wpuf' ); ?></p>
196
+ </div>
197
+ </div>
198
+
199
+ <div class="col module-wrap">
200
+ <div class="module-image">
201
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/wpuf-qr.png" alt="<?php _e( 'SMS Notification', 'wpuf' ); ?>">
202
+ </div>
203
+ <div class="module-details">
204
+ <h3><a href="https://wedevs.com/docs/wp-user-frontend-pro/modules/qr-code/" target="_blank"><?php _e( 'QR Code Generator', 'wpuf' ); ?></a></h3>
205
+ <p><?php _e( 'Generate QR Code with your custom fields or custom post meta.', 'wpuf' ); ?></p>
206
+ </div>
207
+ </div>
208
+
209
+ <div class="col module-wrap">
210
+ <div class="module-image">
211
+ <img src="<?php echo WPUF_ASSET_URI; ?>/images/modules/more.png" alt="<?php _e( 'More...', 'wpuf' ); ?>">
212
+ </div>
213
+ <div class="module-details">
214
+ <h3><?php _e( 'More...', 'wpuf' ); ?></h3>
215
+ <p><?php _e( 'A bunch of more modules are coming soon.', 'wpuf' ); ?></p>
216
+ </div>
217
+ </div>
218
+ </div>
219
+
220
+ <div style="display: block; height: 100px; overflow: hidden;"></div>
221
+
222
+ <div class="wpuf-upgrade-sticky-footer">
223
+
224
+ <div class="text-left">
225
+ <h3><?php _e( 'Upgrade To The Most Powerful Frontend Plugin', 'wpuf' ); ?></h3>
226
+
227
+ <p><?php _e( 'WP User Frontend Pro is the most powerful solution for your frontend needs.', 'wpuf' ); ?></p>
228
+ </div>
229
+
230
+ <div class="text-right">
231
+ <a class="button button-primary" href="<?php echo WPUF_Pro_Prompt::get_pro_url(); ?>" target="_blank"><?php _e( 'Upgrade Now', 'wpuf' ); ?></a>
232
+ </div>
233
+ </div>
234
+
235
+ </div>
admin/promotion.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Promotional offer class
5
+ */
6
+ class WPUF_Admin_Promotion {
7
+
8
+ public function __construct() {
9
+ add_action( 'admin_notices', array( $this, 'promotional_offer' ) );
10
+ add_action( 'wp_ajax_wpuf-dismiss-promotional-offer-notice', array( $this, 'dismiss_promotional_offer' ) );
11
+ }
12
+
13
+ /**
14
+ * Promotional offer notice
15
+ *
16
+ * @since 1.1.15
17
+ *
18
+ * @return void
19
+ */
20
+ public function promotional_offer() {
21
+ // Show only to Admins
22
+ if ( ! current_user_can( 'manage_options' ) ) {
23
+ return;
24
+ }
25
+
26
+ // 2017-03-22 23:59:00
27
+ if ( time() > 1490227140 ) {
28
+ return;
29
+ }
30
+
31
+ // check if it has already been dismissed
32
+ $hide_notice = get_option( 'wpuf_promotional_offer_notice', 'no' );
33
+
34
+ if ( 'hide' == $hide_notice ) {
35
+ return;
36
+ }
37
+
38
+ $product_text = ( ! wpuf()->is_pro() ) ? __( 'Pro upgrade and all extensions, ', 'wpuf' ) : __( 'all extensions, ', 'wpuf' );
39
+
40
+ $offer_msg = __( '<h2><span class="dashicons dashicons-awards"></span> weDevs 4th Year Anniversary Offer</h2>', 'wpuf' );
41
+ $offer_msg .= sprintf( __( '<p>Get <strong class="highlight-text">44&#37; discount</strong> on %2$s also <a target="_blank" href="%1$s"><strong>WIN any product</strong></a> from our 4th year anniversary giveaway. Offer ending soon!</p>', 'wpuf' ), 'https://wedevs.com/in/4years/?utm_source=freeplugin&utm_medium=prompt&utm_term=wpuf_plugin&utm_content=textlink&utm_campaign=wedevs_4_years', $product_text );
42
+ ?>
43
+ <div class="notice is-dismissible" id="wpuf-promotional-offer-notice">
44
+ <table>
45
+ <tbody>
46
+ <tr>
47
+ <td class="image-container">
48
+ <img src="https://ps.w.org/wp-user-frontend/assets/icon-256x256.png" alt="">
49
+ </td>
50
+ <td class="message-container">
51
+ <?php echo $offer_msg; ?>
52
+ </td>
53
+ </tr>
54
+ </tbody>
55
+ </table>
56
+
57
+ <span class="dashicons dashicons-megaphone"></span>
58
+ </div><!-- #wpuf-promotional-offer-notice -->
59
+
60
+ <style>
61
+ #wpuf-promotional-offer-notice {
62
+ background-color: #4caf50;
63
+ border: 0px;
64
+ padding: 0;
65
+ opacity: 0;
66
+ }
67
+
68
+ .wrap > #wpuf-promotional-offer-notice {
69
+ opacity: 1;
70
+ }
71
+
72
+ #wpuf-promotional-offer-notice table {
73
+ border-collapse: collapse;
74
+ width: 100%;
75
+ }
76
+
77
+ #wpuf-promotional-offer-notice table td {
78
+ padding: 0;
79
+ }
80
+
81
+ #wpuf-promotional-offer-notice table td.image-container {
82
+ background-color: #fff;
83
+ vertical-align: middle;
84
+ width: 95px;
85
+ }
86
+
87
+
88
+ #wpuf-promotional-offer-notice img {
89
+ max-width: 100%;
90
+ max-height: 100px;
91
+ vertical-align: middle;
92
+ }
93
+
94
+ #wpuf-promotional-offer-notice table td.message-container {
95
+ padding: 0 10px;
96
+ }
97
+
98
+ #wpuf-promotional-offer-notice h2{
99
+ color: rgba(250, 250, 250, 0.77);
100
+ margin-bottom: 10px;
101
+ font-weight: normal;
102
+ margin: 16px 0 14px;
103
+ -webkit-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
104
+ -moz-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
105
+ -o-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
106
+ text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
107
+ }
108
+
109
+
110
+ #wpuf-promotional-offer-notice h2 span {
111
+ position: relative;
112
+ top: 0;
113
+ }
114
+
115
+ #wpuf-promotional-offer-notice p{
116
+ color: rgba(250, 250, 250, 0.77);
117
+ font-size: 14px;
118
+ margin-bottom: 10px;
119
+ -webkit-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
120
+ -moz-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
121
+ -o-text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
122
+ text-shadow: 0.1px 0.1px 0px rgba(250, 250, 250, 0.24);
123
+ }
124
+
125
+ #wpuf-promotional-offer-notice p strong.highlight-text{
126
+ color: #fff;
127
+ }
128
+
129
+ #wpuf-promotional-offer-notice p a {
130
+ color: #fafafa;
131
+ }
132
+
133
+ #wpuf-promotional-offer-notice .notice-dismiss:before {
134
+ color: #fff;
135
+ }
136
+
137
+ #wpuf-promotional-offer-notice span.dashicons-megaphone {
138
+ position: absolute;
139
+ bottom: 46px;
140
+ right: 119px;
141
+ color: rgba(253, 253, 253, 0.29);
142
+ font-size: 96px;
143
+ transform: rotate(-21deg);
144
+ }
145
+
146
+ </style>
147
+
148
+ <script type='text/javascript'>
149
+ jQuery('body').on('click', '#wpuf-promotional-offer-notice .notice-dismiss', function(e) {
150
+ e.preventDefault();
151
+
152
+ wp.ajax.post('wpuf-dismiss-promotional-offer-notice', {
153
+ dismissed: true
154
+ });
155
+ });
156
+ </script>
157
+ <?php
158
+ }
159
+
160
+
161
+ /**
162
+ * Dismiss promotion notice
163
+ *
164
+ * @since 2.5
165
+ *
166
+ * @return void
167
+ */
168
+ public function dismiss_promotional_offer() {
169
+ if ( ! empty( $_POST['dismissed'] ) ) {
170
+ $offer_key = 'wpuf_promotional_offer_notice';
171
+ update_option( $offer_key, 'hide' );
172
+ }
173
+ }
174
+ }
admin/settings-options.php ADDED
@@ -0,0 +1,476 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Settings Sections
5
+ *
6
+ * @since 1.0
7
+ * @return array
8
+ */
9
+ function wpuf_settings_sections() {
10
+ $sections = array(
11
+ array(
12
+ 'id' => 'wpuf_general',
13
+ 'title' => __( 'General Options', 'wpuf' ),
14
+ 'icon' => 'dashicons-admin-generic'
15
+ ),
16
+ array(
17
+ 'id' => 'wpuf_frontend_posting',
18
+ 'title' => __( 'Frontend Posting', 'wpuf' ),
19
+ 'icon' => 'dashicons-welcome-write-blog'
20
+ ),
21
+ array(
22
+ 'id' => 'wpuf_dashboard',
23
+ 'title' => __( 'Dashboard', 'wpuf' ),
24
+ 'icon' => 'dashicons-dashboard'
25
+ ),
26
+ array(
27
+ 'id' => 'wpuf_my_account',
28
+ 'title' => __( 'My Account', 'wpuf' ),
29
+ 'icon' => 'dashicons-id'
30
+ ),
31
+ array(
32
+ 'id' => 'wpuf_profile',
33
+ 'title' => __( 'Login / Registration', 'wpuf' ),
34
+ 'icon' => 'dashicons-admin-users'
35
+ ),
36
+ array(
37
+ 'id' => 'wpuf_payment',
38
+ 'title' => __( 'Payments', 'wpuf' ),
39
+ 'icon' => 'dashicons-money'
40
+ ),
41
+ array(
42
+ 'id' => 'wpuf_mails',
43
+ 'title' => __( 'E-Mails', 'wpuf' ),
44
+ 'icon' => 'dashicons-email-alt'
45
+
46
+ ),
47
+ );
48
+
49
+ return apply_filters( 'wpuf_settings_sections', $sections );
50
+ }
51
+
52
+ function wpuf_settings_fields() {
53
+ $pages = wpuf_get_pages();
54
+ $users = wpuf_list_users();
55
+
56
+ $all_currencies = wpuf_get_currencies();
57
+
58
+ $currencies = array();
59
+ foreach ( $all_currencies as $currency ) {
60
+ $currencies[ $currency['currency'] ] = $currency['label'] . ' (' . $currency['symbol'] . ')';
61
+ }
62
+
63
+ $default_currency_symbol = wpuf_get_currency( 'symbol' );
64
+
65
+ $user_roles = array();
66
+ $all_roles = get_editable_roles();
67
+ foreach( $all_roles as $key=>$value ) {
68
+ $user_roles[$key] = $value['name'];
69
+ }
70
+
71
+ $settings_fields = array(
72
+ 'wpuf_general' => apply_filters( 'wpuf_options_others', array(
73
+ array(
74
+ 'name' => 'show_admin_bar',
75
+ 'label' => __( 'Show Admin Bar', 'wpuf' ),
76
+ 'desc' => __( 'Select user by roles, who can view admin bar in frontend.', 'wpuf' ),
77
+ 'type' => 'multiselect',
78
+ 'options' => $user_roles,
79
+ 'default' => array( 'administrator', 'editor', 'author', 'contributor' ),
80
+ ),
81
+ array(
82
+ 'name' => 'admin_access',
83
+ 'label' => __( 'Admin area access', 'wpuf' ),
84
+ 'desc' => __( 'Allow you to block specific user role to Ajax request and Media upload.', 'wpuf' ),
85
+ 'type' => 'select',
86
+ 'default' => 'read',
87
+ 'options' => array(
88
+ 'manage_options' => __( 'Admin Only', 'wpuf' ),
89
+ 'edit_others_posts' => __( 'Admins, Editors', 'wpuf' ),
90
+ 'publish_posts' => __( 'Admins, Editors, Authors', 'wpuf' ),
91
+ 'edit_posts' => __( 'Admins, Editors, Authors, Contributors', 'wpuf' ),
92
+ 'read' => __( 'Default', 'wpuf' )
93
+ )
94
+ ),
95
+ array(
96
+ 'name' => 'override_editlink',
97
+ 'label' => __( 'Override the post edit link', 'wpuf' ),
98
+ 'desc' => __( 'Users see the edit link in post if s/he is capable to edit the post/page. Selecting <strong>Yes</strong> will override the default WordPress edit post link in frontend', 'wpuf' ),
99
+ 'type' => 'select',
100
+ 'default' => 'no',
101
+ 'options' => array(
102
+ 'yes' => __( 'Yes', 'wpuf' ),
103
+ 'no' => __( 'No', 'wpuf' )
104
+ )
105
+ ),
106
+ array(
107
+ 'name' => 'load_script',
108
+ 'label' => __( 'Load Scripts', 'wpuf' ),
109
+ 'desc' => __( 'Load scripts/styles in all pages', 'wpuf' ),
110
+ 'type' => 'checkbox',
111
+ 'default' => 'on'
112
+ ),
113
+ array(
114
+ 'name' => 'recaptcha_public',
115
+ 'label' => __( 'reCAPTCHA Site Key', 'wpuf' ),
116
+ ),
117
+ array(
118
+ 'name' => 'recaptcha_private',
119
+ 'label' => __( 'reCAPTCHA Secret Key', 'wpuf' ),
120
+ 'desc' => __( '<a target="_blank" href="https://www.google.com/recaptcha/">Register here</a> to get reCaptcha Site and Secret keys.', 'wpuf' ),
121
+ ),
122
+ array(
123
+ 'name' => 'custom_css',
124
+ 'label' => __( 'Custom CSS codes', 'wpuf' ),
125
+ 'desc' => __( 'If you want to add your custom CSS code, it will be added on page header wrapped with style tag', 'wpuf' ),
126
+ 'type' => 'textarea'
127
+ ),
128
+ ) ),
129
+ 'wpuf_frontend_posting' => apply_filters( 'wpuf_options_frontend_posting', array(
130
+ array(
131
+ 'name' => 'edit_page_id',
132
+ 'label' => __( 'Edit Page', 'wpuf' ),
133
+ 'desc' => __( 'Select the page where <code>[wpuf_edit]</code> is located', 'wpuf' ),
134
+ 'type' => 'select',
135
+ 'options' => $pages
136
+ ),
137
+ array(
138
+ 'name' => 'default_post_owner',
139
+ 'label' => __( 'Default Post Owner', 'wpuf' ),
140
+ 'desc' => __( 'If guest post is enabled and user details are OFF, the posts are assigned to this user', 'wpuf' ),
141
+ 'type' => 'select',
142
+ 'options' => $users,
143
+ 'default' => '1'
144
+ ),
145
+ array(
146
+ 'name' => 'cf_show_front',
147
+ 'label' => __( 'Custom Fields in post', 'wpuf' ),
148
+ 'desc' => __( 'Show custom fields on post content area', 'wpuf' ),
149
+ 'type' => 'checkbox',
150
+ 'default' => 'off'
151
+ ),
152
+ array(
153
+ 'name' => 'insert_photo_size',
154
+ 'label' => __( 'Insert Photo image size', 'wpuf' ),
155
+ 'desc' => __( 'Default image size of "<strong>Insert Photo</strong>" button in post content area', 'wpuf' ),
156
+ 'type' => 'select',
157
+ 'options' => wpuf_get_image_sizes(),
158
+ 'default' => 'thumbnail'
159
+ ),
160
+ array(
161
+ 'name' => 'insert_photo_type',
162
+ 'label' => __( 'Insert Photo image type', 'wpuf' ),
163
+ 'desc' => __( 'Default image type of "<strong>Insert Photo</strong>" button in post content area', 'wpuf' ),
164
+ 'type' => 'select',
165
+ 'options' => array(
166
+ 'image' => __( 'Image only', 'wpuf' ),
167
+ 'link' => __( 'Image with link', 'wpuf' )
168
+ ),
169
+ 'default' => 'link'
170
+ ),
171
+ array(
172
+ 'name' => 'image_caption',
173
+ 'label' => __( 'Enable Image Caption', 'wpuf' ),
174
+ 'desc' => __( 'Allow users to update image/video title, caption and description', 'wpuf' ),
175
+ 'type' => 'checkbox',
176
+ 'default' => 'off'
177
+ ),
178
+ array(
179
+ 'name' => 'default_post_form',
180
+ 'label' => __( 'Default Post Form', 'wpuf' ),
181
+ 'desc' => __( 'Fallback form for post editing if no associated form found', 'wpuf' ),
182
+ 'type' => 'select',
183
+ 'options' => wpuf_get_pages( 'wpuf_forms' )
184
+ ),
185
+ ) ),
186
+ 'wpuf_dashboard' => apply_filters( 'wpuf_options_dashboard', array(
187
+ array(
188
+ 'name' => 'enable_post_edit',
189
+ 'label' => __( 'Users can edit post?', 'wpuf' ),
190
+ 'desc' => __( 'Users will be able to edit their own posts', 'wpuf' ),
191
+ 'type' => 'select',
192
+ 'default' => 'yes',
193
+ 'options' => array(
194
+ 'yes' => __( 'Yes', 'wpuf' ),
195
+ 'no' => __( 'No', 'wpuf' )
196
+ )
197
+ ),
198
+ array(
199
+ 'name' => 'enable_post_del',
200
+ 'label' => __( 'User can delete post?', 'wpuf' ),
201
+ 'desc' => __( 'Users will be able to delete their own posts', 'wpuf' ),
202
+ 'type' => 'select',
203
+ 'default' => 'yes',
204
+ 'options' => array(
205
+ 'yes' => __( 'Yes', 'wpuf' ),
206
+ 'no' => __( 'No', 'wpuf' )
207
+ )
208
+ ),
209
+ array(
210
+ 'name' => 'disable_pending_edit',
211
+ 'label' => __( 'Pending Post Edit', 'wpuf' ),
212
+ 'desc' => __( 'Disable post editing while post in "pending" status', 'wpuf' ),
213
+ 'type' => 'checkbox',
214
+ 'default' => 'on'
215
+ ),
216
+ array(
217
+ 'name' => 'per_page',
218
+ 'label' => __( 'Posts per page', 'wpuf' ),
219
+ 'desc' => __( 'How many posts will be listed in a page', 'wpuf' ),
220
+ 'type' => 'text',
221
+ 'default' => '10'
222
+ ),
223
+ array(
224
+ 'name' => 'show_user_bio',
225
+ 'label' => __( 'Show user bio', 'wpuf' ),
226
+ 'desc' => __( 'Users biographical info will be shown', 'wpuf' ),
227
+ 'type' => 'checkbox',
228
+ 'default' => 'on'
229
+ ),
230
+ array(
231
+ 'name' => 'show_post_count',
232
+ 'label' => __( 'Show post count', 'wpuf' ),
233
+ 'desc' => __( 'Show how many posts are created by the user', 'wpuf' ),
234
+ 'type' => 'checkbox',
235
+ 'default' => 'on'
236
+ ),
237
+ array(
238
+ 'name' => 'show_ft_image',
239
+ 'label' => __( 'Show Featured Image', 'wpuf' ),
240
+ 'desc' => __( 'Show featured image of the post (Overridden by Shortcode)', 'wpuf' ),
241
+ 'type' => 'checkbox'
242
+ ),
243
+ array(
244
+ 'name' => 'ft_img_size',
245
+ 'label' => __( 'Featured Image size', 'wpuf' ),
246
+ 'type' => 'select',
247
+ 'options' => wpuf_get_image_sizes()
248
+ ),
249
+ array(
250
+ 'name' => 'un_auth_msg',
251
+ 'label' => __( 'Unauthorized Message', 'wpuf' ),
252
+ 'desc' => __( 'Not logged in users will see this message', 'wpuf' ),
253
+ 'type' => 'textarea'
254
+ ),
255
+ ) ),
256
+ 'wpuf_my_account' => apply_filters( 'wpuf_options_wpuf_my_account', array(
257
+ array(
258
+ 'name' => 'show_subscriptions',
259
+ 'label' => __( 'Show Subscriptions', 'wpuf' ),
260
+ 'desc' => __( 'Show Subscriptions tab in "my account" page where <code>[wpuf_account]</code> is located', 'wpuf' ),
261
+ 'type' => 'select',
262
+ 'default' => 'yes',
263
+ 'options' => array(
264
+ 'yes' => __( 'Yes', 'wpuf' ),
265
+ 'no' => __( 'No', 'wpuf' )
266
+ )
267
+ ),
268
+ ) ),
269
+ 'wpuf_profile' => apply_filters( 'wpuf_options_profile', array(
270
+ array(
271
+ 'name' => 'autologin_after_registration',
272
+ 'label' => __( 'Auto Login After Registration', 'wpuf' ),
273
+ 'desc' => __( 'If enabled, users after registration will be logged in to the system', 'wpuf' ),
274
+ 'type' => 'checkbox',
275
+ 'default' => 'on'
276
+ ),
277
+ array(
278
+ 'name' => 'register_link_override',
279
+ 'label' => __( 'Login/Registration override', 'wpuf' ),
280
+ 'desc' => __( 'If enabled, default login and registration forms will be overridden by WPUF with pages below', 'wpuf' ),
281
+ 'type' => 'checkbox',
282
+ 'default' => 'on'
283
+ ),
284
+ array(
285
+ 'name' => 'reg_override_page',
286
+ 'label' => __( 'Registration Page', 'wpuf' ),
287
+ 'desc' => __( 'Select the page you want to use as registration page override <em>(should have shortcode)</em>', 'wpuf' ),
288
+ 'type' => 'select',
289
+ 'options' => $pages
290
+ ),
291
+ array(
292
+ 'name' => 'login_page',
293
+ 'label' => __( 'Login Page', 'wpuf' ),
294
+ 'desc' => __( 'Select the page which contains <code>[wpuf-login]</code> shortcode', 'wpuf' ),
295
+ 'type' => 'select',
296
+ 'options' => $pages
297
+ ),
298
+ array(
299
+ 'name' => 'redirect_after_login_page',
300
+ 'label' => __( 'Redirect After Login', 'wpuf' ),
301
+ 'desc' => __( 'After successfull login, where the page will redirect to', 'wpuf' ),
302
+ 'type' => 'select',
303
+ 'options' => $pages
304
+ ),
305
+ array(
306
+ 'name' => 'wp_default_login_redirect',
307
+ 'label' => __( 'Default Login Redirect', 'wpuf' ),
308
+ 'desc' => __( 'If enabled, users who login using WordPress default login form will be redirected to the selected page.', 'wpuf' ),
309
+ 'type' => 'checkbox',
310
+ 'default' => 'off'
311
+ ),
312
+ ) ),
313
+ 'wpuf_payment' => apply_filters( 'wpuf_options_payment', array(
314
+ array(
315
+ 'name' => 'enable_payment',
316
+ 'label' => __( 'Enable Payments', 'wpuf' ),
317
+ 'desc' => __( 'Enable payments on your site.', 'wpuf' ),
318
+ 'type' => 'checkbox',
319
+ 'default' => 'on',
320
+ ),
321
+ array(
322
+ 'name' => 'subscription_page',
323
+ 'label' => __( 'Subscription Pack Page', 'wpuf' ),
324
+ 'desc' => __( 'Select the page where <code>[wpuf_sub_pack]</code> located.', 'wpuf' ),
325
+ 'type' => 'select',
326
+ 'options' => $pages
327
+ ),
328
+ array(
329
+ 'name' => 'register_subscription',
330
+ 'label' => __( 'Subscription at registration', 'wpuf' ),
331
+ 'desc' => __( 'Registration time redirect to subscription page', 'wpuf' ),
332
+ 'type' => 'checkbox',
333
+ ),
334
+ array(
335
+ 'name' => 'currency',
336
+ 'label' => __( 'Currency', 'wpuf' ),
337
+ 'type' => 'select',
338
+ 'default' => 'USD',
339
+ 'options' => $currencies
340
+ ),
341
+ array(
342
+ 'name' => 'currency_position',
343
+ 'label' => __( 'Currency Position', 'wpuf' ),
344
+ 'type' => 'select',
345
+ 'default' => 'left',
346
+ 'options' => array(
347
+ 'left' => sprintf( '%1$s (%2$s99.99)', __( 'Left', 'wpuf' ), $default_currency_symbol ),
348
+ 'right' => sprintf( '%1$s (99.99%2$s)', __( 'Right', 'wpuf' ), $default_currency_symbol ),
349
+ 'left_space' => sprintf( '%1$s (%2$s 99.99)', __( 'Left with space', 'wpuf' ), $default_currency_symbol ),
350
+ 'right_space' => sprintf( '%1$s (99.99 %2$s)', __( 'Right with space', 'wpuf' ), $default_currency_symbol ),
351
+ )
352
+ ),
353
+ array(
354
+ 'name' => 'wpuf_price_thousand_sep',
355
+ 'label' => __( 'Thousand Separator', 'wpuf' ),
356
+ 'desc' => __( 'This sets the thousand separator of displayed prices.', 'wpuf' ),
357
+ 'css' => 'width:50px;',
358
+ 'default' => ',',
359
+ 'type' => 'text',
360
+ 'desc_tip' => true,
361
+ ),
362
+ array(
363
+ 'name' => 'wpuf_price_decimal_sep',
364
+ 'label' => __( 'Decimal Separator', 'wpuf' ),
365
+ 'desc' => __( 'This sets the decimal separator of displayed prices.', 'wpuf' ),
366
+ 'default' => '.',
367
+ 'type' => 'text',
368
+ ),
369
+
370
+ array(
371
+ 'name' => 'wpuf_price_num_decimals',
372
+ 'label' => __( 'Number of Decimals', 'wpuf' ),
373
+ 'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'wpuf' ),
374
+ 'default' => '2',
375
+ 'type' => 'number',
376
+ 'custom_attributes' => array(
377
+ 'min' => 0,
378
+ 'step' => 1
379
+ )
380
+ ),
381
+ array(
382
+ 'name' => 'sandbox_mode',
383
+ 'label' => __( 'Enable demo/sandbox mode', 'wpuf' ),
384
+ 'desc' => __( 'When sandbox mode is active, all payment gateway will be used in demo mode', 'wpuf' ),
385
+ 'type' => 'checkbox',
386
+ 'default' => 'on'
387
+ ),
388
+ array(
389
+ 'name' => 'payment_page',
390
+ 'label' => __( 'Payment Page', 'wpuf' ),
391
+ 'desc' => __( 'This page will be used to process payment options', 'wpuf' ),
392
+ 'type' => 'select',
393
+ 'options' => $pages
394
+ ),
395
+ array(
396
+ 'name' => 'payment_success',
397
+ 'label' => __( 'Payment Success Page', 'wpuf' ),
398
+ 'desc' => __( 'After payment users will be redirected here', 'wpuf' ),
399
+ 'type' => 'select',
400
+ 'options' => $pages
401
+ ),
402
+ array(
403
+ 'name' => 'active_gateways',
404
+ 'label' => __( 'Payment Gateways', 'wpuf' ),
405
+ 'desc' => __( 'Active payment gateways', 'wpuf' ),
406
+ 'type' => 'multicheck',
407
+ 'options' => wpuf_get_gateways()
408
+ )
409
+ ) ),
410
+ 'wpuf_mails' => apply_filters( 'wpuf_mail_options', array(
411
+ array(
412
+ 'name' => 'guest_email_setting',
413
+ 'label' => __( '<span class="dashicons dashicons-universal-access-alt"></span> Guest Email', 'wpuf' ),
414
+ 'type' => 'html',
415
+ 'class' => 'guest-email-setting',
416
+ ),
417
+ array(
418
+ 'name' => 'guest_email_subject',
419
+ 'label' => __( 'Guest mail subject', 'wpuf' ),
420
+ 'desc' => __( 'This sets the subject of the emails sent to guest users', 'wpuf' ),
421
+ 'default' => 'Please Confirm Your Email to Get the Post Published!',
422
+ 'type' => 'text',
423
+ 'class' => 'guest-email-setting-option',
424
+ ),
425
+ array(
426
+ 'name' => 'guest_email_body',
427
+ 'label' => __( 'Guest mail body', 'wpuf' ),
428
+ 'desc' => __( "This sets the body of the emails sent to guest users. Please DON'T edit the <code>{activation_link}</code> part, you can use {sitename} too.", 'wpuf' ),
429
+ 'default' => "Hey There, \r\n\r\nWe just received your guest post and now we want you to confirm your email so that we can verify the content and move on to the publishing process.\r\n\r\nPlease click the link below to verify: \r\n\r\n{activation_link}\r\n\r\nRegards,\r\n{sitename}",
430
+ 'type' => 'wysiwyg',
431
+ 'class' => 'guest-email-setting-option',
432
+ ),
433
+ ) )
434
+ );
435
+
436
+ return apply_filters( 'wpuf_settings_fields', $settings_fields );
437
+ }
438
+
439
+ function wpuf_settings_field_profile( $form ) {
440
+ $user_roles = wpuf_get_user_roles();
441
+ $forms = get_posts( array(
442
+ 'numberposts' => -1,
443
+ 'post_type' => 'wpuf_profile'
444
+ ) );
445
+
446
+ $val = get_option( 'wpuf_profile', array() );
447
+
448
+ if ( class_exists('WP_User_Frontend_Pro') ) {
449
+ ?>
450
+
451
+ <p style="padding-left: 10px; font-style: italic; font-size: 13px;">
452
+ <strong><?php _e( 'Select profile/registration forms for user roles. These forms will be used to populate extra edit profile fields in backend.', 'wpuf' ); ?></strong>
453
+ </p>
454
+ <table class="form-table">
455
+ <?php
456
+ foreach ($user_roles as $role => $name) {
457
+ $current = isset( $val['roles'][$role] ) ? $val['roles'][$role] : '';
458
+ ?>
459
+ <tr valign="top">
460
+ <th scrope="row"><?php echo $name; ?></th>
461
+ <td>
462
+ <select name="wpuf_profile[roles][<?php echo $role; ?>]">
463
+ <option value=""><?php _e( ' - select - ', 'wpuf' ); ?></option>
464
+ <?php foreach ($forms as $form) { ?>
465
+ <option value="<?php echo $form->ID; ?>"<?php selected( $current, $form->ID ); ?>><?php echo $form->post_title; ?></option>
466
+ <?php } ?>
467
+ </select>
468
+ </td>
469
+ </tr>
470
+ <?php } ?>
471
+ </table>
472
+ <?php
473
+ }
474
+ }
475
+
476
+ add_action( 'wsa_form_bottom_wpuf_profile', 'wpuf_settings_field_profile' );
admin/subscribers.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $option = 'per_page';
3
+ $args = array(
4
+ 'label' => __( 'Number of subscribers per page:', 'wpuf' ),
5
+ 'default' => 20,
6
+ 'option' => 'subscribers_per_page'
7
+ );
8
+
9
+ add_screen_option( $option, $args );
10
+
11
+ if ( ! class_exists( 'WPUF_List_Table_Subscribers' ) ) {
12
+ require_once WPUF_ROOT . '/includes/class-list-table-subscribers.php';
13
+ }
14
+
15
+ $this->subscribers_list_table_obj = new WPUF_List_Table_Subscribers();
16
+ ?>
17
+ <div class="wrap">
18
+ <h2><?php _e( 'Subscribers', 'wpuf' ); ?></h2>
19
+
20
+ <form method="post">
21
+ <input type="hidden" name="page" value="subscribers">
22
+ <?php
23
+ $this->subscribers_list_table_obj->prepare_items();
24
+ $this->subscribers_list_table_obj->get_views();
25
+ $this->subscribers_list_table_obj->display();
26
+ ?>
27
+ </form>
28
+ </div>
29
+
30
+ <script type="text/javascript">
31
+ jQuery(function($) {
32
+ $('.toplevel_page_wp-user-frontend').each(function(index, el) {
33
+ $(el).removeClass('wp-not-current-submenu').addClass('wp-has-current-submenu wp-menu-open');
34
+ });
35
+ });
36
+ </script>
admin/template-post.php ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Post related form templates
4
+ *
5
+ * @package WP User Frontend
6
+ */
7
+ class WPUF_Admin_Template_Post extends WPUF_Admin_Template {
8
+
9
+ public static function post_title( $field_id, $label, $values = array() ) {
10
+
11
+ ?>
12
+ <li class="post_title">
13
+ <?php self::legend( $label, $values, $field_id ); ?>
14
+ <?php self::hidden_field( "[$field_id][input_type]", 'text' ); ?>
15
+ <?php self::hidden_field( "[$field_id][template]", 'post_title' ); ?>
16
+
17
+ <div class="wpuf-form-holder">
18
+ <?php self::common( $field_id, 'post_title', false, $values ); ?>
19
+ <?php self::common_text( $field_id, $values ); ?>
20
+ <?php self::conditional_field( $field_id, $values ); ?>
21
+ </div> <!-- .wpuf-form-holder -->
22
+ </li>
23
+ <?php
24
+ }
25
+
26
+ public static function post_content( $field_id, $label, $values = array() ) {
27
+
28
+ $image_insert_name = sprintf( '%s[%d][insert_image]', self::$input_name, $field_id );
29
+ $image_insert_value = isset( $values['insert_image'] ) ? $values['insert_image'] : 'yes';
30
+ ?>
31
+ <li class="post_content">
32
+ <?php self::legend( $label, $values, $field_id ); ?>
33
+ <?php self::hidden_field( "[$field_id][input_type]", 'textarea' ); ?>
34
+ <?php self::hidden_field( "[$field_id][template]", 'post_content' ); ?>
35
+
36
+ <div class="wpuf-form-holder">
37
+ <?php self::common( $field_id, 'post_content', false, $values ); ?>
38
+ <?php self::common_textarea( $field_id, $values ); ?>
39
+
40
+ <div class="wpuf-form-rows">
41
+ <label><?php _e( 'Enable Image Insertion', 'wpuf' ); ?></label>
42
+
43
+ <div class="wpuf-form-sub-fields">
44
+ <label>
45
+ <?php self::hidden_field( "[$field_id][insert_image]", 'no' ); ?>
46
+ <input type="checkbox" name="<?php echo $image_insert_name ?>" value="yes"<?php checked( $image_insert_value, 'yes' ); ?> />
47
+ <?php _e( 'Enable image upload in post area', 'wpuf' ); ?>
48
+ </label>
49
+ </div>
50
+ </div> <!-- .wpuf-form-rows -->
51
+
52
+ <?php self::conditional_field( $field_id, $values ); ?>
53
+ </div> <!-- .wpuf-form-holder -->
54
+ </li>
55
+ <?php
56
+ }
57
+
58
+ public static function post_excerpt( $field_id, $label, $values = array() ) {
59
+ ?>
60
+ <li class="post_excerpt">
61
+ <?php self::legend( $label, $values, $field_id ); ?>
62
+ <?php self::hidden_field( "[$field_id][input_type]", 'textarea' ); ?>
63
+ <?php self::hidden_field( "[$field_id][template]", 'post_excerpt' ); ?>
64
+
65
+ <div class="wpuf-form-holder">
66
+ <?php self::common( $field_id, 'post_excerpt', false, $values ); ?>
67
+ <?php self::common_textarea( $field_id, $values ); ?>
68
+ <?php self::conditional_field( $field_id, $values ); ?>
69
+ </div> <!-- .wpuf-form-holder -->
70
+ </li>
71
+ <?php
72
+ }
73
+
74
+ public static function post_tags( $field_id, $label, $values = array() ) {
75
+ ?>
76
+ <li class="post_tags">
77
+ <?php self::legend( $label, $values, $field_id ); ?>
78
+ <?php self::hidden_field( "[$field_id][input_type]", 'text' ); ?>
79
+ <?php self::hidden_field( "[$field_id][template]", 'post_tags' ); ?>
80
+
81
+ <div class="wpuf-form-holder">
82
+ <?php self::common( $field_id, 'tags', false, $values ); ?>
83
+ <?php self::common_text( $field_id, $values ); ?>
84
+ <?php self::conditional_field( $field_id, $values ); ?>
85
+ </div> <!-- .wpuf-form-holder -->
86
+ </li>
87
+ <?php
88
+ }
89
+
90
+ public static function featured_image( $field_id, $label, $values = array() ) {
91
+ $max_file_name = sprintf( '%s[%d][max_size]', self::$input_name, $field_id );
92
+ $max_file_value = $values ? $values['max_size'] : '1024';
93
+ $help = esc_attr( __( 'Enter maximum upload size limit in KB', 'wpuf' ) );
94
+ ?>
95
+ <li class="featured_image">
96
+ <?php self::legend( $label, $values, $field_id ); ?>
97
+ <?php self::hidden_field( "[$field_id][input_type]", 'image_upload' ); ?>
98
+ <?php self::hidden_field( "[$field_id][template]", 'featured_image' ); ?>
99
+ <?php self::hidden_field( "[$field_id][count]", '1' ); ?>
100
+
101
+ <div class="wpuf-form-holder">
102
+ <?php self::common( $field_id, 'featured_image', false, $values ); ?>
103
+
104
+ <div class="wpuf-form-rows">
105
+ <label><?php _e( 'Max. file size', 'wpuf' ); ?></label>
106
+ <input type="text" class="smallipopInput" name="<?php echo $max_file_name; ?>" value="<?php echo $max_file_value; ?>" title="<?php echo $help; ?>">
107
+ </div> <!-- .wpuf-form-rows -->
108
+ <?php self::conditional_field( $field_id, $values ); ?>
109
+ </div> <!-- .wpuf-form-holder -->
110
+ </li>
111
+ <?php
112
+ }
113
+
114
+ public static function post_category( $field_id, $label, $values = array() ) {
115
+ ?>
116
+ <li class="post_category">
117
+ <?php self::legend( $label, $values, $field_id ); ?>
118
+ <?php self::hidden_field( "[$field_id][template]", 'post_category' ); ?>
119
+
120
+ <div class="wpuf-form-holder">
121
+ <?php self::common( $field_id, 'category', false, $values ); ?>
122
+ <?php self::conditional_field( $field_id, $values ); ?>
123
+ </div> <!-- .wpuf-form-holder -->
124
+ </li>
125
+ <?php
126
+ }
127
+
128
+ public static function taxonomy( $field_id, $label, $taxonomy = '', $values = array() ) {
129
+ $type_name = sprintf( '%s[%d][type]', self::$input_name, $field_id );
130
+ $order_name = sprintf( '%s[%d][order]', self::$input_name, $field_id );
131
+ $orderby_name = sprintf( '%s[%d][orderby]', self::$input_name, $field_id );
132
+ $exclude_type_name = sprintf( '%s[%d][exclude_type]', self::$input_name, $field_id );
133
+ $exclude_name = sprintf( '%s[%d][exclude]', self::$input_name, $field_id );
134
+ $woo_attr_name = sprintf( '%s[%d][woo_attr]', self::$input_name, $field_id );
135
+ $woo_attr_vis_name = sprintf( '%s[%d][woo_attr_vis]', self::$input_name, $field_id );
136
+
137
+ $type_value = $values ? esc_attr( $values['type'] ) : 'select';
138
+ $order_value = $values ? esc_attr( $values['order'] ) : 'ASC';
139
+ $orderby_value = $values ? esc_attr( $values['orderby'] ) : 'name';
140
+ $exclude_type_value = $values ? esc_attr( $values['exclude_type'] ) : 'exclude';
141
+ $exclude_value = $values ? esc_attr( $values['exclude'] ) : '';
142
+ $woo_attr_value = $values ? esc_attr( $values['woo_attr'] ) : 'no';
143
+ $woo_attr_vis_value = $values ? esc_attr( $values['woo_attr_vis'] ) : 'no';
144
+ ?>
145
+ <li class="taxonomy <?php echo $taxonomy; ?> wpuf-conditional">
146
+ <?php self::legend( $label, $values, $field_id ); ?>
147
+ <?php self::hidden_field( "[$field_id][input_type]", 'taxonomy' ); ?>
148
+ <?php self::hidden_field( "[$field_id][template]", 'taxonomy' ); ?>
149
+
150
+ <div class="wpuf-form-holder">
151
+ <?php self::common( $field_id, $taxonomy, false, $values ); ?>
152
+
153
+ <div class="wpuf-form-rows">
154
+ <label><?php _e( 'Type', 'wpuf' ); ?></label>
155
+ <select name="<?php echo $type_name ?>">
156
+ <option value="select"<?php selected( $type_value, 'select' ); ?>><?php _e( 'Dropdown', 'wpuf' ); ?></option>
157
+ <option value="multiselect"<?php selected( $type_value, 'multiselect' ); ?>><?php _e( 'Multi Select', 'wpuf' ); ?></option>
158
+ <option value="checkbox"<?php selected( $type_value, 'checkbox' ); ?>><?php _e( 'Checkbox', 'wpuf' ); ?></option>
159
+ <option value="text"<?php selected( $type_value, 'text' ); ?>><?php _e( 'Text Input', 'wpuf' ); ?></option>
160
+ <option value="ajax"<?php selected( $type_value, 'ajax' ); ?>><?php _e( 'Ajax', 'wpuf' ); ?></option>
161
+ </select>
162
+ </div> <!-- .wpuf-form-rows -->
163
+
164
+ <div class="wpuf-form-rows">
165
+ <label><?php _e( 'Order By', 'wpuf' ); ?></label>
166
+ <select name="<?php echo $orderby_name ?>">
167
+ <option value="name"<?php selected( $orderby_value, 'name' ); ?>><?php _e( 'Name', 'wpuf' ); ?></option>
168
+ <option value="id"<?php selected( $orderby_value, 'id' ); ?>><?php _e( 'Term ID', 'wpuf' ); ?></option>
169
+ <option value="slug"<?php selected( $orderby_value, 'slug' ); ?>><?php _e( 'Slug', 'wpuf' ); ?></option>
170
+ <option value="count"<?php selected( $orderby_value, 'count' ); ?>><?php _e( 'Count', 'wpuf' ); ?></option>
171
+ <option value="term_group"<?php selected( $orderby_value, 'term_group' ); ?>><?php _e( 'Term Group', 'wpuf' ); ?></option>
172
+ </select>
173
+ </div> <!-- .wpuf-form-rows -->
174
+
175
+ <div class="wpuf-form-rows">
176
+ <label><?php _e( 'Order', 'wpuf' ); ?></label>
177
+ <select name="<?php echo $order_name ?>">
178
+ <option value="ASC"<?php selected( $order_value, 'ASC' ); ?>><?php _e( 'ASC', 'wpuf' ); ?></option>
179
+ <option value="DESC"<?php selected( $order_value, 'DESC' ); ?>><?php _e( 'DESC', 'wpuf' ); ?></option>
180
+ </select>
181
+ </div> <!-- .wpuf-form-rows -->
182
+
183
+ <div class="wpuf-form-rows">
184
+ <label><?php _e( 'Selection Type', 'wpuf' ); ?></label>
185
+ <select name="<?php echo $exclude_type_name ?>">
186
+ <option value="exclude"<?php selected( $exclude_type_value, 'exclude' ); ?>><?php _e( 'Exclude', 'wpuf' ); ?></option>
187
+ <option value="include"<?php selected( $exclude_type_value, 'include' ); ?>><?php _e( 'Include', 'wpuf' ); ?></option>
188
+ <option value="child_of"<?php selected( $exclude_type_value, 'child_of' ); ?>><?php _e( 'Child of', 'wpuf' ); ?></option>
189
+ </select>
190
+ </div> <!-- .wpuf-form-rows -->
191
+
192
+ <div class="wpuf-form-rows">
193
+ <label><?php _e( 'Selection terms', 'wpuf' ); ?></label>
194
+ <input type="text" class="smallipopInput" name="<?php echo $exclude_name; ?>" title="<?php _e( 'Enter the term IDs as comma separated (without space) to exclude/include in the form.', 'wpuf' ); ?>" value="<?php echo $exclude_value; ?>" />
195
+ </div> <!-- .wpuf-form-rows -->
196
+
197
+ <div class="wpuf-form-rows">
198
+ <label><?php _e( 'WooCommerce Attribute', 'wpuf' ); ?></label>
199
+
200
+ <div class="wpuf-form-sub-fields">
201
+ <label>
202
+ <?php self::hidden_field( "[$field_id][woo_attr]", 'no' ); ?>
203
+ <input type="checkbox" class="woo_attr" name="<?php echo $woo_attr_name ?>" value="yes"<?php checked( $woo_attr_value, 'yes' ); ?> />
204
+ <?php _e( 'This taxonomy is a WooCommerce attribute', 'wpuf' ); ?>
205
+ </label>
206
+ </div>
207
+ </div> <!-- .wpuf-form-rows -->
208
+
209
+ <div class="wpuf-form-rows<?php echo $woo_attr_value == 'no' ? ' wpuf-hide' : ''; ?>">
210
+ <label><?php _e( 'Visibility', 'wpuf' ); ?></label>
211
+
212
+ <div class="wpuf-form-sub-fields">
213
+ <label>
214
+ <?php self::hidden_field( "[$field_id][woo_attr_vis]", 'no' ); ?>
215
+ <input type="checkbox" name="<?php echo $woo_attr_vis_name ?>" value="yes"<?php checked( $woo_attr_vis_value, 'yes' ); ?> />
216
+ <?php _e( 'Visible on product page', 'wpuf' ); ?>
217
+ </label>
218
+ </div>
219
+ </div> <!-- .wpuf-form-rows -->
220
+
221
+ <?php self::conditional_field( $field_id, $values ); ?>
222
+ <div class="wpuf-options">
223
+ <?php
224
+
225
+ $tax = get_terms( $taxonomy, array(
226
+ 'orderby' => 'count',
227
+ 'hide_empty' => 0
228
+ ) );
229
+
230
+ $tax = is_array( $tax ) ? $tax : array();
231
+
232
+ foreach($tax as $tax_obj) {
233
+ ?>
234
+ <div>
235
+ <input type="hidden" value="<?php echo $tax_obj->name;?>" data-taxonomy="yes" data-term-id="<?php echo $tax_obj->term_id;?>" data-type="option">
236
+ <input type="hidden" value="<?php echo $tax_obj->term_id;?>" data-taxonomy="yes" data-term-id="<?php echo $tax_obj->term_id;?>" data-type="option_value">
237
+ </div>
238
+ <?php
239
+ }
240
+ ?>
241
+ </div>
242
+ </div> <!-- .wpuf-form-holder -->
243
+ </li>
244
+ <?php
245
+ }
246
+
247
+
248
+ /**
249
+ * Drop Down portion
250
+ * @param array $param
251
+ */
252
+ public static function render_drop_down_portion( $param = array( 'names_to_hide' => array( 'name' => '', 'value' => '' ),'names_to_show' => array( 'name' => '', 'value' => '' ),'option_to_chose' => array('name' => '', 'value' => '' ) ) ) {
253
+ empty( $param['option_to_chose']['value'] ) ? ( $param['option_to_chose']['value'] = 'all' ) : '';
254
+
255
+ ?>
256
+ <div class="wpuf-form-rows">
257
+ <label><input type="radio" name="<?php echo $param['option_to_chose']['name'] ?>" value="<?php echo _e('all','wpuf'); ?>" <?php echo ( ( $param['option_to_chose']['value'] == 'all' )?'checked':'' ); ?> /><?php _e( 'Show All', 'wpuf' ); ?></label>
258
+ </div>
259
+ <div class="wpuf-form-rows">
260
+ <label><input type="radio" name="<?php echo $param['option_to_chose']['name'] ?>" value="<?php echo _e('hide','wpuf'); ?>" <?php echo ( ( $param['option_to_chose']['value'] == 'hide' )?'checked':'' ); ?> /><?php _e( 'Hide These Countries', 'wpuf' ); ?></label>
261
+ <select name="<?php echo $param['names_to_hide']['name'];?>" class="wpuf-country_to_hide" multiple data-placeholder="<?php esc_attr_e( 'Chose Country to hide from List', 'wpuf' ); ?>"></select>
262
+ </div>
263
+
264
+ <div class="wpuf-form-rows">
265
+ <label><input type="radio" name="<?php echo $param['option_to_chose']['name'] ?>" value="<?php echo _e('show','wpuf'); ?>" <?php echo ( ( $param['option_to_chose']['value'] == 'show' )?'checked':'' ); ?> /><?php _e( 'Show These Countries', 'wpuf' ); ?></label>
266
+ <select name="<?php echo $param['names_to_show']['name'];?>" class="wpuf-country_to_hide" multiple data-placeholder="<?php esc_attr_e( 'Add Country to List', 'wpuf' ); ?>"></select>
267
+ </div>
268
+
269
+ <script>
270
+ (function($){
271
+ $(document).ready(function(){
272
+ var hide_field_name = '<?php echo $param['names_to_hide']['name'];?>';
273
+ var hide_field_value = JSON.parse('<?php echo json_encode($param['names_to_hide']['value']);?>');
274
+ var show_field_name = '<?php echo $param['names_to_show']['name'];?>';
275
+ var show_field_value = JSON.parse('<?php echo json_encode($param['names_to_show']['value']);?>');
276
+ var countries = <?php echo wpuf_get_countries( 'json' ); ?>;
277
+ var hide_field_option_string = '';
278
+ var show_field_option_string = '';
279
+
280
+ for(country in countries){
281
+ hide_field_option_string = hide_field_option_string + '<option value="'+ countries[country].code +'" '+ (( $.inArray(countries[country].code,hide_field_value) != -1 )?'selected':'') +'>'+ countries[country].name +'</option>';
282
+ show_field_option_string = show_field_option_string + '<option value="'+ countries[country].code +'" '+ (( $.inArray(countries[country].code,show_field_value) != -1 )?'selected':'') +'>'+ countries[country].name +'</option>';
283
+ }
284
+
285
+ jQuery('select[name="'+ hide_field_name +'"]').html(hide_field_option_string);
286
+ jQuery('select[name="'+ show_field_name +'"]').html(show_field_option_string);
287
+ jQuery('select[name="'+ hide_field_name +'"],select[name="'+ show_field_name +'"]').chosen({allow_single_deselect:true});
288
+ })
289
+
290
+ }(jQuery))
291
+
292
+ </script>
293
+ <?php
294
+ }
295
+
296
+ }
admin/template.php ADDED
@@ -0,0 +1,713 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * WPUF Form builder template
5
+ *
6
+ * @package WP User Frontend
7
+ * @author Tareq Hasan <tareq@wedevs.com>
8
+ */
9
+ class WPUF_Admin_Template {
10
+
11
+ static $input_name = 'wpuf_input';
12
+ static $cond_name = 'wpuf_cond';
13
+
14
+ /**
15
+ * Legend of a form item
16
+ *
17
+ * @param string $title
18
+ * @param array $values
19
+ */
20
+ public static function legend( $title = 'Field Name', $values = array(), $field_id = 0 ) {
21
+
22
+ $field_label = $values ? ': <strong>' . $values['label'] . '</strong>' : '';
23
+ $id = isset( $values['id'] ) ? $values['id'] : '';
24
+ ?>
25
+ <div class="wpuf-legend" title="<?php _e( 'Click and Drag to rearrange', 'wpuf' ); ?>">
26
+ <input type="hidden" value="<?php echo $id; ?>" name="wpuf_input[<?php echo $field_id; ?>][id]">
27
+ <div class="wpuf-label"><?php echo $title . $field_label; ?></div>
28
+ <div class="wpuf-actions">
29
+ <a href="#" class="wpuf-remove"><?php _e( 'Remove', 'wpuf' ); ?></a>
30
+ <a href="#" class="wpuf-toggle"><?php _e( 'Toggle', 'wpuf' ); ?></a>
31
+ </div>
32
+ </div> <!-- .wpuf-legend -->
33
+ <?php
34
+ }
35
+
36
+ /**
37
+ * Common Fields for a input field
38
+ *
39
+ * Contains required, label, meta_key, help text, css class name
40
+ *
41
+ * @param int $id field order
42
+ * @param mixed $field_name_value
43
+ * @param bool $custom_field if it a custom field or not
44
+ * @param array $values saved value
45
+ */
46
+ public static function common( $id, $field_name_value = '', $custom_field = true, $values = array() ) {
47
+
48
+ $tpl = '%s[%d][%s]';
49
+ $required_name = sprintf( $tpl, self::$input_name, $id, 'required' );
50
+ $field_name = sprintf( $tpl, self::$input_name, $id, 'name' );
51
+ $label_name = sprintf( $tpl, self::$input_name, $id, 'label' );
52
+ $is_meta_name = sprintf( $tpl, self::$input_name, $id, 'is_meta' );
53
+ $help_name = sprintf( $tpl, self::$input_name, $id, 'help' );
54
+ $css_name = sprintf( $tpl, self::$input_name, $id, 'css' );
55
+
56
+ // $field_name_value = $field_name_value ?
57
+ $required = $values ? esc_attr( $values['required'] ) : 'yes';
58
+ $label_value = $values ? esc_attr( $values['label'] ) : '';
59
+ $help_value = $values ? stripslashes( $values['help'] ) : '';
60
+ $css_value = $values ? esc_attr( $values['css'] ) : '';
61
+
62
+ if ( $custom_field && $values ) {
63
+ $field_name_value = $values['name'];
64
+ }
65
+ ?>
66
+ <div class="wpuf-form-rows required-field">
67
+ <label><?php _e( 'Required', 'wpuf' ); ?></label>
68
+
69
+ <div class="wpuf-form-sub-fields">
70
+ <label><input type="radio" name="<?php echo $required_name; ?>" value="yes"<?php checked( $required, 'yes' ); ?>> <?php _e( 'Yes', 'wpuf' ); ?> </label>
71
+ <label><input type="radio" name="<?php echo $required_name; ?>" value="no"<?php checked( $required, 'no' ); ?>> <?php _e( 'No', 'wpuf' ); ?> </label>
72
+ </div>
73
+ </div> <!-- .wpuf-form-rows -->
74
+
75
+ <div class="wpuf-form-rows">
76
+ <label><?php _e( 'Field Label', 'wpuf' ); ?></label>
77
+ <input type="text" data-type="label" name="<?php echo $label_name; ?>" value="<?php echo $label_value; ?>" class="smallipopInput" title="<?php _e( 'Enter a title of this field', 'wpuf' ); ?>">
78
+ </div> <!-- .wpuf-form-rows -->
79
+
80
+ <?php if ( $custom_field ) { ?>
81
+ <div class="wpuf-form-rows">
82
+ <label><?php _e( 'Meta Key', 'wpuf' ); ?></label>
83
+ <input type="text" data-type="name" name="<?php echo $field_name; ?>" value="<?php echo $field_name_value; ?>" class="smallipopInput" title="<?php _e( 'Name of the meta key this field will save to', 'wpuf' ); ?>">
84
+ <input type="hidden" name="<?php echo $is_meta_name; ?>" value="yes">
85
+ </div> <!-- .wpuf-form-rows -->
86
+ <?php } else { ?>
87
+
88
+ <input type="hidden" data-type="name" name="<?php echo $field_name; ?>" value="<?php echo $field_name_value; ?>">
89
+ <input type="hidden" name="<?php echo $is_meta_name; ?>" value="no">
90
+
91
+ <?php } ?>
92
+
93
+ <div class="wpuf-form-rows">
94
+ <label><?php _e( 'Help text', 'wpuf' ); ?></label>
95
+ <textarea name="<?php echo $help_name; ?>" class="smallipopInput" title="<?php _e( 'Give the user some information about this field', 'wpuf' ); ?>"><?php echo $help_value; ?></textarea>
96
+ </div> <!-- .wpuf-form-rows -->
97
+
98
+ <div class="wpuf-form-rows">
99
+ <label><?php _e( 'CSS Class Name', 'wpuf' ); ?></label>
100
+ <input type="text" name="<?php echo $css_name; ?>" value="<?php echo $css_value; ?>" class="smallipopInput" title="<?php _e( 'Add a CSS class name for this field', 'wpuf' ); ?>">
101
+ </div> <!-- .wpuf-form-rows -->
102
+
103
+ <?php
104
+ }
105
+
106
+ /**
107
+ * Common fields for a text area
108
+ *
109
+ * @param int $id
110
+ * @param array $values
111
+ */
112
+ public static function common_text( $id, $values = array() ) {
113
+ $tpl = '%s[%d][%s]';
114
+ $placeholder_name = sprintf( $tpl, self::$input_name, $id, 'placeholder' );
115
+ $default_name = sprintf( $tpl, self::$input_name, $id, 'default' );
116
+ $size_name = sprintf( $tpl, self::$input_name, $id, 'size' );
117
+ $word_restriction_name = sprintf( $tpl, self::$input_name, $id, 'word_restriction' );
118
+
119
+ $placeholder_value = $values ? esc_attr( $values['placeholder'] ) : '';
120
+ $default_value = $values ? esc_attr( $values['default'] ) : '';
121
+ $size_value = $values ? esc_attr( $values['size'] ) : '40';
122
+ $word_restriction_value = $values ? esc_attr( $values['word_restriction'] ) : '';
123
+
124
+ ?>
125
+ <div class="wpuf-form-rows">
126
+ <label><?php _e( 'Placeholder text', 'wpuf' ); ?></label>
127
+ <input type="text" class="smallipopInput" name="<?php echo $placeholder_name; ?>" title="<?php esc_attr_e( 'Text for HTML5 placeholder attribute', 'wpuf' ); ?>" value="<?php echo $placeholder_value; ?>" />
128
+ </div> <!-- .wpuf-form-rows -->
129
+
130
+ <div class="wpuf-form-rows">
131
+ <label><?php _e( 'Default value', 'wpuf' ); ?></label>
132
+ <input type="text" class="smallipopInput" name="<?php echo $default_name; ?>" title="<?php esc_attr_e( 'The default value this field will have', 'wpuf' ); ?>" value="<?php echo $default_value; ?>" />
133
+ </div> <!-- .wpuf-form-rows -->
134
+
135
+ <div class="wpuf-form-rows">
136
+ <label><?php _e( 'Size', 'wpuf' ); ?></label>
137
+ <input type="text" class="smallipopInput" name="<?php echo $size_name; ?>" title="<?php esc_attr_e( 'Size of this input field', 'wpuf' ); ?>" value="<?php echo $size_value; ?>" />
138
+ </div> <!-- .wpuf-form-rows -->
139
+
140
+ <div class="wpuf-form-rows">
141
+ <label><?php _e( 'Word Restriction', 'wpuf' ); ?></label>
142
+
143
+ <div class="wpuf-form-sub-fields">
144
+ <label>
145
+ <input type="text" class="smallipopInput" name="<?php echo $word_restriction_name ?>" value="<?php echo $word_restriction_value; ?>" title="<?php esc_attr_e( 'Numebr of words the author to be restricted in', 'wpuf' ); ?>" />
146
+ </label>
147
+ </div>
148
+ </div> <!-- .wpuf-form-rows -->
149
+ <?php
150
+ }
151
+
152
+ /**
153
+ * Common fields for a textarea
154
+ *
155
+ * @param int $id
156
+ * @param array $values
157
+ */
158
+ public static function common_textarea( $id, $values = array() ) {
159
+ $tpl = '%s[%d][%s]';
160
+ $rows_name = sprintf( $tpl, self::$input_name, $id, 'rows' );
161
+ $cols_name = sprintf( $tpl, self::$input_name, $id, 'cols' );
162
+ $rich_name = sprintf( $tpl, self::$input_name, $id, 'rich' );
163
+ $placeholder_name = sprintf( $tpl, self::$input_name, $id, 'placeholder' );
164
+ $default_name = sprintf( $tpl, self::$input_name, $id, 'default' );
165
+ $word_restriction_name = sprintf( $tpl, self::$input_name, $id, 'word_restriction' );
166
+
167
+ $rows_value = $values ? esc_attr( $values['rows'] ) : '5';
168
+ $cols_value = $values ? esc_attr( $values['cols'] ) : '25';
169
+ $rich_value = $values ? esc_attr( $values['rich'] ) : 'no';
170
+ $placeholder_value = $values ? esc_attr( $values['placeholder'] ) : '';
171
+ $default_value = $values ? esc_attr( $values['default'] ) : '';
172
+ $word_restriction_value = $values ? esc_attr( $values['word_restriction'] ) : '';
173
+
174
+ ?>
175
+ <div class="wpuf-form-rows">
176
+ <label><?php _e( 'Rows', 'wpuf' ); ?></label>
177
+ <input type="text" class="smallipopInput" name="<?php echo $rows_name; ?>" title="Number of rows in textarea" value="<?php echo $rows_value; ?>" />
178
+ </div> <!-- .wpuf-form-rows -->
179
+
180
+ <div class="wpuf-form-rows">
181
+ <label><?php _e( 'Columns', 'wpuf' ); ?></label>
182
+ <input type="text" class="smallipopInput" name="<?php echo $cols_name; ?>" title="Number of columns in textarea" value="<?php echo $cols_value; ?>" />
183
+ </div> <!-- .wpuf-form-rows -->
184
+
185
+ <div class="wpuf-form-rows">
186
+ <label><?php _e( 'Placeholder text', 'wpuf' ); ?></label>
187
+ <input type="text" class="smallipopInput" name="<?php echo $placeholder_name; ?>" title="text for HTML5 placeholder attribute" value="<?php echo $placeholder_value; ?>" />
188
+ </div> <!-- .wpuf-form-rows -->
189
+
190
+ <div class="wpuf-form-rows">
191
+ <label><?php _e( 'Default value', 'wpuf' ); ?></label>
192
+ <input type="text" class="smallipopInput" name="<?php echo $default_name; ?>" title="the default value this field will have" value="<?php echo $default_value; ?>" />
193
+ </div> <!-- .wpuf-form-rows -->
194
+
195
+ <div class="wpuf-form-rows">
196
+ <label><?php _e( 'Textarea', 'wpuf' ); ?></label>
197
+
198
+ <div class="wpuf-form-sub-fields">
199
+ <label><input type="radio" name="<?php echo $rich_name; ?>" value="no"<?php checked( $rich_value, 'no' ); ?>> <?php _e( 'Normal', 'wpuf' ); ?></label>
200
+ <label><input type="radio" name="<?php echo $rich_name; ?>" value="yes"<?php checked( $rich_value, 'yes' ); ?>> <?php _e( 'Rich textarea', 'wpuf' ); ?></label>
201
+ <label><input type="radio" name="<?php echo $rich_name; ?>" value="teeny"<?php checked( $rich_value, 'teeny' ); ?>> <?php _e( 'Teeny Rich textarea', 'wpuf' ); ?></label>
202
+ </div>
203
+ </div> <!-- .wpuf-form-rows -->
204
+
205
+ <div class="wpuf-form-rows">
206
+ <label><?php _e( 'Word Restriction', 'wpuf' ); ?></label>
207
+
208
+ <div class="wpuf-form-sub-fields">
209
+ <label>
210
+ <input type="text" class="smallipopInput" name="<?php echo $word_restriction_name ?>" value="<?php echo $word_restriction_value; ?>" title="<?php esc_attr_e( 'Numebr of words the author to be restricted in', 'wpuf' ); ?>" />
211
+ </label>
212
+ </div>
213
+ </div> <!-- .wpuf-form-rows -->
214
+ <?php
215
+ }
216
+
217
+ /**
218
+ * Hidden field helper function
219
+ *
220
+ * @param string $name
221
+ * @param string $value
222
+ */
223
+ public static function hidden_field( $name, $value = '' ) {
224
+ printf( '<input type="hidden" name="%s" value="%s" />', self::$input_name . $name, $value );
225
+ }
226
+
227
+ /**
228
+ * Displays a radio custom field
229
+ *
230
+ * @param int $field_id
231
+ * @param string $name
232
+ * @param array $values
233
+ */
234
+ public static function radio_fields( $field_id, $name, $values = array() ) {
235
+
236
+ $selected_name = sprintf( '%s[%d][selected]', self::$input_name, $field_id );
237
+ $input_name = sprintf( '%s[%d][%s]', self::$input_name, $field_id, $name );
238
+ $input_value_name = sprintf( '%s[%d][%s]', self::$input_name, $field_id, $name.'_values' );
239
+
240
+ $selected_value = ( $values && isset( $values['selected'] ) ) ? $values['selected'] : '';
241
+ ?>
242
+
243
+ <label for="wpuf-<?php echo $name.'_'.$field_id; ?>" class="wpuf-show-field-value">
244
+ <input type="checkbox" class="wpuf-value-handelar" id="wpuf-<?php echo $name . '_' . $field_id; ?>"><?php _e( 'Show values', 'wpuf' ); ?>
245
+ </label>
246
+
247
+ <div class="wpuf-option-label-value"><span><?php _e( 'Label', 'wpuf' ); ?></span><span class="wpuf-option-value" style="display: none;"><?php _e( 'Value', 'wpuf' ); ?></span></div>
248
+ <?php
249
+ if ( $values && $values['options'] > 0 ) {
250
+ foreach ($values['options'] as $key => $value) {
251
+ ?>
252
+ <div class="wpuf-clone-field">
253
+ <input type="radio" name="<?php echo $selected_name ?>" value="<?php echo $value; ?>" <?php checked( $selected_value, $value ); ?>>
254
+ <input type="text" data-type="option" name="<?php echo $input_name; ?>[]" value="<?php echo $value; ?>">
255
+ <input type="text" data-type="option_value" name="<?php echo $input_value_name; ?>[]" value="<?php echo $key; ?>" style="display:none;">
256
+
257
+ <?php self::remove_button(); ?>
258
+ </div>
259
+ <?php
260
+ }
261
+
262
+ } else {
263
+ ?>
264
+ <div class="wpuf-clone-field">
265
+ <input type="radio" name="<?php echo $selected_name ?>">
266
+ <input type="text" data-type="option" name="<?php echo $input_name; ?>[]" value="">
267
+ <input type="text" data-type="option_value" name="<?php echo $input_value_name; ?>[]" value="" style="display:none;">
268
+
269
+ <?php self::remove_button(); ?>
270
+ </div>
271
+ <?php
272
+ }
273
+ }
274
+
275
+ public static function conditional_field( $field_id, $con_fields = array() ) {
276
+
277
+ do_action( 'wpuf_conditional_field_render_hook',$field_id, $con_fields, 'WPUF_Admin_Template' );
278
+
279
+ }
280
+
281
+ /**
282
+ * Displays a checkbox custom field
283
+ *
284
+ * @param int $field_id
285
+ * @param string $name
286
+ * @param array $values
287
+ */
288
+ public static function common_checkbox( $field_id, $name, $values = array() ) {
289
+
290
+ $selected_name = sprintf( '%s[%d][selected]', self::$input_name, $field_id );
291
+ $input_name = sprintf( '%s[%d][%s]', self::$input_name, $field_id, $name );
292
+ $input_value_name = sprintf( '%s[%d][%s]', self::$input_name, $field_id, $name.'_values' );
293
+
294
+ $selected_value = ( $values && isset( $values['selected'] ) ) ? $values['selected'] : array();
295
+
296
+ ?>
297
+ <style>
298
+ .wpuf-option-label-value span {
299
+ font-weight: bold;
300
+ margin-left: 5%;
301
+ margin-right: 27%;
302
+ }
303
+ </style>
304
+ <input type="checkbox" class="wpuf-value-handelar" id="<?php echo $name.'_'.$field_id; ?>"><label for="<?php echo $name.'_'.$field_id; ?>"><?php _e('show values', 'wpuf'); ?></label>
305
+ <div class="wpuf-option-label-value"><span><?php _e( 'Label', 'wpuf' ); ?></span><span class="wpuf-option-value" style="display: none;"><?php _e( 'Value', 'wpuf' ); ?></span></div>
306
+ <?php
307
+ if ( $values && $values['options'] > 0 ) {
308
+ foreach ($values['options'] as $key => $value) {
309
+ ?>
310
+ <div class="wpuf-clone-field">
311
+
312
+ <input type="checkbox" name="<?php echo $selected_name ?>[]" value="<?php echo $value; ?>"<?php echo in_array( $value, $selected_value ) ? ' checked="checked"' : ''; ?> />
313
+ <input type="text" data-type="option" name="<?php echo $input_name; ?>[]" value="<?php echo $value; ?>">
314
+ <input type="text" data-type="option_value" name="<?php echo $input_value_name; ?>[]" value="<?php echo $key; ?>" style="display:none;">
315
+ <?php self::remove_button(); ?>
316
+ </div>
317
+ <?php
318
+ }
319
+ } else {
320
+ ?>
321
+ <div class="wpuf-clone-field">
322
+ <input type="checkbox" name="<?php echo $selected_name ?>[]">
323
+ <input type="text" data-type="option" name="<?php echo $input_name; ?>[]" value="">
324
+ <input type="text" data-type="option_value" name="<?php echo $input_value_name; ?>[]" value="" style="display:none;">
325
+
326
+ <?php self::remove_button(); ?>
327
+ </div>
328
+ <?php
329
+ }
330
+ }
331
+
332
+ /**
333
+ * Add/remove buttons for repeatable fields
334
+ *
335
+ * @return void
336
+ */
337
+ public static function remove_button() {
338
+ $add = plugins_url( 'assets/images/add.png', dirname( __FILE__ ) );
339
+ $remove = plugins_url( 'assets/images/remove.png', dirname( __FILE__ ) );
340
+ ?>
341
+ <img style="cursor:pointer; margin:0 3px;" alt="add another choice" title="add another choice" class="wpuf-clone-field" src="<?php echo $add; ?>">
342
+ <img style="cursor:pointer;" class="wpuf-remove-field" alt="remove this choice" title="remove this choice" src="<?php echo $remove; ?>">
343
+ <?php
344
+ }
345
+
346
+ public static function get_buffered( $func, $field_id, $label ) {
347
+ ob_start();
348
+
349
+ self::$func( $field_id, $label );
350
+
351
+ return ob_get_clean();
352
+ }
353
+
354
+ public static function text_field( $field_id, $label, $values = array() ) {
355
+
356
+ ?>
357
+ <li class="custom-field text_field">
358
+ <?php self::legend( $label, $values, $field_id ); ?>
359
+ <?php self::hidden_field( "[$field_id][input_type]", 'text' ); ?>
360
+ <?php self::hidden_field( "[$field_id][template]", 'text_field' ); ?>
361
+
362
+ <div class="wpuf-form-holder">
363
+ <?php self::common( $field_id, '', true, $values ); ?>
364
+ <?php self::common_text( $field_id, $values ); ?>
365
+ <?php self::conditional_field( $field_id, $values ); ?>
366
+ </div> <!-- .wpuf-form-holder -->
367
+ </li>
368
+ <?php
369
+ }
370
+
371
+ public static function textarea_field( $field_id, $label, $values = array() ) {
372
+ ?>
373
+ <li class="custom-field textarea_field">
374
+ <?php self::legend( $label, $values, $field_id ); ?>
375
+ <?php self::hidden_field( "[$field_id][input_type]", 'textarea' ); ?>
376
+ <?php self::hidden_field( "[$field_id][template]", 'textarea_field' ); ?>
377
+
378
+ <div class="wpuf-form-holder">
379
+ <?php self::common( $field_id, '', true, $values ); ?>
380
+ <?php self::common_textarea( $field_id, $values ); ?>
381
+ <?php self::conditional_field( $field_id, $values ); ?>
382
+ </div> <!-- .wpuf-form-holder -->
383
+ </li>
384
+ <?php
385
+ }
386
+
387
+ public static function radio_field( $field_id, $label, $values = array() ) {
388
+ ?>
389
+ <li class="custom-field radio_field wpuf-conditional">
390
+ <?php self::legend( $label, $values, $field_id ); ?>
391
+ <?php self::hidden_field( "[$field_id][input_type]", 'radio' ); ?>
392
+ <?php self::hidden_field( "[$field_id][template]", 'radio_field' ); ?>
393
+
394
+ <div class="wpuf-form-holder">
395
+ <?php self::common( $field_id, '', true, $values ); ?>
396
+
397
+ <div class="wpuf-form-rows">
398
+ <label><?php _e( 'Options', 'wpuf' ); ?></label>
399
+
400
+ <div class="wpuf-form-sub-fields wpuf-options">
401
+ <?php self::radio_fields( $field_id, 'options', $values ); ?>
402
+
403
+ </div> <!-- .wpuf-form-sub-fields -->
404
+ <?php self::conditional_field( $field_id, $values ); ?>
405
+ </div> <!-- .wpuf-form-rows -->
406
+ </div> <!-- .wpuf-form-holder -->
407
+ </li>
408
+ <?php
409
+ }
410
+
411
+ public static function checkbox_field( $field_id, $label, $values = array() ) {
412
+ ?>
413
+ <li class="custom-field checkbox_field wpuf-conditional">
414
+ <?php self::legend( $label, $values, $field_id ); ?>
415
+ <?php self::hidden_field( "[$field_id][input_type]", 'checkbox' ); ?>
416
+ <?php self::hidden_field( "[$field_id][template]", 'checkbox_field' ); ?>
417
+
418
+ <div class="wpuf-form-holder">
419
+ <?php self::common( $field_id, '', true, $values ); ?>
420
+
421
+ <div class="wpuf-form-rows">
422
+ <label><?php _e( 'Options', 'wpuf' ); ?></label>
423
+
424
+ <div class="wpuf-form-sub-fields wpuf-options">
425
+ <?php self::common_checkbox( $field_id, 'options', $values ); ?>
426
+
427
+ </div> <!-- .wpuf-form-sub-fields -->
428
+ <?php self::conditional_field( $field_id, $values ); ?>
429
+ </div> <!-- .wpuf-form-rows -->
430
+ </div> <!-- .wpuf-form-holder -->
431
+ </li>
432
+ <?php
433
+ }
434
+
435
+ public static function dropdown_field( $field_id, $label, $values = array() ) {
436
+ $first_name = sprintf( '%s[%d][first]', self::$input_name, $field_id );
437
+ $first_value = $values ? $values['first'] : ' - select -';
438
+ $help = esc_attr( __( 'First element of the select dropdown. Leave this empty if you don\'t want to show this field', 'wpuf' ) );
439
+ ?>
440
+ <li class="custom-field dropdown_field wpuf-conditional">
441
+ <?php self::legend( $label, $values, $field_id ); ?>
442
+ <?php self::hidden_field( "[$field_id][input_type]", 'select' ); ?>
443
+ <?php self::hidden_field( "[$field_id][template]", 'dropdown_field' ); ?>
444
+
445
+ <div class="wpuf-form-holder">
446
+ <?php self::common( $field_id, '', true, $values ); ?>
447
+
448
+ <div class="wpuf-form-rows">
449
+ <label><?php _e( 'Select Text', 'wpuf' ); ?></label>
450
+ <input type="text" class="smallipopInput" name="<?php echo $first_name; ?>" value="<?php echo $first_value; ?>" title="<?php echo $help; ?>">
451
+ </div> <!-- .wpuf-form-rows -->
452
+
453
+ <div class="wpuf-form-rows">
454
+ <label><?php _e( 'Options', 'wpuf' ); ?></label>
455
+
456
+ <div class="wpuf-form-sub-fields wpuf-options">
457
+ <?php self::radio_fields( $field_id, 'options', $values ); ?>
458
+ </div> <!-- .wpuf-form-sub-fields -->
459
+
460
+ <?php self::conditional_field( $field_id, $values ); ?>
461
+ </div> <!-- .wpuf-form-rows -->
462
+ </div> <!-- .wpuf-form-holder -->
463
+ </li>
464
+ <?php
465
+ }
466
+
467
+ public static function multiple_select( $field_id, $label, $values = array() ) {
468
+ $first_name = sprintf( '%s[%d][first]', self::$input_name, $field_id );
469
+ $first_value = $values ? $values['first'] : ' - select -';
470
+ $help = esc_attr( __( 'First element of the select dropdown. Leave this empty if you don\'t want to show this field', 'wpuf' ) );
471
+ ?>
472
+ <li class="custom-field multiple_select">
473
+ <?php self::legend( $label, $values, $field_id ); ?>
474
+ <?php self::hidden_field( "[$field_id][input_type]", 'multiselect' ); ?>
475
+ <?php self::hidden_field( "[$field_id][template]", 'multiple_select' ); ?>
476
+
477
+ <div class="wpuf-form-holder">
478
+ <?php self::common( $field_id, '', true, $values ); ?>
479
+
480
+ <div class="wpuf-form-rows">
481
+ <label><?php _e( 'Select Text', 'wpuf' ); ?></label>
482
+ <input type="text" class="smallipopInput" name="<?php echo $first_name; ?>" value="<?php echo $first_value; ?>" title="<?php echo $help; ?>">
483
+ </div> <!-- .wpuf-form-rows -->
484
+
485
+ <div class="wpuf-form-rows">
486
+ <label><?php _e( 'Options', 'wpuf' ); ?></label>
487
+
488
+ <div class="wpuf-form-sub-fields wpuf-options">
489
+ <?php self::radio_fields( $field_id, 'options', $values ); ?>
490
+ </div> <!-- .wpuf-form-sub-fields -->
491
+
492
+ <?php self::conditional_field( $field_id, $values ); ?>
493
+ </div> <!-- .wpuf-form-rows -->
494
+ </div> <!-- .wpuf-form-holder -->
495
+ </li>
496
+ <?php
497
+ }
498
+
499
+ public static function website_url( $field_id, $label, $values = array() ) {
500
+ ?>
501
+ <li class="custom-field website_url">
502
+ <?php self::legend( $label, $values, $field_id ); ?>
503
+ <?php self::hidden_field( "[$field_id][input_type]", 'url' ); ?>
504
+ <?php self::hidden_field( "[$field_id][template]", 'website_url' ); ?>
505
+
506
+ <div class="wpuf-form-holder">
507
+ <?php self::common( $field_id, '', true, $values ); ?>
508
+ <?php self::common_text( $field_id, $values ); ?>
509
+ <?php self::conditional_field( $field_id, $values ); ?>
510
+ </div> <!-- .wpuf-form-holder -->
511
+ </li>
512
+ <?php
513
+ }
514
+
515
+ public static function email_address( $field_id, $label, $values = array() ) {
516
+ ?>
517
+ <li class="custom-field eamil_address">
518
+ <?php self::legend( $label, $values, $field_id ); ?>
519
+ <?php self::hidden_field( "[$field_id][input_type]", 'email' ); ?>
520
+ <?php self::hidden_field( "[$field_id][template]", 'email_address' ); ?>
521
+
522
+ <div class="wpuf-form-holder">
523
+ <?php self::common( $field_id, '', true, $values ); ?>
524
+ <?php self::common_text( $field_id, $values ); ?>
525
+ <?php self::conditional_field( $field_id, $values ); ?>
526
+ </div> <!-- .wpuf-form-holder -->
527
+ </li>
528
+ <?php
529
+ }
530
+
531
+ public static function custom_html( $field_id, $label, $values = array() ) {
532
+ $title_name = sprintf( '%s[%d][label]', self::$input_name, $field_id );
533
+ $html_name = sprintf( '%s[%d][html]', self::$input_name, $field_id );
534
+ $title_value = $values ? esc_attr( $values['label'] ) : '';
535
+ $html_value = $values ? esc_attr( $values['html'] ) : '';
536
+ ?>
537
+ <li class="custom-field custom_html">
538
+ <?php self::legend( $label, $values, $field_id ); ?>
539
+ <?php self::hidden_field( "[$field_id][input_type]", 'html' ); ?>
540
+ <?php self::hidden_field( "[$field_id][template]", 'custom_html' ); ?>
541
+
542
+ <div class="wpuf-form-holder">
543
+ <div class="wpuf-form-rows">
544
+ <label><?php _e( 'Title', 'wpuf' ); ?></label>
545
+ <input type="text" class="smallipopInput" title="Title of the section" name="<?php echo $title_name; ?>" value="<?php echo esc_attr( $title_value ); ?>" />
546
+ </div> <!-- .wpuf-form-rows -->
547
+
548
+ <div class="wpuf-form-rows">
549
+ <label><?php _e( 'HTML Codes', 'wpuf' ); ?></label>
550
+ <textarea class="smallipopInput" title="Paste your HTML codes, WordPress shortcodes will also work here" name="<?php echo $html_name; ?>" rows="10"><?php echo esc_html( $html_value ); ?></textarea>
551
+ </div>
552
+
553
+ <?php self::conditional_field( $field_id, $values ); ?>
554
+ </div> <!-- .wpuf-form-holder -->
555
+ </li>
556
+ <?php
557
+ }
558
+
559
+ public static function custom_hidden_field( $field_id, $label, $values = array() ) {
560
+ $meta_name = sprintf( '%s[%d][name]', self::$input_name, $field_id );
561
+ $value_name = sprintf( '%s[%d][meta_value]', self::$input_name, $field_id );
562
+ $is_meta_name = sprintf( '%s[%d][is_meta]', self::$input_name, $field_id );
563
+ $label_name = sprintf( '%s[%d][label]', self::$input_name, $field_id );
564
+
565
+ $meta_value = $values ? esc_attr( $values['name'] ) : '';
566
+ $value_value = $values ? esc_attr( $values['meta_value'] ) : '';
567
+ ?>
568
+ <li class="custom-field custom_hidden_field">
569
+ <?php self::legend( $label, $values, $field_id ); ?>
570
+ <?php self::hidden_field( "[$field_id][input_type]", 'hidden' ); ?>
571
+ <?php self::hidden_field( "[$field_id][template]", 'custom_hidden_field' ); ?>
572
+
573
+ <div class="wpuf-form-holder">
574
+ <div class="wpuf-form-rows">
575
+ <label><?php _e( 'Meta Key', 'wpuf' ); ?></label>
576
+ <input type="text" name="<?php echo $meta_name; ?>" value="<?php echo $meta_value; ?>" class="smallipopInput" title="<?php _e( 'Name of the meta key this field will save to', 'wpuf' ); ?>">
577
+ <input type="hidden" name="<?php echo $is_meta_name; ?>" value="yes">
578
+ <input type="hidden" name="<?php echo $label_name; ?>" value="">
579
+ </div> <!-- .wpuf-form-rows -->
580
+
581
+ <div class="wpuf-form-rows">
582
+ <label><?php _e( 'Meta Value', 'wpuf' ); ?></label>
583
+ <input type="text" class="smallipopInput" title="<?php esc_attr_e( 'Enter the meta value', 'wpuf' ); ?>" name="<?php echo $value_name; ?>" value="<?php echo $value_value; ?>">
584
+ </div>
585
+ </div> <!-- .wpuf-form-holder -->
586
+ </li>
587
+ <?php
588
+ }
589
+
590
+ public static function section_break( $field_id, $label, $values = array() ) {
591
+ $title_name = sprintf( '%s[%d][label]', self::$input_name, $field_id );
592
+ $description_name = sprintf( '%s[%d][description]', self::$input_name, $field_id );
593
+
594
+ $title_value = $values ? esc_attr( $values['label'] ) : '';
595
+ $description_value = $values ? esc_attr( $values['description'] ) : '';
596
+ ?>
597
+ <li class="custom-field custom_html">
598
+ <?php self::legend( $label, $values, $field_id ); ?>
599
+ <?php self::hidden_field( "[$field_id][input_type]", 'section_break' ); ?>
600
+ <?php self::hidden_field( "[$field_id][template]", 'section_break' ); ?>
601
+
602
+ <div class="wpuf-form-holder">
603
+ <div class="wpuf-form-rows">
604
+ <label><?php _e( 'Title', 'wpuf' ); ?></label>
605
+ <input type="text" class="smallipopInput" title="Title of the section" name="<?php echo $title_name; ?>" value="<?php echo esc_attr( $title_value ); ?>" />
606
+ </div> <!-- .wpuf-form-rows -->
607
+
608
+ <div class="wpuf-form-rows">
609
+ <label><?php _e( 'Description', 'wpuf' ); ?></label>
610
+ <textarea class="smallipopInput" title="Some details text about the section" name="<?php echo $description_name; ?>" rows="3"><?php echo esc_html( $description_value ); ?></textarea>
611
+ </div> <!-- .wpuf-form-rows -->
612
+
613
+ <?php self::conditional_field( $field_id, $values ); ?>
614
+ </div> <!-- .wpuf-form-holder -->
615
+ </li>
616
+ <?php
617
+ }
618
+
619
+ /**
620
+ * Render image upload
621
+ *
622
+ * @param $field_id
623
+ * @param $label
624
+ * @param self
625
+ * @param array $values
626
+ */
627
+ public static function image_upload( $field_id, $label, $values = array() ) {
628
+ $max_size_name = sprintf( '%s[%d][max_size]', self::$input_name, $field_id );
629
+ $max_files_name = sprintf( '%s[%d][count]', self::$input_name, $field_id );
630
+
631
+ $max_size_value = $values ? $values['max_size'] : '1024';
632
+ $max_files_value = $values ? $values['count'] : '1';
633
+
634
+ $help = esc_attr( __( 'Enter maximum upload size limit in KB', 'wpuf' ) );
635
+ $count = esc_attr( __( 'Number of images can be uploaded', 'wpuf' ) );
636
+ ?>
637
+ <li class="custom-field image_upload">
638
+ <?php self::legend( $label, $values, $field_id ); ?>
639
+ <?php self::hidden_field( "[$field_id][input_type]", 'image_upload' ); ?>
640
+ <?php self::hidden_field( "[$field_id][template]", 'image_upload' ); ?>
641
+
642
+ <div class="wpuf-form-holder">
643
+ <?php self::common( $field_id, '', true, $values ); ?>
644
+
645
+ <div class="wpuf-form-rows">
646
+ <label><?php _e( 'Max. file size', 'wpuf' ); ?></label>
647
+ <input type="text" class="smallipopInput" name="<?php echo $max_size_name; ?>" value="<?php echo $max_size_value; ?>" title="<?php echo $help; ?>">
648
+ </div> <!-- .wpuf-form-rows -->
649
+
650
+ <div class="wpuf-form-rows">
651
+ <label><?php _e( 'Max. files', 'wpuf' ); ?></label>
652
+ <input type="text" class="smallipopInput" name="<?php echo $max_files_name; ?>" value="<?php echo $max_files_value; ?>" title="<?php echo $count; ?>">
653
+ </div> <!-- .wpuf-form-rows -->
654
+
655
+ <?php self::conditional_field( $field_id, $values ); ?>
656
+ </div> <!-- .wpuf-form-holder -->
657
+ </li>
658
+ <?php
659
+ }
660
+
661
+ /**
662
+ * Render recaptcha
663
+ * @param $field_id
664
+ * @param $label
665
+ * @param array $values
666
+ */
667
+ public static function recaptcha( $field_id, $label, $values = array() ) {
668
+ $title_name = sprintf( '%s[%d][label]', self::$input_name, $field_id );
669
+ $html_name = sprintf( '%s[%d][html]', self::$input_name, $field_id );
670
+ $recaptcha_type_name = sprintf( '%s[%d][recaptcha_type]', self::$input_name, $field_id );
671
+
672
+ $title_value = $values ? esc_attr( $values['label'] ) : '';
673
+ $html_value = isset( $values['html'] ) ? esc_attr( $values['html'] ) : '';
674
+ $recaptcha_type_value = isset( $values['recaptcha_type'] ) ? esc_attr( $values['recaptcha_type'] ) : ( !empty( $values ) ? '' : 'enable_no_captcha' );
675
+ ?>
676
+ <li class="custom-field custom_html">
677
+ <?php self::legend( $label, $values, $field_id ); ?>
678
+ <?php self::hidden_field( "[$field_id][input_type]", 'recaptcha' ); ?>
679
+ <?php self::hidden_field( "[$field_id][template]", 'recaptcha' ); ?>
680
+
681
+ <div class="wpuf-form-holder">
682
+ <div class="wpuf-form-rows">
683
+ <label><?php _e( 'Title', 'wpuf' ); ?></label>
684
+
685
+ <div class="wpuf-form-sub-fields">
686
+ <input type="text" class="smallipopInput" title="Title of the section" name="<?php echo $title_name; ?>" value="<?php echo esc_attr( $title_value ); ?>" />
687
+
688
+ <div class="description" style="margin-top: 8px;">
689
+ <?php printf( __( "Insert your public key and private key in <a href='%s'>plugin settings</a>. <a href='%s' target='_blank'>Register</a> first if you don't have any keys.", 'wpuf' ), admin_url( 'admin.php?page=wpuf-settings' ), 'https://www.google.com/recaptcha/' ); ?>
690
+ </div>
691
+ </div> <!-- .wpuf-form-rows -->
692
+ </div>
693
+
694
+ <div class="wpuf-form-rows">
695
+ <label><?php _e( 'reCaptcha type', 'wpuf' ); ?></label>
696
+
697
+ <div class="wpuf-form-sub-fields">
698
+ <input type="radio" class="smallipopInput" title="reCaptcha type" name="<?php echo $recaptcha_type_name; ?>" value="invisible_recaptcha" <?php echo $recaptcha_type_value == 'invisible_recaptcha' ? 'checked':''; ?> />
699
+ <?php _e( 'Enable Invisible reCaptcha', 'wpuf' );?>
700
+ </div> <!-- .wpuf-form-rows -->
701
+ <div class="wpuf-form-sub-fields">
702
+ <input type="radio" class="smallipopInput" title="reCaptcha type" name="<?php echo $recaptcha_type_name; ?>" value="enable_no_captcha" <?php echo $recaptcha_type_value == 'enable_no_captcha' ? 'checked':''; ?> />
703
+ <?php _e( 'Enable noCaptcha', 'wpuf' );?>
704
+ </div> <!-- .wpuf-form-rows -->
705
+ </div>
706
+
707
+ <?php self::conditional_field( $field_id, $values ); ?>
708
+ </div> <!-- .wpuf-form-holder -->
709
+ </li>
710
+ <?php
711
+ }
712
+
713
+ }
admin/tools.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! class_exists( 'WPUF_Admin_Tools' ) ) {
4
+ require_once WPUF_ROOT . '/admin/class-tools.php';
5
+ }
6
+
7
+ $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'tools';
8
+ $tools = new WPUF_Admin_Tools();
9
+ ?>
10
+
11
+ <div class="wrap">
12
+ <h2 class="nav-tab-wrapper">
13
+ <a class="nav-tab <?php echo ( $tab == 'tools' ) ? 'nav-tab-active' : ''; ?>" href="<?php echo add_query_arg( array( 'page' => 'wpuf_tools', 'tab' => 'tools' ), admin_url( 'admin.php' ) ); ?>"><?php _e( 'Tools', 'wpuf' ); ?></a>
14
+ <a class="nav-tab <?php echo ( $tab == 'import' ) ? 'nav-tab-active' : ''; ?>" href="<?php echo add_query_arg( array( 'page' => 'wpuf_tools', 'tab' => 'import' ), admin_url( 'admin.php' ) ); ?>"><?php _e( 'Import', 'wpuf' ); ?></a>
15
+ <a class="nav-tab <?php echo ( $tab == 'export' ) ? 'nav-tab-active' : ''; ?>" href="<?php echo add_query_arg( array( 'page' => 'wpuf_tools', 'tab' => 'export' ), admin_url( 'admin.php' ) ); ?>"><?php _e( 'Export', 'wpuf' ); ?></a>
16
+ </h2>
17
+
18
+ <?php
19
+
20
+ switch ( $tab ) {
21
+ case 'export':
22
+ $tools->list_forms();
23
+ $tools->list_regis_forms();
24
+ break;
25
+
26
+ case 'tools':
27
+ $tools->tool_page();
28
+ break;
29
+
30
+ case 'import':
31
+ $tools->import_data();
32
+ break;
33
+
34
+ default:
35
+ $tools->tool_page();
36
+ break;
37
+ }
38
+ ?>
39
+ </div>
40
+
41
+ <style>
42
+ select.formlist{
43
+ display: block;
44
+ width: 300px;
45
+ }
46
+
47
+ </style>
48
+
49
+ <script>
50
+ (function($){
51
+
52
+ $('.formlist').hide();
53
+ $('input.export_type').on('change',function(){
54
+ $(this).closest('form').find('.formlist').slideUp(200);
55
+
56
+ if( $(this).attr('value') == 'selected' ) {
57
+ $(this).closest('form').find('.formlist').slideDown(200);
58
+ }
59
+ });
60
+
61
+
62
+ })(jQuery);
63
+
64
+ </script>
65
+
admin/transactions.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2><?php _e( 'Transactions', 'wpuf' ); ?></h2>
3
+
4
+ <?php
5
+ global $wpdb;
6
+ $total_income = $wpdb->get_var( "SELECT SUM(cost) FROM {$wpdb->prefix}wpuf_transaction WHERE status = 'completed'" );
7
+ $month_income = $wpdb->get_var( "SELECT SUM(cost) FROM {$wpdb->prefix}wpuf_transaction WHERE YEAR(`created`) = YEAR(NOW()) AND MONTH(`created`) = MONTH(NOW()) AND status = 'completed'" );
8
+ ?>
9
+
10
+ <ul>
11
+ <li>
12
+ <strong><?php _e( 'Total Income:', 'wpuf' ); ?></strong> <?php echo wpuf_format_price( $total_income ); ?><br />
13
+ </li>
14
+ <li>
15
+ <strong><?php _e( 'This Month:', 'wpuf' ); ?></strong> <?php echo wpuf_format_price( $month_income ); ?>
16
+ </li>
17
+ </ul>
18
+
19
+ <form method="post">
20
+ <input type="hidden" name="page" value="transactions">
21
+ <?php
22
+ $this->transactions_list_table_obj->prepare_items();
23
+ $this->transactions_list_table_obj->views();
24
+ $this->transactions_list_table_obj->display();
25
+ ?>
26
+ </form>
27
+ </div>
admin/weforms.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap about-wrap">
2
+ <h1><?php _e( 'weForms', 'wpuf' ); ?></h1>
3
+
4
+ <p class="about-text"><?php _e( 'The Easiest &amp; Fastest Contact Form Plugin on WordPress', 'wpuf' ) ?></p>
5
+
6
+ <hr>
7
+ <p><?php _e( 'Quickly create rich contact forms to generate leads, taking feedbacks, onboarding visitors and flourishing <br /> your imagination! Comes with the best frontend post submission plugin for WordPress, WP User Frontend.', 'wpuf' ) ?>
8
+
9
+
10
+ <div class="install" id="wpuf-weforms-installer-notice" style="padding: 1em 0; position: relative;">
11
+ <p>
12
+ <button id="wpuf-weforms-installer" class="button button-primary"><?php _e( 'Install Now', 'wpuf' ); ?></button>
13
+ </p>
14
+ </div>
15
+
16
+ <figure class="we-gif" style="width: 944px;">
17
+ <img class="img-responsive inline-block image-gif shadow" src="https://wedevs-com-wedevs.netdna-ssl.com/wp-content/uploads/2017/08/weforms-final-promo-video.gif" >
18
+ </figure>
19
+ </div>
20
+
21
+ <script type="text/javascript">
22
+ (function ($) {
23
+ var wrapper = $('#wpuf-weforms-installer-notice');
24
+
25
+ wrapper.on('click', '#wpuf-weforms-installer', function (e) {
26
+ var self = $(this);
27
+
28
+ e.preventDefault();
29
+ self.addClass('install-now updating-message');
30
+ self.text('<?php echo esc_js( 'Installing...', 'weforms' ); ?>');
31
+ var data = {
32
+ action: 'wpuf_weforms_install',
33
+ _wpnonce: '<?php echo wp_create_nonce('wpuf-weforms-installer-nonce'); ?>'
34
+ };
35
+
36
+ $.post(ajaxurl, data, function (response) {
37
+ if (response.success) {
38
+ self.attr('disabled', 'disabled');
39
+ self.removeClass('install-now updating-message');
40
+ self.text('<?php echo esc_js( 'Installed', 'weforms' ); ?>');
41
+
42
+ window.location.href = '<?php echo admin_url( 'admin.php?page=weforms' ); ?>';
43
+ }
44
+ });
45
+ });
46
+ })(jQuery);
47
+ </script>
48
+
49
+ <style>
50
+ .widget-wrap{
51
+ width: 100%;
52
+ text-align: center;
53
+ align-content: center;
54
+ }
55
+
56
+ </style>
assets/css/admin.css ADDED
@@ -0,0 +1,901 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpuf-admin fieldset {
2
+ border: 1px solid #E3E3E3;
3
+ margin: 20px 0 0px 0;
4
+ padding-bottom: 20px;
5
+ -moz-border-radius: 5px;
6
+ -webkit-border-radius: 5px;
7
+ background: #fff;
8
+ -moz-box-shadow: inset 0 0 5px #ccc;
9
+ -webkit-box-shadow: inset 0 0 5px #ccc;
10
+ box-shadow: inset 0 0 5px #ccc;
11
+ }
12
+ .wpuf-admin legend {
13
+ -moz-border-radius: 5px 5px 5px 5px;
14
+ -webkit-border-radius: 5px;
15
+ background: #FFFFFF;
16
+ border: 1px solid #E3E3E3;
17
+ color: #2481C6;
18
+ font-size: 15px;
19
+ font-weight: bold;
20
+ margin-left: 20px;
21
+ padding: 5px 10px;
22
+ text-transform: capitalize;
23
+ -moz-box-shadow: inset 0 0 5px #ccc;
24
+ -webkit-box-shadow: inset 0 0 5px #ccc;
25
+ box-shadow: inset 0 0 5px #ccc;
26
+ }
27
+ .wpuf-admin .widefat td {
28
+ padding: 7px 12px;
29
+ vertical-align: top;
30
+ }
31
+ .wpuf-admin .meta td.label {
32
+ width: 140px;
33
+ font-size: 12px;
34
+ }
35
+ .wpuf-admin .meta .description {
36
+ font-size: 11px;
37
+ }
38
+ .wpuf-admin td.label {
39
+ font-size: 12px;
40
+ }
41
+ .wpuf-admin .options td:nth-child(odd) {
42
+ background-color: F9F9F9;
43
+ }
44
+ .wpuf-admin .nav-tab {
45
+ font-size: 15px;
46
+ margin: 0 0px -1px 0;
47
+ }
48
+ .wpuf_admin ul {
49
+ margin: 10px;
50
+ }
51
+ .wpuf_admin li {
52
+ padding: 0 0 10px;
53
+ margin: 0 0 10px;
54
+ border-bottom: 1px solid #E7E7E7;
55
+ line-height: 20px;
56
+ }
57
+ .wpuf_admin li:last-child {
58
+ border-bottom: none;
59
+ }
60
+ .wpuf_admin span.label {
61
+ float: left;
62
+ height: 20px;
63
+ line-height: 20px;
64
+ width: 200px;
65
+ }
66
+ .tooltip {
67
+ position: absolute;
68
+ z-index: 9999;
69
+ color: #fff;
70
+ font-size: 11px;
71
+ width: 250px;
72
+ background: #333;
73
+ -moz-border-radius: 5px;
74
+ -webkit-border-radius: 5px;
75
+ margin: 20px;
76
+ opacity: .8;
77
+ }
78
+ .tooltip:after {
79
+ border-color: transparent transparent #333;
80
+ border-style: solid;
81
+ border-width: 8px;
82
+ content: "";
83
+ display: block;
84
+ height: 0;
85
+ left: 20px;
86
+ position: absolute;
87
+ top: -16px;
88
+ width: 0;
89
+ }
90
+ .tooltip .tipBody {
91
+ padding: 5px 10px;
92
+ text-indent: 0;
93
+ color: #fff;
94
+ text-shadow: 1px 1px 1px #333;
95
+ font-size: 12px;
96
+ }
97
+ .tooltip .buble {
98
+ border-right: 60px solid white;
99
+ border-top: 50px solid #CCCCCC;
100
+ height: 0;
101
+ line-height: 0;
102
+ position: absolute;
103
+ right: -60px;
104
+ top: 30px;
105
+ width: 0;
106
+ }
107
+ span.wpuf_help {
108
+ height: 16px;
109
+ width: 16px;
110
+ background: url('../images/help.png') no-repeat;
111
+ cursor: pointer;
112
+ float: right;
113
+ display: none;
114
+ }
115
+ #option-saved {
116
+ -moz-border-radius: 5px 5px 5px 5px;
117
+ background: none repeat scroll 0 0 orange;
118
+ border: 1px solid #CCCCCC;
119
+ color: #FFFFFF;
120
+ display: none;
121
+ font-size: 30px;
122
+ padding: 50px;
123
+ position: absolute;
124
+ left: 50%;
125
+ z-index: 99;
126
+ -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
127
+ -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
128
+ }
129
+ .wpuf_loading {
130
+ height: 16px;
131
+ width: 16px;
132
+ background: url('../images/wpspin_light.gif') no-repeat;
133
+ padding: 0 0 0 20px;
134
+ margin-bottom: 10px;
135
+ }
136
+ .wpuf-status-completed {
137
+ background: url(../images/completed.png);
138
+ background-size: cover;
139
+ width: 18px;
140
+ height: 18px;
141
+ display: block;
142
+ }
143
+ .wpuf-status-processing {
144
+ background: url(../images/processing.png);
145
+ background-size: cover;
146
+ width: 18px;
147
+ height: 18px;
148
+ display: block;
149
+ }
150
+ .wpuf-footer-help {
151
+ box-sizing: border-box;
152
+ width: auto;
153
+ margin: 2rem 0.8rem;
154
+ text-align: center;
155
+ }
156
+ .wpuf-footer-help .wpuf-footer-help-content {
157
+ border: 1px solid #ddd;
158
+ border-radius: 30px;
159
+ padding: 15px 25px;
160
+ font-size: 15px;
161
+ }
162
+ .wpuf-footer-help-content .dashicons {
163
+ color: #47c1bf;
164
+ font-size: 30px;
165
+ height: 30px;
166
+ width: 30px;
167
+ margin-top: -5px;
168
+ }
169
+ .wpuf-settings-wrap {
170
+ display: flex;
171
+ background: #fff;
172
+ box-shadow: 0 0 0 1px #c8d7e1, 0 1px 2px #e9eff3;
173
+ }
174
+ .wpuf-settings-wrap h2.nav-tab-wrapper {
175
+ flex: 1;
176
+ border-bottom: none;
177
+ padding: 0;
178
+ background-color: #f1f1f1;
179
+ border-right: 1px solid #c8d7e1;
180
+ }
181
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab {
182
+ float: none;
183
+ display: block;
184
+ margin: 0;
185
+ border: none;
186
+ padding: 14px;
187
+ border-bottom: 1px solid #c8d7e1;
188
+ font-weight: 500;
189
+ font-size: 13px;
190
+ border-right: 1px solid #c8d7e1;
191
+ color: #444;
192
+ text-decoration: none;
193
+ margin-right: -1px;
194
+ background-color: #f1f1f1;
195
+ }
196
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab.nav-tab-active {
197
+ background: #fff;
198
+ border-right: 1px solid #fff;
199
+ }
200
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab .dashicons {
201
+ margin-right: 10px;
202
+ }
203
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_general-tab .dashicons {
204
+ color: #9b59b6;
205
+ }
206
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_dashboard-tab .dashicons {
207
+ color: #6c75ff;
208
+ }
209
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_profile-tab .dashicons {
210
+ color: #00aeff;
211
+ }
212
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_frontend_posting-tab .dashicons {
213
+ color: #AD1457;
214
+ }
215
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_my_account-tab .dashicons {
216
+ color: #64DD17;
217
+ }
218
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_payment-tab .dashicons {
219
+ color: #e67e22;
220
+ }
221
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_mails-tab .dashicons {
222
+ color: #115da7;
223
+ }
224
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_sms-tab .dashicons {
225
+ color: #00aeff;
226
+ }
227
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#wpuf_payment_invoices-tab .dashicons {
228
+ color: #1abc9d;
229
+ }
230
+ .wpuf-settings-wrap h2.nav-tab-wrapper a.nav-tab#user_directory-tab .dashicons {
231
+ color: #e74c3c;
232
+ }
233
+ .wpuf-settings-wrap .metabox-holder {
234
+ flex: 3;
235
+ margin-left: 30px;
236
+ margin-bottom: 30px;
237
+ }
238
+ .wpuf-settings-wrap .metabox-holder h2 {
239
+ border-bottom: 1px solid #c8d7e1;
240
+ padding-bottom: 15px;
241
+ margin-top: 14px;
242
+ }
243
+ .wpuf-settings-wrap .metabox-holder .form-table th {
244
+ padding-left: 0;
245
+ }
246
+ .wpuf-settings-wrap .metabox-holder p.submit {
247
+ margin-left: -10px;
248
+ border-top: 1px solid #f1f1f1;
249
+ padding-top: 20px;
250
+ text-align: right;
251
+ padding-right: 34px;
252
+ }
253
+ .wpuf-settings-wrap .metabox-holder p.submit .button-primary {
254
+ font-size: 15px;
255
+ height: 45px;
256
+ line-height: 100%;
257
+ padding: 0px 20px;
258
+ font-weight: normal;
259
+ }
260
+ /**
261
+ * Profile Edit Page
262
+ */
263
+ #profile-page .wpuf-user-subscription {
264
+ background-color: #fff;
265
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
266
+ border: 1px solid #e5e5e5;
267
+ margin-top: 15px;
268
+ }
269
+ #profile-page .wpuf-user-subscription h3 {
270
+ border-bottom: 1px solid #eee;
271
+ padding: 12px 15px;
272
+ font-size: 16px;
273
+ margin: 0;
274
+ }
275
+ #profile-page .wpuf-user-subscription .wpuf-pack-dropdown th {
276
+ padding-left: 15px;
277
+ }
278
+ #profile-page .wpuf-user-subscription .wpuf-sub-actions {
279
+ padding: 10px;
280
+ border-top: 1px solid #ddd;
281
+ background: #f5f5f5;
282
+ overflow: hidden;
283
+ display: block;
284
+ }
285
+ #profile-page .wpuf-user-subscription .wpuf-sub-actions .wpuf-delete-pack-btn {
286
+ float: right;
287
+ }
288
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary {
289
+ background: #f8f8f8;
290
+ border-bottom: 1px solid #eee;
291
+ margin-bottom: 10px;
292
+ display: flex;
293
+ flex-wrap: wrap;
294
+ }
295
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary * {
296
+ box-sizing: border-box;
297
+ }
298
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-name,
299
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-price {
300
+ width: 50%;
301
+ padding: 10px 15px;
302
+ }
303
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-name span,
304
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-price span {
305
+ display: block;
306
+ }
307
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-name span.label,
308
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-price span.label {
309
+ font-weight: bold;
310
+ }
311
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .sub-name {
312
+ border-right: 1px solid #eee;
313
+ }
314
+ #profile-page .wpuf-user-subscription .wpuf-sub-summary .info {
315
+ flex-basis: 100%;
316
+ padding: 0 15px;
317
+ background: #fef5be;
318
+ border-top: 1px solid #ffe98d;
319
+ }
320
+ #profile-page .wpuf-user-subscription .wpuf-sub-section {
321
+ padding: 0 15px;
322
+ border-bottom: 1px solid #eee;
323
+ }
324
+ #profile-page .wpuf-user-subscription .wpuf-sub-section h4 {
325
+ font-size: 15px;
326
+ }
327
+ #profile-page .wpuf-user-subscription .wpuf-sub-section:last-child {
328
+ border-bottom: none;
329
+ padding-bottom: 15px;
330
+ }
331
+ .wpuf-premium .wp-badge {
332
+ background: #40ce65 url(../images/wpuf-pro.png) no-repeat;
333
+ background-size: 100px 90px;
334
+ background-position: 35px 5px;
335
+ }
336
+ .wpuf-premium .wpuf-upgrade-sticky-footer {
337
+ position: fixed;
338
+ bottom: 0;
339
+ background: #fff;
340
+ width: calc(100% - 195px);
341
+ z-index: 9;
342
+ margin-left: -25px;
343
+ text-align: center;
344
+ border: 1px solid #dfdfdf;
345
+ padding: 20px 0 10px 0;
346
+ border-bottom: none;
347
+ display: flex;
348
+ border-top: 3px solid #FF9800;
349
+ }
350
+ .wpuf-premium .wpuf-upgrade-sticky-footer .text-left {
351
+ width: 70%;
352
+ }
353
+ .wpuf-premium .wpuf-upgrade-sticky-footer .text-left h3 {
354
+ margin: 0;
355
+ }
356
+ .wpuf-premium .wpuf-upgrade-sticky-footer .text-right {
357
+ width: 30%;
358
+ padding-top: 15px;
359
+ }
360
+ .wpuf-premium .wpuf-upgrade-sticky-footer .text-right .button-primary {
361
+ background: #00aadc;
362
+ border-color: #0087be;
363
+ text-shadow: none;
364
+ padding: 5px 20px;
365
+ height: auto;
366
+ margin: 0.3125rem 0;
367
+ font-size: 16px;
368
+ }
369
+ .wpuf-premium .wpuf-upgrade-sticky-footer .text-right .button-primary:hover {
370
+ border-color: #005082;
371
+ }
372
+ .wpuf-premium .four-col .col {
373
+ -webkit-align-self: flex-start;
374
+ -ms-flex-item-align: start;
375
+ align-self: flex-start;
376
+ min-width: 23%;
377
+ max-width: 23%;
378
+ }
379
+ .wpuf-premium .feature-section .feature-wrap {
380
+ background-color: #fafafa;
381
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
382
+ border: 1px solid #e5e5e5;
383
+ }
384
+ .wpuf-premium .feature-section .feature-wrap .feature-details {
385
+ padding: 0 20px 10px 20px;
386
+ }
387
+ .wpuf-premium .feature-section .feature-wrap .feature-details h3 a {
388
+ text-decoration: none;
389
+ }
390
+ .wpuf-premium .feature-section .feature-wrap .feature-details ul {
391
+ -moz-column-count: 4;
392
+ -moz-column-gap: 10px;
393
+ -webkit-column-count: 4;
394
+ -webkit-column-gap: 10px;
395
+ column-count: 4;
396
+ column-gap: 10px;
397
+ padding: 0;
398
+ margin: 0;
399
+ font-size: 14px;
400
+ }
401
+ .wpuf-premium .feature-section .feature-wrap .feature-details ul li {
402
+ padding-left: 1em;
403
+ text-indent: -0.7em;
404
+ }
405
+ .wpuf-premium .feature-section .feature-wrap .feature-details ul li::before {
406
+ content: "• ";
407
+ color: red;
408
+ /* or whatever color you prefer */
409
+ }
410
+ .wpuf-premium .feature-section .feature-wrap .feature-image {
411
+ border-bottom: 1px solid #e5e5e5;
412
+ margin-bottom: 15px;
413
+ }
414
+ .wpuf-premium .feature-section .feature-wrap .feature-image img {
415
+ max-width: 100%;
416
+ width: 100%;
417
+ height: auto;
418
+ margin-bottom: 0;
419
+ }
420
+ .wpuf-premium .module-wrap {
421
+ height: 122px;
422
+ display: flex;
423
+ flex-wrap: wrap;
424
+ background-color: #fafafa;
425
+ margin-bottom: 20px;
426
+ box-shadow: 0 0 5px 0 #ccc;
427
+ }
428
+ .wpuf-premium .module-wrap .module-image {
429
+ width: 25%;
430
+ margin-right: 4%;
431
+ }
432
+ .wpuf-premium .module-wrap .module-image img {
433
+ width: 100%;
434
+ }
435
+ .wpuf-premium .module-wrap .module-details {
436
+ margin: 0;
437
+ width: 70%;
438
+ }
439
+ .wpuf-premium .module-wrap .module-details h3 {
440
+ margin: 10px 0 0 0;
441
+ }
442
+ .wpuf-premium .module-wrap .module-details h3 a {
443
+ text-decoration: none;
444
+ }
445
+ #wpuf_mails table tbody tr.hide {
446
+ display: none;
447
+ }
448
+ #wpuf_mails table tbody tr.heading {
449
+ cursor: pointer;
450
+ background-color: #f1f1f1;
451
+ border: 1px solid #c8d7e1;
452
+ }
453
+ #wpuf_mails table tbody tr.heading label {
454
+ font-size: 13px;
455
+ color: #444;
456
+ font-weight: 500;
457
+ }
458
+ #wpuf_mails table tbody tr.heading label span {
459
+ color: #0073aa;
460
+ padding-right: 6px;
461
+ }
462
+ #wpuf_mails table tbody tr.heading label span.dashicons-admin-generic {
463
+ color: #9b59b6;
464
+ }
465
+ #wpuf_mails table tbody tr.heading label span.dashicons-universal-access-alt {
466
+ color: #AD1457;
467
+ }
468
+ #wpuf_mails table tbody tr.heading label span.dashicons-unlock {
469
+ color: #9b59b6;
470
+ }
471
+ #wpuf_mails table tbody tr.heading label span.dashicons-email-alt {
472
+ color: #6c75ff;
473
+ }
474
+ #wpuf_mails table tbody tr.heading label span.dashicons-money {
475
+ color: #64DD17;
476
+ }
477
+ #wpuf_mails table tbody tr.heading label span.dashicons-admin-users {
478
+ color: #00aeff;
479
+ }
480
+ #wpuf_mails table tbody tr.heading label span.dashicons-groups {
481
+ color: #e67e22;
482
+ }
483
+ #wpuf_mails table tbody tr.heading label span.dashicons-dismiss {
484
+ color: #115da7;
485
+ }
486
+ #wpuf_mails table tbody tr.heading label span.dashicons-smiley {
487
+ color: #e74c3c;
488
+ }
489
+ #wpuf_mails table tbody tr.heading th {
490
+ padding: 16px 10px 16px 30px;
491
+ }
492
+ #wpuf_mails table tbody tr th {
493
+ padding-left: 30px;
494
+ }
495
+ tr.wpuf-form-layouts ul {
496
+ margin: 0;
497
+ overflow: hidden;
498
+ }
499
+ tr.wpuf-form-layouts ul li {
500
+ margin: 0;
501
+ padding: 0 15px 15px 0;
502
+ position: relative;
503
+ width: 50%;
504
+ float: left;
505
+ }
506
+ tr.wpuf-form-layouts ul li input[type="radio"] {
507
+ display: none;
508
+ }
509
+ tr.wpuf-form-layouts ul li img {
510
+ max-width: 100%;
511
+ cursor: pointer;
512
+ }
513
+ tr.wpuf-form-layouts ul li.active:before {
514
+ position: absolute;
515
+ top: 0;
516
+ right: 15px;
517
+ width: 40px;
518
+ height: 40px;
519
+ font-family: dashicons;
520
+ font-size: 40px;
521
+ color: #18d118;
522
+ content: "\f147";
523
+ text-align: center;
524
+ background: #f5f5f5;
525
+ line-height: 40px;
526
+ }
527
+ .wpuf-help-tabbed {
528
+ display: flex;
529
+ width: 100%;
530
+ margin-top: 20px;
531
+ box-shadow: 0 0 0 1px #c8d7e1, 0 1px 2px #e9eff3;
532
+ }
533
+ .wpuf-help-tabbed nav {
534
+ order: 1;
535
+ background-color: #f1f1f1;
536
+ flex-basis: auto;
537
+ padding: 0;
538
+ min-height: 405px;
539
+ border-right: 1px solid #c8d7e1;
540
+ min-width: 250px;
541
+ }
542
+ .wpuf-help-tabbed nav ul,
543
+ .wpuf-help-tabbed nav li {
544
+ margin: 0;
545
+ }
546
+ .wpuf-help-tabbed nav a {
547
+ display: block;
548
+ border: none;
549
+ padding: 0.5rem;
550
+ border-bottom: 1px solid #c8d7e1;
551
+ border-right: 1px solid #c8d7e1;
552
+ background-color: #f1f1f1;
553
+ color: #444;
554
+ text-decoration: none;
555
+ margin-right: -1px;
556
+ font-weight: 500;
557
+ }
558
+ .wpuf-help-tabbed nav a label {
559
+ padding: 0.5rem;
560
+ display: inline-block;
561
+ }
562
+ .wpuf-help-tabbed nav a:focus,
563
+ .wpuf-help-tabbed nav a:active {
564
+ outline: 0;
565
+ box-shadow: none;
566
+ }
567
+ .wpuf-help-tabbed nav .dashicons {
568
+ padding: 8px 0 0 5px;
569
+ }
570
+ .wpuf-help-tabbed nav .dashicons.dashicons-admin-home {
571
+ color: #9b59b6;
572
+ }
573
+ .wpuf-help-tabbed nav .dashicons.dashicons-media-text {
574
+ color: #6c75ff;
575
+ }
576
+ .wpuf-help-tabbed nav .dashicons.dashicons-dashboard {
577
+ color: #00aeff;
578
+ }
579
+ .wpuf-help-tabbed nav .dashicons.dashicons-admin-users {
580
+ color: #e67e22;
581
+ }
582
+ .wpuf-help-tabbed nav .dashicons.dashicons-lock {
583
+ color: #3d566e;
584
+ }
585
+ .wpuf-help-tabbed nav .dashicons.dashicons-edit {
586
+ color: #1abc9d;
587
+ }
588
+ .wpuf-help-tabbed nav .dashicons.dashicons-cart {
589
+ color: #e74c3c;
590
+ }
591
+ .wpuf-help-tabbed nav .dashicons.dashicons-unlock {
592
+ color: #00aeff;
593
+ }
594
+ .wpuf-help-tabbed nav .tab-current a {
595
+ border-right: 1px solid #fff;
596
+ background: #fff;
597
+ color: #2e4453;
598
+ }
599
+ .wpuf-help-tabbed .nav-content {
600
+ order: 1;
601
+ background-color: #fff;
602
+ padding: 2rem;
603
+ width: 100%;
604
+ }
605
+ .wpuf-help-tabbed .nav-content h2 {
606
+ margin-top: 30px;
607
+ color: #23282d;
608
+ line-height: 1.6;
609
+ margin-bottom: 0;
610
+ padding-bottom: 0;
611
+ }
612
+ .wpuf-help-tabbed .nav-content h2:first-child {
613
+ margin-top: 0;
614
+ }
615
+ .wpuf-help-tabbed .nav-content section {
616
+ display: none;
617
+ color: #444;
618
+ font-size: 0.875rem;
619
+ }
620
+ .wpuf-help-tabbed .nav-content section p {
621
+ font-size: 0.875rem;
622
+ }
623
+ .wpuf-help-tabbed .nav-content section.content-current {
624
+ display: block;
625
+ }
626
+ .wpuf-help-tabbed .nav-content section ul {
627
+ list-style-type: disc;
628
+ padding-left: 40px;
629
+ }
630
+ .wpuf-help-tabbed .nav-content section ul.related-articles {
631
+ list-style: none;
632
+ padding-left: 10px;
633
+ }
634
+ .wpuf-help-tabbed .nav-content section .button-primary {
635
+ background: #00aadc;
636
+ border-color: #0087be;
637
+ text-shadow: none;
638
+ padding: 3px 20px;
639
+ height: auto;
640
+ margin: 0.3125rem 0;
641
+ }
642
+ .wpuf-help-tabbed .nav-content section .button-primary:hover {
643
+ border-color: #005082;
644
+ }
645
+ .wpuf-help-page .wpuf-subscribe-box {
646
+ display: flex;
647
+ border: 1px solid #e5e5e5;
648
+ background: #fff;
649
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
650
+ margin-top: 15px;
651
+ }
652
+ .wpuf-help-page .wpuf-subscribe-box .text-wrap {
653
+ width: calc(100% - 530px);
654
+ padding: 10px 15px;
655
+ }
656
+ .wpuf-help-page .wpuf-subscribe-box .text-wrap h3 {
657
+ color: #ff5722;
658
+ margin: 4px 0 0 0;
659
+ }
660
+ .wpuf-help-page .wpuf-subscribe-box .text-wrap p {
661
+ margin-bottom: 5px;
662
+ }
663
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap {
664
+ width: 530px;
665
+ display: flex;
666
+ padding: 10px 0;
667
+ background: #f7f7f7;
668
+ padding-left: 20px;
669
+ border-left: 1px solid #eee;
670
+ }
671
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap .thank-you {
672
+ font-size: 16px;
673
+ color: green;
674
+ padding-top: 20px;
675
+ text-align: center;
676
+ width: 100%;
677
+ }
678
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap label {
679
+ color: #666;
680
+ }
681
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap input {
682
+ max-width: 100%;
683
+ overflow: hidden;
684
+ }
685
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap input[type="text"],
686
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap input[type="email"] {
687
+ padding: 5px 8px;
688
+ }
689
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap .fname {
690
+ width: 35%;
691
+ margin-right: 10px;
692
+ }
693
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap .email {
694
+ width: 40%;
695
+ margin-right: 10px;
696
+ }
697
+ .wpuf-help-page .wpuf-subscribe-box .form-wrap .submit-btn {
698
+ width: 20%;
699
+ padding-top: 22px;
700
+ }
701
+ .wpuf-help-page .help-blocks {
702
+ display: flex;
703
+ flex-wrap: wrap;
704
+ align-items: center;
705
+ margin-top: 30px;
706
+ }
707
+ .wpuf-help-page .help-blocks .help-block {
708
+ flex: 1;
709
+ align-self: flex-start;
710
+ min-width: 25%;
711
+ max-width: 30%;
712
+ border: 1px solid #ddd;
713
+ margin-right: 2%;
714
+ margin-bottom: 25px;
715
+ border-radius: 3px;
716
+ padding: 25px 15px;
717
+ text-align: center;
718
+ background: #fff;
719
+ }
720
+ .wpuf-help-page .help-blocks .help-block img {
721
+ max-height: 44px;
722
+ }
723
+ .wpuf-help-page .wpuf-help-questions ul {
724
+ margin: 5px 0;
725
+ }
726
+ .wpuf-help-page .wpuf-help-questions li {
727
+ padding: 10px 5px;
728
+ margin: 0;
729
+ display: block;
730
+ border-bottom: 1px solid #eee;
731
+ }
732
+ .wpuf-help-page .wpuf-help-questions li:hover {
733
+ background-color: #F5F5F5;
734
+ }
735
+ .wpuf-help-page .wpuf-help-questions li:last-child {
736
+ border-bottom: none;
737
+ }
738
+ .wpuf-help-page .wpuf-help-questions li .dashicons {
739
+ color: #ccc;
740
+ margin-top: -3px;
741
+ }
742
+ .wpuf-help-page .wpuf-help-questions li .dashicons-media-text {
743
+ padding-left: 8px;
744
+ }
745
+ .wpuf-help-page .wpuf-help-questions li .dashicons-arrow-right-alt2 {
746
+ float: right;
747
+ }
748
+ .notice.wpuf-whats-new-notice {
749
+ display: flex;
750
+ position: relative;
751
+ padding: 0;
752
+ height: 65px;
753
+ }
754
+ .notice.wpuf-whats-new-notice .wpuf-whats-new-icon {
755
+ width: 75px;
756
+ height: 65px;
757
+ overflow: hidden;
758
+ }
759
+ .notice.wpuf-whats-new-notice .wpuf-whats-new-icon img {
760
+ max-width: 65px;
761
+ }
762
+ .notice.wpuf-whats-new-notice .wpuf-whats-new-text {
763
+ width: calc(100% - 240px);
764
+ }
765
+ .notice.wpuf-whats-new-notice .wpuf-whats-new-actions {
766
+ width: 165px;
767
+ }
768
+ .notice.wpuf-whats-new-notice .wpuf-whats-new-actions a {
769
+ display: inline-block;
770
+ margin-top: 20px;
771
+ }
772
+ .wpuf-whats-new .error,
773
+ .wpuf-whats-new .udpated,
774
+ .wpuf-whats-new .info,
775
+ .wpuf-whats-new .notice {
776
+ display: none;
777
+ }
778
+ .wpuf-whats-new h1 {
779
+ text-align: center;
780
+ margin-top: 20px;
781
+ font-size: 30px;
782
+ }
783
+ .wpuf-whats-new .wedevs-changelog {
784
+ display: flex;
785
+ max-width: 920px;
786
+ border: 1px solid #e5e5e5;
787
+ padding: 12px 20px 20px 20px;
788
+ margin: 20px auto;
789
+ background: #fff;
790
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
791
+ }
792
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-version {
793
+ width: 360px;
794
+ }
795
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-version .released {
796
+ font-style: italic;
797
+ }
798
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history {
799
+ width: 100%;
800
+ font-size: 14px;
801
+ }
802
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history li {
803
+ margin-bottom: 30px;
804
+ }
805
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history h4 {
806
+ margin: 0 0 10px 0;
807
+ font-size: 1.3em;
808
+ line-height: 26px;
809
+ }
810
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history p {
811
+ font-size: 14px;
812
+ line-height: 1.5;
813
+ }
814
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history img {
815
+ margin-top: 30px;
816
+ max-width: 100%;
817
+ }
818
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label {
819
+ margin-left: 10px;
820
+ position: relative;
821
+ color: #fff;
822
+ border-radius: 20px;
823
+ padding: 0 8px;
824
+ font-size: 12px;
825
+ height: 20px;
826
+ line-height: 19px;
827
+ -webkit-appearance: none;
828
+ -moz-appearance: none;
829
+ appearance: none;
830
+ font-weight: normal;
831
+ }
832
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.new {
833
+ background: #3778ff;
834
+ border: 1px solid #3778ff;
835
+ }
836
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.improvement {
837
+ background: #3aaa55;
838
+ border: 1px solid #3aaa a;
839
+ }
840
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.fix {
841
+ background: #ff4772;
842
+ border: 1px solid #ff4772;
843
+ }
844
+ #wpuf_subs_metabox .inside {
845
+ margin: 0;
846
+ padding: 0;
847
+ }
848
+ .wpuf-subscription-pack-settings {
849
+ display: flex;
850
+ }
851
+ .wpuf-subscription-pack-settings nav {
852
+ background-color: #f1f1f1;
853
+ min-width: 200px;
854
+ border-right: 1px solid #e5e5e5;
855
+ }
856
+ .wpuf-subscription-pack-settings nav ul,
857
+ .wpuf-subscription-pack-settings nav li {
858
+ margin: 0;
859
+ }
860
+ .wpuf-subscription-pack-settings nav a {
861
+ display: block;
862
+ border: none;
863
+ padding: 12px 5px 12px 15px;
864
+ border-bottom: 1px solid #e5e5e5;
865
+ border-right: 1px solid #e5e5e5;
866
+ background-color: #f1f1f1;
867
+ text-decoration: none;
868
+ margin-right: -1px;
869
+ font-weight: 500;
870
+ }
871
+ .wpuf-subscription-pack-settings nav a label {
872
+ padding: 0.5rem;
873
+ display: inline-block;
874
+ }
875
+ .wpuf-subscription-pack-settings nav a:focus,
876
+ .wpuf-subscription-pack-settings nav a:active {
877
+ outline: 0;
878
+ box-shadow: none;
879
+ }
880
+ .wpuf-subscription-pack-settings nav .tab-current a {
881
+ border-right: 1px solid #fff;
882
+ background: #fff;
883
+ color: #2e4453;
884
+ }
885
+ .wpuf-subscription-pack-settings .subscription-nav-content {
886
+ padding: 15px 25px;
887
+ width: 100%;
888
+ }
889
+ .wpuf-subscription-pack-settings .subscription-nav-content section {
890
+ display: none;
891
+ }
892
+ .wpuf-subscription-pack-settings .subscription-nav-content section.content-current {
893
+ display: block;
894
+ }
895
+ .wpuf-subscription-pack-settings .subscription-nav-content section .form-table th {
896
+ width: 150px;
897
+ min-width: 150px;
898
+ }
899
+ .wpuf-subscription-pack-settings .subscription-nav-content section .form-table td {
900
+ padding: 15px 0;
901
+ }
assets/css/admin/admin.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{-webkit-box-sizing:border-box;box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected],.select2-results__option[data-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid #000 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[data-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:#0073aa;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff 50%,#eee 100%);background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single:focus{border:1px solid #0073aa}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(#ccc));background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #0073aa}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,from(white),color-stop(50%,#eee));background-image:-webkit-linear-gradient(top,#fff 0,#eee 50%);background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(white));background-image:-webkit-linear-gradient(top,#eee 50%,#fff 100%);background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #0073aa}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #0073aa}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;-webkit-box-shadow:none;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected],.select2-container--classic .select2-results__option--highlighted[data-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#0073aa}
assets/css/admin/wpuf-setup.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";body{margin:65px auto 24px;-webkit-box-shadow:none;box-shadow:none;background:#f1f1f1;padding:0}#wpuf-logo{border:0;margin:0 0 24px;padding:0;text-align:center}#wpuf-logo img{max-width:30%}.wpuf-setup-content{-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:2em;margin:0 0 20px;background:#fff;overflow:hidden;zoom:1}.wpuf-setup-content h1,.wpuf-setup-content h2,.wpuf-setup-content h3,.wpuf-setup-content table{margin:0 0 20px;border:0;padding:0;color:#666;clear:none;font-weight:500}.wpuf-setup-content p{margin:20px 0;font-size:1em;line-height:1.75em;color:#666}.wpuf-setup-content table{font-size:1em;line-height:1.75em;color:#666}.wpuf-setup-content a{color:#40800d}.wpuf-setup-content a:focus,.wpuf-setup-content a:hover{color:#111}.wpuf-setup-content .form-table th{width:35%;vertical-align:top;font-weight:400}.wpuf-setup-content .form-table td{vertical-align:top}.wpuf-setup-content .form-table td input,.wpuf-setup-content .form-table td select{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.wpuf-setup-content .form-table td input[size]{width:auto}.wpuf-setup-content .form-table td .description{line-height:1.5em;display:block;margin-top:.25em;color:#999;font-style:italic}.wpuf-setup-content .form-table td .input-checkbox,.wpuf-setup-content .form-table td .input-radio{width:auto;-webkit-box-sizing:inherit;box-sizing:inherit;padding:inherit;margin:0 .5em 0 0;-webkit-box-shadow:none;box-shadow:none}.wpuf-setup-content .form-table .section_title td{padding:0}.wpuf-setup-content .form-table .section_title td h2,.wpuf-setup-content .form-table .section_title td p{margin:12px 0 0}.wpuf-setup-content .form-table td,.wpuf-setup-content .form-table th{padding:12px 0;margin:0;border:0}.wpuf-setup-content .form-table td:first-child,.wpuf-setup-content .form-table th:first-child{padding-right:1em}.wpuf-setup-content table.tax-rates{width:100%;font-size:.92em}.wpuf-setup-content table.tax-rates th{padding:0;text-align:center;width:auto;vertical-align:middle}.wpuf-setup-content table.tax-rates td{border:1px solid #f5f5f5;padding:6px;text-align:center;vertical-align:middle}.wpuf-setup-content table.tax-rates td input{outline:0;border:0;padding:0;-webkit-box-shadow:none;box-shadow:none;text-align:center;width:100%}.wpuf-setup-content table.tax-rates td.sort{cursor:move;color:#ccc}.wpuf-setup-content table.tax-rates td.sort::before{content:'\f333';font-family:dashicons}.wpuf-setup-content table.tax-rates td.readonly{background:#f5f5f5}.wpuf-setup-content table.tax-rates .add{padding:1em 0 0 1em;line-height:1em;font-size:1em;width:0;margin:6px 0 0;height:0;overflow:hidden;position:relative;display:inline-block}.wpuf-setup-content table.tax-rates .add::before{content:'\f502';font-family:dashicons;position:absolute;left:0;top:0}.wpuf-setup-content table.tax-rates .remove{padding:1em 0 0 1em;line-height:1em;font-size:1em;width:0;margin:0;height:0;overflow:hidden;position:relative;display:inline-block}.wpuf-setup-content table.tax-rates .remove::before{content:'\f182';font-family:dashicons;position:absolute;left:0;top:0}.wpuf-setup-content .wpuf-setup-pages{width:100%;border-top:1px solid #eee}.wpuf-setup-content .wpuf-setup-pages thead th{display:none}.wpuf-setup-content .wpuf-setup-pages .page-name{width:30%;font-weight:700}.wpuf-setup-content .wpuf-setup-pages td,.wpuf-setup-content .wpuf-setup-pages th{padding:14px 0;border-bottom:1px solid #eee}.wpuf-setup-content .wpuf-setup-pages td:first-child,.wpuf-setup-content .wpuf-setup-pages th:first-child{padding-right:9px}.wpuf-setup-content .wpuf-setup-pages th{padding-top:0}.wpuf-setup-content .wpuf-setup-pages .page-options p{color:#777;margin:6px 0 0 24px;line-height:1.75em}.wpuf-setup-content .wpuf-setup-pages .page-options p input{vertical-align:middle;margin:1px 0 0;height:1.75em;width:1.75em;line-height:1.75em}.wpuf-setup-content .wpuf-setup-pages .page-options p label{line-height:1}@media screen and (max-width:782px){.wpuf-setup-content .form-table tbody th{width:auto}}.wpuf-setup-content .twitter-share-button{float:right}.wpuf-setup-content .wpuf-setup-next-steps{overflow:hidden;margin:0 0 24px;padding-bottom:2px}.wpuf-setup-content .wpuf-setup-next-steps h2{margin-bottom:12px}.wpuf-setup-content .wpuf-setup-next-steps .wpuf-setup-next-steps-first{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.wpuf-setup-content .wpuf-setup-next-steps .wpuf-setup-next-steps-last{float:right;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.wpuf-setup-content .wpuf-setup-next-steps ul{padding:0 2em 0 0;list-style:none outside;margin:0}.wpuf-setup-content .wpuf-setup-next-steps ul li a{display:block;padding:0 0 .75em}.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button{background-color:#f7f7f7;border-color:#ccc;color:#23282d;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #ccc;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #ccc;text-shadow:1px 0 1px #eee,0 1px 1px #eee;font-size:1em;height:auto;line-height:1.75em;margin:0 0 .75em;opacity:1;padding:1em;text-align:center}.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button:active,.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button:focus,.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button:hover{background:#f5f5f5;border-color:#aaa}.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button-primary{color:#fff;background-color:#bb77ae;border-color:#30943d;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;text-shadow:0 -1px 1px #30943d,1px 0 1px #30943d,0 1px 1px #30943d,-1px 0 1px #30943d}.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button-primary:active,.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button-primary:focus,.wpuf-setup-content .wpuf-setup-next-steps ul .setup-product a.button-primary:hover{color:#fff;background:#30943d;border-color:#30943d;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d}.wpuf-setup-content .wpuf-setup-next-steps ul li a::before{color:#82878c;font:normal 20px/1 dashicons;speak:none;display:inline-block;padding:0 10px 0 0;top:1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.wpuf-setup-content .wpuf-setup-next-steps ul .learn-more a::before{content:'\f105'}.wpuf-setup-content .wpuf-setup-next-steps ul .video-walkthrough a::before{content:'\f126'}.wpuf-setup-content .wpuf-setup-next-steps ul .newsletter a::before{content:'\f465'}.wpuf-setup-content .updated,.wpuf-setup-content .woocommerce-newsletter,.wpuf-setup-content .woocommerce-tracker{padding:24px 24px 0;margin:0 0 24px;overflow:hidden;background:#f5f5f5}.wpuf-setup-content .updated p,.wpuf-setup-content .woocommerce-newsletter p,.wpuf-setup-content .woocommerce-tracker p{padding:0;margin:0 0 12px}.wpuf-setup-content .updated form,.wpuf-setup-content .updated p:last-child,.wpuf-setup-content .woocommerce-newsletter form,.wpuf-setup-content .woocommerce-newsletter p:last-child,.wpuf-setup-content .woocommerce-tracker form,.wpuf-setup-content .woocommerce-tracker p:last-child{margin:0 0 24px}.wpuf-setup-content .woocommerce-tracker+.woocommerce-newsletter{margin-top:-24px;border-top:2px dashed #ddd}.wpuf-setup-steps{padding:0 0 24px;margin:0;list-style:none outside;overflow:hidden;color:#ccc;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.wpuf-setup-steps li{width:20%;float:left;padding:0 0 .8em;margin:0;text-align:center;position:relative;border-bottom:4px solid #ccc;line-height:1.4em}.wpuf-setup-steps li::before{content:'';border:4px solid #ccc;border-radius:100%;width:4px;height:4px;position:absolute;bottom:0;left:50%;margin-left:-6px;margin-bottom:-8px;background:#fff}.wpuf-setup-steps li.active{border-color:#40800d;color:#40800d}.wpuf-setup-steps li.active::before{border-color:#40800d}.wpuf-setup-steps li.done{border-color:#40800d;color:#40800d}.wpuf-setup-steps li.done::before{border-color:#40800d;background:#40800d}.wpuf-setup .wpuf-setup-actions{overflow:hidden;margin:20px 0 0}.wpuf-setup .wpuf-setup-actions .button{font-size:1.25em;padding:.5em 1em;line-height:1em;margin-right:.5em;margin-bottom:2px;height:auto;border-radius:4px}.wpuf-setup .wpuf-setup-actions .button-primary{background-color:#bb77ae;border-color:#30943d;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;text-shadow:0 -1px 1px #30943d,1px 0 1px #30943d,0 1px 1px #30943d,-1px 0 1px #30943d;margin:0;opacity:1}.wpuf-setup .wpuf-setup-actions .button-primary:active,.wpuf-setup .wpuf-setup-actions .button-primary:focus,.wpuf-setup .wpuf-setup-actions .button-primary:hover{background:#30943d;border-color:#30943d;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #30943d}.wpuf-setup-content p:last-child{margin-bottom:0}.wpuf-setup-content p.store-setup{margin-top:0}.wpuf-return-to-dashboard{font-size:.85em;color:#b5b5b5;margin:1.18em 0;display:block;text-align:center}.wpuf-wizard-storefront .wpuf-wizard-storefront-intro{padding:40px 40px 0;background:#f5f5f5;text-align:center}.wpuf-wizard-storefront .wpuf-wizard-storefront-intro img{margin:40px 0 0 0;width:100%;display:block}.wpuf-wizard-storefront .wpuf-wizard-storefront-features{list-style:none outside;margin:0 0 20px;padding:0 0 0 30px;overflow:hidden}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature{margin:0;padding:20px 30px 20px 2em;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature::before{margin-left:-2em;position:absolute}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature.first{clear:both;float:left}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature.last{float:right}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__bulletproof::before{content:'🔒'}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__mobile::before{content:'📱'}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__accessibility::before{content:'👓'}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__search::before{content:'🔍'}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__compatibility::before{content:'🔧'}.wpuf-wizard-storefront .wpuf-wizard-storefront-feature__extendable::before{content:'🎨'}.wpuf-wizard-services{border:1px solid #eee;padding:0;margin:0 0 1em;list-style:none outside;border-radius:4px}.wpuf-wizard-services p{margin:0 0 1em 0;padding:0;font-size:1em;line-height:1.5em}.wpuf-wizard-service-item,.wpuf-wizard-services-list-toggle{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:2em 0;border-bottom:1px solid #eee;color:#666}.wpuf-wizard-service-item:last-child,.wpuf-wizard-services-list-toggle:last-child{border-bottom:0}.wpuf-wizard-service-item .payment-gateway-fee,.wpuf-wizard-services-list-toggle .payment-gateway-fee{color:#a6a6a6}.wpuf-wizard-service-item .wpuf-wizard-service-name,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-name{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;min-width:175px;text-align:center;font-weight:700}.wpuf-wizard-service-item .wpuf-wizard-service-name img,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-name img{max-width:75px;margin-top:.5em}.wpuf-wizard-service-item .wpuf-wizard-service-description,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-description{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0 1em}.wpuf-wizard-service-item .wpuf-wizard-service-description p,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-description p{margin-bottom:0}.wpuf-wizard-service-item .wpuf-wizard-service-description .wpuf-wizard-service-settings,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-description .wpuf-wizard-service-settings{margin-top:1em}.wpuf-wizard-service-item .wpuf-wizard-service-description .wpuf-wizard-service-settings-description,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-description .wpuf-wizard-service-settings-description{display:block;font-style:italic;color:#999}.wpuf-wizard-service-item .wpuf-wizard-service-enable,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-enable{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;min-width:75px;text-align:center;cursor:pointer}.wpuf-wizard-service-item .wpuf-wizard-service-toggle,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-toggle{height:16px;width:32px;border:2px solid #935687;background-color:#935687;display:inline-block;text-indent:-9999px;border-radius:10em;position:relative}.wpuf-wizard-service-item .wpuf-wizard-service-toggle input[type=checkbox],.wpuf-wizard-services-list-toggle .wpuf-wizard-service-toggle input[type=checkbox]{display:none}.wpuf-wizard-service-item .wpuf-wizard-service-toggle:before,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-toggle:before{content:"";display:block;width:16px;height:16px;background:#fff;position:absolute;top:0;right:0;border-radius:100%}.wpuf-wizard-service-item .wpuf-wizard-service-toggle.disabled,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-toggle.disabled{border-color:#999;background-color:#999}.wpuf-wizard-service-item .wpuf-wizard-service-toggle.disabled:before,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-toggle.disabled:before{right:auto;left:0}.wpuf-wizard-service-item .wpuf-wizard-service-settings,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-settings{display:none;margin-bottom:0;cursor:default}.wpuf-wizard-service-item .wpuf-wizard-service-settings.hide,.wpuf-wizard-services-list-toggle .wpuf-wizard-service-settings.hide{display:none}.wpuf-wizard-service-item.checked .wpuf-wizard-service-settings,.wpuf-wizard-services-list-toggle.checked .wpuf-wizard-service-settings{display:inline-block}.wpuf-wizard-service-item.checked .wpuf-wizard-service-settings.hide,.wpuf-wizard-services-list-toggle.checked .wpuf-wizard-service-settings.hide{display:none}.wpuf-wizard-service-item.closed,.wpuf-wizard-services-list-toggle.closed{border-bottom:0}.wpuf-wizard-service-enable input{visibility:hidden;position:relative}.wpuf-wizard-service-enable input:before{content:"\f347";font-family:dashicons;visibility:initial;color:#666;font-size:25px;margin-left:-5px;top:-6px;position:absolute}.wpuf-wizard-service-enable input:checked:before{content:"\f343";top:-7px}.wpuf-wizard-services.manual .wpuf-wizard-service-item{display:none}.wpuf-wizard-services.shipping .wpuf-wizard-service-name{font-weight:400;text-align:left}.wpuf-wizard-services.shipping .wpuf-wizard-service-item{padding-left:2em}.wpuf-wizard-services.shipping .wpuf-wizard-service-item:first-child{border-bottom:0;padding-bottom:0;font-weight:700}.wpuf-wizard-services.shipping .wpuf-wizard-service-item:first-child .wpuf-wizard-service-name{font-weight:700}.wpuf-wizard-services.shipping .shipping-method-setting,.wpuf-wizard-services.shipping .wpuf-wizard-shipping-method-select{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.wpuf-wizard-services.shipping .shipping-method-setting.hide,.wpuf-wizard-services.shipping .wpuf-wizard-shipping-method-select.hide{display:none}.wpuf-wizard-services.shipping .shipping-method-setting input,.wpuf-wizard-services.shipping .wpuf-wizard-shipping-method-dropdown{margin-right:2em;margin-bottom:1em}.wpuf-wizard-services.shipping .shipping-method-setting input .select2,.wpuf-wizard-services.shipping .wpuf-wizard-shipping-method-dropdown .select2{min-width:130px}.wpuf-wizard-services.shipping .wpuf-wizard-service-description{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;color:#a6a6a6;font-size:.92em}.wpuf-wizard-services.shipping .shipping-method-setting input{width:95px;border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:28px;padding-left:8px;padding-right:24px;font-size:14px;color:#444;background-color:#fff;display:inline-block}.wpuf-wizard-services.shipping .shipping-method-description,.wpuf-wizard-services.shipping .shipping-method-setting .description{color:#7e7e7e;font-size:.9em}.wpuf-wizard-services.shipping .shipping-method-setting input::-webkit-input-placeholder{color:#e1e1e1}.wpuf-wizard-services.shipping .shipping-method-setting input::-moz-placeholder{color:#e1e1e1}.wpuf-wizard-services.shipping .shipping-method-setting input:-ms-input-placeholder{color:#e1e1e1}.wpuf-wizard-services.shipping .shipping-method-setting input::placeholder{color:#e1e1e1}.wpuf-setup-shipping-units p{line-height:1.5em;font-size:13px;margin-bottom:.25em}.wpuf-setup-shipping-units .wpuf-setup-shipping-unit{margin-bottom:1.75em}.wpuf-setup-shipping-units .wpuf-setup-shipping-unit .select2{min-width:100%}.hide{display:none}.wpuf-wizard-features{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;padding:0}.wpuf-wizard-features .wpuf-wizard-feature-item{-webkit-flex-basis:calc(50% - 4em - 3px);-ms-flex-preferred-size:calc(50% - 4em - 3px);flex-basis:calc(50% - 4em - 3px);border:1px solid #eee;padding:2em}.wpuf-wizard-features .wpuf-wizard-feature-item:nth-child(1){border-radius:4px 0 0 0}.wpuf-wizard-features .wpuf-wizard-feature-item:nth-child(2){border-left:0;border-radius:0 4px 0 0}.wpuf-wizard-features .wpuf-wizard-feature-item:nth-child(3){border-top:0;border-radius:0 0 0 4px}.wpuf-wizard-features .wpuf-wizard-feature-item:nth-child(4){border-top:0;border-left:0;border-radius:0 0 4px 0}.wpuf-wizard-features p.wpuf-wizard-feature-description,.wpuf-wizard-features p.wpuf-wizard-feature-name{margin:0;line-height:1.5em}h3.jetpack-reasons{text-align:center;margin:3em 0 1em 0;font-size:14px}.jetpack-logo{display:block;margin:1.75em auto 2em auto;max-height:175px}.step{text-align:center}.wpuf-setup .wpuf-setup-actions .button{font-weight:300;font-size:16px;padding:1em 2em;-webkit-box-shadow:none;box-shadow:none;min-width:12em;min-width:auto;margin-top:10px}.wpuf-setup .wpuf-setup-actions .button:active,.wpuf-setup .wpuf-setup-actions .button:focus,.wpuf-setup .wpuf-setup-actions .button:hover{-webkit-box-shadow:none;box-shadow:none}.location-prompt{color:#666;font-size:13px;font-weight:500;margin-bottom:.5em;margin-top:1em;display:inline-block}.location-input{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:30px;width:calc(100% - 8px - 24px - 2px);padding-left:8px;padding-right:24px;font-size:16px;color:#444;background-color:#fff;display:inline-block}.location-input.dropdown{width:100%}.address-step .select2{min-width:100%}.store-address-container{margin-bottom:24px}.store-address-container .city-and-postcode{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.store-address-container .city-and-postcode div{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;margin-right:1em}.store-address-container .city-and-postcode div:last-of-type{margin-right:0}.wpuf-wizard-service-settings .payment-email-input{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:30px;padding:0 8px;font-size:14px;color:#444;background-color:#fff;display:inline-block}.newsletter-form-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.newsletter-form-container .newsletter-form-email{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:42px;padding:0 8px;font-size:16px;color:#666;background-color:#fff;display:inline-block;margin-right:6px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.newsletter-form-container .newsletter-form-button-container{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0}.wpuf-setup .wpuf-setup-actions .button.newsletter-form-button{height:42px;padding:0 1em;margin:0}.wpuf-wizard-next-steps{border:1px solid #eee;border-radius:4px;list-style:none;padding:0}.wpuf-wizard-next-steps li{padding:0}.wpuf-wizard-next-steps .wpuf-wizard-next-step-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-top:1px solid #eee}.wpuf-wizard-next-steps .wpuf-wizard-next-step-item:first-child{border-top:0}.wpuf-wizard-next-steps .wpuf-wizard-next-step-description{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin:1.5em}.wpuf-wizard-next-steps .wpuf-wizard-next-step-action{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wpuf-wizard-next-steps .wpuf-wizard-next-step-action .button{margin:1em}.wpuf-wizard-next-steps p.next-step-heading{margin:0;font-size:.95em;font-weight:400;font-variant:all-petite-caps}.wpuf-wizard-next-steps p.next-step-extra-info{margin:0}.wpuf-wizard-next-steps h3.next-step-description{margin:0;font-size:16px;font-weight:600}p.next-steps-help-text{color:#9f9f9f;padding:0 2em;text-align:center;font-size:.9em}p.jetpack-terms{font-size:.8em;text-align:center;max-width:480px;margin:0 auto;line-height:1.5em}.woocommerce-error{background:#ffe6e5;border-color:#ffc5c2;padding:1em;margin-bottom:1em}.woocommerce-error p{margin-top:0;margin-bottom:.5em;color:#444}.woocommerce-error a{color:#ff645c}.woocommerce-error .reconnect-reminder{font-size:.85em}.woocommerce-error .wpuf-setup-actions .button{font-size:14px}.allow-tracking{color:#9f9f9f;margin-top:2em;text-align:center;font-size:.9em}.wpuf-wizard-service-setting-stripe_create_account{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;margin-top:.75em}.wpuf-wizard-service-setting-stripe_create_account .payment-checkbox-input{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;margin-left:0;margin-right:0;width:1.5em}.wpuf-wizard-service-setting-stripe_create_account .stripe_create_account{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;margin-left:.3em}.wpuf-wizard-service-setting-stripe_email{margin-top:.75em}.wpuf-wizard-service-setting-stripe_email label.stripe_email{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.wpuf-wizard-service-setting-stripe_email input.payment-email-input{margin-left:1.5em;margin-bottom:.5em;width:100%}.wpuf-wizard-service-setting-stripe_email .wpuf-wizard-service-settings-description{margin-left:1.5em}
assets/css/chosen/chosen-sprite.png ADDED
Binary file
assets/css/chosen/chosen-sprite@2x.png ADDED
Binary file
assets/css/chosen/chosen.css ADDED
@@ -0,0 +1,436 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Chosen, a Select Box Enhancer for jQuery and Prototype
3
+ by Patrick Filler for Harvest, http://getharvest.com
4
+
5
+ Version 1.1.0
6
+ Full source at https://github.com/harvesthq/chosen
7
+ Copyright (c) 2011 Harvest http://getharvest.com
8
+
9
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
10
+ This file is generated by `grunt build`, do not edit it by hand.
11
+ */
12
+
13
+ /* @group Base */
14
+ .chosen-container {
15
+ position: relative;
16
+ display: inline-block;
17
+ vertical-align: middle;
18
+ font-size: 13px;
19
+ zoom: 1;
20
+ *display: inline;
21
+ -webkit-user-select: none;
22
+ -moz-user-select: none;
23
+ user-select: none;
24
+ min-width: 200px;
25
+ }
26
+ .chosen-container .chosen-drop {
27
+ position: absolute;
28
+ top: 100%;
29
+ left: -9999px;
30
+ z-index: 1010;
31
+ -webkit-box-sizing: border-box;
32
+ -moz-box-sizing: border-box;
33
+ box-sizing: border-box;
34
+ width: 100%;
35
+ border: 1px solid #ddd;
36
+ border-top: 0;
37
+ background: #fff;
38
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
39
+ }
40
+ .chosen-container.chosen-with-drop .chosen-drop {
41
+ left: 0;
42
+ }
43
+ .chosen-container a {
44
+ cursor: pointer;
45
+ }
46
+
47
+ /* @end */
48
+ /* @group Single Chosen */
49
+ .chosen-container-single .chosen-single {
50
+ position: relative;
51
+ display: block;
52
+ overflow: hidden;
53
+ padding: 0 0 0 8px;
54
+ height: 23px;
55
+ border: 1px solid #aaa;
56
+ border-radius: 5px;
57
+ background-color: #fff;
58
+ background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
59
+ background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
60
+ background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
61
+ background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
62
+ background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
63
+ background-clip: padding-box;
64
+ box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
65
+ color: #444;
66
+ text-decoration: none;
67
+ white-space: nowrap;
68
+ line-height: 24px;
69
+ }
70
+ .chosen-container-single .chosen-default {
71
+ color: #999;
72
+ }
73
+ .chosen-container-single .chosen-single span {
74
+ display: block;
75
+ overflow: hidden;
76
+ margin-right: 26px;
77
+ text-overflow: ellipsis;
78
+ white-space: nowrap;
79
+ }
80
+ .chosen-container-single .chosen-single-with-deselect span {
81
+ margin-right: 38px;
82
+ }
83
+ .chosen-container-single .chosen-single abbr {
84
+ position: absolute;
85
+ top: 6px;
86
+ right: 26px;
87
+ display: block;
88
+ width: 12px;
89
+ height: 12px;
90
+ background: url('chosen-sprite.png') -42px 1px no-repeat;
91
+ font-size: 1px;
92
+ }
93
+ .chosen-container-single .chosen-single abbr:hover {
94
+ background-position: -42px -10px;
95
+ }
96
+ .chosen-container-single.chosen-disabled .chosen-single abbr:hover {
97
+ background-position: -42px -10px;
98
+ }
99
+ .chosen-container-single .chosen-single div {
100
+ position: absolute;
101
+ top: 0;
102
+ right: 0;
103
+ display: block;
104
+ width: 18px;
105
+ height: 100%;
106
+ }
107
+ .chosen-container-single .chosen-single div b {
108
+ display: block;
109
+ width: 100%;
110
+ height: 100%;
111
+ background: url('chosen-sprite.png') no-repeat 0px 2px;
112
+ }
113
+ .chosen-container-single .chosen-search {
114
+ position: relative;
115
+ z-index: 1010;
116
+ margin: 0;
117
+ padding: 3px 4px;
118
+ white-space: nowrap;
119
+ }
120
+ .chosen-container-single .chosen-search input[type="text"] {
121
+ -webkit-box-sizing: border-box;
122
+ -moz-box-sizing: border-box;
123
+ box-sizing: border-box;
124
+ margin: 1px 0;
125
+ padding: 4px 20px 4px 5px;
126
+ width: 100%;
127
+ height: auto;
128
+ outline: 0;
129
+ border: 1px solid #aaa;
130
+ background: white url('chosen-sprite.png') no-repeat 100% -20px;
131
+ background: url('chosen-sprite.png') no-repeat 100% -20px;
132
+ font-size: 1em;
133
+ font-family: sans-serif;
134
+ line-height: normal;
135
+ border-radius: 0;
136
+ }
137
+ .chosen-container-single .chosen-drop {
138
+ margin-top: -1px;
139
+ border-radius: 0 0 4px 4px;
140
+ background-clip: padding-box;
141
+ }
142
+ .chosen-container-single.chosen-container-single-nosearch .chosen-search {
143
+ position: absolute;
144
+ left: -9999px;
145
+ }
146
+
147
+ /* @end */
148
+ /* @group Results */
149
+ .chosen-container .chosen-results {
150
+ position: relative;
151
+ overflow-x: hidden;
152
+ overflow-y: auto;
153
+ margin: 0 4px 4px 0;
154
+ padding: 0 0 0 4px;
155
+ max-height: 240px;
156
+ -webkit-overflow-scrolling: touch;
157
+ }
158
+ .chosen-container .chosen-results li {
159
+ display: none;
160
+ margin: 0;
161
+ padding: 5px 6px;
162
+ list-style: none;
163
+ line-height: 15px;
164
+ -webkit-touch-callout: none;
165
+ }
166
+ .chosen-container .chosen-results li.active-result {
167
+ display: list-item;
168
+ cursor: pointer;
169
+ }
170
+ .chosen-container .chosen-results li.disabled-result {
171
+ display: list-item;
172
+ color: #ccc;
173
+ cursor: default;
174
+ }
175
+ .chosen-container .chosen-results li.highlighted {
176
+ background-color: #3875d7;
177
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
178
+ background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
179
+ background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
180
+ background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
181
+ background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
182
+ color: #fff;
183
+ }
184
+ .chosen-container .chosen-results li.no-results {
185
+ display: list-item;
186
+ background: #f4f4f4;
187
+ }
188
+ .chosen-container .chosen-results li.group-result {
189
+ display: list-item;
190
+ font-weight: bold;
191
+ cursor: default;
192
+ }
193
+ .chosen-container .chosen-results li.group-option {
194
+ padding-left: 15px;
195
+ }
196
+ .chosen-container .chosen-results li em {
197
+ font-style: normal;
198
+ text-decoration: underline;
199
+ }
200
+
201
+ /* @end */
202
+ /* @group Multi Chosen */
203
+ .chosen-container-multi .chosen-choices {
204
+ position: relative;
205
+ overflow: hidden;
206
+ -webkit-box-sizing: border-box;
207
+ -moz-box-sizing: border-box;
208
+ box-sizing: border-box;
209
+ margin: 0;
210
+ padding: 0;
211
+ width: 100%;
212
+ height: auto !important;
213
+ height: 1%;
214
+ border: 1px solid #aaa;
215
+ background-color: #fff;
216
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
217
+ background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
218
+ background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
219
+ background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
220
+ background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
221
+ cursor: text;
222
+ }
223
+ .chosen-container-multi .chosen-choices li {
224
+ float: left;
225
+ list-style: none;
226
+ }
227
+ .chosen-container-multi .chosen-choices li.search-field {
228
+ margin: 0;
229
+ padding: 0;
230
+ white-space: nowrap;
231
+ }
232
+ .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
233
+ margin: 1px 0;
234
+ padding: 5px;
235
+ height: 15px;
236
+ outline: 0;
237
+ border: 0 !important;
238
+ background: transparent !important;
239
+ box-shadow: none;
240
+ color: #666;
241
+ font-size: 100%;
242
+ font-family: sans-serif;
243
+ line-height: normal;
244
+ border-radius: 0;
245
+ }
246
+ .chosen-container-multi .chosen-choices li.search-field .default {
247
+ color: #999;
248
+ }
249
+ .chosen-container-multi .chosen-choices li.search-choice {
250
+ position: relative;
251
+ margin: 3px 0 3px 5px;
252
+ padding: 3px 20px 3px 5px;
253
+ border: 1px solid #aaa;
254
+ border-radius: 3px;
255
+ background-color: #e4e4e4;
256
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
257
+ background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
258
+ background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
259
+ background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
260
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
261
+ background-clip: padding-box;
262
+ box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
263
+ color: #333;
264
+ line-height: 13px;
265
+ cursor: default;
266
+ }
267
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
268
+ position: absolute;
269
+ top: 4px;
270
+ right: 3px;
271
+ display: block;
272
+ width: 12px;
273
+ height: 12px;
274
+ background: url('chosen-sprite.png') -42px 1px no-repeat;
275
+ font-size: 1px;
276
+ }
277
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
278
+ background-position: -42px -10px;
279
+ }
280
+ .chosen-container-multi .chosen-choices li.search-choice-disabled {
281
+ padding-right: 5px;
282
+ border: 1px solid #ccc;
283
+ background-color: #e4e4e4;
284
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
285
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
286
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
287
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
288
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
289
+ color: #666;
290
+ }
291
+ .chosen-container-multi .chosen-choices li.search-choice-focus {
292
+ background: #d4d4d4;
293
+ }
294
+ .chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
295
+ background-position: -42px -10px;
296
+ }
297
+ .chosen-container-multi .chosen-results {
298
+ margin: 0;
299
+ padding: 0;
300
+ }
301
+ .chosen-container-multi .chosen-drop .result-selected {
302
+ display: list-item;
303
+ color: #ccc;
304
+ cursor: default;
305
+ }
306
+
307
+ /* @end */
308
+ /* @group Active */
309
+ .chosen-container-active .chosen-single {
310
+ border: 1px solid #5897fb;
311
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
312
+ }
313
+ .chosen-container-active.chosen-with-drop .chosen-single {
314
+ border: 1px solid #aaa;
315
+ -moz-border-radius-bottomright: 0;
316
+ border-bottom-right-radius: 0;
317
+ -moz-border-radius-bottomleft: 0;
318
+ border-bottom-left-radius: 0;
319
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
320
+ background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
321
+ background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
322
+ background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
323
+ background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
324
+ box-shadow: 0 1px 0 #fff inset;
325
+ }
326
+ .chosen-container-active.chosen-with-drop .chosen-single div {
327
+ border-left: none;
328
+ background: transparent;
329
+ }
330
+ .chosen-container-active.chosen-with-drop .chosen-single div b {
331
+ background-position: -18px 2px;
332
+ }
333
+ .chosen-container-active .chosen-choices {
334
+ border: 1px solid #5897fb;
335
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
336
+ }
337
+ .chosen-container-active .chosen-choices li.search-field input[type="text"] {
338
+ color: #111 !important;
339
+ }
340
+
341
+ /* @end */
342
+ /* @group Disabled Support */
343
+ .chosen-disabled {
344
+ opacity: 0.5 !important;
345
+ cursor: default;
346
+ }
347
+ .chosen-disabled .chosen-single {
348
+ cursor: default;
349
+ }
350
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
351
+ cursor: default;
352
+ }
353
+
354
+ /* @end */
355
+ /* @group Right to Left */
356
+ .chosen-rtl {
357
+ text-align: right;
358
+ }
359
+ .chosen-rtl .chosen-single {
360
+ overflow: visible;
361
+ padding: 0 8px 0 0;
362
+ }
363
+ .chosen-rtl .chosen-single span {
364
+ margin-right: 0;
365
+ margin-left: 26px;
366
+ direction: rtl;
367
+ }
368
+ .chosen-rtl .chosen-single-with-deselect span {
369
+ margin-left: 38px;
370
+ }
371
+ .chosen-rtl .chosen-single div {
372
+ right: auto;
373
+ left: 3px;
374
+ }
375
+ .chosen-rtl .chosen-single abbr {
376
+ right: auto;
377
+ left: 26px;
378
+ }
379
+ .chosen-rtl .chosen-choices li {
380
+ float: right;
381
+ }
382
+ .chosen-rtl .chosen-choices li.search-field input[type="text"] {
383
+ direction: rtl;
384
+ }
385
+ .chosen-rtl .chosen-choices li.search-choice {
386
+ margin: 3px 5px 3px 0;
387
+ padding: 3px 5px 3px 19px;
388
+ }
389
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
390
+ right: auto;
391
+ left: 4px;
392
+ }
393
+ .chosen-rtl.chosen-container-single-nosearch .chosen-search,
394
+ .chosen-rtl .chosen-drop {
395
+ left: 9999px;
396
+ }
397
+ .chosen-rtl.chosen-container-single .chosen-results {
398
+ margin: 0 0 4px 4px;
399
+ padding: 0 4px 0 0;
400
+ }
401
+ .chosen-rtl .chosen-results li.group-option {
402
+ padding-right: 15px;
403
+ padding-left: 0;
404
+ }
405
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
406
+ border-right: none;
407
+ }
408
+ .chosen-rtl .chosen-search input[type="text"] {
409
+ padding: 4px 5px 4px 20px;
410
+ background: white url('chosen-sprite.png') no-repeat -30px -20px;
411
+ background: url('chosen-sprite.png') no-repeat -30px -20px;
412
+ direction: rtl;
413
+ }
414
+ .chosen-rtl.chosen-container-single .chosen-single div b {
415
+ background-position: 6px 2px;
416
+ }
417
+ .chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
418
+ background-position: -12px 2px;
419
+ }
420
+
421
+ /* @end */
422
+ /* @group Retina compatibility */
423
+ @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
424
+ .chosen-rtl .chosen-search input[type="text"],
425
+ .chosen-container-single .chosen-single abbr,
426
+ .chosen-container-single .chosen-single div b,
427
+ .chosen-container-single .chosen-search input[type="text"],
428
+ .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
429
+ .chosen-container .chosen-results-scroll-down span,
430
+ .chosen-container .chosen-results-scroll-up span {
431
+ background-image: url('chosen-sprite@2x.png') !important;
432
+ background-size: 52px 37px !important;
433
+ background-repeat: no-repeat !important;
434
+ }
435
+ }
436
+ /* @end */
assets/css/frontend-forms.css ADDED
@@ -0,0 +1,1268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* DivTable.com */
2
+ .wpufTable {
3
+ display: table;
4
+ width: 100%;
5
+ }
6
+ .wpufTableRow {
7
+ display: table-row;
8
+ }
9
+ .wpufTableRow:nth-child(even) {
10
+ background-color: #f5f5f5;
11
+ }
12
+ .wpufTableHeading {
13
+ background-color: #eee;
14
+ display: table-header-group;
15
+ font-weight: bold;
16
+ }
17
+ .wpufTableCell,
18
+ .wpufTableHead {
19
+ border: none;
20
+ display: table-cell;
21
+ padding: 3px 10px;
22
+ }
23
+ .wpufTableFoot {
24
+ background-color: #eee;
25
+ display: table-footer-group;
26
+ font-weight: bold;
27
+ }
28
+ .wpufTableBody {
29
+ display: table-row-group;
30
+ }
31
+ .wpuf-loading {
32
+ width: 16px;
33
+ height: 16px;
34
+ background: url('../images/wpspin_light.gif') no-repeat;
35
+ display: inline-block;
36
+ }
37
+ .wpuf-loading.hide {
38
+ display: none;
39
+ }
40
+ .wpuf-button {
41
+ color: #555;
42
+ border-color: #cccccc;
43
+ background: #f7f7f7;
44
+ -webkit-box-shadow: 0 1px 0 #cccccc;
45
+ box-shadow: 0 1px 0 #cccccc;
46
+ vertical-align: top;
47
+ }
48
+ .wpuf-button:hover,
49
+ .wpuf-button:focus {
50
+ background: #fafafa;
51
+ border-color: #999;
52
+ color: #23282d;
53
+ }
54
+ .wpuf-success {
55
+ background-color: #dff0d8;
56
+ border: 1px solid #d6e9c6;
57
+ color: #3c763d;
58
+ padding: 10px;
59
+ margin: 10px 0 20px 0;
60
+ }
61
+ .wpuf-error {
62
+ background-color: #f2dede;
63
+ color: #a94442;
64
+ border: 1px solid #ebccd1;
65
+ margin: 10px 0 20px 0;
66
+ padding: 10px;
67
+ -webkit-border-radius: 3px;
68
+ -moz-border-radius: 3px;
69
+ border-radius: 3px;
70
+ font-size: 13px;
71
+ }
72
+ .wpuf-message {
73
+ background: #fcf8e3;
74
+ border: 1px solid #faebcc;
75
+ color: #8a6d3b;
76
+ margin: 10px 0 20px 0;
77
+ padding: 10px;
78
+ -webkit-border-radius: 3px;
79
+ -moz-border-radius: 3px;
80
+ border-radius: 3px;
81
+ font-size: 13px;
82
+ }
83
+ .wpuf-info {
84
+ background-color: #fef5be;
85
+ border: 2px solid #fdd425;
86
+ border-radius: 5px;
87
+ -moz-border-radius: 5px;
88
+ -webkit-border-radius: 5px;
89
+ padding: 5px 10px;
90
+ margin: 0 0 10px 0;
91
+ font-size: 13px;
92
+ }
93
+ ul.wpuf-form {
94
+ list-style: none !important;
95
+ margin: 0 !important;
96
+ padding: 0 !important;
97
+ width: 100%;
98
+ }
99
+ ul.wpuf-form li {
100
+ margin-left: 0;
101
+ margin-bottom: 10px;
102
+ padding: 10px;
103
+ }
104
+ ul.wpuf-form li:after {
105
+ clear: both;
106
+ content: "";
107
+ display: table;
108
+ }
109
+ ul.wpuf-form li.has-error {
110
+ background: #FFE4E4;
111
+ }
112
+ ul.wpuf-form li .wp-editor-wrap {
113
+ border: 1px solid #eee;
114
+ }
115
+ ul.wpuf-form li.wpuf_hidden_field {
116
+ display: none;
117
+ }
118
+ ul.wpuf-form li .wpuf-label {
119
+ float: left;
120
+ width: 30%;
121
+ min-height: 1px;
122
+ font-weight: bold;
123
+ }
124
+ ul.wpuf-form li .wpuf-label .required {
125
+ color: red;
126
+ }
127
+ ul.wpuf-form li.field-size-large .wpuf-fields {
128
+ float: left;
129
+ width: 70%;
130
+ }
131
+ ul.wpuf-form li.field-size-medium .wpuf-fields {
132
+ float: left;
133
+ width: 50%;
134
+ }
135
+ ul.wpuf-form li.field-size-small .wpuf-fields {
136
+ float: left;
137
+ width: 30%;
138
+ }
139
+ ul.wpuf-form li .wpuf-fields {
140
+ float: left;
141
+ width: 70%;
142
+ }
143
+ ul.wpuf-form li .wpuf-fields input[type=text],
144
+ ul.wpuf-form li .wpuf-fields input[type=password],
145
+ ul.wpuf-form li .wpuf-fields input[type=email],
146
+ ul.wpuf-form li .wpuf-fields input[type=url],
147
+ ul.wpuf-form li .wpuf-fields input[type=number],
148
+ ul.wpuf-form li .wpuf-fields textarea {
149
+ background: #fafafa;
150
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
151
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
152
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
153
+ border: 1px solid #ddd;
154
+ color: #888;
155
+ width: 95%;
156
+ }
157
+ ul.wpuf-form li .wpuf-fields input[type=text]:focus,
158
+ ul.wpuf-form li .wpuf-fields input[type=password]:focus,
159
+ ul.wpuf-form li .wpuf-fields input[type=email]:focus,
160
+ ul.wpuf-form li .wpuf-fields input[type=url]:focus,
161
+ ul.wpuf-form li .wpuf-fields input[type=number]:focus,
162
+ ul.wpuf-form li .wpuf-fields textarea:focus {
163
+ color: #373737;
164
+ }
165
+ ul.wpuf-form li .wpuf-fields textarea {
166
+ padding-left: 3px;
167
+ width: 95%;
168
+ }
169
+ ul.wpuf-form li .wpuf-fields input[type=text],
170
+ ul.wpuf-form li .wpuf-fields input[type=password],
171
+ ul.wpuf-form li .wpuf-fields input[type=email],
172
+ ul.wpuf-form li .wpuf-fields input[type=url],
173
+ ul.wpuf-form li .wpuf-fields input[type=number] {
174
+ padding: 5px;
175
+ }
176
+ ul.wpuf-form li .wpuf-fields select {
177
+ border: 1px solid #eee;
178
+ padding: 2px;
179
+ height: 2em;
180
+ -webkit-border-radius: 3px;
181
+ -moz-border-radius: 3px;
182
+ border-radius: 3px;
183
+ min-width: 150px;
184
+ max-width: 100%;
185
+ }
186
+ ul.wpuf-form li .wpuf-fields select[multiple] {
187
+ height: auto;
188
+ }
189
+ ul.wpuf-form li .wpuf-fields .wpuf-radio-inline,
190
+ ul.wpuf-form li .wpuf-fields .wpuf-checkbox-inline {
191
+ display: inline-block;
192
+ margin-right: 10px;
193
+ }
194
+ ul.wpuf-form li .wpuf-fields .wpuf-radio-block,
195
+ ul.wpuf-form li .wpuf-fields .wpuf-checkbox-block {
196
+ display: block;
197
+ margin-bottom: 6px;
198
+ }
199
+ ul.wpuf-form li .wpuf-fields a.file-selector {
200
+ display: inline;
201
+ text-decoration: none;
202
+ padding: 5px 12px;
203
+ margin: 0;
204
+ height: 30px;
205
+ line-height: 28px;
206
+ border: 1px solid #ccc;
207
+ -webkit-border-radius: 3px;
208
+ -moz-border-radius: 3px;
209
+ border-radius: 3px;
210
+ background: #fafafa;
211
+ color: #23282d;
212
+ box-shadow: 0 1px 0 #cccccc;
213
+ vertical-align: top;
214
+ cursor: pointer;
215
+ -webkit-appearance: none;
216
+ white-space: nowrap;
217
+ }
218
+ ul.wpuf-form li .wpuf-fields a.file-selector:hover,
219
+ ul.wpuf-form li .wpuf-fields a.file-selector:focus {
220
+ background: #fafafa;
221
+ border-color: #999;
222
+ color: #23282d;
223
+ }
224
+ ul.wpuf-form li .wpuf-fields .google-map img {
225
+ max-width: none !important;
226
+ }
227
+ ul.wpuf-form li .wpuf-fields .wpuf-product-qty {
228
+ float: left;
229
+ width: 10%;
230
+ }
231
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap {
232
+ margin-bottom: 8px;
233
+ }
234
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap:after {
235
+ clear: both;
236
+ content: "";
237
+ display: table;
238
+ }
239
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-field-first-name {
240
+ float: left;
241
+ width: 48%;
242
+ }
243
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-field-middle-name {
244
+ display: none;
245
+ }
246
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-field-last-name {
247
+ float: right;
248
+ width: 48%;
249
+ }
250
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-middle-last .wpuf-name-field-first-name {
251
+ float: left;
252
+ width: 37%;
253
+ margin-right: 3%;
254
+ }
255
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-middle-last .wpuf-name-field-middle-name {
256
+ float: left;
257
+ width: 20%;
258
+ }
259
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-middle-last .wpuf-name-field-last-name {
260
+ float: right;
261
+ width: 37%;
262
+ }
263
+ ul.wpuf-form li .wpuf-fields .wpuf-help {
264
+ color: #666;
265
+ margin: 2px 0 5px 0;
266
+ font-size: 12px;
267
+ font-style: italic;
268
+ font-family: sans-serif;
269
+ display: block;
270
+ }
271
+ ul.wpuf-form li .wpuf-fields .wpuf-help .text-danger {
272
+ color: red;
273
+ }
274
+ ul.wpuf-form li .wpuf-fields .wpuf-help .text-success {
275
+ color: green;
276
+ }
277
+ ul.wpuf-form li .wpuf-fields .wpuf-help #url-alart,
278
+ ul.wpuf-form li .wpuf-fields .wpuf-help #url-alart-mgs {
279
+ font-style: normal;
280
+ font-size: 16px;
281
+ }
282
+ ul.wpuf-form li .wpuf-fields table,
283
+ ul.wpuf-form li .wpuf-fields td {
284
+ border: none;
285
+ margin: 0;
286
+ }
287
+ ul.wpuf-form li .wpuf-fields table {
288
+ width: 100%;
289
+ }
290
+ ul.wpuf-form li .wpuf-fields img.wpuf-clone-field,
291
+ ul.wpuf-form li .wpuf-fields img.wpuf-remove-field {
292
+ cursor: pointer;
293
+ margin: 0 3px;
294
+ box-shadow: none;
295
+ border: none;
296
+ }
297
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list {
298
+ list-style: none;
299
+ margin: 5px 0 0 0;
300
+ padding: 0;
301
+ }
302
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li {
303
+ display: inline-block;
304
+ border: 1px solid #eee;
305
+ padding: 5px;
306
+ width: 150px;
307
+ margin-right: 5px;
308
+ -webkit-border-radius: 5px;
309
+ -moz-border-radius: 5px;
310
+ border-radius: 5px;
311
+ }
312
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li .wpuf-file-input-wrap {
313
+ margin: 10px 0;
314
+ }
315
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li .wpuf-file-input-wrap input,
316
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li .wpuf-file-input-wrap textarea {
317
+ border: 1px solid #eee;
318
+ width: 93%;
319
+ }
320
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li .attachment-name {
321
+ text-align: center;
322
+ }
323
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.attachment-delete,
324
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.wpuf-delete-avatar {
325
+ text-decoration: none;
326
+ padding: 3px 12px;
327
+ border: 1px solid #C47272;
328
+ color: #ffffff;
329
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
330
+ -webkit-border-radius: 3px;
331
+ -moz-border-radius: 3px;
332
+ border-radius: 3px;
333
+ background-color: #da4f49;
334
+ background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
335
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
336
+ background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
337
+ background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
338
+ background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
339
+ background-repeat: repeat-x;
340
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
341
+ border-color: #bd362f #bd362f #802420;
342
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
343
+ *background-color: #bd362f;
344
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
345
+ }
346
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.attachment-delete:hover,
347
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.wpuf-delete-avatar:hover,
348
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.attachment-delete:active,
349
+ ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li a.wpuf-delete-avatar:active {
350
+ color: #ffffff;
351
+ background-color: #bd362f;
352
+ *background-color: #a9302a;
353
+ }
354
+ ul.wpuf-form li .wpuf-fields .progress {
355
+ background: -moz-linear-gradient(center bottom, #FFFFFF 0%, #F7F7F7 100%) repeat scroll 0 0 #FFFFFF;
356
+ border: 1px solid #D1D1D1;
357
+ border-radius: 3px 3px 3px 3px;
358
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.1) inset;
359
+ float: right;
360
+ height: 22px;
361
+ line-height: 2em;
362
+ margin: 0;
363
+ overflow: hidden;
364
+ padding: 0;
365
+ width: 200px;
366
+ }
367
+ ul.wpuf-form li .wpuf-fields .bar {
368
+ background-color: #83B4D8;
369
+ background-image: -moz-linear-gradient(center bottom, #72A7CF 0%, #90C5EE 100%);
370
+ border-radius: 3px 3px 3px 3px;
371
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
372
+ height: 100%;
373
+ width: 0;
374
+ z-index: 9;
375
+ }
376
+ ul.wpuf-form li .wpuf-fields .progress .percent {
377
+ color: rgba(0, 0, 0, 0.6);
378
+ padding: 0 8px;
379
+ position: relative;
380
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
381
+ width: 200px;
382
+ z-index: 10;
383
+ }
384
+ ul.wpuf-form li .wpuf-fields ul.wpuf-category-checklist {
385
+ list-style: none;
386
+ margin: 0;
387
+ padding: 0;
388
+ }
389
+ ul.wpuf-form li .wpuf-fields ul.wpuf-category-checklist li {
390
+ margin-bottom: 5px;
391
+ padding: 0;
392
+ }
393
+ ul.wpuf-form li .wpuf-fields ul.wpuf-category-checklist ul.children {
394
+ list-style: none;
395
+ margin-left: 25px;
396
+ }
397
+ ul.wpuf-form li .wpuf-fields #wpuf-insert-image-container {
398
+ margin-bottom: 3px;
399
+ }
400
+ ul.wpuf-form li .wpuf-fields #wpuf-insert-image-container:after {
401
+ clear: both;
402
+ content: "";
403
+ display: table;
404
+ }
405
+ ul.wpuf-form li .wpuf-fields #wpuf-insert-image-container a.wpuf-insert-image {
406
+ text-decoration: none;
407
+ border: 1px solid #DFDFDF;
408
+ font-size: 11px;
409
+ -webkit-border-radius: 3px;
410
+ -moz-border-radius: 3px;
411
+ border-radius: 3px;
412
+ padding: 4px 6px;
413
+ margin-right: 10px;
414
+ }
415
+ ul.wpuf-form li .wpuf-fields #wpuf-insert-image-container a.wpuf-insert-image .wpuf-media-icon {
416
+ height: 12px;
417
+ width: 12px;
418
+ }
419
+ ul.wpuf-form li .wpuf-fields .wpuf-fields-list {
420
+ box-sizing: border-box;
421
+ margin: 0;
422
+ padding: 0;
423
+ list-style: none;
424
+ }
425
+ ul.wpuf-form li .wpuf-fields .wpuf-fields-list li {
426
+ padding: 0;
427
+ margin: 0 0 6px;
428
+ }
429
+ ul.wpuf-form li .wpuf-fields .wpuf-fields-list.wpuf-list-inline {
430
+ margin-left: -5px;
431
+ }
432
+ ul.wpuf-form li .wpuf-fields .wpuf-fields-list.wpuf-list-inline li {
433
+ display: inline-block;
434
+ padding-left: 5px;
435
+ padding-right: 5px;
436
+ }
437
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field {
438
+ border-collapse: collapse;
439
+ }
440
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field * {
441
+ box-sizing: border-box;
442
+ }
443
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field input {
444
+ width: 100%;
445
+ }
446
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field .wpuf-repeater-buttons {
447
+ width: 75px;
448
+ padding-left: 12px;
449
+ }
450
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field .wpuf-repeater-buttons img {
451
+ width: 100%;
452
+ height: auto;
453
+ }
454
+ ul.wpuf-form li .wpuf-fields table.wpuf-repeatable-field .wpuf-repeater-buttons i {
455
+ display: inline-block;
456
+ width: 15px;
457
+ height: 15px;
458
+ margin: 2px 4px 0 0;
459
+ }
460
+ ul.wpuf-form li label.wpuf-form-sub-label {
461
+ font-size: 12px;
462
+ display: inline-block;
463
+ padding-top: 5px;
464
+ }
465
+ ul.wpuf-form li .wpuf-address-field {
466
+ width: 100%;
467
+ margin-bottom: 10px;
468
+ }
469
+ ul.wpuf-form li .wpuf-address-field:after {
470
+ clear: both;
471
+ content: "";
472
+ display: table;
473
+ }
474
+ ul.wpuf-form li .wpuf-address-field.city_name,
475
+ ul.wpuf-form li .wpuf-address-field.state,
476
+ ul.wpuf-form li .wpuf-address-field.zip,
477
+ ul.wpuf-form li .wpuf-address-field.country_select {
478
+ float: left;
479
+ width: 47%;
480
+ }
481
+ ul.wpuf-form li .wpuf-address-field.city_name,
482
+ ul.wpuf-form li .wpuf-address-field.zip {
483
+ margin-right: 4%;
484
+ }
485
+ ul.wpuf-form li .wpuf-address-field.zip {
486
+ clear: both;
487
+ }
488
+ ul.wpuf-form li .wpuf-section-wrap {
489
+ border-bottom: 1px solid #ccc;
490
+ margin: 15px 0;
491
+ }
492
+ ul.wpuf-form li .wpuf-section-wrap h2.wpuf-section-title {
493
+ margin: 0;
494
+ }
495
+ ul.wpuf-form li .wpuf-section-wrap .wpuf-section-details {
496
+ padding: 4px 0 8px;
497
+ font-size: 12px;
498
+ }
499
+ ul.wpuf-form.form-label-above li .wpuf-label,
500
+ ul.wpuf-form.form-label-above li .wpuf-fields {
501
+ display: block;
502
+ float: none;
503
+ width: 100%;
504
+ }
505
+ ul.wpuf-form.form-label-above li.field-size-large .wpuf-fields {
506
+ display: block;
507
+ float: none;
508
+ width: 100%;
509
+ }
510
+ ul.wpuf-form.form-label-above li.field-size-medium .wpuf-fields {
511
+ display: block;
512
+ float: none;
513
+ width: 65%;
514
+ }
515
+ ul.wpuf-form.form-label-above li.field-size-small .wpuf-fields {
516
+ display: block;
517
+ float: none;
518
+ width: 30%;
519
+ }
520
+ ul.wpuf-form.form-label-above li .wpuf-label {
521
+ margin-bottom: 10px;
522
+ }
523
+ ul.wpuf-form.form-label-right li .wpuf-label {
524
+ float: right;
525
+ }
526
+ ul.wpuf-form.form-label-hidden li .wpuf-label {
527
+ display: none;
528
+ }
529
+ ul.wpuf-form.form-label-hidden li.field-size-large .wpuf-fields {
530
+ display: block;
531
+ float: none;
532
+ width: 100%;
533
+ }
534
+ ul.wpuf-form.form-label-hidden li.field-size-medium .wpuf-fields {
535
+ display: block;
536
+ float: none;
537
+ width: 65%;
538
+ }
539
+ ul.wpuf-form.form-label-hidden li.field-size-small .wpuf-fields {
540
+ display: block;
541
+ float: none;
542
+ width: 30%;
543
+ }
544
+ ul.wpuf-form.form-label-hidden li .wpuf-fields {
545
+ display: block;
546
+ float: none;
547
+ width: 100%;
548
+ }
549
+ ul.wpuf-form .wpuf-submit input[type=submit] {
550
+ font-size: 16px;
551
+ padding: 5px 15px;
552
+ border: 1px solid #ccc;
553
+ -webkit-border-radius: 3px;
554
+ -moz-border-radius: 3px;
555
+ border-radius: 3px;
556
+ background: #0085ba;
557
+ border-color: #0073aa #006799 #006799;
558
+ -webkit-box-shadow: 0 1px 0 #006799;
559
+ box-shadow: 0 1px 0 #006799;
560
+ color: #fff;
561
+ text-decoration: none;
562
+ text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;
563
+ }
564
+ ul.wpuf-form .wpuf-submit .button-primary-disabled {
565
+ color: #94cde7 !important;
566
+ background: #298cba !important;
567
+ border-color: #1b607f !important;
568
+ -webkit-box-shadow: none !important;
569
+ box-shadow: none !important;
570
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1) !important;
571
+ cursor: default;
572
+ }
573
+ ul.wpuf-form .wpuf-submit .wpuf-errors {
574
+ background: #FFE4E4;
575
+ border: 1px solid #ffb1b1;
576
+ margin: 10px 0;
577
+ padding: 10px;
578
+ -webkit-border-radius: 3px;
579
+ -moz-border-radius: 3px;
580
+ border-radius: 3px;
581
+ font-size: 13px;
582
+ }
583
+ ul.wpuf-form:not(.form-label-left) .wpuf-submit .wpuf-label {
584
+ display: none !important;
585
+ }
586
+ #wpuf-login-form label {
587
+ display: block;
588
+ }
589
+ #wpuf-login-form .forgetmenot label {
590
+ display: inline-block;
591
+ }
592
+ .wpuf_sub_info {
593
+ padding: 0;
594
+ margin: 10px 5px;
595
+ border: 1px solid #eee;
596
+ border-radius: 3px;
597
+ }
598
+ .wpuf_sub_info h3 {
599
+ background-color: #f1f1f1;
600
+ padding: 10px;
601
+ margin: 0 0 5px 0 !important;
602
+ font-weight: 300 !important;
603
+ }
604
+ .wpuf_sub_info .wpuf-text {
605
+ padding: 5px 10px;
606
+ }
607
+ .wpuf_sub_info .wpuf-expire {
608
+ border-top: 1px solid #eee;
609
+ padding-top: 5px;
610
+ margin-top: 5px;
611
+ }
612
+ .wpuf-coupon-info-wrap {
613
+ border: 1px solid #eee;
614
+ padding: 15px;
615
+ margin-bottom: 20px;
616
+ }
617
+ .wpuf-coupon-info-wrap .wpuf-coupon-field-spinner {
618
+ background: url('../images/wpspin_light.gif') no-repeat right scroll rgba(0, 0, 0, 0);
619
+ }
620
+ .wpuf-coupon-info-wrap .wpuf-copon-show {
621
+ background: #EEEEEE;
622
+ border-radius: 3px;
623
+ border-width: 1px;
624
+ box-shadow: 0 1px 0 rgba(217, 217, 217, 0.5) inset, 0 1px 0 rgba(0, 0, 0, 0.15);
625
+ color: #5C5A5A;
626
+ cursor: pointer;
627
+ display: inline-block;
628
+ font-size: 14px;
629
+ padding: 5px 12px;
630
+ text-decoration: none;
631
+ width: 175px;
632
+ margin-bottom: 8px;
633
+ }
634
+ .wpuf-coupon-info-wrap .wpuf-copon-wrap {
635
+ margin: 15px 0;
636
+ }
637
+ .wpuf-coupon-info-wrap .wpuf-pack-info {
638
+ margin-bottom: 20px;
639
+ }
640
+ .wpuf-coupon-info-wrap .wpuf-pack-info h3 {
641
+ margin: 0 0 10px 0;
642
+ padding: 0 0 10px 0;
643
+ border-bottom: 1px solid #eee;
644
+ }
645
+ .wpuf-coupon-info-wrap .wpuf-pack-info h3 a {
646
+ float: right;
647
+ text-decoration: none;
648
+ background: #64C3DE;
649
+ color: #fff;
650
+ padding: 3px 8px;
651
+ font-size: 14px;
652
+ }
653
+ .wpuf-coupon-info-wrap .wpuf-pack-info wpuf-subscription-error {
654
+ color: #D8000C;
655
+ }
656
+ .wpuf-coupon-info-wrap .wpuf-copon-show:hover {
657
+ background: none repeat scroll 0 0 #1E8CBE;
658
+ border-color: #0074A2;
659
+ box-shadow: 0 1px 0 rgba(120, 200, 230, 0.6) inset;
660
+ color: #FFFFFF;
661
+ }
662
+ .wpuf-coupon-info-wrap a.wpuf-apply-coupon {
663
+ text-decoration: none;
664
+ font-size: 11px;
665
+ margin-top: 10px;
666
+ margin-right: 10px;
667
+ background: #21759b;
668
+ color: #fff;
669
+ padding: 5px 10px;
670
+ display: inline-block;
671
+ -webkit-border-radius: 3px;
672
+ -moz-border-radius: 3px;
673
+ border-radius: 3px;
674
+ }
675
+ .wpuf-coupon-info-wrap .wpuf-copon-cancel {
676
+ text-decoration: none;
677
+ font-size: 11px;
678
+ }
679
+ .entry-content ul.wpuf_packs,
680
+ ul.wpuf_packs {
681
+ overflow: hidden;
682
+ margin: 15px;
683
+ }
684
+ .entry-content ul.wpuf_packs > li,
685
+ ul.wpuf_packs > li {
686
+ background: #fff;
687
+ display: inline-block;
688
+ vertical-align: top;
689
+ border: 1px solid #DDD;
690
+ border-radius: 5px 5px 5px 5px;
691
+ list-style: none outside none;
692
+ margin: 5px 25px 25px 0;
693
+ position: relative;
694
+ width: 200px;
695
+ box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
696
+ }
697
+ .entry-content ul.wpuf_packs > li:first-child,
698
+ ul.wpuf_packs > li:first-child {
699
+ margin-left: 5px;
700
+ }
701
+ .entry-content ul.wpuf_packs h3,
702
+ ul.wpuf_packs h3 {
703
+ background: #52B5D5;
704
+ color: #fff;
705
+ font-size: 18px;
706
+ font-weight: normal;
707
+ margin: 0;
708
+ padding: 10px !important;
709
+ text-align: center;
710
+ border-bottom: 1px solid #3dacd0;
711
+ }
712
+ .entry-content ul.wpuf_packs .wpuf-pricing-wrap,
713
+ ul.wpuf_packs .wpuf-pricing-wrap {
714
+ background: #64C3DE;
715
+ }
716
+ .entry-content ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount,
717
+ ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount {
718
+ position: relative;
719
+ text-align: center;
720
+ color: #FFF;
721
+ border-bottom: 1px solid #4fbbda;
722
+ padding: 10px 0;
723
+ }
724
+ .entry-content ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-sub-symbol,
725
+ ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-sub-symbol {
726
+ font-size: 19px;
727
+ position: absolute;
728
+ top: 25px;
729
+ line-height: 10px;
730
+ }
731
+ .entry-content ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-sub-cost,
732
+ ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-sub-cost {
733
+ font-size: 40px;
734
+ margin-left: 10px;
735
+ line-height: 50px;
736
+ }
737
+ .entry-content ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-pack-cycle,
738
+ ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount .wpuf-pack-cycle {
739
+ font-size: 13px;
740
+ padding-bottom: 5px;
741
+ }
742
+ .entry-content ul.wpuf_packs .wpuf-sub-body,
743
+ ul.wpuf_packs .wpuf-sub-body {
744
+ margin: 0;
745
+ padding: 8px 0 0 8px;
746
+ background: #fff;
747
+ font-size: 11px;
748
+ color: #999;
749
+ }
750
+ .entry-content ul.wpuf_packs .wpuf-sub-button,
751
+ ul.wpuf_packs .wpuf-sub-button {
752
+ text-align: center;
753
+ margin-bottom: 20px;
754
+ margin-top: 20px;
755
+ overflow: hidden;
756
+ }
757
+ .entry-content ul.wpuf_packs .wpuf-sub-button a,
758
+ ul.wpuf_packs .wpuf-sub-button a {
759
+ background: #64C3DE;
760
+ color: #fff;
761
+ text-decoration: none;
762
+ padding: 5px 10px;
763
+ -webkit-border-radius: 3px;
764
+ -moz-border-radius: 3px;
765
+ border-radius: 3px;
766
+ display: inline-block;
767
+ }
768
+ .entry-content ul.wpuf_packs .wpuf-sub-button a:hover,
769
+ ul.wpuf_packs .wpuf-sub-button a:hover {
770
+ background: #3ab3d5;
771
+ }
772
+ .entry-content ul.wpuf_packs .wpuf-sub-button a:hover,
773
+ ul.wpuf_packs .wpuf-sub-button a:hover {
774
+ background: none repeat scroll 0 0 #1E8CBE;
775
+ border-color: #0074A2;
776
+ box-shadow: 0 1px 0 rgba(120, 200, 230, 0.6) inset;
777
+ color: #FFFFFF;
778
+ }
779
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption,
780
+ ul.wpuf_packs .wpuf-sub-desciption {
781
+ margin-top: 15px;
782
+ }
783
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption ul,
784
+ ul.wpuf_packs .wpuf-sub-desciption ul,
785
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption li,
786
+ ul.wpuf_packs .wpuf-sub-desciption li {
787
+ margin: 0;
788
+ padding: 0;
789
+ list-style: none;
790
+ }
791
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption li,
792
+ ul.wpuf_packs .wpuf-sub-desciption li {
793
+ text-align: center;
794
+ border-top: 1px solid #eee;
795
+ padding: 7px 0;
796
+ }
797
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption li:last-child,
798
+ ul.wpuf_packs .wpuf-sub-desciption li:last-child {
799
+ border-bottom: 1px solid #eee;
800
+ }
801
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption li:first-child,
802
+ ul.wpuf_packs .wpuf-sub-desciption li:first-child {
803
+ border-top: none;
804
+ }
805
+ .entry-content ul.wpuf_packs .wpuf-sub-desciption p,
806
+ ul.wpuf_packs .wpuf-sub-desciption p {
807
+ padding: 0 10px;
808
+ margin-bottom: 15px;
809
+ }
810
+ .entry-content ul.wpuf_packs .button,
811
+ ul.wpuf_packs .button {
812
+ background: none repeat scroll 0 0 #2EA2CC;
813
+ border-color: #0074A2;
814
+ box-shadow: 0 1px 0 rgba(120, 200, 230, 0.5) inset, 0 1px 0 rgba(0, 0, 0, 0.15);
815
+ color: #FFFFFF;
816
+ text-decoration: none;
817
+ padding: 0 12px 2px;
818
+ color: #fff;
819
+ }
820
+ .entry-content ul.wpuf_packs .cost,
821
+ ul.wpuf_packs .cost {
822
+ background: red;
823
+ border-radius: 30px 30px 30px 30px;
824
+ color: #FFFFFF;
825
+ margin: -16px -12px 0 0;
826
+ padding: 10px 8px 8px;
827
+ position: absolute;
828
+ right: 0;
829
+ top: 0;
830
+ }
831
+ /* css for timepicker */
832
+ .ui-timepicker-div .ui-widget-header {
833
+ margin-bottom: 8px;
834
+ }
835
+ .ui-timepicker-div dl {
836
+ text-align: left;
837
+ }
838
+ .ui-timepicker-div dl dt {
839
+ height: 25px;
840
+ margin-bottom: -25px;
841
+ }
842
+ .ui-timepicker-div dl dd {
843
+ margin: 0 10px 10px 65px;
844
+ }
845
+ .ui-timepicker-div td {
846
+ font-size: 90%;
847
+ }
848
+ .ui-tpicker-grid-label {
849
+ background: none;
850
+ border: none;
851
+ margin: 0;
852
+ padding: 0;
853
+ }
854
+ .ui-timepicker-rtl {
855
+ direction: rtl;
856
+ }
857
+ .ui-timepicker-rtl dl {
858
+ text-align: right;
859
+ }
860
+ .ui-timepicker-rtl dl dd {
861
+ margin: 0 65px 10px 10px;
862
+ }
863
+ #pass-strength-result {
864
+ border-style: solid;
865
+ border-width: 1px;
866
+ float: left;
867
+ margin: 0;
868
+ padding: 3px 5px;
869
+ text-align: center;
870
+ width: 200px;
871
+ display: none;
872
+ background-color: #eee;
873
+ border-color: #ddd !important;
874
+ }
875
+ #pass-strength-result.bad {
876
+ background-color: #ffb78c;
877
+ border-color: #ff853c !important;
878
+ }
879
+ #pass-strength-result.good {
880
+ background-color: #ffec8b;
881
+ border-color: #fc0 !important;
882
+ }
883
+ #pass-strength-result.short {
884
+ background-color: #ffa0a0;
885
+ border-color: #f04040 !important;
886
+ }
887
+ #pass-strength-result.strong {
888
+ background-color: #c3ff88;
889
+ border-color: #8dff1c !important;
890
+ }
891
+ .password[type="text"] {
892
+ display: none;
893
+ }
894
+ table.wpuf-table {
895
+ border: 1px solid #E7E7E7;
896
+ margin: 0 0px 10px 0;
897
+ text-align: left;
898
+ width: 100%;
899
+ }
900
+ table.wpuf-table thead th,
901
+ table.wpuf-table th {
902
+ color: #888888;
903
+ font-size: 12px;
904
+ font-weight: bold;
905
+ line-height: 18px;
906
+ padding: 9px 24px;
907
+ }
908
+ table.wpuf-table td {
909
+ border-top: 1px solid #E7E7E7;
910
+ padding: 6px 24px;
911
+ }
912
+ #wpuf-payment-gateway ul.wpuf-payment-gateways {
913
+ list-style: none;
914
+ margin: 10px 0;
915
+ }
916
+ #wpuf-payment-gateway ul.wpuf-payment-gateways li {
917
+ margin: 0;
918
+ }
919
+ #wpuf-payment-gateway ul.wpuf-payment-gateways li .wpuf-payment-instruction {
920
+ padding: 8px 10px;
921
+ margin: 0 10px;
922
+ }
923
+ #wpuf-payment-gateway ul.wpuf-payment-gateways li .wpuf-instruction {
924
+ padding: 8px 10px;
925
+ margin-bottom: 10px;
926
+ background: #ebe8eb;
927
+ font-size: 13px;
928
+ -webkit-border-radius: 2px;
929
+ -moz-border-radius: 2px;
930
+ border-radius: 2px;
931
+ }
932
+ .wpuf-pagination div.pagination {
933
+ text-align: center;
934
+ padding: 7px;
935
+ margin: 3px;
936
+ }
937
+ .wpuf-pagination .page-numbers {
938
+ padding: 2px 8px;
939
+ margin: 2px;
940
+ border: 1px solid #4A5154;
941
+ text-decoration: none;
942
+ color: #4A5154;
943
+ background: #fff;
944
+ border-radius: 5px;
945
+ -moz-border-radius: 5px;
946
+ }
947
+ .wpuf-pagination .page-numbers:hover,
948
+ .wpuf-pagination .page-numbers:active {
949
+ border: 1px solid #4A5154;
950
+ background-color: #4A5154;
951
+ color: #fff;
952
+ border-radius: 5px;
953
+ -moz-border-radius: 5px;
954
+ }
955
+ .wpuf-pagination .page-numbers.current {
956
+ padding: 2px 8px;
957
+ margin: 2px;
958
+ border: 1px solid #4A5154;
959
+ font-weight: bold;
960
+ background-color: #4A5154;
961
+ color: #FFF;
962
+ border-radius: 5px;
963
+ -moz-border-radius: 5px;
964
+ }
965
+ /** author info **/
966
+ .wpuf-author {
967
+ margin: 20px 0;
968
+ }
969
+ .wpuf-author:after {
970
+ clear: both;
971
+ content: "";
972
+ display: table;
973
+ }
974
+ .wpuf-author h3 {
975
+ margin: 0 !important;
976
+ background: #CFCFCF;
977
+ text-align: left;
978
+ padding: 3px 10px;
979
+ }
980
+ .wpuf-author .wpuf-author-inside {
981
+ background: none repeat scroll 0 0 #F0F0F0;
982
+ border-bottom: 2px solid #DDDDDD;
983
+ height: auto;
984
+ padding-left: 10px;
985
+ padding-top: 15px;
986
+ margin-bottom: 15px;
987
+ }
988
+ .wpuf-author .wpuf-author-inside:after {
989
+ clear: both;
990
+ content: "";
991
+ display: table;
992
+ }
993
+ .wpuf-author .wpuf-author-inside .wpuf-user-image {
994
+ float: left;
995
+ padding-right: 15px;
996
+ }
997
+ .wpuf-author .wpuf-author-inside p {
998
+ margin-bottom: 10px !important;
999
+ }
1000
+ .wpuf-author .wpuf-author-inside p.wpuf-author-info {
1001
+ padding-top: 8px;
1002
+ word-wrap: break-word;
1003
+ }
1004
+ .wpuf-author .wpuf-author-inside p.wpuf-user-name a {
1005
+ color: #335160;
1006
+ font-size: 1.2em;
1007
+ font-weight: bold;
1008
+ }
1009
+ /** jQuery Suggest **/
1010
+ .ac_results {
1011
+ padding: 0;
1012
+ margin: 0;
1013
+ list-style: none;
1014
+ position: absolute;
1015
+ z-index: 10000;
1016
+ display: none;
1017
+ border: 1px solid #ccc;
1018
+ }
1019
+ .ac_results li {
1020
+ padding: 2px 5px;
1021
+ white-space: nowrap;
1022
+ text-align: left;
1023
+ }
1024
+ .ac_over {
1025
+ cursor: pointer;
1026
+ }
1027
+ .ac_match {
1028
+ text-decoration: underline;
1029
+ }
1030
+ /*------------------------------------
1031
+ * Multistep form
1032
+ *-----------------------------------*/
1033
+ fieldset.wpuf-multistep-fieldset {
1034
+ position: relative;
1035
+ padding-bottom: 50px;
1036
+ border: none;
1037
+ display: none;
1038
+ }
1039
+ fieldset.wpuf-multistep-fieldset.field-active {
1040
+ display: block;
1041
+ }
1042
+ fieldset.wpuf-multistep-fieldset .wpuf-multistep-prev-btn,
1043
+ fieldset.wpuf-multistep-fieldset .wpuf-multistep-next-btn {
1044
+ position: absolute;
1045
+ bottom: 5px;
1046
+ }
1047
+ fieldset.wpuf-multistep-fieldset .wpuf-multistep-prev-btn {
1048
+ left: 10px;
1049
+ }
1050
+ fieldset.wpuf-multistep-fieldset .wpuf-multistep-next-btn {
1051
+ right: 10px;
1052
+ }
1053
+ .wpuf-multistep-progressbar {
1054
+ overflow: hidden;
1055
+ }
1056
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard {
1057
+ margin: 20px 0 40px 0;
1058
+ padding: 0;
1059
+ list-style: none;
1060
+ }
1061
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard * {
1062
+ box-sizing: border-box;
1063
+ }
1064
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li {
1065
+ background-color: #E4E4E4;
1066
+ border-radius: 5px;
1067
+ display: inline-block;
1068
+ padding: 10px 30px 10px 40px;
1069
+ margin-right: -7px;
1070
+ width: auto;
1071
+ margin: 0;
1072
+ position: relative;
1073
+ text-align: center;
1074
+ }
1075
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li::before,
1076
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li::after {
1077
+ border: solid transparent;
1078
+ content: " ";
1079
+ height: 0;
1080
+ width: 0;
1081
+ position: absolute;
1082
+ border-color: transparent;
1083
+ border-left-color: #fff;
1084
+ border-radius: 10px;
1085
+ }
1086
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li::before {
1087
+ border-width: 26px;
1088
+ margin-top: -14px;
1089
+ right: -52px;
1090
+ z-index: 98;
1091
+ }
1092
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li::after {
1093
+ border-left-color: #E4E4E4;
1094
+ border-width: 25px;
1095
+ margin-top: -37px;
1096
+ right: -44px;
1097
+ z-index: 99;
1098
+ }
1099
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li.active-step {
1100
+ background-color: #00a0d2;
1101
+ color: #fff;
1102
+ }
1103
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li.active-step::after {
1104
+ border-left-color: #00a0d2;
1105
+ }
1106
+ .wpuf-form .wpuf-multistep-progressbar ul.wpuf-step-wizard li:last-child::after {
1107
+ border-left-color: transparent;
1108
+ }
1109
+ .wpuf-form .wpuf-multistep-progressbar .ui-widget-header {
1110
+ background: #00a0d2;
1111
+ }
1112
+ .wpuf-form .wpuf-multistep-progressbar.ui-progressbar {
1113
+ margin-bottom: 30px;
1114
+ height: 25px;
1115
+ border: 1px solid #eee;
1116
+ position: relative;
1117
+ }
1118
+ .wpuf-form .wpuf-multistep-progressbar.ui-progressbar .wpuf-progress-percentage {
1119
+ position: absolute;
1120
+ left: 50%;
1121
+ font-size: 12px;
1122
+ font-weight: bold;
1123
+ text-shadow: 1px 1px 0 #fff;
1124
+ top: 20%;
1125
+ }
1126
+ input.wpuf-btn {
1127
+ text-decoration: none !important;
1128
+ font-size: 15px !important;
1129
+ margin-top: 10px;
1130
+ margin-right: 10px;
1131
+ background: #21759b !important;
1132
+ color: #fff !important;
1133
+ padding: 5px 10px;
1134
+ display: inline-block;
1135
+ -webkit-border-radius: 3px !important;
1136
+ -moz-border-radius: 3px !important;
1137
+ border-radius: 3px !important;
1138
+ border: none !important;
1139
+ }
1140
+ /*rtl*/
1141
+ body.rtl ul.wpuf-form li .wpuf-label {
1142
+ float: right;
1143
+ }
1144
+ @media (max-width: 480px) {
1145
+ ul.wpuf-form li .wpuf-label,
1146
+ ul.wpuf-form li .wpuf-fields {
1147
+ float: none;
1148
+ width: 100%;
1149
+ }
1150
+ ul.wpuf-form li.field-size-large .wpuf-fields {
1151
+ float: none;
1152
+ width: 100%;
1153
+ }
1154
+ ul.wpuf-form li.field-size-medium .wpuf-fields {
1155
+ float: none;
1156
+ width: 65%;
1157
+ }
1158
+ ul.wpuf-form li.field-size-small .wpuf-fields {
1159
+ float: none;
1160
+ width: 30%;
1161
+ }
1162
+ }
1163
+ .wpuf-form .required {
1164
+ color: red;
1165
+ font-weight: 700;
1166
+ border: 0;
1167
+ }
1168
+ .wpuf-dashboard-container .wpuf-dashboard-navigation {
1169
+ width: 30%;
1170
+ float: left;
1171
+ }
1172
+ .wpuf-dashboard-container .wpuf-dashboard-navigation a {
1173
+ text-decoration: none;
1174
+ box-shadow: none;
1175
+ }
1176
+ .wpuf-dashboard-container .wpuf-dashboard-navigation ul {
1177
+ list-style: none;
1178
+ }
1179
+ .wpuf-dashboard-container .wpuf-dashboard-navigation ul li {
1180
+ padding-bottom: 2px;
1181
+ }
1182
+ .wpuf-dashboard-container .wpuf-dashboard-content {
1183
+ width: 68%;
1184
+ float: right;
1185
+ }
1186
+ .wpuf-dashboard-container table.items-table {
1187
+ border: 0;
1188
+ }
1189
+ .wpuf-dashboard-container table.items-table a {
1190
+ text-decoration: none;
1191
+ box-shadow: none;
1192
+ }
1193
+ .wpuf-dashboard-container table.items-table th,
1194
+ .wpuf-dashboard-container table.items-table td {
1195
+ border: 0;
1196
+ padding: 10px;
1197
+ }
1198
+ .wpuf-dashboard-container table.items-table tr {
1199
+ outline: 1px solid #f1f1f1;
1200
+ }
1201
+ .wpuf-dashboard-container table.items-table .items-list-header {
1202
+ background-color: #f1f1f1;
1203
+ }
1204
+ .wpuf-dashboard-container .wpuf-update-profile-form .form-row-first {
1205
+ float: left;
1206
+ width: 47%;
1207
+ overflow: visible;
1208
+ }
1209
+ .wpuf-dashboard-container .wpuf-update-profile-form .form-row-last {
1210
+ float: right;
1211
+ width: 43%;
1212
+ overflow: visible;
1213
+ }
1214
+ .wpuf-toc-container .wpuf-fields {
1215
+ position: relative;
1216
+ }
1217
+ .wpuf-toc-container .wpuf-fields .wpuf-toc-checkbox {
1218
+ position: absolute;
1219
+ top: 0;
1220
+ left: 0;
1221
+ }
1222
+ .wpuf-toc-container .wpuf-fields.has-toc-checkbox .wpuf-toc-description {
1223
+ margin-left: 25px;
1224
+ }
1225
+ .wpuf-field-google-map {
1226
+ height: 300px;
1227
+ width: 100%;
1228
+ }
1229
+ .wpuf-form-google-map {
1230
+ height: 300px;
1231
+ width: 100%;
1232
+ }
1233
+ input[type="text"].wpuf-google-map-search {
1234
+ margin-top: 10px !important;
1235
+ border: 1px solid transparent !important;
1236
+ border-radius: 2px 0 0 2px !important;
1237
+ box-sizing: border-box !important;
1238
+ -moz-box-sizing: border-box !important;
1239
+ height: 32px !important;
1240
+ outline: none !important;
1241
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;
1242
+ background-color: #fff !important;
1243
+ text-overflow: ellipsis !important;
1244
+ width: 170px !important;
1245
+ font-family: Roboto !important;
1246
+ font-size: 15px !important;
1247
+ font-weight: 300 !important;
1248
+ padding: 0 11px 0 13px !important;
1249
+ display: none;
1250
+ }
1251
+ .gm-style input[type="text"].wpuf-google-map-search {
1252
+ display: block;
1253
+ }
1254
+ .wpuf-form-google-map-container input[type="text"].wpuf-google-map-search {
1255
+ width: 230px !important;
1256
+ }
1257
+ .wpuf-form-google-map-container.hide-search-box .gm-style input[type="text"].wpuf-google-map-search {
1258
+ display: none;
1259
+ }
1260
+ .dokan-dashboard-content.dokan-wpuf-dashboard h2.page-head {
1261
+ display: none;
1262
+ }
1263
+ .dokan-dashboard-content.dokan-wpuf-dashboard .wpuf-author {
1264
+ display: none;
1265
+ }
1266
+ .dokan-dashboard-content.dokan-wpuf-dashboard .wpuf-form-add .wpuf-form li.wpuf-el {
1267
+ margin-bottom: 15px;
1268
+ }
assets/css/images/ui-bg_diagonals-small_75_cccccc_40x40.png ADDED
Binary file
assets/css/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
assets/css/images/ui-bg_flat_0_ffffff_40x100.png ADDED
Binary file
assets/css/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
assets/css/images/ui-bg_glass_55_fbf9ee_1x400.png ADDED
Binary file
assets/css/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
assets/css/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
assets/css/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
assets/css/images/ui-icons_222222_256x240.png ADDED
Binary file
assets/css/images/ui-icons_2e83ff_256x240.png ADDED
Binary file
assets/css/images/ui-icons_454545_256x240.png ADDED
Binary file
assets/css/images/ui-icons_888888_256x240.png ADDED
Binary file
assets/css/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
assets/css/jquery-ui-1.9.1.custom.css ADDED
@@ -0,0 +1,461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.9.1 - 2012-11-14
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=07_diagonals_small.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=ffffff&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=90&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden { display: none; }
10
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
11
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
12
+ .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
13
+ .ui-helper-clearfix:after { clear: both; }
14
+ .ui-helper-clearfix { zoom: 1; }
15
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
16
+
17
+
18
+ /* Interaction Cues
19
+ ----------------------------------*/
20
+ .ui-state-disabled { cursor: default !important; }
21
+
22
+
23
+ /* Icons
24
+ ----------------------------------*/
25
+
26
+ /* states and images */
27
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
28
+
29
+
30
+ /* Misc visuals
31
+ ----------------------------------*/
32
+
33
+ /* Overlays */
34
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
35
+ .ui-resizable { position: relative;}
36
+ .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
37
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
38
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
39
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
40
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
41
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
42
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
43
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
44
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
45
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
46
+ .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
47
+ .ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
48
+ .ui-accordion .ui-accordion-noicons { padding-left: .7em; }
49
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
50
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
51
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
52
+ .ui-autocomplete {
53
+ position: absolute;
54
+ top: 0; /* #8656 */
55
+ cursor: default;
56
+ }
57
+
58
+ /* workarounds */
59
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
60
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
61
+ .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
62
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
63
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
64
+ .ui-button-icons-only { width: 3.4em; }
65
+ button.ui-button-icons-only { width: 3.7em; }
66
+
67
+ /*button text element */
68
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
69
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
70
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
71
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
72
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
73
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
74
+ /* no icon support for input elements, provide padding by default */
75
+ input.ui-button { padding: .4em 1em; }
76
+
77
+ /*button icon element(s) */
78
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
79
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
80
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
81
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
82
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
83
+
84
+ /*button sets*/
85
+ .ui-buttonset { margin-right: 7px; }
86
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
87
+
88
+ /* workarounds */
89
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
90
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
91
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
92
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
93
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
94
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
95
+ .ui-datepicker .ui-datepicker-next { right:2px; }
96
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
97
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
98
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
99
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
100
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
101
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
102
+ .ui-datepicker select.ui-datepicker-month,
103
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
104
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
105
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
106
+ .ui-datepicker td { border: 0; padding: 1px; }
107
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
108
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
109
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
110
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
111
+
112
+ /* with multiple calendars */
113
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
114
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
115
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
116
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
117
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
118
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
119
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
120
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
121
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
122
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
123
+
124
+ /* RTL support */
125
+ .ui-datepicker-rtl { direction: rtl; }
126
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
127
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
128
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
129
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
130
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
131
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
132
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
133
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
134
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
135
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
136
+
137
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
138
+ .ui-datepicker-cover {
139
+ position: absolute; /*must have*/
140
+ z-index: -1; /*must have*/
141
+ filter: mask(); /*must have*/
142
+ top: -4px; /*must have*/
143
+ left: -4px; /*must have*/
144
+ width: 200px; /*must have*/
145
+ height: 200px; /*must have*/
146
+ }.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
147
+ .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
148
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
149
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
150
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
151
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
152
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
153
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
154
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
155
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
156
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
157
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
158
+ .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
159
+ .ui-menu .ui-menu { margin-top: -3px; position: absolute; }
160
+ .ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
161
+ .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
162
+ .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
163
+ .ui-menu .ui-menu-item a.ui-state-focus,
164
+ .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
165
+
166
+ .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
167
+ .ui-menu .ui-state-disabled a { cursor: default; }
168
+
169
+ /* icon support */
170
+ .ui-menu-icons { position: relative; }
171
+ .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
172
+
173
+ /* left-aligned */
174
+ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
175
+
176
+ /* right-aligned */
177
+ .ui-menu .ui-menu-icon { position: static; float: right; }
178
+ .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
179
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }
180
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
181
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
182
+
183
+ .ui-slider-horizontal { height: .8em; }
184
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
185
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
186
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
187
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
188
+
189
+ .ui-slider-vertical { width: .8em; height: 100px; }
190
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
191
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
192
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
193
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
194
+ .ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
195
+ .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
196
+ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
197
+ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
198
+ .ui-spinner-up { top: 0; }
199
+ .ui-spinner-down { bottom: 0; }
200
+
201
+ /* TR overrides */
202
+ .ui-spinner .ui-icon-triangle-1-s {
203
+ /* need to fix icons sprite */
204
+ background-position:-65px -16px;
205
+ }
206
+ .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
207
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
208
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
209
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
210
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
211
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
212
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
213
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
214
+ .ui-tooltip {
215
+ padding: 8px;
216
+ position: absolute;
217
+ z-index: 9999;
218
+ max-width: 300px;
219
+ -webkit-box-shadow: 0 0 5px #aaa;
220
+ box-shadow: 0 0 5px #aaa;
221
+ }
222
+ /* Fades and background-images don't work well together in IE6, drop the image */
223
+ * html .ui-tooltip {
224
+ background-image: none;
225
+ }
226
+ body .ui-tooltip { border-width: 2px; }
227
+
228
+ /* Component containers
229
+ ----------------------------------*/
230
+ .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
231
+ .ui-widget .ui-widget { font-size: 1em; }
232
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
233
+ .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
234
+ .ui-widget-content a { color: #222222; }
235
+ .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_diagonals-small_75_cccccc_40x40.png) 50% 50% repeat; color: #222222; font-weight: bold; }
236
+ .ui-widget-header a { color: #222222; }
237
+
238
+ /* Interaction states
239
+ ----------------------------------*/
240
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
241
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
242
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
243
+ .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121; text-decoration: none; }
244
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
245
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
246
+
247
+ /* Interaction Cues
248
+ ----------------------------------*/
249
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
250
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
251
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
252
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
253
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
254
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
255
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
256
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
257
+ .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
258
+
259
+ /* Icons
260
+ ----------------------------------*/
261
+
262
+ /* states and images */
263
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
264
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
265
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
266
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
267
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
268
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
269
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
270
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
271
+
272
+ /* positioning */
273
+ .ui-icon-carat-1-n { background-position: 0 0; }
274
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
275
+ .ui-icon-carat-1-e { background-position: -32px 0; }
276
+ .ui-icon-carat-1-se { background-position: -48px 0; }
277
+ .ui-icon-carat-1-s { background-position: -64px 0; }
278
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
279
+ .ui-icon-carat-1-w { background-position: -96px 0; }
280
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
281
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
282
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
283
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
284
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
285
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
286
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
287
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
288
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
289
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
290
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
291
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
292
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
293
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
294
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
295
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
296
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
297
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
298
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
299
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
300
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
301
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
302
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
303
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
304
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
305
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
306
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
307
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
308
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
309
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
310
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
311
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
312
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
313
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
314
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
315
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
316
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
317
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
318
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
319
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
320
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
321
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
322
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
323
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
324
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
325
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
326
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
327
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
328
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
329
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
330
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
331
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
332
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
333
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
334
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
335
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
336
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
337
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
338
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
339
+ .ui-icon-extlink { background-position: -32px -80px; }
340
+ .ui-icon-newwin { background-position: -48px -80px; }
341
+ .ui-icon-refresh { background-position: -64px -80px; }
342
+ .ui-icon-shuffle { background-position: -80px -80px; }
343
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
344
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
345
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
346
+ .ui-icon-folder-open { background-position: -16px -96px; }
347
+ .ui-icon-document { background-position: -32px -96px; }
348
+ .ui-icon-document-b { background-position: -48px -96px; }
349
+ .ui-icon-note { background-position: -64px -96px; }
350
+ .ui-icon-mail-closed { background-position: -80px -96px; }
351
+ .ui-icon-mail-open { background-position: -96px -96px; }
352
+ .ui-icon-suitcase { background-position: -112px -96px; }
353
+ .ui-icon-comment { background-position: -128px -96px; }
354
+ .ui-icon-person { background-position: -144px -96px; }
355
+ .ui-icon-print { background-position: -160px -96px; }
356
+ .ui-icon-trash { background-position: -176px -96px; }
357
+ .ui-icon-locked { background-position: -192px -96px; }
358
+ .ui-icon-unlocked { background-position: -208px -96px; }
359
+ .ui-icon-bookmark { background-position: -224px -96px; }
360
+ .ui-icon-tag { background-position: -240px -96px; }
361
+ .ui-icon-home { background-position: 0 -112px; }
362
+ .ui-icon-flag { background-position: -16px -112px; }
363
+ .ui-icon-calendar { background-position: -32px -112px; }
364
+ .ui-icon-cart { background-position: -48px -112px; }
365
+ .ui-icon-pencil { background-position: -64px -112px; }
366
+ .ui-icon-clock { background-position: -80px -112px; }
367
+ .ui-icon-disk { background-position: -96px -112px; }
368
+ .ui-icon-calculator { background-position: -112px -112px; }
369
+ .ui-icon-zoomin { background-position: -128px -112px; }
370
+ .ui-icon-zoomout { background-position: -144px -112px; }
371
+ .ui-icon-search { background-position: -160px -112px; }
372
+ .ui-icon-wrench { background-position: -176px -112px; }
373
+ .ui-icon-gear { background-position: -192px -112px; }
374
+ .ui-icon-heart { background-position: -208px -112px; }
375
+ .ui-icon-star { background-position: -224px -112px; }
376
+ .ui-icon-link { background-position: -240px -112px; }
377
+ .ui-icon-cancel { background-position: 0 -128px; }
378
+ .ui-icon-plus { background-position: -16px -128px; }
379
+ .ui-icon-plusthick { background-position: -32px -128px; }
380
+ .ui-icon-minus { background-position: -48px -128px; }
381
+ .ui-icon-minusthick { background-position: -64px -128px; }
382
+ .ui-icon-close { background-position: -80px -128px; }
383
+ .ui-icon-closethick { background-position: -96px -128px; }
384
+ .ui-icon-key { background-position: -112px -128px; }
385
+ .ui-icon-lightbulb { background-position: -128px -128px; }
386
+ .ui-icon-scissors { background-position: -144px -128px; }
387
+ .ui-icon-clipboard { background-position: -160px -128px; }
388
+ .ui-icon-copy { background-position: -176px -128px; }
389
+ .ui-icon-contact { background-position: -192px -128px; }
390
+ .ui-icon-image { background-position: -208px -128px; }
391
+ .ui-icon-video { background-position: -224px -128px; }
392
+ .ui-icon-script { background-position: -240px -128px; }
393
+ .ui-icon-alert { background-position: 0 -144px; }
394
+ .ui-icon-info { background-position: -16px -144px; }
395
+ .ui-icon-notice { background-position: -32px -144px; }
396
+ .ui-icon-help { background-position: -48px -144px; }
397
+ .ui-icon-check { background-position: -64px -144px; }
398
+ .ui-icon-bullet { background-position: -80px -144px; }
399
+ .ui-icon-radio-on { background-position: -96px -144px; }
400
+ .ui-icon-radio-off { background-position: -112px -144px; }
401
+ .ui-icon-pin-w { background-position: -128px -144px; }
402
+ .ui-icon-pin-s { background-position: -144px -144px; }
403
+ .ui-icon-play { background-position: 0 -160px; }
404
+ .ui-icon-pause { background-position: -16px -160px; }
405
+ .ui-icon-seek-next { background-position: -32px -160px; }
406
+ .ui-icon-seek-prev { background-position: -48px -160px; }
407
+ .ui-icon-seek-end { background-position: -64px -160px; }
408
+ .ui-icon-seek-start { background-position: -80px -160px; }
409
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
410
+ .ui-icon-seek-first { background-position: -80px -160px; }
411
+ .ui-icon-stop { background-position: -96px -160px; }
412
+ .ui-icon-eject { background-position: -112px -160px; }
413
+ .ui-icon-volume-off { background-position: -128px -160px; }
414
+ .ui-icon-volume-on { background-position: -144px -160px; }
415
+ .ui-icon-power { background-position: 0 -176px; }
416
+ .ui-icon-signal-diag { background-position: -16px -176px; }
417
+ .ui-icon-signal { background-position: -32px -176px; }
418
+ .ui-icon-battery-0 { background-position: -48px -176px; }
419
+ .ui-icon-battery-1 { background-position: -64px -176px; }
420
+ .ui-icon-battery-2 { background-position: -80px -176px; }
421
+ .ui-icon-battery-3 { background-position: -96px -176px; }
422
+ .ui-icon-circle-plus { background-position: 0 -192px; }
423
+ .ui-icon-circle-minus { background-position: -16px -192px; }
424
+ .ui-icon-circle-close { background-position: -32px -192px; }
425
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
426
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
427
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
428
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
429
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
430
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
431
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
432
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
433
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
434
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
435
+ .ui-icon-circle-check { background-position: -208px -192px; }
436
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
437
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
438
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
439
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
440
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
441
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
442
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
443
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
444
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
445
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
446
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
447
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
448
+
449
+
450
+ /* Misc visuals
451
+ ----------------------------------*/
452
+
453
+ /* Corner radius */
454
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
455
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
456
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
457
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
458
+
459
+ /* Overlays */
460
+ .ui-widget-overlay { background: #ffffff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x; opacity: .9;filter:Alpha(Opacity=90); }
461
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
assets/css/jquery.smallipop.css ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* smallipop css */
2
+ .smallipopHint { display: none; }
3
+
4
+ .smallipop-instance { position: absolute; display: none; top: 0; left: 0; background-color: #314b64; border: 1px solid #0f161e; color: #d2dfe7; z-index: 9999; max-width: 400px; }
5
+ .smallipop-instance font { size: 11px; family: arial; }
6
+ .smallipop-instance a { color: #98cbea; }
7
+ .smallipop-instance .sipContent { padding: 10px; }
8
+ .smallipop-instance .sipArrow, .smallipop-instance .sipArrowBorder { position: absolute; left: 50%; height: 0; width: 0; }
9
+ .smallipop-instance .sipArrow { bottom: -20px; margin-left: -10px; border: 10px solid transparent; }
10
+ .smallipop-instance .sipArrowBorder { bottom: -24px; margin-left: -12px; border: 12px solid transparent; }
11
+ .smallipop-instance.sipAlignLeft .sipArrow { margin-left: 0; left: auto; right: 20px; }
12
+ .smallipop-instance.sipAlignLeft .sipArrowBorder { margin-left: 0; left: auto; right: 18px; }
13
+ .smallipop-instance.sipAlignRight .sipArrow { margin-left: 0; left: 20px; right: auto; }
14
+ .smallipop-instance.sipAlignRight .sipArrowBorder { margin-left: 0; left: 18px; right: auto; }
15
+ .smallipop-instance.sipAlignBottom .sipArrow { bottom: auto; top: -20px; }
16
+ .smallipop-instance.sipAlignBottom .sipArrowBorder { bottom: auto; top: -24px; }
17
+ .smallipop-instance.sipPositionedLeft .sipArrow, .smallipop-instance.sipPositionedLeft .sipArrowBorder { right: -16px; left: auto; top: 50%; bottom: auto; border-width: 8px; margin: -8px 0 0; }
18
+ .smallipop-instance.sipPositionedLeft .sipArrowBorder { right: -20px; border-width: 10px; margin: -10px 0 0; }
19
+ .smallipop-instance.sipPositionedRight .sipArrow, .smallipop-instance.sipPositionedRight .sipArrowBorder { left: -16px; right: auto; top: 50%; bottom: auto; border-width: 8px; margin: -8px 0 0; }
20
+ .smallipop-instance.sipPositionedRight .sipArrowBorder { left: -20px; border-width: 10px; margin: -10px 0 0; }
21
+ .smallipop-instance .smallipop-tour-content { padding: 5px 0; min-width: 150px; }
22
+ .smallipop-instance .smallipop-tour-footer { padding-top: 5px; position: relative; }
23
+ .smallipop-instance .smallipop-tour-progress { color: #bbb; text-align: center; position: absolute; left: 50%; width: 80px; margin-left: -40px; top: 8px; }
24
+ .smallipop-instance .smallipop-tour-close-icon { position: absolute; right: -8px; top: -8px; width: 16px; height: 16px; padding-top: 0px; font-size: 11px; background: #555; color: #ccc; text-align: center; text-shadow: 0 -1px 1px #666666; border-radius: 8px; -o-border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
25
+ .smallipop-instance .smallipop-tour-close-icon:hover { text-decoration: none; background: #666; color: #fff; }
26
+ .smallipop-instance .smallipop-tour-prev, .smallipop-instance .smallipop-tour-next, .smallipop-instance .smallipop-tour-close { color: #ccc; display: block; padding: 3px 4px 2px; line-height: 1em; float: left; background: #203142; border-radius: 3px; -o-border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }
27
+ .smallipop-instance .smallipop-tour-prev:hover, .smallipop-instance .smallipop-tour-next:hover, .smallipop-instance .smallipop-tour-close:hover { color: #fff; background: #293e53; text-decoration: none; }
28
+ .smallipop-instance .smallipop-tour-next, .smallipop-instance .smallipop-tour-close { float: right; }
29
+
30
+ /* default theme */
31
+ .smallipop-instance.default { text-shadow: 0 -1px 1px #0f161e; -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); border-radius: 12px; -o-border-radius: 12px; -moz-border-radius: 12px; -webkit-border-radius: 12px; background-repeat: repeat-x; background-image: -webkit-linear-gradient(top, rgba(49, 75, 100, 0.9), rgba(26, 38, 52, 0.9)); background-image: -moz-linear-gradient(top, rgba(49, 75, 100, 0.9), rgba(26, 38, 52, 0.9)); background-image: -ms-linear-gradient(top, rgba(49, 75, 100, 0.9), rgba(26, 38, 52, 0.9)); background-image: -o-linear-gradient(top, rgba(49, 75, 100, 0.9), rgba(26, 38, 52, 0.9)); background-image: linear-gradient(top, rgba(49, 75, 100, 0.9), rgba(26, 38, 52, 0.9)); /* Fallback for opera */ background-image: -webkit-radial-gradient(50% -100px, circle contain, rgba(49, 75, 100, 0.9) 100px, rgba(33, 50, 66, 0.9) 130px, rgba(26, 38, 52, 0.9) 150px); background-image: -moz-radial-gradient(50% -100px, circle contain, rgba(49, 75, 100, 0.9) 100px, rgba(33, 50, 66, 0.9) 130px, rgba(26, 38, 52, 0.9) 150px); background-image: -ms-radial-gradient(50% -100px, circle contain, rgba(49, 75, 100, 0.9) 100px, rgba(33, 50, 66, 0.9) 130px, rgba(26, 38, 52, 0.9) 150px); background-image: -o-radial-gradient(50% -100px, circle contain, rgba(49, 75, 100, 0.9) 100px, rgba(33, 50, 66, 0.9) 130px, rgba(26, 38, 52, 0.9) 150px); background-image: radial-gradient(50% -100px, circle contain, rgba(49, 75, 100, 0.9) 100px, rgba(33, 50, 66, 0.9) 130px, rgba(26, 38, 52, 0.9) 150px); }
32
+ .smallipop-instance.default a { text-shadow: 0 -1px 1px #0f161e; }
33
+ .smallipop-instance.default .sipContent { border-top: 1px solid #586d82; border-radius: 12px; -o-border-radius: 12px; -moz-border-radius: 12px; -webkit-border-radius: 12px; }
34
+ .smallipop-instance.default .sipArrow { border-color: #1a2634 transparent transparent transparent; }
35
+ .smallipop-instance.default .sipArrowBorder { border-color: #0f161e transparent transparent transparent; }
36
+ .smallipop-instance.default.sipAlignBottom .sipArrow { border-color: transparent transparent #1a2634 transparent; }
37
+ .smallipop-instance.default.sipAlignBottom .sipArrowBorder { border-color: transparent transparent #0f161e transparent; }
38
+ .smallipop-instance.default.sipPositionedLeft .sipArrow { border-color: transparent transparent transparent #1a2634; }
39
+ .smallipop-instance.default.sipPositionedLeft .sipArrowBorder { border-color: transparent transparent transparent #0f161e; }
40
+ .smallipop-instance.default.sipPositionedRight .sipArrow { border-color: transparent #1a2634 transparent transparent; }
41
+ .smallipop-instance.default.sipPositionedRight .sipArrowBorder { border-color: transparent #0f161e transparent transparent; }
42
+
43
+ .cssgradients.rgba .smallipop-instance.default { background-color: transparent; }
44
+
45
+ /* blue theme */
46
+ .smallipop-instance.blue { background: transparent; color: #111; border: 10px solid #0064b4; border-color: rgba(0, 100, 180, 0.9); -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); border-radius: 7px; -o-border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; }
47
+ .smallipop-instance.blue a { color: #2276aa; }
48
+ .smallipop-instance.blue .sipContent { border: 0; background: #fcfcfc; }
49
+ .smallipop-instance.blue .sipArrow { bottom: -30px; border-color: #0064b4 transparent transparent transparent; border-color: rgba(0, 100, 180, 0.9) transparent transparent transparent; }
50
+ .smallipop-instance.blue.sipAlignBottom .sipArrow { top: -30px; border-color: transparent transparent #0064b4 transparent; border-color: transparent transparent rgba(0, 100, 180, 0.9) transparent; }
51
+ .smallipop-instance.blue.sipPositionedLeft .sipArrow { right: -26px; border-color: transparent transparent transparent #0064b4; border-color: transparent transparent transparent rgba(0, 100, 180, 0.9); }
52
+ .smallipop-instance.blue.sipPositionedRight .sipArrow { left: -26px; border-color: transparent #0064b4 transparent transparent; border-color: transparent rgba(0, 100, 180, 0.9) transparent transparent; }
53
+ .smallipop-instance.blue .smallipop-tour-progress { color: #777; }
54
+ .smallipop-instance.blue .smallipop-tour-prev, .smallipop-instance.blue .smallipop-tour-next, .smallipop-instance.blue .smallipop-tour-close { color: #222; background: #efefef; }
55
+ .smallipop-instance.blue .smallipop-tour-prev:hover, .smallipop-instance.blue .smallipop-tour-next:hover, .smallipop-instance.blue .smallipop-tour-close:hover { color: #111; background: #f7f7f7; }
56
+
57
+ /* black theme */
58
+ .smallipop-instance.black { background-color: #222; border-color: #111; text-shadow: 0 -1px 1px #111111; color: #f5f5f5; -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); background-repeat: repeat-x; background-image: -webkit-linear-gradient(top, #333333, #222222); background-image: -moz-linear-gradient(top, #333333, #222222); background-image: -ms-linear-gradient(top, #333333, #222222); background-image: -o-linear-gradient(top, #333333, #222222); background-image: linear-gradient(top, #333333, #222222); border-radius: 5px; -o-border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; }
59
+ .smallipop-instance.black a { color: #eef8ff; text-shadow: 0 -1px 1px #111111; }
60
+ .smallipop-instance.black .sipContent { border-top: 1px solid #666; border-radius: 5px; -o-border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; }
61
+ .smallipop-instance.black .sipArrow { border-color: #222 transparent transparent transparent; }
62
+ .smallipop-instance.black .sipArrowBorder { border-color: #111 transparent transparent transparent; }
63
+ .smallipop-instance.black.sipAlignBottom .sipArrow { border-color: transparent transparent #222 transparent; }
64
+ .smallipop-instance.black.sipAlignBottom .sipArrowBorder { border-color: transparent transparent #111 transparent; }
65
+ .smallipop-instance.black.sipPositionedLeft .sipArrow { border-color: transparent transparent transparent #222; }
66
+ .smallipop-instance.black.sipPositionedLeft .sipArrowBorder { border-color: transparent transparent transparent #111; }
67
+ .smallipop-instance.black.sipPositionedRight .sipArrow { border-color: transparent #222 transparent transparent; }
68
+ .smallipop-instance.black.sipPositionedRight .sipArrowBorder { border-color: transparent #111 transparent transparent; }
69
+ .smallipop-instance.black .smallipop-tour-progress { color: #888; }
70
+ .smallipop-instance.black .smallipop-tour-prev, .smallipop-instance.black .smallipop-tour-next, .smallipop-instance.black .smallipop-tour-close { color: #ccc; background: #333; }
71
+ .smallipop-instance.black .smallipop-tour-prev:hover, .smallipop-instance.black .smallipop-tour-next:hover, .smallipop-instance.black .smallipop-tour-close:hover { color: #fff; background: #3a3a3a; }
72
+
73
+ .cssgradients .smallipop-instance.black { background-color: transparent; }
74
+
75
+ /* orange theme */
76
+ .smallipop-instance.orange { background-color: #f9aa18; border-color: #e17500; text-shadow: 0 1px 1px #fff24d; color: #714900; background-repeat: repeat-x; background-image: -webkit-linear-gradient(top, #fff24d, #f9aa18); background-image: -moz-linear-gradient(top, #fff24d, #f9aa18); background-image: -ms-linear-gradient(top, #fff24d, #f9aa18); background-image: -o-linear-gradient(top, #fff24d, #f9aa18); background-image: linear-gradient(top, #fff24d, #f9aa18); -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); border-radius: 10px; -o-border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; }
77
+ .smallipop-instance.orange a { color: #145d95; text-shadow: 0 1px 1px #fff24d; }
78
+ .smallipop-instance.orange .sipContent { border-top: 1px solid #fffabc; border-radius: 10px; -o-border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; }
79
+ .smallipop-instance.orange .sipArrow { border-color: #f9aa18 transparent transparent transparent; }
80
+ .smallipop-instance.orange .sipArrowBorder { border-color: #e17500 transparent transparent transparent; }
81
+ .smallipop-instance.orange.sipAlignBottom .sipArrow { border-color: transparent transparent #f9aa18 transparent; }
82
+ .smallipop-instance.orange.sipAlignBottom .sipArrowBorder { border-color: transparent transparent #e17500 transparent; }
83
+ .smallipop-instance.orange.sipPositionedLeft .sipArrow { border-color: transparent transparent transparent #f9c718; }
84
+ .smallipop-instance.orange.sipPositionedLeft .sipArrowBorder { border-color: transparent transparent transparent #e17500; }
85
+ .smallipop-instance.orange.sipPositionedRight .sipArrow { border-color: transparent #f9c718 transparent transparent; }
86
+ .smallipop-instance.orange.sipPositionedRight .sipArrowBorder { border-color: transparent #e17500 transparent transparent; }
87
+ .smallipop-instance.orange .smallipop-tour-progress { color: #444; }
88
+ .smallipop-instance.orange .smallipop-tour-prev, .smallipop-instance.orange .smallipop-tour-next, .smallipop-instance.orange .smallipop-tour-close { color: #444; background: #f19f06; }
89
+ .smallipop-instance.orange .smallipop-tour-prev:hover, .smallipop-instance.orange .smallipop-tour-next:hover, .smallipop-instance.orange .smallipop-tour-close:hover { color: #333; background: #f9a509; }
90
+
91
+ /* white theme */
92
+ .smallipop-instance.white { background-color: #fcfcfc; border-color: #ccc; text-shadow: 0 1px 1px #eee; color: #444; width: 200px; max-width: 200px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); border-radius: 6px; -o-border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; }
93
+ .smallipop-instance.white .sipContent { text-align: center; border-radius: 6px; -o-border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; }
94
+ .smallipop-instance.white .sipArrow { border-color: #fcfcfc transparent transparent transparent; }
95
+ .smallipop-instance.white .sipArrowBorder { border-color: #ccc transparent transparent transparent; }
96
+ .smallipop-instance.white.sipAlignBottom .sipArrow { border-color: transparent transparent #fcfcfc transparent; }
97
+ .smallipop-instance.white.sipAlignBottom .sipArrowBorder { border-color: transparent transparent #ccc transparent; }
98
+ .smallipop-instance.white.sipPositionedLeft .sipArrow { border-color: transparent transparent transparent #fcfcfc; }
99
+ .smallipop-instance.white.sipPositionedLeft .sipArrowBorder { border-color: transparent transparent transparent #ccc; }
100
+ .smallipop-instance.white.sipPositionedRight .sipArrow { border-color: transparent #fcfcfc transparent transparent; }
101
+ .smallipop-instance.white.sipPositionedRight .sipArrowBorder { border-color: transparent #ccc transparent transparent; }
102
+ .smallipop-instance.white .smallipop-tour-progress { color: #777; }
103
+ .smallipop-instance.white .smallipop-tour-close-icon { background: #fafafa; color: #555; text-shadow: 0 1px 1px #fff; }
104
+ .smallipop-instance.white .smallipop-tour-close-icon:hover { background: #f5f5f5; color: #222; }
105
+ .smallipop-instance.white .smallipop-tour-prev, .smallipop-instance.white .smallipop-tour-next, .smallipop-instance.white .smallipop-tour-close { color: #666; background: #f0f0f0; }
106
+ .smallipop-instance.white .smallipop-tour-prev:hover, .smallipop-instance.white .smallipop-tour-next:hover, .smallipop-instance.white .smallipop-tour-close:hover { color: #333; background: #f4f4f4; }
107
+
108
+ /* white theme extended, requires rgba support */
109
+ .smallipop-instance.whiteTransparent { background-color: rgba(255, 255, 255, 0.8); }
110
+ .smallipop-instance.whiteTransparent .sipArrow { bottom: -21px; border-color: rgba(255, 255, 255, 0.8) transparent transparent transparent; }
111
+ .smallipop-instance.whiteTransparent .sipArrowBorder { border-color: transparent; }
112
+ .smallipop-instance.whiteTransparent.sipAlignBottom .sipArrow { top: -21px; border-color: transparent transparent rgba(255, 255, 255, 0.8) transparent; }
113
+ .smallipop-instance.whiteTransparent.sipPositionedLeft .sipArrow { border-color: transparent transparent transparent rgba(255, 255, 255, 0.8); }
114
+ .smallipop-instance.whiteTransparent.sipPositionedRight .sipArrow { border-color: transparent rgba(255, 255, 255, 0.8) transparent transparent; }
115
+
116
+ /* fat shadow extension theme */
117
+ .smallipop-instance.fatShadow { -webkit-box-shadow: 0 2px 20px rgba(0, 0, 0, 0.8); -moz-box-shadow: 0 2px 20px rgba(0, 0, 0, 0.8); box-shadow: 0 2px 20px rgba(0, 0, 0, 0.8); }
assets/css/wpuf-form-builder.css ADDED
@@ -0,0 +1,1372 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [v-cloak] {
2
+ display: none;
3
+ }
4
+ .wpuf-pro-text-alert {
5
+ font-style: italic;
6
+ color: #cccccc;
7
+ }
8
+ .wpuf-pro-text-alert a {
9
+ text-decoration: none;
10
+ color: #aaa;
11
+ }
12
+ #wpuf-pro-content {
13
+ opacity: 0.7;
14
+ }
15
+ .clearfix:before,
16
+ .clearfix:after {
17
+ content: " ";
18
+ display: table;
19
+ }
20
+ .clearfix:after {
21
+ clear: both;
22
+ }
23
+ .pull-left {
24
+ float: left !important;
25
+ }
26
+ .pull-right {
27
+ float: right !important;
28
+ }
29
+ .text-center {
30
+ text-align: center;
31
+ }
32
+ .text-right {
33
+ text-align: right;
34
+ }
35
+ .margin-0 {
36
+ margin: 0;
37
+ }
38
+ .margin-bottom-10 {
39
+ margin-bottom: 10px;
40
+ }
41
+ .list-inline {
42
+ padding-left: 0;
43
+ list-style: none;
44
+ margin-left: -5px;
45
+ }
46
+ .list-inline > li {
47
+ display: inline-block;
48
+ padding-left: 5px;
49
+ padding-right: 5px;
50
+ }
51
+ .disabled {
52
+ pointer-events: none;
53
+ cursor: not-allowed;
54
+ opacity: 0.7;
55
+ }
56
+ .label-hr {
57
+ border-bottom: 1px solid #ccc;
58
+ display: block;
59
+ padding-bottom: 8px;
60
+ }
61
+ .slide-fade-enter-active {
62
+ -webkit-transition: all 0.6s;
63
+ -o-transition: all 0.6s;
64
+ transition: all 0.6s;
65
+ overflow: hidden;
66
+ }
67
+ .slide-fade-leave-active {
68
+ -webkit-transition: all 0.4s;
69
+ -o-transition: all 0.4s;
70
+ transition: all 0.4s;
71
+ overflow: hidden;
72
+ }
73
+ .slide-fade-enter,
74
+ .slide-fade-leave-active {
75
+ opacity: .3 !important;
76
+ max-height: 0 !important;
77
+ margin: 0 !important;
78
+ }
79
+ .sweet-alert {
80
+ border-radius: 0;
81
+ }
82
+ .sweet-alert h2 {
83
+ font-size: 26px;
84
+ line-height: 1.6;
85
+ }
86
+ .sweet-alert p {
87
+ font-size: 15px;
88
+ font-weight: 400;
89
+ color: #656565;
90
+ line-height: 1.7;
91
+ }
92
+ .sweet-alert p a {
93
+ text-decoration: none;
94
+ }
95
+ .sweet-alert button {
96
+ border-radius: 3px;
97
+ padding: 10px 20px;
98
+ min-width: 100px;
99
+ }
100
+ .loader,
101
+ .loader:after {
102
+ border-radius: 50%;
103
+ width: 25px;
104
+ height: 25px;
105
+ }
106
+ .loader {
107
+ display: inline-block;
108
+ position: relative;
109
+ text-indent: -9999em;
110
+ border-top: 3px solid rgba(0, 115, 170, 0.2);
111
+ border-right: 3px solid rgba(0, 115, 170, 0.2);
112
+ border-bottom: 3px solid rgba(0, 115, 170, 0.2);
113
+ border-left: 3px solid #0073aa;
114
+ -webkit-transform: translateZ(0);
115
+ -ms-transform: translateZ(0);
116
+ transform: translateZ(0);
117
+ -webkit-animation: wpuf_form_builder_loader 1.1s infinite linear;
118
+ animation: wpuf_form_builder_loader 1.1s infinite linear;
119
+ }
120
+ .button.button-ajax-working .loader {
121
+ display: inline-block;
122
+ width: 17px;
123
+ height: 17px;
124
+ top: 4px;
125
+ margin-right: 3px;
126
+ border-top: 1px solid #66c6e4;
127
+ border-right: 1px solid #66c6e4;
128
+ border-bottom: 1px solid #66c6e4;
129
+ border-left: 1px solid rgba(102, 198, 228, 0);
130
+ }
131
+ @-webkit-keyframes wpuf_form_builder_loader {
132
+ 0% {
133
+ -webkit-transform: rotate(0deg);
134
+ transform: rotate(0deg);
135
+ }
136
+ 100% {
137
+ -webkit-transform: rotate(360deg);
138
+ transform: rotate(360deg);
139
+ }
140
+ }
141
+ @keyframes wpuf_form_builder_loader {
142
+ 0% {
143
+ -webkit-transform: rotate(0deg);
144
+ transform: rotate(0deg);
145
+ }
146
+ 100% {
147
+ -webkit-transform: rotate(360deg);
148
+ transform: rotate(360deg);
149
+ }
150
+ }
151
+ #toast-container.toast-top-right {
152
+ top: 40px;
153
+ right: 18px;
154
+ }
155
+ #toast-container > div {
156
+ opacity: 1;
157
+ }
158
+ #toast-container > :hover {
159
+ opacity: .9;
160
+ }
161
+ .wp-core-ui .button-group.wpuf-flex-button-group {
162
+ position: relative;
163
+ z-index: 1;
164
+ display: flex;
165
+ flex-flow: row nowrap;
166
+ justify-content: flex-start;
167
+ align-content: center;
168
+ align-items: center;
169
+ }
170
+ .wp-core-ui .button-group.wpuf-flex-button-group .button {
171
+ flex-grow: 1;
172
+ flex-shrink: 1;
173
+ flex-basis: 0;
174
+ align-self: auto;
175
+ text-align: center;
176
+ }
177
+ .selectize-input {
178
+ padding: 6px 5px;
179
+ border: 1px solid #ddd;
180
+ }
181
+ .selectize-dropdown .active {
182
+ background-color: #0073aa;
183
+ color: #fff;
184
+ }
185
+ .selectize-element-group {
186
+ display: none;
187
+ }
188
+ .selectize-element-group + .selectize-control {
189
+ display: none;
190
+ }
191
+ .selectize-element-group.active + .selectize-control {
192
+ display: block;
193
+ margin-top: 10px;
194
+ }
195
+ .selectize-control.multi .selectize-input [data-value] {
196
+ text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
197
+ -webkit-border-radius: 3px;
198
+ -moz-border-radius: 3px;
199
+ border-radius: 3px;
200
+ background-color: rgba(0, 115, 170, 0.64);
201
+ background-image: -moz-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
202
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(0, 115, 170, 0.4)), to(#0073aa));
203
+ background-image: -webkit-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
204
+ background-image: -o-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
205
+ background-image: linear-gradient(to bottom, rgba(0, 115, 170, 0.4), #0073aa);
206
+ background-repeat: repeat-x;
207
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#660073aa', endColorstr='#ff0073aa', GradientType=0);
208
+ -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);
209
+ box-shadow: 0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);
210
+ }
211
+ .selectize-control.multi .selectize-input [data-value].active {
212
+ background-color: rgba(0, 115, 170, 0.64);
213
+ background-image: -moz-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
214
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(0, 115, 170, 0.4)), to(#0073aa));
215
+ background-image: -webkit-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
216
+ background-image: -o-linear-gradient(top, rgba(0, 115, 170, 0.4), #0073aa);
217
+ background-image: linear-gradient(to bottom, rgba(0, 115, 170, 0.4), #0073aa);
218
+ background-repeat: repeat-x;
219
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#660073aa', endColorstr='#ff0073aa', GradientType=0);
220
+ }
221
+ #wpuf-form-builder {
222
+ width: calc(100% - 200px);
223
+ padding-top: 10px;
224
+ position: fixed;
225
+ top: 25px;
226
+ background: #f1f1f1;
227
+ }
228
+ #wpuf-form-builder * {
229
+ box-sizing: border-box;
230
+ }
231
+ #wpuf-form-builder > fieldset > .nav-tab-wrapper .nav-tab:focus {
232
+ outline: 0;
233
+ -webkit-box-shadow: none;
234
+ box-shadow: none;
235
+ }
236
+ #wpuf-form-builder > fieldset > .nav-tab-wrapper .button {
237
+ font-weight: 400;
238
+ }
239
+ #wpuf-form-builder > fieldset > .tab-contents {
240
+ border-bottom: 1px solid #cccccc;
241
+ }
242
+ #wpuf-form-builder > fieldset > .tab-contents > .group {
243
+ display: none;
244
+ }
245
+ #wpuf-form-builder > fieldset > .tab-contents > .group.active {
246
+ display: block;
247
+ }
248
+ #wpuf-form-builder > fieldset > .tab-contents > .group:not(#wpuf-form-builder-container):not(#wpuf-form-builder-settings) {
249
+ height: calc(100vh - 125px);
250
+ overflow-y: auto;
251
+ padding-top: 15px;
252
+ }
253
+ #wpuf-form-builder .wpuf-settings-nav-tab-wrapper {
254
+ width: 200px;
255
+ }
256
+ #wpuf-form-builder .wp-picker-holder * {
257
+ box-sizing: content-box;
258
+ }
259
+ #wpuf-form-builder .tab-content {
260
+ height: calc(100vh - 140px);
261
+ overflow-y: auto;
262
+ margin-top: 15px;
263
+ }
264
+ #wpuf-form-builder-settings {
265
+ position: relative;
266
+ margin-top: 15px;
267
+ min-height: 380px;
268
+ }
269
+ #wpuf-form-builder-settings .nav-tab-wrapper {
270
+ position: absolute;
271
+ top: 0;
272
+ left: 0;
273
+ width: 170px;
274
+ border-bottom: 0;
275
+ }
276
+ #wpuf-form-builder-settings .nav-tab-wrapper a {
277
+ width: calc(100% - -1px);
278
+ margin-left: 0;
279
+ margin-bottom: .5em;
280
+ border-right: 1px solid #cccccc;
281
+ border-bottom: 1px solid #cccccc;
282
+ font-weight: 400;
283
+ font-size: 13px;
284
+ }
285
+ #wpuf-form-builder-settings .nav-tab-wrapper a.nav-tab-active {
286
+ border-right-color: #f1f1f1;
287
+ }
288
+ #wpuf-form-builder-settings .nav-tab-wrapper a:focus {
289
+ outline: 0;
290
+ -webkit-box-shadow: none;
291
+ box-shadow: none;
292
+ }
293
+ #wpuf-form-builder-settings .tab-contents {
294
+ margin-left: 170px;
295
+ border-left: 1px solid #cccccc;
296
+ padding-left: 20px;
297
+ }
298
+ #wpuf-form-builder-settings .tab-contents > .group {
299
+ display: none;
300
+ height: calc(100vh - 140px);
301
+ overflow-y: auto;
302
+ }
303
+ #wpuf-form-builder-settings .tab-contents > .group.active {
304
+ display: block;
305
+ }
306
+ #wpuf-form-builder-settings .tab-contents .form-table {
307
+ margin-top: 0;
308
+ }
309
+ #wpuf-form-builder-payment {
310
+ position: relative;
311
+ margin-top: 15px;
312
+ min-height: 380px;
313
+ }
314
+ #wpuf-form-builder-payment .nav-tab-wrapper {
315
+ position: absolute;
316
+ top: 0;
317
+ left: 0;
318
+ width: 170px;
319
+ border-bottom: 0;
320
+ }
321
+ #wpuf-form-builder-payment .nav-tab-wrapper a {
322
+ width: calc(100% - -1px);
323
+ margin-left: 0;
324
+ margin-bottom: .5em;
325
+ border-right: 1px solid #cccccc;
326
+ border-bottom: 1px solid #cccccc;
327
+ font-weight: 400;
328
+ font-size: 13px;
329
+ }
330
+ #wpuf-form-builder-payment .nav-tab-wrapper a.nav-tab-active {
331
+ border-right-color: #f1f1f1;
332
+ }
333
+ #wpuf-form-builder-payment .nav-tab-wrapper a:focus {
334
+ outline: 0;
335
+ -webkit-box-shadow: none;
336
+ box-shadow: none;
337
+ }
338
+ #wpuf-form-builder-payment .tab-contents {
339
+ margin-left: 170px;
340
+ border-left: 1px solid #cccccc;
341
+ padding-left: 20px;
342
+ }
343
+ #wpuf-form-builder-payment .tab-contents > .group {
344
+ display: none;
345
+ height: calc(100vh - 140px);
346
+ overflow-y: auto;
347
+ }
348
+ #wpuf-form-builder-payment .tab-contents > .group.active {
349
+ display: block;
350
+ }
351
+ #wpuf-form-builder-payment .tab-contents .form-table {
352
+ margin-top: 0;
353
+ }
354
+ #wpuf-form-builder-container {
355
+ position: relative;
356
+ }
357
+ #wpuf-form-builder-container header {
358
+ height: 45px;
359
+ border-right: 1px solid #cccccc;
360
+ }
361
+ #wpuf-form-builder-container header .form-title {
362
+ cursor: pointer;
363
+ font-size: 1.3em;
364
+ font-weight: 600;
365
+ float: left;
366
+ margin-right: 10px;
367
+ margin-top: 10px;
368
+ line-height: 1.5;
369
+ max-width: 300px;
370
+ white-space: nowrap;
371
+ overflow: hidden;
372
+ text-overflow: ellipsis;
373
+ }
374
+ #wpuf-form-builder-container header .form-title:hover {
375
+ background-color: rgba(85, 85, 85, 0.2);
376
+ }
377
+ #wpuf-form-builder-container header .form-switcher-arrow {
378
+ cursor: pointer;
379
+ font-size: 24px;
380
+ margin-top: 10px;
381
+ line-height: 1;
382
+ width: 20px;
383
+ text-align: center;
384
+ }
385
+ #wpuf-form-builder-container header .form-switcher-arrow:hover {
386
+ background-color: rgba(85, 85, 85, 0.2);
387
+ }
388
+ #wpuf-form-builder-container header .form-id {
389
+ color: #fff;
390
+ background-color: #008ec2;
391
+ line-height: 170%;
392
+ padding: 0 8px;
393
+ border-radius: 2px;
394
+ font-size: 13px;
395
+ display: inline-block;
396
+ margin: 10px 0 0 15px;
397
+ cursor: pointer;
398
+ }
399
+ #wpuf-form-builder-container section {
400
+ height: calc(100vh - 170px);
401
+ overflow-y: auto;
402
+ }
403
+ #wpuf-form-builder-container #builder-form-fields {
404
+ position: absolute;
405
+ top: 0;
406
+ right: 0;
407
+ width: 360px;
408
+ }
409
+ #wpuf-form-builder-container #builder-form-fields header ul {
410
+ margin: 0;
411
+ }
412
+ #wpuf-form-builder-container #builder-form-fields header ul li {
413
+ width: 50%;
414
+ text-align: center;
415
+ float: left;
416
+ line-height: 1;
417
+ margin: 0;
418
+ }
419
+ #wpuf-form-builder-container #builder-form-fields header ul li a {
420
+ text-decoration: none;
421
+ line-height: 44px;
422
+ display: block;
423
+ background-color: #e5e5e5;
424
+ color: #777;
425
+ border-bottom: 1px solid #cccccc;
426
+ -webkit-transition: background-color 0.4s;
427
+ -o-transition: background-color 0.4s;
428
+ transition: background-color 0.4s;
429
+ }
430
+ #wpuf-form-builder-container #builder-form-fields header ul li a:hover {
431
+ background-color: #f2f2f2;
432
+ }
433
+ #wpuf-form-builder-container #builder-form-fields header ul li a:focus {
434
+ outline: 0;
435
+ -webkit-box-shadow: none;
436
+ box-shadow: none;
437
+ }
438
+ #wpuf-form-builder-container #builder-form-fields header ul li.active a {
439
+ background-color: #fff;
440
+ color: #444;
441
+ border-bottom: 1px solid #fff;
442
+ }
443
+ #wpuf-form-builder-container #builder-form-fields header ul li:first-child {
444
+ border-right: 1px solid #cccccc;
445
+ }
446
+ #wpuf-form-builder-container #builder-form-fields section {
447
+ background-color: #fff;
448
+ border-right: 1px solid #cccccc;
449
+ }
450
+ #wpuf-form-builder-container #builder-form-fields section .wpuf-form-builder-panel {
451
+ padding: 10px;
452
+ }
453
+ #wpuf-form-builder-container #builder-stage {
454
+ margin-right: 360px;
455
+ }
456
+ #wpuf-form-builder-container #builder-stage section {
457
+ background-color: #6b6b6b;
458
+ padding: 30px;
459
+ }
460
+ #wpuf-form-builder-container #builder-stage section #form-preview {
461
+ background-color: #fff;
462
+ -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
463
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
464
+ padding: 25px;
465
+ max-width: 800px;
466
+ margin: 0 auto;
467
+ }
468
+ #form-preview-stage .field-items {
469
+ position: relative;
470
+ background-color: #fff;
471
+ }
472
+ #form-preview-stage .field-items .control-buttons {
473
+ position: absolute;
474
+ top: 0;
475
+ left: 0;
476
+ z-index: 10;
477
+ display: none;
478
+ width: 100%;
479
+ height: 100%;
480
+ margin: 0;
481
+ text-align: center;
482
+ background: rgba(255, 185, 0, 0.08);
483
+ border: 1px dashed #ffb900;
484
+ }
485
+ #form-preview-stage .field-items .control-buttons p {
486
+ position: absolute;
487
+ top: 50%;
488
+ left: 50%;
489
+ margin: -14px 0 0 -61px;
490
+ line-height: 1;
491
+ color: #eee;
492
+ background-color: #23282d;
493
+ }
494
+ #form-preview-stage .field-items .control-buttons i {
495
+ cursor: pointer;
496
+ padding: 8px;
497
+ }
498
+ #form-preview-stage .field-items .control-buttons i.move {
499
+ cursor: move;
500
+ }
501
+ #form-preview-stage .field-items .control-buttons i:hover {
502
+ background-color: #0073aa;
503
+ }
504
+ #form-preview-stage .field-items:hover .control-buttons {
505
+ display: block;
506
+ }
507
+ #form-preview-stage .field-items.current-editing {
508
+ background-color: rgba(255, 185, 0, 0.15);
509
+ }
510
+ #form-preview-stage .field-items.current-editing.ui-sortable-helper {
511
+ background-color: #fff;
512
+ }
513
+ #form-preview-stage .field-items.ui-sortable-helper {
514
+ -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
515
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
516
+ }
517
+ #form-preview-stage .form-preview-stage-dropzone {
518
+ background-color: rgba(255, 185, 0, 0.3) !important;
519
+ border: 1px solid #ffb900;
520
+ height: 50px;
521
+ }
522
+ #form-preview-stage .wpuf-submit + .button + .form-preview-stage-dropzone,
523
+ #form-preview-stage .field-items.empty-list-item + .form-preview-stage-dropzone {
524
+ display: none;
525
+ }
526
+ #form-preview-stage .field-items.empty-list-item {
527
+ padding: 24px;
528
+ margin: 0;
529
+ border: 1px dashed rgba(35, 40, 45, 0.5);
530
+ }
531
+ #form-preview-stage .form-preview-stage-dropzone + .field-items.empty-list-item {
532
+ display: none;
533
+ }
534
+ #form-preview-stage .hidden-field-list {
535
+ border-top: 1px dashed #cccccc;
536
+ }
537
+ #form-preview-stage .hidden-field-list h4 {
538
+ font-weight: 400;
539
+ font-size: 16px;
540
+ margin: 12px 0;
541
+ }
542
+ #form-preview-stage .hidden-field-list ul li {
543
+ background-color: #f1f1f1;
544
+ }
545
+ .panel-form-field-group {
546
+ margin-bottom: 15px;
547
+ }
548
+ .panel-form-field-group h3 {
549
+ margin: 0;
550
+ font-size: 15px;
551
+ border-bottom: 1px solid #eee;
552
+ padding-bottom: 10px;
553
+ cursor: pointer;
554
+ }
555
+ .panel-form-field-group h3 i {
556
+ float: right;
557
+ }
558
+ .panel-form-field-group .panel-form-field-buttons {
559
+ opacity: 1;
560
+ max-height: 100vh;
561
+ overflow: hidden;
562
+ margin: 15px 0 0;
563
+ }
564
+ .panel-form-field-group .button {
565
+ display: block;
566
+ width: 48%;
567
+ margin: 0 0 10px 0;
568
+ float: left;
569
+ text-align: left;
570
+ }
571
+ .panel-form-field-group .button:nth-child(odd) {
572
+ margin-right: 2%;
573
+ }
574
+ .panel-form-field-group .button.button-faded {
575
+ opacity: .5;
576
+ }
577
+ .button.ui-draggable-dragging {
578
+ margin: 0;
579
+ text-align: left;
580
+ }
581
+ .wpuf-form-builder-field-options .option-fields-section {
582
+ margin-bottom: 15px;
583
+ }
584
+ .wpuf-form-builder-field-options .section-title {
585
+ margin: 0;
586
+ font-size: 15px;
587
+ border-bottom: 1px solid #eee;
588
+ padding-bottom: 10px;
589
+ cursor: pointer;
590
+ }
591
+ .wpuf-form-builder-field-options .section-title i {
592
+ float: right;
593
+ }
594
+ .wpuf-form-builder-field-options .option-field-section-fields {
595
+ margin-top: 15px;
596
+ max-height: 150vh;
597
+ opacity: 1;
598
+ }
599
+ .wpuf-form-builder-field-options .panel-field-opt {
600
+ margin-bottom: 15px;
601
+ }
602
+ .wpuf-form-builder-field-options .panel-field-opt .field-helper-text {
603
+ color: rgba(35, 40, 45, 0.5);
604
+ margin-left: 6px;
605
+ }
606
+ .wpuf-form-builder-field-options .panel-field-opt.panel-field-opt-text input[type="text"],
607
+ .wpuf-form-builder-field-options .panel-field-opt.panel-field-opt-text input[type="number"] {
608
+ display: block;
609
+ width: 100%;
610
+ margin: 5px 0 0;
611
+ line-height: 1.75;
612
+ }
613
+ .wpuf-form-builder-field-options .panel-field-opt.panel-field-opt-radio > label {
614
+ display: block;
615
+ margin-bottom: 5px;
616
+ }
617
+ .wpuf-form-builder-field-options .panel-field-opt.panel-field-opt-radio > ul {
618
+ margin-top: 0;
619
+ margin-bottom: 0;
620
+ }
621
+ .wpuf-form-builder-field-options .panel-field-opt.panel-field-opt-select select {
622
+ width: 100%;
623
+ height: 32px;
624
+ margin: 4px 0 0;
625
+ }
626
+ .wpuf-form-builder-field-options .panel-field-opt .chosen-select + .chosen-container {
627
+ margin-top: 10px;
628
+ }
629
+ .wpuf-form-builder-field-options .panel-field-opt .label-title-block {
630
+ display: block;
631
+ margin-bottom: 3px;
632
+ }
633
+ .option-field-option-chooser {
634
+ margin: 12px 0 0;
635
+ }
636
+ .option-field-option-chooser.margin-0 {
637
+ margin: 0;
638
+ }
639
+ .option-field-option-chooser .selector,
640
+ .option-field-option-chooser .sort-handler,
641
+ .option-field-option-chooser .label,
642
+ .option-field-option-chooser .value,
643
+ .option-field-option-chooser .action-buttons {
644
+ float: left;
645
+ }
646
+ .option-field-option-chooser .selector {
647
+ width: 25px;
648
+ }
649
+ .option-field-option-chooser .selector input {
650
+ margin-top: 14px;
651
+ }
652
+ .option-field-option-chooser .sort-handler {
653
+ width: 22px;
654
+ cursor: ns-resize;
655
+ }
656
+ .option-field-option-chooser .sort-handler i {
657
+ margin-top: 14px;
658
+ font-size: 15px;
659
+ }
660
+ .option-field-option-chooser .label {
661
+ width: 208px;
662
+ margin-right: 8px;
663
+ }
664
+ .option-field-option-chooser.show-value .label,
665
+ .option-field-option-chooser.show-value .value {
666
+ width: 100px;
667
+ margin-right: 8px;
668
+ }
669
+ .option-field-option-chooser .header .label,
670
+ .option-field-option-chooser .header .value {
671
+ color: #909090;
672
+ }
673
+ .option-field-option-chooser .action-buttons {
674
+ width: 36px;
675
+ }
676
+ .option-field-option-chooser .action-buttons i {
677
+ cursor: pointer;
678
+ font-size: 16px;
679
+ margin-top: 13px;
680
+ }
681
+ .option-field-option-chooser .plus-buttons {
682
+ padding: 5px;
683
+ font-size: 18px;
684
+ text-align: center;
685
+ cursor: pointer;
686
+ border: 1px solid #ccc;
687
+ width: 61%;
688
+ margin-left: 14%;
689
+ }
690
+ .panel-field-opt-repeater-columns .repeater-columns li > div {
691
+ float: left;
692
+ }
693
+ .panel-field-opt-repeater-columns .repeater-columns .sorter {
694
+ width: 30px;
695
+ }
696
+ .panel-field-opt-repeater-columns .repeater-columns .sorter i {
697
+ cursor: ns-resize;
698
+ font-size: 16px;
699
+ margin-top: 5px;
700
+ }
701
+ .panel-field-opt-repeater-columns .repeater-columns .input-container {
702
+ width: 195px;
703
+ margin-right: 10px;
704
+ }
705
+ .panel-field-opt-repeater-columns .repeater-columns .input-container input {
706
+ width: 100%;
707
+ }
708
+ .panel-field-opt-repeater-columns .repeater-columns .action-buttons {
709
+ width: 50px;
710
+ }
711
+ .panel-field-opt-repeater-columns .repeater-columns .action-buttons i {
712
+ cursor: pointer;
713
+ font-size: 16px;
714
+ padding: 0 3px;
715
+ margin-top: 4px;
716
+ }
717
+ .panel-field-opt-textarea textarea {
718
+ display: block;
719
+ width: 100%;
720
+ margin: 5px 0 0;
721
+ line-height: 1.75;
722
+ }
723
+ .panel-field-html-help-text pre {
724
+ max-width: 100%;
725
+ overflow-x: auto;
726
+ }
727
+ .panel-field-opt-select .opt-select-element {
728
+ display: block;
729
+ max-width: 100%;
730
+ }
731
+ ul.wpuf-form li .wpuf-text-editor .wp-editor-wrap {
732
+ border: 0;
733
+ }
734
+ .form-switcher-content {
735
+ position: absolute;
736
+ background-color: #f9f9f9;
737
+ min-width: 160px;
738
+ box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
739
+ z-index: 9999;
740
+ margin: 0;
741
+ }
742
+ .form-switcher-content li {
743
+ margin: 0;
744
+ }
745
+ .form-switcher-content a {
746
+ color: black;
747
+ padding: 12px;
748
+ text-decoration: none;
749
+ display: block;
750
+ text-align: center;
751
+ }
752
+ .form-switcher-content a:hover {
753
+ color: #fff;
754
+ background-color: #008ec2;
755
+ }
756
+ .form-switcher-content a.active {
757
+ font-weight: bold;
758
+ color: #fff;
759
+ background-color: #008ec2;
760
+ }
761
+ .insert-photo-icon {
762
+ vertical-align: text-top;
763
+ color: #82878c;
764
+ font-size: 18px;
765
+ }
766
+ .password-strength-meter {
767
+ border-style: solid;
768
+ border-width: 1px;
769
+ float: left;
770
+ margin: 0;
771
+ padding: 3px 5px;
772
+ text-align: center;
773
+ width: 200px;
774
+ display: block;
775
+ background-color: #eee;
776
+ border-color: #ddd;
777
+ }
778
+ ul.wpuf-form li .wpuf-password-field {
779
+ width: 100%;
780
+ margin-bottom: 10px;
781
+ }
782
+ ul.wpuf-form li .wpuf-password-field:after {
783
+ clear: both;
784
+ content: "";
785
+ display: table;
786
+ }
787
+ .wpuf-recaptcha-placeholder {
788
+ width: 304px;
789
+ }
790
+ .wpuf-merge-tag-wrap .merge-tag-link {
791
+ position: absolute;
792
+ right: 5px;
793
+ top: 30px;
794
+ color: #999;
795
+ text-decoration: none;
796
+ }
797
+ .wpuf-merge-tag-wrap .merge-tag-link:hover {
798
+ color: #555;
799
+ }
800
+ .wpuf-merge-tag-wrap .wpuf-merge-tags {
801
+ max-height: 110px;
802
+ overflow: hidden;
803
+ overflow-y: scroll;
804
+ border: 1px solid #e5e5e5;
805
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.04);
806
+ display: none;
807
+ position: absolute;
808
+ right: 0px;
809
+ top: 60px;
810
+ background: #fff;
811
+ z-index: 1000;
812
+ min-height: 150px;
813
+ }
814
+ .wpuf-merge-tag-wrap .wpuf-merge-tags .merge-tag-head {
815
+ font-weight: bold;
816
+ background: #f0f0f0;
817
+ padding: 3px 10px;
818
+ }
819
+ .wpuf-merge-tag-wrap .wpuf-merge-tags .merge-tag-section ul {
820
+ margin: 0;
821
+ padding: 5px 10px;
822
+ }
823
+ .wpuf-form-template-modal {
824
+ background: #fff;
825
+ position: fixed;
826
+ top: 5%;
827
+ bottom: 5%;
828
+ right: 10%;
829
+ left: 10%;
830
+ display: none;
831
+ box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1);
832
+ z-index: 160000;
833
+ }
834
+ .wpuf-form-template-modal.show {
835
+ display: block;
836
+ }
837
+ .wpuf-form-template-modal * {
838
+ box-sizing: border-box;
839
+ }
840
+ .wpuf-form-template-modal a.close {
841
+ position: absolute;
842
+ top: 0;
843
+ right: 0;
844
+ font: 300 1.71429em "dashicons" !important;
845
+ color: #777;
846
+ content: '\f335';
847
+ display: inline-block;
848
+ padding: 10px 20px;
849
+ z-index: 5;
850
+ text-decoration: none;
851
+ height: 50px;
852
+ cursor: pointer;
853
+ border-left: 1px solid #ddd;
854
+ }
855
+ .wpuf-form-template-modal a.close:hover {
856
+ background: #eee;
857
+ opacity: 0.8;
858
+ text-decoration: none;
859
+ }
860
+ .wpuf-form-template-modal a.close:active {
861
+ background: #eee;
862
+ opacity: 0.4;
863
+ }
864
+ .wpuf-form-template-modal .modal-header {
865
+ position: absolute;
866
+ top: 0;
867
+ left: 0;
868
+ right: 0;
869
+ height: 50px;
870
+ z-index: 4;
871
+ border-bottom: 1px solid #ddd;
872
+ padding-left: 15px;
873
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
874
+ }
875
+ .wpuf-form-template-modal .modal-header h2 {
876
+ line-height: 50px;
877
+ text-align: left;
878
+ margin-top: 0;
879
+ color: #5d6d74;
880
+ font-size: 20px;
881
+ text-shadow: 0 1px 1px #fff;
882
+ }
883
+ .wpuf-form-template-modal .modal-header h2 small {
884
+ font-weight: normal;
885
+ font-size: 13px;
886
+ margin-left: 15px;
887
+ }
888
+ .wpuf-form-template-modal .content-container {
889
+ position: absolute;
890
+ top: 50px;
891
+ right: 0;
892
+ bottom: 50px;
893
+ left: 0;
894
+ overflow: auto;
895
+ padding: 2em 2em;
896
+ }
897
+ .wpuf-form-template-modal .content-container.no-footer {
898
+ bottom: 0;
899
+ }
900
+ .wpuf-form-template-modal .content {
901
+ margin: 0 auto;
902
+ max-width: 900px;
903
+ text-align: left;
904
+ }
905
+ .wpuf-form-template-modal .content ul {
906
+ width: 100%;
907
+ margin: 0;
908
+ padding: 0;
909
+ }
910
+ .wpuf-form-template-modal .content ul li {
911
+ text-align: center;
912
+ min-height: 280px;
913
+ width: 220px;
914
+ border: 0px;
915
+ box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
916
+ position: relative;
917
+ border-radius: 3px;
918
+ margin-bottom: 30px;
919
+ float: left;
920
+ margin-left: 30px;
921
+ }
922
+ .wpuf-form-template-modal .content ul li h3 {
923
+ margin-top: 0;
924
+ margin-bottom: 0;
925
+ border: 0px;
926
+ background: #1E87B6;
927
+ padding: 13px;
928
+ font-weight: normal;
929
+ font-size: 13px;
930
+ color: #fff;
931
+ border-radius: 3px 3px 0px 0px;
932
+ text-align: left;
933
+ }
934
+ .wpuf-form-template-modal .content ul li .title {
935
+ font-size: 17px;
936
+ margin: 0 0 10px 0;
937
+ line-height: 23px;
938
+ }
939
+ .wpuf-form-template-modal .content ul li.template-active img,
940
+ .wpuf-form-template-modal .content ul li.template-inactive img {
941
+ max-width: 100%;
942
+ max-height: 211px;
943
+ }
944
+ .wpuf-form-template-modal .content ul li .form-middle-text {
945
+ margin-top: 70px;
946
+ font-size: 15px;
947
+ }
948
+ .wpuf-form-template-modal .content ul li .form-middle-text span.dashicons {
949
+ font-size: 45px;
950
+ color: #ddd;
951
+ margin: 0 auto;
952
+ width: auto;
953
+ height: auto;
954
+ display: block;
955
+ }
956
+ .wpuf-form-template-modal .content ul li .form-create-overlay {
957
+ position: absolute;
958
+ display: none;
959
+ }
960
+ .wpuf-form-template-modal .content ul li .form-create-overlay a.button.button-primary {
961
+ width: 200px;
962
+ min-height: 30px;
963
+ padding: 0;
964
+ color: #fff;
965
+ }
966
+ .wpuf-form-template-modal .content ul li.on-progress:before {
967
+ content: "\f463";
968
+ display: inline-block;
969
+ font: normal 20px/1 'dashicons';
970
+ color: #f56e28;
971
+ -webkit-animation: rotation 2s infinite linear;
972
+ animation: rotation 2s infinite linear;
973
+ position: absolute;
974
+ top: 40%;
975
+ left: 45%;
976
+ }
977
+ .wpuf-form-template-modal .content ul li.on-progress a {
978
+ pointer-events: none;
979
+ opacity: 0.2;
980
+ }
981
+ .wpuf-form-template-modal .content ul li:hover {
982
+ background: #fff;
983
+ }
984
+ .wpuf-form-template-modal .content ul li:hover .form-create-overlay {
985
+ animation: weFormsFadeIn .25s;
986
+ padding: 10px;
987
+ text-align: center;
988
+ display: flex;
989
+ flex-direction: column;
990
+ justify-content: center;
991
+ background: rgba(0, 0, 0, 0.7);
992
+ height: 100%;
993
+ width: 100%;
994
+ top: 0px;
995
+ left: 0px;
996
+ color: #fff;
997
+ border-radius: 3px;
998
+ }
999
+ .wpuf-form-template-modal .content ul li a {
1000
+ text-decoration: none;
1001
+ color: #555;
1002
+ padding: 20px;
1003
+ display: block;
1004
+ min-height: 118px;
1005
+ }
1006
+ .wpuf-form-template-modal .content ul li .title {
1007
+ font-size: 17px;
1008
+ margin: 0 0 10px 0;
1009
+ line-height: 23px;
1010
+ }
1011
+ .wpuf-form-template-modal .content ul li .description {
1012
+ color: #fff;
1013
+ }
1014
+ .wpuf-form-template-modal .content ul li:nth-child(3n+1) {
1015
+ margin-left: 0;
1016
+ clear: both;
1017
+ }
1018
+ .wpuf-form-template-modal .content ul li.template-inactive .title,
1019
+ .wpuf-form-template-modal .content ul li.template-inactive .description {
1020
+ color: #ddd;
1021
+ }
1022
+ .wpuf-form-template-modal .content ul li.blank-form {
1023
+ text-align: center;
1024
+ }
1025
+ .wpuf-form-template-modal .content ul li.blank-form span {
1026
+ display: block;
1027
+ }
1028
+ .wpuf-form-template-modal .content ul li.blank-form span.dashicons {
1029
+ font-size: 45px;
1030
+ color: #ddd;
1031
+ margin: 0 auto;
1032
+ width: auto;
1033
+ height: auto;
1034
+ }
1035
+ .wpuf-form-template-modal footer {
1036
+ position: absolute;
1037
+ left: 0;
1038
+ bottom: 0;
1039
+ width: 100%;
1040
+ padding: 12px 20px;
1041
+ border-top: 1px solid #ddd;
1042
+ background: #fff;
1043
+ text-align: left;
1044
+ }
1045
+ .wpuf-form-template-modal-backdrop {
1046
+ position: fixed;
1047
+ z-index: 159999;
1048
+ top: 0;
1049
+ left: 0;
1050
+ right: 0;
1051
+ bottom: 0;
1052
+ min-height: 360px;
1053
+ background: #000;
1054
+ opacity: .7;
1055
+ display: none;
1056
+ }
1057
+ .wpuf-form-template-modal-backdrop.show {
1058
+ display: block;
1059
+ }
1060
+ /* Smartphones (portrait and landscape) ----------- */
1061
+ @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
1062
+ .wpuf-form-template-modal .modal-header h2 small {
1063
+ display: none;
1064
+ }
1065
+ .wpuf-form-template-modal .content ul li {
1066
+ float: none;
1067
+ width: 100%;
1068
+ margin-left: 0;
1069
+ }
1070
+ }
1071
+ .wpuf-toggle-switch {
1072
+ cursor: pointer;
1073
+ text-indent: -9999px;
1074
+ width: 25px;
1075
+ height: 15px;
1076
+ background: #ccc;
1077
+ display: block;
1078
+ border-radius: 100px;
1079
+ position: relative;
1080
+ }
1081
+ .wpuf-toggle-switch:after {
1082
+ content: '';
1083
+ position: absolute;
1084
+ top: 2px;
1085
+ left: 2px;
1086
+ width: 12px;
1087
+ height: 12px;
1088
+ background: #fff;
1089
+ border-radius: 50%;
1090
+ transition: 0.3s;
1091
+ }
1092
+ .wpuf-toggle-switch.checked {
1093
+ background: #0085ba;
1094
+ }
1095
+ .wpuf-toggle-switch.checked:after {
1096
+ left: calc(90%);
1097
+ transform: translateX(-100%);
1098
+ }
1099
+ .wpuf-toggle-switch.big {
1100
+ width: 35px;
1101
+ height: 20px;
1102
+ }
1103
+ .wpuf-toggle-switch.big:after {
1104
+ top: 3px;
1105
+ left: 3px;
1106
+ width: 15px;
1107
+ height: 15px;
1108
+ }
1109
+ .wpuf-toggle-switch.big.checked:after {
1110
+ left: calc(95%);
1111
+ }
1112
+ .wpuf-integrations-wrap:before,
1113
+ .wpuf-integrations-wrap:after {
1114
+ content: " ";
1115
+ display: table;
1116
+ }
1117
+ .wpuf-integrations-wrap:after {
1118
+ clear: both;
1119
+ }
1120
+ .wpuf-integrations-wrap:before,
1121
+ .wpuf-integrations-wrap:after {
1122
+ content: " ";
1123
+ display: table;
1124
+ }
1125
+ .wpuf-integrations-wrap:after {
1126
+ clear: both;
1127
+ }
1128
+ .wpuf-integrations-wrap .wpuf-integration {
1129
+ margin-bottom: 15px;
1130
+ background-color: #fff;
1131
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
1132
+ border: 1px solid #e5e5e5;
1133
+ }
1134
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header {
1135
+ padding: 0;
1136
+ position: relative;
1137
+ margin: 0 auto;
1138
+ border-bottom: 1px solid #eee;
1139
+ display: flex;
1140
+ flex-direction: row;
1141
+ }
1142
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-toggle {
1143
+ width: 65px;
1144
+ padding: 10px 10px 8px 14px;
1145
+ border-right: 1px solid #eee;
1146
+ margin-right: 10px;
1147
+ }
1148
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-label {
1149
+ width: 100%;
1150
+ padding-top: 10px;
1151
+ font-weight: 500;
1152
+ font-size: 1.1em;
1153
+ }
1154
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-label img.icon {
1155
+ height: 24px;
1156
+ width: auto;
1157
+ float: left;
1158
+ margin-top: -3px;
1159
+ margin-right: 5px;
1160
+ border: 1px solid #eee;
1161
+ border-radius: 50%;
1162
+ }
1163
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-label .label-premium {
1164
+ font-weight: normal;
1165
+ font-size: 11px;
1166
+ background: #7cbb34;
1167
+ color: #fff;
1168
+ border-radius: 3px;
1169
+ padding: 3px 5px;
1170
+ margin-left: 5px;
1171
+ }
1172
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-actions {
1173
+ width: 44px;
1174
+ display: block;
1175
+ }
1176
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-actions button.toggle-area {
1177
+ border: none;
1178
+ border-left: 1px solid #eee;
1179
+ background-color: #fff;
1180
+ width: 100%;
1181
+ height: 100%;
1182
+ outline: none;
1183
+ }
1184
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-header .wpuf-integration-header-actions .toggle-indicator:before {
1185
+ content: "\f140";
1186
+ content: "\f142";
1187
+ display: inline-block;
1188
+ font: normal 20px/1 dashicons;
1189
+ speak: none;
1190
+ -webkit-font-smoothing: antialiased;
1191
+ -moz-osx-font-smoothing: grayscale;
1192
+ text-decoration: none !important;
1193
+ }
1194
+ .wpuf-integrations-wrap .wpuf-integration.collapsed .wpuf-integration-settings {
1195
+ display: none;
1196
+ }
1197
+ .wpuf-integrations-wrap .wpuf-integration.collapsed .wpuf-integration-header .wpuf-integration-header-actions .toggle-indicator:before {
1198
+ content: "\f140";
1199
+ }
1200
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings {
1201
+ padding: 15px;
1202
+ }
1203
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings p:first-child {
1204
+ margin-top: 0;
1205
+ }
1206
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row {
1207
+ margin-bottom: 10px;
1208
+ }
1209
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:before,
1210
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:after {
1211
+ content: " ";
1212
+ display: table;
1213
+ }
1214
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:after {
1215
+ clear: both;
1216
+ }
1217
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:before,
1218
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:after {
1219
+ content: " ";
1220
+ display: table;
1221
+ }
1222
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row:after {
1223
+ clear: both;
1224
+ }
1225
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field-label {
1226
+ float: left;
1227
+ width: 160px;
1228
+ }
1229
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field-label a.wpuf-integration-updater {
1230
+ text-decoration: none;
1231
+ float: right;
1232
+ margin-right: 10px;
1233
+ }
1234
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field-label a.wpuf-integration-updater.updating .dashicons:before {
1235
+ display: inline-block;
1236
+ -webkit-animation: rotation 2s infinite linear;
1237
+ animation: rotation 2s infinite linear;
1238
+ }
1239
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field {
1240
+ float: left;
1241
+ width: 80%;
1242
+ position: relative;
1243
+ }
1244
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field .wpuf-int-field-small {
1245
+ max-width: 350px;
1246
+ position: relative;
1247
+ }
1248
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field .wpuf-merge-tag-wrap .merge-tag-link {
1249
+ top: 5px;
1250
+ }
1251
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings .wpuf-int-form-row .wpuf-int-field .wpuf-merge-tag-wrap .wpuf-merge-tags {
1252
+ top: 30px;
1253
+ }
1254
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings fieldset {
1255
+ border: 1px solid #eee;
1256
+ padding: 10px;
1257
+ margin-bottom: 10px;
1258
+ }
1259
+ .wpuf-integrations-wrap .wpuf-integration .wpuf-integration-settings fieldset legend {
1260
+ padding: 0 10px;
1261
+ }
1262
+ #wpuf-toggle-field-options,
1263
+ #wpuf-toggle-show-form {
1264
+ background: #008ec2;
1265
+ text-align: center;
1266
+ cursor: pointer;
1267
+ color: #fff;
1268
+ border-radius: 0;
1269
+ margin-left: 10px;
1270
+ margin-top: 10px;
1271
+ font-size: 14px;
1272
+ font-weight: 400;
1273
+ float: right;
1274
+ width: 100%;
1275
+ padding: 10px;
1276
+ display: none;
1277
+ }
1278
+ @media (min-width: 768px) and (max-width: 991px) {
1279
+ #wpuf-form-builder {
1280
+ width: 100% !important;
1281
+ right: 0;
1282
+ }
1283
+ #wpuf-form-builder > fieldset {
1284
+ margin-left: 36px;
1285
+ }
1286
+ #wpuf-form-builder #wpuf-form-builder-container #builder-stage {
1287
+ margin-right: 290px;
1288
+ }
1289
+ #wpuf-form-builder #wpuf-form-builder-container #builder-form-fields {
1290
+ width: 290px;
1291
+ }
1292
+ .panel-form-field-group .button {
1293
+ font-size: 11px;
1294
+ }
1295
+ }
1296
+ @media (max-width: 767px) {
1297
+ #wpuf-form-builder-container #builder-stage section {
1298
+ padding: 8px;
1299
+ }
1300
+ #wpuf-form-builder-container #builder-stage section #form-preview {
1301
+ padding: 5px;
1302
+ }
1303
+ #wpuf-form-builder {
1304
+ width: 100% !important;
1305
+ right: 0;
1306
+ }
1307
+ #wpuf-form-builder #wpuf-toggle-field-options {
1308
+ display: inline-block;
1309
+ }
1310
+ #wpuf-form-builder #wpuf-form-builder-container #builder-stage {
1311
+ width: 100%;
1312
+ margin-right: 0;
1313
+ }
1314
+ #wpuf-form-builder-container #builder-form-fields {
1315
+ width: 100%;
1316
+ display: none;
1317
+ }
1318
+ #wpuf-form-builder-container #builder-form-fields.show {
1319
+ display: block;
1320
+ }
1321
+ #wpuf-form-builder h2.nav-tab-wrapper .nav-tab {
1322
+ margin: 10px 6px 0 0;
1323
+ border-bottom: 1px solid #ccc;
1324
+ font-size: 10px;
1325
+ }
1326
+ #wpuf-form-builder h2.nav-tab-wrapper span.pull-right {
1327
+ margin-top: 10px;
1328
+ margin-left: 5px;
1329
+ }
1330
+ #wpuf-form-builder #wpuf-toggle-show-form.show {
1331
+ display: block;
1332
+ }
1333
+ #wpuf-form-builder #wpuf-toggle-field-options.hide {
1334
+ display: none;
1335
+ }
1336
+ #wpuf-form-builder-settings .nav-tab-wrapper {
1337
+ width: 120px;
1338
+ }
1339
+ #wpuf-form-builder-settings .tab-contents {
1340
+ margin-left: 120px;
1341
+ }
1342
+ #wpuf-form-builder-settings .form-table td select {
1343
+ height: 34px;
1344
+ }
1345
+ #wpuf-form-builder-settings input[type="checkbox"] {
1346
+ height: 18px;
1347
+ width: 18px;
1348
+ }
1349
+ #wpbody #wpuf-form-builder-settings input,
1350
+ #wpbody #wpuf-form-builder-settings select,
1351
+ #wpbody #wpuf-form-builder-settings .form-table td textarea,
1352
+ #wpuf-form-builder-settings .form-table td p,
1353
+ #wpuf-form-builder-settings .form-table,
1354
+ #wpuf-form-builder-settings .form-table td,
1355
+ #wpuf-form-builder-settings .form-table th,
1356
+ #wpuf-form-builder-settings .wp-picker-container .wp-color-result.button {
1357
+ font-size: 12px;
1358
+ }
1359
+ #wpuf-form-builder-settings input[type="checkbox"]:checked:before {
1360
+ margin: -6px -8px;
1361
+ }
1362
+ ul.wpuf-form li.country_list,
1363
+ ul.wpuf-form li.address_field {
1364
+ max-width: 200px;
1365
+ }
1366
+ .wpuf-form-template-modal .content ul li {
1367
+ margin-left: 0;
1368
+ }
1369
+ .wpuf-form-template-modal .modal-header h2 small {
1370
+ display: none;
1371
+ }
1372
+ }
assets/css/wpuf.css ADDED
@@ -0,0 +1,467 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpuf-post-form{
2
+ list-style: none;
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+ .wpuf-post-form li{
7
+ margin: 5px 0;
8
+ padding: 0;
9
+ }
10
+
11
+ .wpuf-post-form label {
12
+ float: left;
13
+ font-weight: bold;
14
+ height: 20px;
15
+ margin: 0;
16
+ min-width: 130px;
17
+ padding: 0 10px 0 0;
18
+ font-size: 12px;
19
+ cursor: pointer;
20
+ }
21
+
22
+ .wpuf-post-form input, .wpuf-post-form textarea, .wpuf-post-form select{
23
+ margin: 0;
24
+ padding: 5px;
25
+ border: 1px solid #ccc;
26
+ font-size: 12px;
27
+ -moz-border-radius: 5px;
28
+ border-radius: 5px;
29
+ }
30
+
31
+ .wpuf-post-form input:focus, .wpuf-post-form textarea:focus, .wpuf-post-form select:focus{
32
+ background: #F2F2F2;
33
+ }
34
+
35
+ .wpuf-post-form .childCategory {
36
+ padding-top: 5px;
37
+ }
38
+
39
+ .wpuf-post-form input[type=text]{
40
+ width: 50%;
41
+ }
42
+
43
+ .wpuf-post-form textarea{
44
+ width: 70%;
45
+ }
46
+
47
+ .wpuf-post-form .wpuf-check-container {
48
+ float: left;
49
+ width: 70%;
50
+ }
51
+
52
+ .wpuf-post-form input[type=submit], .wpuf-submit, .wpuf-button{
53
+ -moz-border-radius: 5px;
54
+ border-radius: 5px;
55
+ color: #333;
56
+ padding: 5px 10px;
57
+ border: 1px solid #ccc;
58
+ text-shadow: 0 1px 0 #FFFFFF;
59
+ background: #eeeeee; /* old browsers */
60
+ background: -moz-linear-gradient(top, #eeeeee 0%, #cccccc 100%); /* firefox */
61
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eeeeee), color-stop(100%,#cccccc)); /* webkit */
62
+ cursor: pointer;
63
+ }
64
+
65
+ .wpuf-post-form input[type=submit]:active, .wpuf-submit:active, .wpuf-button:active{
66
+ background: #ddd;
67
+ }
68
+
69
+ .wpuf-post-form input[type=submit]:hover, .wpuf-submit:hover, .wpuf-button:hover{
70
+ background: #ddd; /* old browsers */
71
+ background: -moz-linear-gradient(top, #cccccc 0%, #eeeeee 100%); /* firefox */
72
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#cccccc), color-stop(100%,#eeeeee)); /* webkit */
73
+ }
74
+
75
+ .wpuf-post-form p.description {
76
+ color: #868686;
77
+ margin: 0;
78
+ padding: 3px 0 3px 140px;
79
+ font-size: 12px;
80
+ }
81
+
82
+ .wpuf-post-form #wp-new-post-desc-wrap tr td {
83
+ padding: 0;
84
+ }
85
+
86
+ .clear{
87
+ clear:both;
88
+ height:0;
89
+ font-size: 1px;
90
+ line-height: 0px;
91
+ }
92
+
93
+ .success {
94
+ background-color: #DFF2BF;
95
+ border: 1px solid #BCDF7D;
96
+ color: #4F8A10;
97
+ padding: 10px;
98
+ font-size: 13px;
99
+ font-weight: bold;
100
+ margin-bottom: 10px;
101
+ -moz-border-radius: 5px;
102
+ -webkit-border-radius: 5px;
103
+ border-radius: 5px;
104
+ text-shadow: 0 1px 0 #FFFFFF;
105
+ font-size: 13px;
106
+ }
107
+
108
+
109
+ .error {
110
+ margin: 0 10px 10px 10px;
111
+ padding: 3px 10px;
112
+ color: #D8000C;
113
+ background-color: #FFBABA;
114
+ border: solid 1px #dd3c10;
115
+ border-radius: 5px;
116
+ -moz-border-radius: 5px;
117
+ -webkit-border-radius: 5px;
118
+ font-weight: bold;
119
+ text-shadow: 0 1px 0 #FFFFFF;
120
+ font-size: 13px;
121
+ }
122
+
123
+ .info {
124
+ background-color: #fef5be;
125
+ border: 2px solid #fdd425;
126
+ border-radius: 5px;
127
+ -moz-border-radius: 5px;
128
+ -webkit-border-radius: 5px;
129
+ padding: 5px 10px;
130
+ margin: 0 0 10px 0;
131
+ font-size: 13px;
132
+ }
133
+
134
+ #content .wpuf-profile table, .wpuf-profile table{
135
+ border: none;
136
+ }
137
+
138
+ #content .wpuf-profile legend, .wpuf-profile legend{
139
+ border: 1px solid #eee;
140
+ padding: 5px 10px;
141
+ }
142
+
143
+ #content .wpuf-profile th, #content .wpuf-profile td, .wpuf-profile th, .wpuf-profile td{
144
+ vertical-align: top;
145
+ border-top: 1px solid #eee;
146
+ border: none;
147
+ }
148
+
149
+ #content .wpuf-profile input, .wpuf-profile input, .wpuf-profile textarea{
150
+ border: 1px solid #CCCCCC;
151
+ margin: 0;
152
+ padding: 5px;
153
+ }
154
+
155
+ .wpuf-profile h3, #content .wpuf-profile h3{
156
+ margin: 0;
157
+ }
158
+
159
+ .wpuf-profile table, #content .wpuf-profile table{
160
+ margin: 0 0 5px 0;
161
+ }
162
+
163
+ #content #editorcontainer tr td, #content #editorcontainer table {
164
+ padding: 0;
165
+ margin: 0;
166
+ }
167
+
168
+ #wpuf-post-area li{
169
+ list-style: none;
170
+ }
171
+
172
+ span.required {
173
+ color: red;
174
+ }
175
+
176
+ table.wpuf-table {
177
+ border: 1px solid #E7E7E7;
178
+ margin: 0 opx 10px 0;
179
+ text-align: left;
180
+ width: 100%;
181
+ }
182
+
183
+ table.wpuf-table thead th, table.wpuf-table th {
184
+ color: #888888;
185
+ font-size: 12px;
186
+ font-weight: bold;
187
+ line-height: 18px;
188
+ padding: 9px 24px;
189
+ }
190
+
191
+ table.wpuf-table td {
192
+ border-top: 1px solid #E7E7E7;
193
+ padding: 6px 24px;
194
+ }
195
+
196
+ .post_count {
197
+ border: 1px solid #E7E7E7;
198
+ margin: 5px 0;
199
+ padding: 5px;
200
+ }
201
+
202
+ .post_count span {
203
+ font-weight: bold;
204
+ }
205
+
206
+ .wpuf-pagination {
207
+ display: block;
208
+ width: 100%;
209
+ margin: 10px 0;
210
+ }
211
+
212
+ /** author info **/
213
+ .wpuf-author {
214
+ clear: both;
215
+ margin: 10px 0;
216
+ }
217
+ .wpuf-author h3{
218
+ margin: 0 !important;
219
+ background: #CFCFCF;
220
+ text-align: left;
221
+ padding: 3px 10px;
222
+ }
223
+ .wpuf-author-inside {
224
+ background: none repeat scroll 0 0 #F0F0F0;
225
+ border-bottom: 2px solid #DDDDDD;
226
+ height: 90px;
227
+ padding-left: 10px;
228
+ padding-top: 15px;
229
+ margin-bottom: 15px;
230
+ }
231
+
232
+ .wpuf-author-inside .wpuf-user-image {
233
+ float: left;
234
+ padding-right: 15px;
235
+ }
236
+ .wpuf-author-body p {
237
+ margin-bottom: 10px !important;
238
+ }
239
+
240
+ .wpuf-author-body p.wpuf-user-name a {
241
+ color: #335160;
242
+ font-size: 1.2em;
243
+ font-weight: bold;
244
+ }
245
+
246
+ .wpuf-author-inside p.wpuf-author-info {
247
+ padding-top: 8px;
248
+ }
249
+
250
+ .invalid {
251
+ border: 1px solid #FF7272 !important;
252
+ }
253
+
254
+
255
+ #pass-strength-result {
256
+ border-radius: 6px 6px 6px 6px;
257
+ border-style: solid;
258
+ border-width: 1px;
259
+ float: left;
260
+ margin: 12px 5px 5px 1px;
261
+ padding: 7px;
262
+ text-align: center;
263
+ width: 248px;
264
+ }
265
+ #pass-strength-result.good {
266
+ background-color: #FFEC8B;
267
+ border-color: #FFCC00 !important;
268
+ }
269
+ #pass-strength-result {
270
+ background-color: #EEEEEE;
271
+ border-color: #DDDDDD !important;
272
+ }
273
+ #pass-strength-result.bad {
274
+ background-color: #FFB78C;
275
+ border-color: #FF853C !important;
276
+ }
277
+ #pass-strength-result.strong {
278
+ background-color: #C3FF88;
279
+ border-color: #8DFF1C !important;
280
+ }
281
+ #pass-strength-result.short {
282
+ background-color: #FFA0A0;
283
+ border-color: #F04040 !important;
284
+ }
285
+
286
+ .timestamp-wrap input {
287
+ width: 40px !important;
288
+ }
289
+
290
+ .wpuf_sub_info {
291
+ padding: 0;
292
+ margin: 10px 5px;
293
+ border: 1px solid green;
294
+ border-radius: 5px;
295
+ }
296
+
297
+ .wpuf_sub_info h3{
298
+ margin: 0 0 5px 0 !important;
299
+ background: green;
300
+ color: #fff !important;
301
+ padding: 3px 10px !important;
302
+ font-weight: bold;
303
+ }
304
+
305
+ .wpuf_sub_info .text{
306
+ padding: 5px 10px;
307
+ }
308
+
309
+
310
+ ul.wpuf_packs {
311
+ overflow: hidden;
312
+ margin: 35px 0 15px;
313
+ }
314
+
315
+ ul.wpuf_packs li {
316
+ background: #EEEEEE;
317
+ border: 1px solid #DDDDDD;
318
+ border-radius: 5px 5px 5px 5px;
319
+ float: left;
320
+ list-style: none outside none;
321
+ margin: 25px 25px 10px 0;
322
+ padding: 5px;
323
+ position: relative;
324
+ width: 200px;
325
+ }
326
+
327
+ ul.wpuf_packs h3 {
328
+ padding: 10px !important;
329
+ font-size: 14px;
330
+ font-weight: bold;
331
+ }
332
+
333
+ ul.wpuf_packs p {
334
+ padding: 0 10px;
335
+ margin-bottom: 8px;
336
+ }
337
+
338
+ .wpuf_packs .cost {
339
+ background: red;
340
+ border-radius: 30px 30px 30px 30px;
341
+ color: #FFFFFF;
342
+ margin: -16px -12px 0 0;
343
+ padding: 10px 8px 8px;
344
+ position: absolute;
345
+ right: 0;
346
+ top: 0;
347
+ }
348
+
349
+ .wpuf-loading {
350
+ height: 16px;
351
+ width: 16px;
352
+ background: url('../images/wpspin_light.gif') no-repeat;
353
+ padding: 0;
354
+ margin: 5px 10px;
355
+ right: -40px;
356
+ top: 0;
357
+ float: left;
358
+ }
359
+
360
+ .wpuf-pagination div.pagination{
361
+ text-align:center;
362
+ padding:7px;
363
+ margin:3px;
364
+ }
365
+
366
+ .wpuf-pagination .page-numbers{
367
+ padding:2px 8px;
368
+ margin:2px;
369
+ border:1px solid #4A5154;
370
+ text-decoration:none;
371
+ color:#4A5154;
372
+ background: #fff;
373
+ border-radius: 5px;
374
+ -moz-border-radius: 5px;
375
+ }
376
+
377
+ .wpuf-pagination .page-numbers:hover,
378
+ .wpuf-pagination .page-numbers:active{
379
+ border:1px solid #4A5154;
380
+ background-color:#4A5154;
381
+ color:#fff;
382
+ border-radius: 5px;
383
+ -moz-border-radius: 5px;
384
+ }
385
+
386
+ .wpuf-pagination .page-numbers.current{
387
+ padding:2px 8px;
388
+ margin:2px;
389
+ border:1px solid #4A5154;
390
+ font-weight:bold;
391
+ background-color:#4A5154;
392
+ color:#FFF;
393
+ border-radius: 5px;
394
+ -moz-border-radius: 5px;
395
+ }
396
+
397
+ #wpuf-ft-upload-filelist img {
398
+ border: 1px solid #ddd;
399
+ padding: 5px;
400
+ border-radius: 5px;
401
+ margin: 0 10px 10px 0;
402
+ float: left;
403
+ }
404
+
405
+ #wpuf-ft-upload-filelist .button {
406
+ border: 1px solid #ddd;
407
+ padding: 5px;
408
+ border-radius: 5px;
409
+ font-size: 12px;
410
+ color: #5F5F5F;
411
+ }
412
+
413
+ ul.wpuf-category-checklist {
414
+ margin: 0;
415
+ list-style: none;
416
+ }
417
+ .wpuf-post-form .category-wrap {
418
+ position: relative;
419
+ }
420
+
421
+ .wpuf-post-form .category-wrap select {
422
+ display: block;
423
+ margin: 0 0 5px 0;
424
+ }
425
+
426
+ #wpuf-attachment-upload-filelist .wpuf-attachment {
427
+ display: block;
428
+ margin: 0 0 10px 0;
429
+ padding: 0 0 10px 0;
430
+ border-bottom: 1px solid #eee;
431
+ }
432
+
433
+ #wpuf-attachment-upload-filelist .wpuf-attachment .attachment-name {
434
+ font-size: 12px;
435
+ margin: 0 0 0 15px;
436
+ }
437
+
438
+ #wpuf-attachment-upload-filelist .wpuf-attachment .button {
439
+ padding: 3px 8px;
440
+ border: 1px solid #ccc;
441
+ background: #f2f2f2;
442
+ color: #333;
443
+ font-size: 12px;
444
+ margin: 0 0 0 15px;
445
+ border-radius: 5px;
446
+ }
447
+
448
+ #wpuf-attachment-upload-pickfiles {
449
+ font-weight: bold;
450
+ color: #333;
451
+ padding: 3px 8px;
452
+ border: 1px solid #ccc;
453
+ background: #f2f2f2;
454
+ margin: 5px 0 15px 0;
455
+ border-radius: 5px;
456
+ }
457
+
458
+ #wpuf-attachment-upload-filelist .handle {
459
+ background: url('../images/arrow-move.png') no-repeat;
460
+ cursor: move;
461
+ display: inline-block;
462
+ height: 16px;
463
+ margin: 0 10px 0 0;
464
+ padding: 0;
465
+ text-indent: -9999px;
466
+ width: 16px;
467
+ }
assets/images/active.png ADDED
Binary file
assets/images/add.png ADDED
Binary file
assets/images/arrow-move.png ADDED
Binary file
assets/images/arrows.png ADDED
Binary file
assets/images/completed.png ADDED
Binary file
assets/images/cross.png ADDED
Binary file
assets/images/del-pm.png ADDED
Binary file
assets/images/del.png ADDED
Binary file
assets/images/delete.png ADDED
Binary file
assets/images/edit.png ADDED
Binary file
assets/images/help.png ADDED
Binary file
assets/images/help/bugs.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 45.69"><defs><style>.cls-1{fill:#9b59b6;}</style></defs><title>Bugs</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M18.87,28.37,9.16,38.08A8.66,8.66,0,0,0,14.49,40h4.38a9.55,9.55,0,0,0,2.28-.38v5.14a1,1,0,0,0,1.9,0v-5.9A4.83,4.83,0,0,0,25,37.31l.76-.76a.92.92,0,0,0,0-1.33Z"/><path class="cls-1" d="M11.64,21.13c-.19-.19-.57-.38-.76-.19H9c-.38,0-.57,0-.76.38L7.07,23H1.17a1,1,0,1,0,0,1.9H6.31a9.56,9.56,0,0,0-.38,2.28V31.6a8.66,8.66,0,0,0,1.9,5.33l9.71-9.71Z"/><path class="cls-1" d="M24.39,14.47c.19.19.38.19.76.19a.7.7,0,0,0,.57-.19.92.92,0,0,0,.38-1.14,11.08,11.08,0,0,1-1-3,.87.87,0,0,0-1-.76H22.3a1,1,0,0,0-.76.38,1.14,1.14,0,0,0-.19.76,2.35,2.35,0,0,0,.76,1.52Z"/><path class="cls-1" d="M35.81,28.56h3.43a1,1,0,0,0,0-1.9H33.91L20.77,13.52A5.2,5.2,0,0,1,19.25,9.9V6.66a.9.9,0,0,0-1-1h-.19A13.52,13.52,0,0,0,16.21,3,9.12,9.12,0,0,0,9.54,0a9.71,9.71,0,0,0-5.9,2.09,1.44,1.44,0,0,0-.38.76,1,1,0,0,0,.38.76L9.54,7a5.39,5.39,0,0,1-2.86,4.19l-5.14-3a.85.85,0,0,0-1,0c-.38.19-.57.38-.57.76a8.9,8.9,0,0,0,2.67,7,9.53,9.53,0,0,0,6.85,3,4.1,4.1,0,0,0,2.09-.38L26.87,33.89,37.15,44.17a5.2,5.2,0,0,0,3.62,1.52,5,5,0,0,0,4.95-4.95,5.2,5.2,0,0,0-1.52-3.62Z"/><path class="cls-1" d="M34.86,24.75c.19.19.38.19.76.19H36a1,1,0,0,0,.57-1V21.51c0-.38-.38-1-.76-1a7,7,0,0,1-3.43-.76.92.92,0,0,0-1.14.38c-.19.38-.19,1,.19,1.14Z"/><path class="cls-1" d="M45.71,9.9c-1.52-1.52-5.14-.38-7,.57L35.81,7.62c.76-2.09,1.9-5.71.57-7a.92.92,0,0,0-1.33,0,.92.92,0,0,0,0,1.33c.38.38,0,2.67-1,5.14L28,8a.87.87,0,0,0-.76,1C26.87,14.28,31.63,19,37.34,19c.38,0,1-.38,1-.76l1-6.09c2.47-1,4.76-1.33,5.14-1A.94.94,0,1,0,45.71,9.9Z"/></g></g></svg>
assets/images/help/customization.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 45.91"><defs><style>.cls-1{fill:#e74c3c;}</style></defs><title>Customization</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M23,15.6q11.21,0,22.42,0c.44,0,.56.13.56.56q0,13.75,0,27.5a2,2,0,0,1-2.26,2.25H2.31A2,2,0,0,1,0,43.61Q0,29.91,0,16.2c0-.6,0-.6.59-.6ZM19.08,37.22c.48.2.91.41,1.36.54a.58.58,0,0,1,.49.58A1.9,1.9,0,0,0,22.64,40a1.77,1.77,0,0,0,2-1.25c.13-.86.64-1.09,1.29-1.31a1.18,1.18,0,0,0,.29-.14.55.55,0,0,1,.76.06,1.81,1.81,0,0,0,2.29,0,1.69,1.69,0,0,0,.66-2.17,1.66,1.66,0,0,1,0-2,.28.28,0,0,0,0-.08c.07-.47.31-.66.81-.72a1.88,1.88,0,0,0,1.62-1.73,1.72,1.72,0,0,0-1.27-1.84c-.83-.11-1.06-.6-1.26-1.22a1.26,1.26,0,0,0-.15-.33.58.58,0,0,1,.08-.8,1.79,1.79,0,0,0,0-2.25,1.72,1.72,0,0,0-2.22-.65,1.57,1.57,0,0,1-1.87,0,1.19,1.19,0,0,0-.39-.13c-.31-.05-.4-.22-.43-.53a1.92,1.92,0,0,0-1.69-1.72,1.77,1.77,0,0,0-2,1.27c-.12.83-.61,1-1.23,1.26a1.2,1.2,0,0,0-.29.14.63.63,0,0,1-.88-.06,1.8,1.8,0,0,0-2.25,0,1.71,1.71,0,0,0-.63,2.18,1.57,1.57,0,0,1,0,1.84,1,1,0,0,0-.1.3c-.05.32-.21.43-.55.46a1.91,1.91,0,0,0-1.7,1.65,1.76,1.76,0,0,0,1.24,2,1.57,1.57,0,0,1,1.31,1.29,1.14,1.14,0,0,0,.14.29.56.56,0,0,1-.06.76,1.83,1.83,0,0,0,.23,2.56A1.94,1.94,0,0,0,19.08,37.22Z"/><path class="cls-1" d="M22.94,11.8H.61c-.61,0-.61,0-.61-.63Q0,6.73,0,2.29A2,2,0,0,1,2.31,0H43.59a2,2,0,0,1,2.3,2.3c0,3,0,6,0,9,0,.42-.12.54-.54.54ZM17.79,3.91a1.94,1.94,0,0,0-.07,3.89,2,2,0,0,0,2-1.92A2,2,0,0,0,17.79,3.91ZM6.46,5.81a1.94,1.94,0,1,0,2-1.9A1.94,1.94,0,0,0,6.46,5.81Z"/><path class="cls-1" d="M22.95,27a3.7,3.7,0,1,1-3.71,3.73A3.7,3.7,0,0,1,22.95,27Z"/></g></g></svg>
assets/images/help/docs.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 46"><defs><style>.cls-1{fill:#1abc9c;}</style></defs><title>Plugin Documentation</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect class="cls-1" x="15.84" y="17.13" width="14.32" height="1.59"/><rect class="cls-1" x="15.84" y="24.19" width="14.32" height="1.59"/><rect class="cls-1" x="15.84" y="20.66" width="14.32" height="1.59"/><path class="cls-1" d="M23,0A23,23,0,1,0,46,23,23,23,0,0,0,23,0Zm5.47,9.9,4.83,4.4H28.47Zm-2.29,23v3.2H15.49a2.79,2.79,0,0,1-2.79-2.79V12.69A2.79,2.79,0,0,1,15.49,9.9H27.28v5.59h6V27.72H15.84v1.59H29.78v1.94H15.84v1.59H26.19Zm11.29,2.52H33.88V39H31.37V35.42H27.78V32.9h3.59V29.31h2.52V32.9h3.59Z"/></g></g></svg>
assets/images/help/like.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 41.82"><defs><style>.cls-1{fill:#00aeff;}</style></defs><title>Like</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="thumb-up"><path class="cls-1" d="M0,41.82H8.36V16.73H0Zm46-23a4.19,4.19,0,0,0-4.18-4.18H28.65L30.74,5V4.39a4.39,4.39,0,0,0-.84-2.3L27.6,0,13.8,13.8a3.51,3.51,0,0,0-1.25,2.93V37.64a4.19,4.19,0,0,0,4.18,4.18H35.55a4.13,4.13,0,0,0,3.76-2.51l6.27-14.85A3.56,3.56,0,0,0,45.79,23V18.82H46Z"/></g></g></g></svg>
assets/images/help/support.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.22 42.58"><defs><style>.cls-1{fill:#6c75ff;}</style></defs><title> Support Team</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M6.36,29.34l1.09-1.09h8l-5.08-9.18-3.76.76a2.64,2.64,0,0,0-2,1.91L.09,36.31a2.64,2.64,0,0,0,2.55,3.31H6.36V29.34Z"/><path class="cls-1" d="M32.13,36.31,27.67,21.75a2.64,2.64,0,0,0-2.06-1.92l-3.74-.71-5.06,9.13h8.56l1.09,1.09V39.62h3.12a2.64,2.64,0,0,0,2.55-3.31Z"/><polygon class="cls-1" points="8.54 39.62 8.24 39.62 8.24 39.62 23.98 39.62 23.98 39.62 24.28 39.62 24.28 30.43 8.54 30.43 8.54 39.62"/><rect class="cls-1" x="4.19" y="40.61" width="23.83" height="1.97"/><path class="cls-1" d="M7.62,12.65c0,.09.1.22.15.36a3.58,3.58,0,0,0,.68,1.22c1.21,3.94,4.33,6.68,7.64,6.67s6.38-2.77,7.55-6.72A3.61,3.61,0,0,0,24.31,13c.06-.14.11-.27.15-.36a2,2,0,0,0-.33-2.41V10.1C24.12,5.2,23.48,0,16,0S7.92,5,7.94,10.15c0,0,0,.06,0,.09A2,2,0,0,0,7.62,12.65Zm1-1.58h0A.55.55,0,0,0,9,10.83l1.3.2a.28.28,0,0,0,.3-.16L11.39,9a35.31,35.31,0,0,0,7.2,1,7.76,7.76,0,0,0,2.11-.25L21.23,11a.27.27,0,0,0,.25.17h.07l1.51-.43a.56.56,0,0,0,.31.3h0c.23.11.3.6.06,1.09-.06.12-.12.27-.18.43a4.18,4.18,0,0,1-.4.82.55.55,0,0,0-.26.33c-1,3.58-3.68,6.08-6.54,6.09s-5.6-2.48-6.63-6a.55.55,0,0,0-.26-.33,4.3,4.3,0,0,1-.41-.82c-.06-.15-.13-.3-.18-.42C8.37,11.68,8.44,11.19,8.67,11.08Z"/></g></g></svg>
assets/images/icon-128x128.png ADDED
Binary file
assets/images/icon-minus.png ADDED
Binary file
assets/images/icon-plus.png ADDED
Binary file
assets/images/inactive.png ADDED
Binary file
assets/images/modules/Social-Media-Login.png ADDED
Binary file
assets/images/modules/email-templates.png ADDED
Binary file
assets/images/modules/message.gif ADDED
Binary file
assets/images/modules/more.png ADDED
Binary file
assets/images/modules/reports.png ADDED
Binary file
assets/images/modules/wpuf-activity.png ADDED
Binary file
assets/images/modules/wpuf-buddypress.png ADDED
Binary file
assets/images/modules/wpuf-comment.png ADDED
Binary file
assets/images/modules/wpuf-mailchimp.png ADDED
Binary file
assets/images/modules/wpuf-mailpoet.png ADDED
Binary file
assets/images/modules/wpuf-pmpro.png ADDED
Binary file
assets/images/modules/wpuf-qr.png ADDED
Binary file
assets/images/modules/wpuf-sms.png ADDED
Binary file
assets/images/modules/wpuf-stripe.png ADDED
Binary file
assets/images/modules/wpuf-ua.png ADDED
Binary file
assets/images/modules/wpuf-ul.png ADDED
Binary file
assets/images/no-image.png ADDED
Binary file
assets/images/paypal.png ADDED
Binary file
assets/images/premium/advanced-fields.png ADDED
Binary file
assets/images/premium/conditional-logic.gif ADDED
Binary file
assets/images/premium/content-restrictions.gif ADDED
Binary file
assets/images/premium/coupon.gif ADDED
Binary file
assets/images/premium/multi-step.gif ADDED
Binary file
assets/images/premium/registration.gif ADDED
Binary file
assets/images/processing.png ADDED
Binary file
assets/images/recaptcha-placeholder.png ADDED
Binary file
assets/images/remove.png ADDED
Binary file
assets/images/templates/post.png ADDED
Binary file
assets/images/templates/woocommerce.png ADDED
Binary file
assets/images/tick.png ADDED
Binary file
assets/images/ufp.png ADDED
Binary file
assets/images/welcome/Content-Locking.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 242.1"><defs><style>.cls-1{fill:#feb300;}.cls-2{fill:#7e694d;}.cls-3{fill:#a4988b;}.cls-4{fill:#f29a01;}.cls-5{fill:#f19a01;}.cls-6{fill:#f39a00;}.cls-7{fill:#f39b01;}.cls-8{fill:#ea9600;}.cls-9{fill:#b57e11;}.cls-10{fill:#b67f11;}.cls-11{fill:#b77f11;}.cls-12{fill:#b67f10;}</style></defs><title>Asset 11</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="RJHDrA.tif"><path class="cls-1" d="M174,75.89c.92.65.51,1.62.51,2.43q0,38.77.05,77.54c0,1.93-.3,2.38-2.39,1.9-11.94-2.77-24.7,2.77-32.33,13.81a34.37,34.37,0,0,0-5.71,13,3.8,3.8,0,0,1-1.61,2.52A15.23,15.23,0,0,0,126,200.23c0,10.64,0,21.29.05,31.93,0,1.66-.19,2.33-2.14,2.33q-56.78-.1-113.56-.06c-6.2,0-10.24-4.1-10.24-10.4q0-91.23,0-182.46c0-10.32.19-20.65-.06-31A10.55,10.55,0,0,1,10.77,0C40.45.19,70.14.22,99.83.34c.87,0,2-.48,2.58.67-.71.64-.39,1.48-.45,2.25-.26,3.14-.08,6.28,0,9.42.11,7.31,0,14.63,0,21.95a4.19,4.19,0,0,0,0,2.4l0,7.2V56.7c.39,2,.54,4.09,1.9,5.78a1.5,1.5,0,0,0,1,1.44,5.9,5.9,0,0,0,2.88,3.83,2.91,2.91,0,0,0,1.44,1.44c1,1.64,2.9,2.21,4.33,3.35l1.44.49c1.5,1.38,3.67,1.27,5.29,2.39h1.91a17.5,17.5,0,0,0,7.21.95h9.6l1.91,0q15.46,0,30.92,0C172.53,76.38,173.39,76.65,174,75.89ZM88,124.43c16.15,0,32.3,0,48.45,0,6.11,0,5.9.24,5.81-5.9,0-3.15-.62-3.72-3.83-3.72H39.88c-5.41,0-5.41,0-5.68,5.31,0,.16,0,.32,0,.48-.34,3.52-.09,3.81,3.48,3.81Zm-9.75,30.7v0H37.5c-1,0-2.18-.24-2.85.82-1.41,2.2-1.09,4.66-.51,6.94.53,2.08,2.55,1.81,4.22,1.81h77.74c6.11,0,6.11,0,6-6,0-3.32-.28-3.6-3.55-3.6ZM70,199.29v0H39.53c-5.06,0-5.88-1.15-5.72,5.81.07,3,.86,3.79,3.89,3.79h62.66c5.95,0,5.95,0,5.9-6,0-3.24-.34-3.57-3.6-3.57ZM58,84.52q10.32,0,20.63,0c1.57,0,3.16-.37,3.33-2,.24-2.37,1.08-4.91-.64-7.12a1.67,1.67,0,0,0-1.08-.4c-1.9-.17-3.81-.41-5.71-.41q-18.59-.05-37.18,0c-2.63,0-3.52,1-3.57,3.68,0,.72,0,1.44,0,2.16,0,3.3.83,4.14,4.07,4.14Zm0-40.3c6,0,12-.09,18,0,6.15.12,6.27-.22,6.21-6.54,0-2.06-1-3.07-3.11-3.07q-21.1,0-42.2,0c-2.05,0-2.92,1.09-3.1,2.88a21.74,21.74,0,0,0,.1,3.58c.16,2.32,1.28,3.26,3.74,3.21C44.47,44.11,51.26,44.21,58.06,44.21Z"/><path class="cls-2" d="M148.21,190.08l41.73.13a9.76,9.76,0,0,1,8.43,4.18,8.63,8.63,0,0,1,1.63,5.15c0,11,0,21.91,0,32.86a9.37,9.37,0,0,1-9.49,9.65q-24.35.12-48.69,0a9.48,9.48,0,0,1-9.61-9.8q0-16.07,0-32.14c0-4.83,2.39-8,7.17-9.47C142.26,189.83,145.26,190.44,148.21,190.08Zm24.34,22c0-3.67-1.94-6.19-4.6-7a6.52,6.52,0,0,0-7.31,2.71c-1.56,2.46-1.61,5.76.67,7.43,2.48,1.81,2.42,4,2.35,6.46,0,1.2,0,2.4,0,3.6,0,1.53.63,2.74,2.31,2.79s2.5-1.24,2.56-2.83c.07-2,.07-4,0-6a3.17,3.17,0,0,1,1.54-3.18A5.34,5.34,0,0,0,172.55,212.07Z"/><path class="cls-3" d="M148.21,190.08c-2.94.35-5.95-.26-8.87.55,1-9.91,5.31-18,13.78-23.5a24.11,24.11,0,0,1,30.12,3.27,4.34,4.34,0,0,1,.39,6c-1.62,1.73-4,1.79-6,0-12.41-11.3-26.42-1.35-29.09,10.86C148.37,188.18,148.32,189.14,148.21,190.08Z"/><path class="cls-4" d="M174,75.89c-.61.75-1.47.49-2.24.49q-15.46,0-30.92,0c.09-.3.09-.69.29-.89,5.51-5.51,10.81-11.23,16.62-16.42C163.42,64.43,168.58,70.29,174,75.89Z"/><path class="cls-5" d="M102,34.62c0-7.32.07-14.63,0-21.95,0-3.14-.22-6.28,0-9.42.06-.76-.25-1.61.45-2.25l16.88,17.74c-1.11,0-1.64.91-2.31,1.57-4.25,4.23-8.48,8.48-12.73,12.7C103.59,33.68,103.08,34.59,102,34.62Z"/><path class="cls-6" d="M107.71,67.76a5.9,5.9,0,0,1-2.88-3.83,8.19,8.19,0,0,1,.71-.95l27.35-27.36c.45-.45.85-1,1.56-1l3.08,3.28c-.57.66-1.1,1.37-1.71,2q-11,11-22.07,22.07C111.78,63.92,109.73,65.82,107.71,67.76Z"/><path class="cls-6" d="M113.48,72.55c-1.42-1.14-3.29-1.71-4.33-3.35.52-.6,1-1.23,1.56-1.79Q123.86,54.25,137,41.11c.62-.61,1.32-1.15,2-1.72a24.18,24.18,0,0,1,3.78,3.87c-.92,0-1.4.69-2,1.25L114.73,70.6C114.17,71.15,113.47,71.63,113.48,72.55Z"/><path class="cls-6" d="M103.87,62.48c-1.37-1.68-1.52-3.77-1.91-5.78.66-.58,1.35-1.12,2-1.73q10.77-10.74,21.51-21.52a26.67,26.67,0,0,0,3.92-4.17,18.44,18.44,0,0,1,3.33,3.45c0,1.11-.94,1.62-1.6,2.27q-10.2,10.24-20.42,20.45C108.36,57.77,106.13,60.14,103.87,62.48Z"/><path class="cls-6" d="M120.21,75.43c-1.62-1.12-3.79-1-5.29-2.39.57-.65,1.11-1.34,1.73-2q12.49-12.52,25-25c.65-.66,1.57-1.16,1.6-2.27l4,4.23a4.65,4.65,0,0,0-.79.52l-25.3,25.27A2.22,2.22,0,0,0,120.21,75.43Z"/><path class="cls-6" d="M129.33,76.39a17.49,17.49,0,0,1-7.21-.95c.58-.66,1.12-1.35,1.73-2q10.33-10.35,20.67-20.7a21.53,21.53,0,0,0,3.58-3.84l3.82,3.93a3.22,3.22,0,0,0-.6.38q-10.55,10.52-21.09,21.05A2.44,2.44,0,0,0,129.33,76.39Z"/><path class="cls-6" d="M102,53.83V47.1q9.73-9.61,19.44-19.22a15.73,15.73,0,0,0,3.21-3.53l3.83,4c-.66.57-1.36,1.1-2,1.71q-11.11,11.08-22.21,22.18C103.59,52.89,103.07,53.8,102,53.83Z"/><path class="cls-7" d="M138.93,76.39h-7.69c.07-1.19,1.07-1.73,1.77-2.45q9.9-10.07,19.84-20.1a19.65,19.65,0,0,1,3.43,3.7c-.56.67-1.08,1.38-1.69,2q-7.11,7.14-14.24,14.26C139.62,74.51,138.75,75.17,138.93,76.39Z"/><path class="cls-7" d="M102,44.23q0-3.6,0-7.2c.82,0,1.29-.57,1.79-1.07L118.69,21a2.54,2.54,0,0,0,1.06-1.8,26.48,26.48,0,0,1,4.17,4.37c-1,.07-1.47.9-2.07,1.5Q113,33.85,104.25,42.64C103.59,43.29,103.07,44.19,102,44.23Z"/><path class="cls-8" d="M139,39.39c-.66.57-1.36,1.1-2,1.72Q123.86,54.24,110.72,67.4c-.56.56-1,1.19-1.56,1.79a2.91,2.91,0,0,1-1.44-1.44c2-1.93,4.06-3.84,6-5.81q11.06-11,22.07-22.07c.61-.62,1.14-1.32,1.71-2A3.71,3.71,0,0,1,139,39.39Z"/><path class="cls-8" d="M103.87,62.48c2.26-2.34,4.5-4.72,6.8-7Q120.86,45.22,131.09,35c.65-.66,1.57-1.16,1.6-2.27a5.55,5.55,0,0,1,1.77,1.89c-.71,0-1.12.56-1.56,1L105.54,63a8.19,8.19,0,0,0-.71.95A1.5,1.5,0,0,1,103.87,62.48Z"/><path class="cls-8" d="M143.24,43.78c0,1.11-.94,1.62-1.6,2.27q-12.49,12.52-25,25c-.61.62-1.15,1.3-1.73,2l-1.44-.49c0-.92.69-1.4,1.24-2l26.09-26.09c.55-.55,1-1.26,2-1.25Z"/><path class="cls-8" d="M102,53.83c1.11,0,1.63-.94,2.29-1.6q11.11-11.08,22.21-22.18c.62-.61,1.32-1.14,2-1.71l.91.94a26.67,26.67,0,0,1-3.92,4.17Q114.71,44.24,103.92,55c-.62.62-1.31,1.16-2,1.73Q102,55.27,102,53.83Z"/><path class="cls-8" d="M148.1,48.93a21.53,21.53,0,0,1-3.58,3.84q-10.31,10.37-20.67,20.7c-.62.62-1.16,1.31-1.73,2h-1.91a2.22,2.22,0,0,1,.9-1.62l25.3-25.27a4.65,4.65,0,0,1,.79-.52Z"/><path class="cls-8" d="M152.86,53.83q-9.93,10-19.84,20.1c-.71.72-1.71,1.26-1.77,2.45h-1.91a2.44,2.44,0,0,1,.89-2.1q10.56-10.52,21.09-21.05a3.22,3.22,0,0,1,.6-.38Z"/><path class="cls-8" d="M102,44.23c1.11,0,1.62-.94,2.28-1.59q8.81-8.77,17.59-17.56c.6-.6,1.08-1.42,2.07-1.5l.7.78a15.73,15.73,0,0,1-3.21,3.53Q111.7,37.52,102,47.1Z"/><path class="cls-8" d="M138.93,76.39c-.19-1.23.68-1.88,1.41-2.61q7.13-7.12,14.24-14.26c.61-.62,1.13-1.33,1.69-2a3.88,3.88,0,0,1,1.47,1.54c-5.81,5.2-11.11,10.92-16.62,16.42-.2.2-.2.59-.29.89Z"/><path class="cls-8" d="M119.74,19.21a2.54,2.54,0,0,1-1.06,1.8L103.74,36c-.51.51-1,1.09-1.79,1.07a4.19,4.19,0,0,1,0-2.4c1.11,0,1.63-.94,2.29-1.6,4.25-4.22,8.48-8.48,12.73-12.7.66-.66,1.2-1.55,2.31-1.57Z"/><path class="cls-9" d="M88,124.43H37.66c-3.57,0-3.82-.28-3.48-3.81,0-.16,0-.32,0-.48.27-5.3.27-5.31,5.68-5.31h98.59c3.21,0,3.78.57,3.83,3.72.09,6.15.3,5.92-5.81,5.9C120.34,124.4,104.19,124.43,88,124.43Z"/><path class="cls-10" d="M78.29,155.13H118.6c3.27,0,3.52.28,3.55,3.6.06,6,.06,6-6,6H38.36c-1.68,0-3.69.28-4.22-1.81-.58-2.29-.9-4.74.51-6.94.67-1.05,1.83-.81,2.85-.82H78.29Z"/><path class="cls-10" d="M70,199.29h32.65c3.25,0,3.57.33,3.6,3.57,0,6.06,0,6-5.9,6H37.7c-3,0-3.82-.78-3.89-3.79-.16-7,.66-5.8,5.72-5.81H70Z"/><path class="cls-11" d="M58,84.52H37.89c-3.25,0-4.05-.84-4.07-4.14,0-.72,0-1.44,0-2.16.05-2.7.93-3.67,3.57-3.68q18.59,0,37.18,0c1.91,0,3.81.24,5.71.41a1.67,1.67,0,0,1,1.08.4c1.72,2.21.88,4.75.64,7.12-.17,1.68-1.77,2.05-3.33,2Q68.35,84.5,58,84.52Z"/><path class="cls-12" d="M58.06,44.21c-6.79,0-13.59-.1-20.38.05-2.46.05-3.58-.89-3.74-3.21a21.74,21.74,0,0,1-.1-3.58c.18-1.79,1.05-2.88,3.1-2.88q21.1.06,42.2,0c2.07,0,3.09,1,3.11,3.07.06,6.32-.06,6.66-6.21,6.54C70,44.12,64,44.21,58.06,44.21Z"/></g></g></g></svg>
assets/images/welcome/Create-Database.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 199.37"><defs><style>.cls-1{fill:#fdca32;}.cls-2{fill:#d89916;}.cls-3{fill:#da9f22;}.cls-4{fill:#d89917;}.cls-5{fill:#feb80d;}.cls-6{fill:#f4b217;}.cls-7{fill:#feb910;}.cls-8{fill:#f5b31a;}.cls-9{fill:#fcd981;}.cls-10{fill:#fcb70f;}</style></defs><title>Asset 8</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="_0l6iD5.tif" data-name="0l6iD5.tif"><path class="cls-1" d="M72.79,18.49c-.27-4.16,2.16-6.71,5.34-8.74,5.14-3.29,10.95-4.86,16.83-6.12A169.1,169.1,0,0,1,119.3.52,261.89,261.89,0,0,1,147.76.27C161.18.83,174.55,2,187.37,6.55a37.58,37.58,0,0,1,4.3,1.8c4.41,2.2,8.16,4.93,8.14,10.56-1.37.24-2,1.54-3,2.25-4.55,3.15-9.74,4.78-14.95,6.25-12.72,3.58-25.77,5-38.94,5.57l-3.84,0h-2.54A149.21,149.21,0,0,1,116.06,32,148.91,148.91,0,0,1,94.91,28.4a81.93,81.93,0,0,1-16.66-6C76.19,21.33,74.86,19.42,72.79,18.49Z"/><path class="cls-1" d="M.31,72.92c-.5-4.25,2.09-6.73,5.23-8.73,5.76-3.66,12.31-5.24,18.9-6.54,17-3.36,34.32-3.55,51.57-2.9,12.7.48,25.36,1.8,37.55,5.84,3.91,1.29,7.67,2.89,10.75,5.77A8,8,0,0,1,127,73a25,25,0,0,1-9.13,6,116.77,116.77,0,0,1-25.71,6.45c-6.9,1-13.81,1.59-20.75,2l-5.54,0h-.84c-4.59-.25-9.17,0-13.78-.34a159,159,0,0,1-25.92-3.55C16.42,81.47,7.46,79.29.31,72.92Z"/><path class="cls-1" d="M.39,107.85q0-13.85,0-27.7c.68.5,1.35,1,2,1.49,6.07,4.25,13,6.42,20.09,8.07A154.53,154.53,0,0,0,56.81,93.8l6.58.06,0,31.39a85.21,85.21,0,0,1-12.89-.52,118.46,118.46,0,0,1-20.78-3.33C19.14,118.62,8.49,116,.39,107.85Z"/><path class="cls-1" d="M.41,142.3V115.48c5.36,4.8,11.73,7.83,18.46,10a124,124,0,0,0,22.6,5c7.28.93,14.58,1.08,21.87,1.57q0,15.1,0,30.19c-5.52.37-11-.39-16.43-1a100.27,100.27,0,0,1-20-4.18C17.1,154,7.41,150.54.41,142.3Z"/><path class="cls-1" d="M63.38,199.34c-18.82.07-36.61-3.72-52.69-14A33.67,33.67,0,0,1,5.24,181C2,177.76,0,174.12.28,169.28c.32-6.43.12-12.89.15-19.34C6.71,156.42,14.6,160.23,23,163c13.08,4.38,26.64,6,40.4,6.08Z"/><path class="cls-1" d="M135.71,67.81c-1.67-6.17-6.16-9.84-11.46-12.7-6.66-3.6-13.92-5.42-21.29-6.82a205.56,205.56,0,0,0-28.67-2.93c-1.18-.06-1.59-.35-1.58-1.57.07-6.17.06-12.33.07-18.5a30.17,30.17,0,0,0,7.95,5.17,84.5,84.5,0,0,0,20.63,6.15,164.74,164.74,0,0,0,25.41,2.72c3.12.07,6.24,0,9.36,0q0,13.13,0,26.25C136.09,66.35,136.41,67.18,135.71,67.81Z"/><path class="cls-2" d="M127.15,142.32v8.05l-.86,1.28a10.4,10.4,0,0,0-2.53,2.52,84.7,84.7,0,0,1-13.6,7.29l-3.41,1.25-8.93,2.58c-1,.39-2.09.17-3,.79a49.8,49.8,0,0,0-7.64,1.34c-.72.07-1.52-.29-2.13.38a38.27,38.27,0,0,0-7.66.88H75.69c-4-.24-7.92.72-11.9.42v-6.82l2.11,0,2.14,0,6.79-.45c.72-.06,1.52.3,2.14-.38a29.64,29.64,0,0,0,7.65-.89c.72-.06,1.53.3,2.14-.39a37.12,37.12,0,0,0,8.5-1.72,6.56,6.56,0,0,0,3-.8,30.4,30.4,0,0,0,9.36-3,4.14,4.14,0,0,0,2.55-.85.91.91,0,0,0,.86-.42h0C117.34,151.07,123.17,148,127.15,142.32Z"/><path class="cls-2" d="M136.59,114.62q0-3.4,0-6.79l.78,0,1.72,0,7.21-.44c.72-.06,1.52.3,2.13-.37a21.34,21.34,0,0,0,7.66-.88c.85-.12,1.79.32,2.56-.38a28.47,28.47,0,0,0,7.65-1.34c1-.4,2.1-.16,3-.81a40.15,40.15,0,0,0,8.92-2.59,11.24,11.24,0,0,0,3.41-1.25c7.18-2.29,13.47-5.94,18.23-11.92v3a2.19,2.19,0,0,0-.33,2c.57,3.41-1.23,5.45-3.87,7.1-1.06.66-2.28,1.16-3,2.32l-11.91,5.57a4.22,4.22,0,0,0-2.55.84,86.56,86.56,0,0,0-9.36,2.58c-.72.09-1.53-.29-2.13.41L158.67,113l-2.14.4a57.12,57.12,0,0,0-7.65.87h-1.72c-2.43-.28-4.81.38-7.22.43Z"/><path class="cls-2" d="M127.12,107q0,4,0,8a30.43,30.43,0,0,1-5.38,4.34c-2.58,1.41-5.17,2.78-7.76,4.17a4.12,4.12,0,0,0-2.55.86.9.9,0,0,0-.86.42h0l-8.91,2.59a6.59,6.59,0,0,0-2.56.8A55.35,55.35,0,0,0,90.59,130c-.72.09-1.52-.28-2.13.39a38,38,0,0,0-7.66.89H79.09c-3.12.12-6.22.62-9.36.46a33.58,33.58,0,0,1-5.93.37v0q0-3.39,0-6.78h0c1.85,0,3.73.23,5.53-.41H71a37.37,37.37,0,0,0,7.22-.46c.72-.06,1.52.3,2.14-.38a39.33,39.33,0,0,0,7.65-.89l2.15-.41c3-.57,6.07-.91,8.92-2.12.72-.09,1.53.28,2.13-.43a45.18,45.18,0,0,0,10.2-3.41,11.57,11.57,0,0,0,3.41-1.27C119.6,113.64,123.92,111.14,127.12,107Z"/><path class="cls-2" d="M136.52,77.21l-.17-6.46h4a3.17,3.17,0,0,0,2.14-.36c2.41-.13,4.86.34,7.23-.45h2.57l7.22-1.26c.72-.09,1.52.28,2.13-.39a30.81,30.81,0,0,0,8.51-1.74l2.14-.42a61.17,61.17,0,0,0,9.77-3,9.33,9.33,0,0,0,3-1.24c5.63-2,11-4.51,14.82-9.35q0,2.33,0,4.66a1.27,1.27,0,0,0-.33,1.17c.32,2.09-.75,3.29-2.34,4.52-3.71,2.88-8,4.68-12.14,6.65a11.47,11.47,0,0,0-3.41,1.25l-8.93,2.58-3,.81a56.3,56.3,0,0,0-7.66,1.32c-.73.06-1.53-.3-2.14.4a48.58,48.58,0,0,0-7.65.88h-2.15c-2.23.58-4.52.32-6.78.45Z"/><path class="cls-3" d="M63.77,125.26q0,3.39,0,6.78l-.46,0c-7.29-.48-14.59-.63-21.87-1.57a124,124,0,0,1-22.6-5c-6.73-2.19-13.11-5.21-18.46-10a21.44,21.44,0,0,1,0-7.63c8.1,8.12,18.75,10.78,29.31,13.55a118.46,118.46,0,0,0,20.78,3.33,85.24,85.24,0,0,0,12.89.52l.2,0Z"/><path class="cls-3" d="M63.78,162.29q0,3.39,0,6.79l-.43,0C49.6,169,36,167.4,23,163c-8.36-2.8-16.25-6.6-22.52-13.09a34,34,0,0,1,0-7.64c7,8.24,16.7,11.71,26.54,14.83a100.27,100.27,0,0,0,20,4.18c5.45.57,10.92,1.33,16.43,1l.21,0Z"/><path class="cls-3" d="M63.4,93.86l-6.58-.06A154.53,154.53,0,0,1,22.5,89.71c-7.1-1.65-14-3.82-20.09-8.07-.69-.48-1.36-1-2-1.49a19.43,19.43,0,0,1-.05-7.23c7.15,6.37,16.11,8.55,25.06,10.63A159,159,0,0,0,51.29,87.1c4.6.3,9.19.09,13.78.34-1.3,1.08-1.43,2.51-1.29,4.06.07.77,0,1.55,0,2.32A.83.83,0,0,0,63.4,93.86Z"/><path class="cls-3" d="M136.12,39.36c-3.12,0-6.24,0-9.36,0a164.74,164.74,0,0,1-25.41-2.72,84.5,84.5,0,0,1-20.63-6.15,30.17,30.17,0,0,1-7.95-5.17q0-3.4,0-6.79c2.07.93,3.41,2.84,5.46,3.88a81.93,81.93,0,0,0,16.66,6A148.91,148.91,0,0,0,116.06,32a149.14,149.14,0,0,0,20.48.94c-.85,2.11.41,4.23,0,6.35A1.22,1.22,0,0,0,136.12,39.36Z"/><path class="cls-4" d="M136.52,39.34c.43-2.12-.83-4.24,0-6.35h2.54a2.42,2.42,0,0,0,3.84,0c13.17-.55,26.22-2,38.94-5.57,5.21-1.46,10.4-3.09,14.95-6.25,1-.72,1.62-2,3-2.25q0,1.3,0,2.59c-.81,1.6.24,3.48-.73,5.06-3.33,3-7.61,4.34-11.49,6.38a8,8,0,0,0-3,.84l-8.51,2.16c-.72.08-1.53-.28-2.13.41l-8.08,1.31c-.72.07-1.52-.3-2.13.38a31.63,31.63,0,0,0-7.66.87H154.4c-2.43-.26-4.81.37-7.22.45H136.52Z"/><path class="cls-4" d="M63.75,93.83a23.17,23.17,0,0,0,0-2.32c-.13-1.55,0-3,1.29-4.06h.84c1.22,1.18,4.37,1.17,5.54,0,6.94-.46,13.85-1,20.75-2a116.77,116.77,0,0,0,25.71-6.45A25,25,0,0,0,127,73a52.49,52.49,0,0,1,.08,7.6c-3,2.57-6.62,4.24-10.14,6-.85.29-1.82.23-2.56.85a.88.88,0,0,0-.86.41h0A66.7,66.7,0,0,0,105.06,90l-2.14.41-8.5,1.7H92.7L85.06,93c-.72.06-1.52-.3-2.14.38-2.42,0-4.85-.17-7.23.45H74l-6.78,0-3.45,0Z"/><path class="cls-5" d="M114,123.57c2.59-1.39,5.18-2.76,7.76-4.17a30.43,30.43,0,0,0,5.38-4.34v2.56a5.85,5.85,0,0,0-.67.51L85.59,159c-.45.45-1,.85-1,1.58a29.62,29.62,0,0,1-7.65.89c.56-.63,1.09-1.3,1.68-1.89q16.89-16.91,33.78-33.81C113.06,125.12,114,124.64,114,123.57Z"/><path class="cls-5" d="M162.49,141.84a40.75,40.75,0,0,1-8.07,1.66c.32-.37.62-.77,1-1.12L198.75,99c.35-.35.75-.64,1.12-1q0,3.19,0,6.38a2,2,0,0,0-.36.23l-36.67,36.66A3.25,3.25,0,0,0,162.49,141.84Z"/><path class="cls-5" d="M185,69.56c4.18-2,8.43-3.78,12.14-6.65,1.58-1.23,2.66-2.42,2.34-4.52a1.27,1.27,0,0,1,.33-1.17q0,2.34,0,4.67a4,4,0,0,0-.51.37l-42.29,42.28c-.45.45-1,.86-1,1.58a21.33,21.33,0,0,1-7.66.88c.56-.64,1.08-1.3,1.67-1.9q16.67-16.69,33.35-33.38C184.1,71.1,185,70.61,185,69.56Z"/><path class="cls-5" d="M110.16,161.46a84.76,84.76,0,0,0,13.6-7.29c0,1.08-.9,1.56-1.52,2.19q-19.87,19.91-39.77,39.79c-.6.6-1.12,1.26-1.68,1.89a25.47,25.47,0,0,1-7.23.85c.56-.63,1.09-1.3,1.68-1.89q16.67-16.69,33.34-33.37C109.22,163,110.1,162.51,110.16,161.46Z"/><path class="cls-5" d="M117,86.56c3.52-1.76,7.1-3.42,10.14-6v3a6.48,6.48,0,0,0-.67.52L89,121.54c-.45.45-1,.85-1,1.58a39.29,39.29,0,0,1-7.65.89c.56-.63,1.09-1.3,1.68-1.9q16.67-16.69,33.35-33.37C116,88.11,116.92,87.63,117,86.56Z"/><path class="cls-5" d="M187.59,32.94c3.88-2,8.15-3.36,11.49-6.38l.7,0q0,.65,0,1.29L160.31,67.25a2,2,0,0,0-.81,1.43l-7.22,1.27c-.18-1.19.72-1.77,1.41-2.45Q169.86,51.3,186,35.12C186.67,34.49,187.56,34,187.59,32.94Z"/><path class="cls-5" d="M127.17,153.78l0,6.37a7.23,7.23,0,0,0-.84.63l-33.5,33.5c-.45.45-1,.84-1,1.57a36.35,36.35,0,0,1-8.51,1.77c.36-.43.68-.9,1.08-1.29q20.72-20.74,41.45-41.45C126.28,154.47,126.74,154.14,127.17,153.78Z"/><path class="cls-5" d="M180.78,107.83l11.91-5.57c0,1.08-.9,1.56-1.53,2.19q-18,18-35.93,36c-1.15,1.15-2.25,2.35-3.38,3.52l-6.8.66c.23-.89,1-1.36,1.58-2q16.29-16.32,32.59-32.62C179.85,109.38,180.75,108.9,180.78,107.83Z"/><path class="cls-5" d="M166.31,104.4a28.45,28.45,0,0,1-7.65,1.34c0-1.08.9-1.56,1.53-2.19q18.66-18.7,37.35-37.36c.75-.75,1.54-1.45,2.32-2.17q0,3.19,0,6.38a4,4,0,0,0-.51.37l-32.07,32.06C166.83,103.28,166.31,103.68,166.31,104.4Z"/><path class="cls-5" d="M95.26,158.44a37.11,37.11,0,0,1-8.5,1.72,2.9,2.9,0,0,1,.34-.53L126.77,120a1.85,1.85,0,0,1,.36-.22v6.38a5.7,5.7,0,0,0-.68.5L96.23,156.86C95.78,157.31,95.26,157.72,95.26,158.44Z"/><path class="cls-5" d="M97.83,165.29l8.93-2.58c0,1.07-.93,1.55-1.56,2.18q-16.14,16.17-32.3,32.33c-.58.58-1.39,1-1.47,2l-6.8.09c.51-.58,1-1.19,1.53-1.74q15-15.06,30.09-30.12C96.88,166.82,97.76,166.34,97.83,165.29Z"/><path class="cls-5" d="M168.87,111.24a86.48,86.48,0,0,1,9.36-2.58c-.51.58-1,1.2-1.52,1.74q-13.92,13.94-27.85,27.87c-2.14,2.15-4.24,4.34-6.36,6.51l-5.54,0c-.17-1.18.72-1.77,1.41-2.46q14.47-14.48,28.94-29C167.94,112.79,168.82,112.3,168.87,111.24Z"/><path class="cls-5" d="M170.14,66.55a30.79,30.79,0,0,1-8.51,1.74,6.85,6.85,0,0,1,.62-.84L198.4,31.29c.4-.4.75-.86,1.39-.89l0,6-.33.82c-.89,0-1.33.73-1.87,1.27Q184.5,51.56,171.4,64.68C170.86,65.21,170.15,65.65,170.14,66.55Z"/><path class="cls-5" d="M99.09,120.59c-2.85,1.21-5.92,1.55-8.92,2.12.51-.58,1-1.19,1.54-1.74q15.48-15.5,31-31c1.45-1.45,3-2.85,4.43-4.27V92.1a6.35,6.35,0,0,0-.67.51L100,119C99.6,119.46,99.08,119.86,99.09,120.59Z"/><path class="cls-5" d="M165.9,37.66,174,36.35c-.51.58-1,1.2-1.54,1.74Q157.13,53.42,141.8,68.75c-.58.59-1.38,1-1.46,2h-4q0-1,0-1.93l.27-1.42a3.59,3.59,0,0,0,.52-.36l28-28A2.07,2.07,0,0,0,165.9,37.66Z"/><path class="cls-5" d="M199.87,106.57v6.38a3.68,3.68,0,0,0-.52.37l-23.28,23.26a2.06,2.06,0,0,0-.83,1.42,46.21,46.21,0,0,1-9.77,3.1,5.69,5.69,0,0,1,1.63-1.92q13.26-13.29,26.54-26.55C195.7,110.58,197.79,108.58,199.87,106.57Z"/><path class="cls-5" d="M162.07,75.52a56.21,56.21,0,0,1,7.66-1.32c0,1.06-.92,1.55-1.55,2.18q-14.68,14.71-29.37,29.4c-.58.58-1.38,1-1.43,2l-.78,0q0-3.19,0-6.38a3.66,3.66,0,0,0,.52-.37l24.15-24.13A2.07,2.07,0,0,0,162.07,75.52Z"/><path class="cls-5" d="M104.62,191.64l-.08.09-.12,0-.64.33a45.78,45.78,0,0,1-9.35,3.11,3.4,3.4,0,0,1,.43-.72q15.89-15.91,31.8-31.79a2.88,2.88,0,0,1,.53-.34l0,6.37a4.49,4.49,0,0,0-.69.47l-21.09,21.08A2,2,0,0,0,104.62,191.64Z"/><path class="cls-5" d="M178.22,101a40.12,40.12,0,0,1-8.92,2.59c-.45-1,.55-1.17,1-1.58q7.15-7.25,14.38-14.42,7.59-7.55,15.22-15.07v6.38q-10.56,10.49-21.1,21A3.79,3.79,0,0,0,178.22,101Z"/><path class="cls-5" d="M158.67,113l8.07-1.31c-3.41,3.49-6.8,7-10.25,10.45q-9.91,9.9-19.89,19.75v-6.38q10.77-10.69,21.52-21.4A3.87,3.87,0,0,0,158.67,113Z"/><path class="cls-5" d="M107.61,154.64a30.4,30.4,0,0,1-9.36,3c0-1,.8-1.45,1.38-2q9.58-9.61,19.19-19.19c2.75-2.74,5.55-5.43,8.32-8.15v6.38l-19.06,18.87A1.56,1.56,0,0,0,107.61,154.64Z"/><path class="cls-5" d="M182,63.14a61.15,61.15,0,0,1-9.77,3,4.91,4.91,0,0,1,.49-.69l25.66-25.67c.4-.4.77-.85,1.4-.86l0,6Q191.21,53.44,182.58,62A3.77,3.77,0,0,0,182,63.14Z"/><path class="cls-5" d="M111.43,116.76a45.18,45.18,0,0,1-10.2,3.41c1.71-1.78,3.39-3.59,5.14-5.33q10.36-10.32,20.76-20.6v6.38q-7.59,7.51-15.17,15A3.69,3.69,0,0,0,111.43,116.76Z"/><path class="cls-5" d="M152.29,76.8a48.55,48.55,0,0,1,7.65-.88c-7.6,8-15.43,15.73-23.35,23.39V92.93q7.59-7.51,15.17-15A3.81,3.81,0,0,0,152.29,76.8Z"/><path class="cls-5" d="M148.88,114.23a57.09,57.09,0,0,1,7.65-.87c-6.46,6.85-13.16,13.44-19.92,20q0-3.19,0-6.38,5.88-5.81,11.75-11.63A3.76,3.76,0,0,0,148.88,114.23Z"/><path class="cls-6" d="M151.86,143.93c1.12-1.18,2.23-2.37,3.38-3.52q18-18,35.93-36c.63-.63,1.52-1.11,1.53-2.19.69-1.16,1.91-1.65,3-2.32,2.64-1.65,4.44-3.69,3.87-7.1a2.19,2.19,0,0,1,.33-2q0,3.62,0,7.24c-.37.32-.77.62-1.12,1l-43.36,43.36c-.35.35-.64.74-1,1.12Z"/><path class="cls-7" d="M199.87,115.07c.63,4.16-1.15,7.48-3.85,10.34a46,46,0,0,1-16.9,11,1.54,1.54,0,0,1,.58-1.3Z"/><path class="cls-6" d="M127.17,153.78c-.43.36-.89.69-1.29,1.09q-20.73,20.72-41.45,41.45c-.4.4-.72.86-1.08,1.29a3.92,3.92,0,0,1-2.55.42c.56-.63,1.09-1.3,1.68-1.89q19.88-19.9,39.77-39.79c.63-.63,1.52-1.11,1.52-2.19a10.39,10.39,0,0,1,2.53-2.52h.88Z"/><path class="cls-5" d="M199.86,87.84c-4.76,6-11.05,9.63-18.23,11.92a3.6,3.6,0,0,1,.51-1.12Q191,89.82,199.86,81Z"/><path class="cls-6" d="M199.86,64c-.77.72-1.57,1.42-2.32,2.17q-18.69,18.67-37.35,37.36c-.63.63-1.52,1.11-1.53,2.19-.77.7-1.7.27-2.56.38,0-.72.5-1.13,1-1.58l42.29-42.28a4,4,0,0,1,.51-.37Z"/><path class="cls-6" d="M127.13,119.75a1.85,1.85,0,0,0-.36.22L87.09,159.63a2.9,2.9,0,0,0-.34.53c-.61.69-1.41.33-2.14.39,0-.72.53-1.13,1-1.58l40.87-40.86a5.85,5.85,0,0,1,.67-.51Z"/><path class="cls-8" d="M199.79,30.41c-.64,0-1,.49-1.39.89L162.26,67.44a6.85,6.85,0,0,0-.62.84c-.61.68-1.41.31-2.13.39a2,2,0,0,1,.81-1.43l39.46-39.38Z"/><path class="cls-6" d="M127.11,85.72c-1.48,1.42-3,2.82-4.43,4.27q-15.5,15.48-31,31c-.55.55-1,1.16-1.54,1.74l-2.15.41c0-.72.53-1.13,1-1.58L126.44,84.1a6.49,6.49,0,0,1,.67-.52Z"/><path class="cls-6" d="M71.43,199.22c.08-1,.89-1.42,1.47-2Q89,181,105.2,164.89c.63-.63,1.52-1.12,1.56-2.18l3.41-1.25c-.07,1.06-.95,1.54-1.58,2.17Q91.93,180.32,75.25,197c-.6.6-1.12,1.26-1.68,1.89A3.71,3.71,0,0,1,71.43,199.22Z"/><path class="cls-6" d="M142.5,144.78c2.12-2.17,4.22-4.36,6.36-6.51q13.92-13.94,27.85-27.87c.54-.54,1-1.16,1.52-1.74a4.22,4.22,0,0,1,2.55-.84c0,1.07-.93,1.55-1.55,2.18q-16.29,16.32-32.59,32.62c-.59.59-1.35,1.06-1.58,2A4.73,4.73,0,0,1,142.5,144.78Z"/><path class="cls-6" d="M199.87,106.57c-2.07,2-4.17,4-6.22,6.06q-13.29,13.26-26.54,26.55a5.69,5.69,0,0,0-1.63,1.92,6.27,6.27,0,0,1-3,.75,3.25,3.25,0,0,1,.35-.52l36.67-36.66a2,2,0,0,1,.36-.23Z"/><path class="cls-7" d="M127.2,170.79c.45,3.56-1.31,6.29-3.51,8.74A42.41,42.41,0,0,1,108.47,190c.56-2,2.33-3,3.64-4.27C117.12,180.71,121.93,175.52,127.2,170.79Z"/><path class="cls-6" d="M127.18,162.29a2.88,2.88,0,0,0-.53.34q-15.91,15.89-31.8,31.79a3.4,3.4,0,0,0-.43.72,5.45,5.45,0,0,1-2.57.71c0-.72.54-1.12,1-1.57l33.5-33.5a7.23,7.23,0,0,1,.84-.63Z"/><path class="cls-5" d="M127.15,142.32c-4,5.73-9.81,8.76-16.14,11a1.53,1.53,0,0,1,.48-1.13l15.65-15.47Z"/><path class="cls-6" d="M97.83,165.29c-.07,1.05-.95,1.54-1.57,2.17q-15,15.07-30.09,30.12c-.54.54-1,1.16-1.53,1.74l-.88,0,.09-1.75a3.53,3.53,0,0,0,.52-.36l29.56-29.55c.45-.45,1-.87.91-1.6C95.73,165.46,96.86,165.68,97.83,165.29Z"/><path class="cls-6" d="M199.86,72.53q-7.61,7.53-15.22,15.07-7.22,7.18-14.38,14.42c-.41.41-1.4.6-1,1.58-.9.65-2,.41-3,.81,0-.72.52-1.13,1-1.57l32.07-32.06a4,4,0,0,1,.51-.37Z"/><path class="cls-5" d="M143.36,77.25c2.26-.13,4.55.12,6.78-.45a1.56,1.56,0,0,1-.5,1.12L136.58,90.8V84.43C138.93,82.12,141.64,80.15,143.36,77.25Z"/><path class="cls-6" d="M136.61,141.85q9.95-9.87,19.89-19.75c3.45-3.45,6.83-7,10.25-10.45.6-.7,1.41-.33,2.13-.41-.06,1.06-.94,1.54-1.57,2.17q-14.46,14.49-28.94,29c-.69.69-1.58,1.27-1.41,2.46C136.14,143.92,136.66,142.85,136.61,141.85Z"/><path class="cls-6" d="M127.14,128.26c-2.78,2.71-5.57,5.41-8.32,8.15Q109.2,146,99.62,155.6c-.58.58-1.38,1-1.38,2a6.55,6.55,0,0,1-3,.8c0-.72.52-1.13,1-1.58l30.24-30.23a5.7,5.7,0,0,1,.68-.5Z"/><path class="cls-6" d="M199.83,38.91c-.64,0-1,.46-1.4.86L172.76,65.44a4.91,4.91,0,0,0-.49.69l-2.14.42c0-.9.73-1.34,1.26-1.87q13.1-13.12,26.21-26.21c.54-.54,1-1.24,1.87-1.27h.33Z"/><path class="cls-5" d="M199.85,52.55C196,57.38,190.66,59.88,185,61.9c4.74-5.17,9.76-10,14.82-14.9Q199.86,49.78,199.85,52.55Z"/><path class="cls-6" d="M127.11,94.23q-10.38,10.3-20.76,20.6c-1.75,1.74-3.43,3.55-5.14,5.33-.6.71-1.41.33-2.13.43,0-.72.51-1.13,1-1.58l26.4-26.4a6.35,6.35,0,0,1,.67-.51Z"/><path class="cls-6" d="M136.59,99.31c7.92-7.66,15.75-15.41,23.35-23.39.61-.69,1.41-.33,2.14-.4a2.07,2.07,0,0,1-.82,1.42L137.1,101.08a3.66,3.66,0,0,1-.52.37Q136.59,100.38,136.59,99.31Z"/><path class="cls-6" d="M199.87,115.07l-20.18,20a1.54,1.54,0,0,0-.58,1.3v0a.86.86,0,0,0-.9.4,7.57,7.57,0,0,1-3,1.23,2.05,2.05,0,0,1,.83-1.42l23.28-23.26a3.68,3.68,0,0,1,.52-.37Z"/><path class="cls-5" d="M139.94,114.65c2.41-.05,4.79-.71,7.22-.43-3.34,3.72-6.92,7.19-10.56,10.61q0-3.19,0-6.38C137.82,117.28,139.38,116.41,139.94,114.65Z"/><path class="cls-6" d="M127.2,170.79c-5.26,4.73-10.08,9.92-15.09,14.9C110.8,187,109,188,108.47,190h0a.88.88,0,0,0-.88.4,7.11,7.11,0,0,1-3,1.28,2,2,0,0,1,.8-1.43l21.09-21.08a4.49,4.49,0,0,1,.69-.47Z"/><path class="cls-6" d="M136.6,133.34c6.76-6.54,13.47-13.14,19.92-20l2.14-.4a3.87,3.87,0,0,1-.54,1.11q-10.74,10.72-21.52,21.4Z"/><path class="cls-6" d="M199.86,81q-8.87,8.79-17.72,17.6a3.6,3.6,0,0,0-.51,1.12,11.24,11.24,0,0,1-3.41,1.25,3.79,3.79,0,0,1,.53-1.11q10.53-10.51,21.1-21Q199.86,80,199.86,81Z"/><path class="cls-5" d="M127.12,107c-3.2,4.13-7.52,6.63-12.29,8.48a1.6,1.6,0,0,1,.5-1.13l11.78-11.62Q127.12,104.88,127.12,107Z"/><path class="cls-6" d="M127.15,136.77,111.5,152.23a1.53,1.53,0,0,0-.48,1.13h0a.86.86,0,0,0-.86.42,4.14,4.14,0,0,1-2.55.85,1.56,1.56,0,0,1,.49-1.13l19.06-18.87Z"/><path class="cls-6" d="M199.86,47c-5.06,4.85-10.08,9.73-14.82,14.9a9.33,9.33,0,0,1-3,1.24,3.77,3.77,0,0,1,.53-1.11q8.62-8.6,17.27-17.16Z"/><path class="cls-6" d="M136.58,90.8l13.06-12.89a1.56,1.56,0,0,0,.5-1.12h2.15a3.81,3.81,0,0,1-.54,1.11q-7.56,7.53-15.17,15Z"/><path class="cls-6" d="M127.12,102.74l-11.78,11.62a1.6,1.6,0,0,0-.5,1.13,11.57,11.57,0,0,1-3.41,1.27,3.68,3.68,0,0,1,.52-1.11q7.57-7.54,15.17-15Z"/><path class="cls-6" d="M143.36,77.25c-1.72,2.9-4.43,4.88-6.78,7.18l0-7.22Z"/><path class="cls-6" d="M136.6,124.83c3.64-3.42,7.22-6.89,10.56-10.61h1.72a3.76,3.76,0,0,1-.53,1.11Q142.5,121.18,136.6,127Z"/><path class="cls-9" d="M63.84,197.58l-.09,1.75-.19,0-.19,0q0-15.12,0-30.23l.43,0v0l.05,11.47v17Z"/><path class="cls-9" d="M136.58,67.41l-.27,1.42a.83.83,0,0,1-.6-1c.7-.63.38-1.46.38-2.2q0-13.13,0-26.25a1.22,1.22,0,0,1,.4,0h0l.06,8.9V67.41Z"/><path class="cls-6" d="M139.94,114.65c-.56,1.76-2.13,2.63-3.35,3.8v-3.84Z"/><path class="cls-8" d="M199.77,26.58l-.7,0c1-1.58-.08-3.45.73-5.06Z"/><path class="cls-5" d="M127.17,151.65h-.88l.86-1.28Z"/><path class="cls-7" d="M178.23,136.76a.86.86,0,0,1,.9-.4A.86.86,0,0,1,178.23,136.76Z"/><path class="cls-8" d="M199.82,37.21h-.33l.33-.82Z"/><path class="cls-7" d="M107.6,190.36a.88.88,0,0,1,.88-.4A.91.91,0,0,1,107.6,190.36Z"/><path class="cls-6" d="M103.78,192l.64-.33Z"/><path class="cls-3" d="M142.92,33a2.42,2.42,0,0,1-3.84,0Z"/><path class="cls-3" d="M71.44,87.43c-1.17,1.19-4.32,1.2-5.54,0Z"/><path class="cls-9" d="M63.4,93.86a.83.83,0,0,1,.35,0h0l.09,3.78v25.53l-.06,2.11h-.2l-.2,0Q63.38,109.55,63.4,93.86Z"/><path class="cls-9" d="M63.78,162.29h-.21l-.21,0q0-15.1,0-30.19l.46,0v0q0,3,0,5.95v19.16l-.05,5.1Z"/><path class="cls-5" d="M101.66,127.43l8.91-2.59c0,1.08-.91,1.56-1.54,2.19q-16.29,16.33-32.61,32.64c-.63.63-1.51,1.12-1.59,2.17l-6.79.45c0-1.07.93-1.54,1.56-2.17q15.23-15.26,30.47-30.5C100.7,129,101.58,128.48,101.66,127.43Z"/><path class="cls-5" d="M63.78,162.28q0-2.55,0-5.1a6.09,6.09,0,0,0,.67-.51l25.14-25.13c.45-.45,1-.86,1-1.58a55.31,55.31,0,0,1,8.51-1.73c-.51.58-1,1.2-1.52,1.74q-15,15.07-30.1,30.12c-.63.63-1.5,1.12-1.58,2.16Z"/><path class="cls-5" d="M63.84,197.58q0-3.19,0-6.37,11.42-11.34,22.82-22.69a3.79,3.79,0,0,0,.53-1.11,49.76,49.76,0,0,1,7.64-1.34c0,.73-.46,1.15-.91,1.6L64.36,197.22A3.53,3.53,0,0,1,63.84,197.58Z"/><path class="cls-5" d="M63.84,189.07q0-3.19,0-6.37,6.53-6.45,13-12.92a3.65,3.65,0,0,0,.52-1.11,38.25,38.25,0,0,1,7.66-.88C78.18,175.09,71,182.12,63.84,189.07Z"/><path class="cls-6" d="M74.83,161.83c.08-1,1-1.54,1.59-2.17Q92.72,143.33,109,127c.63-.63,1.53-1.11,1.54-2.19h0a.87.87,0,0,0,.86-.42,4.12,4.12,0,0,1,2.55-.86c0,1.07-.92,1.55-1.55,2.18q-16.88,16.92-33.78,33.81c-.6.6-1.12,1.26-1.68,1.89S75.55,161.77,74.83,161.83Z"/><path class="cls-6" d="M65.9,162.26c.08-1,1-1.53,1.58-2.16Q82.52,145,97.58,130c.54-.54,1-1.16,1.52-1.74a6.59,6.59,0,0,1,2.56-.8c-.08,1.05-1,1.54-1.58,2.17Q84.85,144.86,69.6,160.1c-.63.63-1.52,1.11-1.56,2.17Z"/><path class="cls-10" d="M63.84,180.57l-.05-11.47c4,.3,7.92-.66,11.9-.42C71.92,172.82,67.93,176.74,63.84,180.57Z"/><path class="cls-6" d="M63.84,189.07c7.21-7,14.34-14,21.22-21.27.61-.67,1.41-.31,2.13-.38a3.79,3.79,0,0,1-.53,1.11q-11.39,11.36-22.82,22.69Q63.84,190.14,63.84,189.07Z"/><path class="cls-6" d="M63.84,180.57c4.09-3.83,8.08-7.75,11.85-11.89H77.4a3.65,3.65,0,0,1-.52,1.11q-6.5,6.48-13,12.92Q63.84,181.63,63.84,180.57Z"/><path class="cls-5" d="M110.15,153.79a.86.86,0,0,1,.86-.42A.9.9,0,0,1,110.15,153.79Z"/><path class="cls-5" d="M172.71,73.39l8.93-2.58c0,1.06-.92,1.55-1.55,2.18Q164,89.11,147.89,105.21c-.63.63-1.5,1.12-1.58,2.16l-7.21.44c.51-.58,1-1.19,1.54-1.74q15.24-15.26,30.49-30.52C171.76,74.93,172.64,74.45,172.71,73.39Z"/><path class="cls-6" d="M146.31,107.37c.08-1,1-1.53,1.58-2.16Q164,89.09,180.09,73c.63-.63,1.51-1.11,1.55-2.18A11.46,11.46,0,0,1,185,69.56c-.07,1.06-.95,1.54-1.58,2.17q-16.66,16.7-33.35,33.38c-.6.6-1.12,1.27-1.67,1.9S147,107.32,146.31,107.37Z"/><path class="cls-6" d="M172.71,73.39c-.07,1.05-1,1.54-1.58,2.17q-15.23,15.27-30.49,30.52c-.55.55-1,1.16-1.54,1.74l-1.72,0c.05-1,.85-1.43,1.43-2q14.68-14.71,29.37-29.4c.63-.63,1.51-1.12,1.55-2.18Z"/><path class="cls-5" d="M105.06,90a66.62,66.62,0,0,1,8.49-2.17c0,1.08-.91,1.55-1.53,2.18q-16.09,16.13-32.2,32.23c-.63.63-1.5,1.12-1.58,2.16a37.37,37.37,0,0,1-7.22.46c.51-.58,1-1.19,1.54-1.74q15.46-15.48,30.93-31C104.11,91.52,105,91,105.06,90Z"/><path class="cls-5" d="M63.77,125.25l.06-2.11a6.13,6.13,0,0,0,.67-.51l29-29c.45-.45,1-.86,1-1.58l8.5-1.7c-.51.58-1,1.19-1.54,1.74q-15.25,15.27-30.5,30.53c-.63.63-1.52,1.11-1.57,2.18C67.5,125.49,65.63,125.23,63.77,125.25Z"/><path class="cls-5" d="M63.84,155q0-3.19,0-6.37,8.23-8.15,16.44-16.31a3.74,3.74,0,0,0,.53-1.11,38,38,0,0,1,7.66-.89C80.46,138.79,72.18,146.94,63.84,155Z"/><path class="cls-10" d="M63.84,146.53q0-4.26,0-8.51c2-2,4.5-3.68,5.89-6.32,3.13.16,6.24-.34,9.36-.46C74.18,136.51,69.06,141.57,63.84,146.53Z"/><path class="cls-6" d="M78.23,124.39c.08-1,1-1.53,1.58-2.16Q95.91,106.11,112,90c.63-.63,1.52-1.1,1.53-2.18h0a.87.87,0,0,0,.86-.41c.74-.62,1.71-.56,2.56-.85-.05,1.06-.94,1.55-1.57,2.18q-16.66,16.7-33.35,33.37c-.6.6-1.12,1.26-1.68,1.9S79,124.33,78.23,124.39Z"/><path class="cls-6" d="M69.31,124.84c0-1.06.94-1.55,1.57-2.18q15.24-15.28,30.5-30.53c.55-.55,1-1.16,1.54-1.74l2.14-.41c-.07,1.05-1,1.54-1.58,2.17q-15.45,15.49-30.93,31c-.55.55-1,1.16-1.54,1.74Z"/><path class="cls-6" d="M63.84,155c8.34-8.1,16.62-16.25,24.62-24.69.61-.67,1.41-.3,2.13-.39,0,.72-.51,1.13-1,1.58L64.5,156.67a6.09,6.09,0,0,1-.67.51Q63.84,156.11,63.84,155Z"/><path class="cls-6" d="M63.84,146.53c5.22-5,10.35-10,15.25-15.29H80.8a3.74,3.74,0,0,1-.53,1.11q-8.2,8.18-16.44,16.31Q63.83,147.6,63.84,146.53Z"/><path class="cls-5" d="M69.73,131.7c-1.39,2.64-3.85,4.29-5.89,6.32q0-3,0-5.95A33.58,33.58,0,0,0,69.73,131.7Z"/><path class="cls-5" d="M111.43,124.42a.87.87,0,0,1-.86.42A.9.9,0,0,1,111.43,124.42Z"/><path class="cls-5" d="M176.11,35.94l8.51-2.16c0,1.06-.92,1.55-1.55,2.18q-15.88,15.92-31.78,31.81c-.63.63-1.51,1.11-1.57,2.17-2.37.79-4.82.32-7.23.45.51-.58,1-1.2,1.54-1.74q15.25-15.27,30.51-30.54C175.16,37.48,176,37,176.11,35.94Z"/><path class="cls-6" d="M149.72,69.95c.06-1.05.94-1.54,1.57-2.17Q167.17,51.86,183.07,36c.63-.63,1.51-1.12,1.55-2.18a8,8,0,0,1,3-.84c0,1.07-.92,1.55-1.54,2.18q-16.16,16.2-32.35,32.38c-.68.68-1.59,1.26-1.41,2.45Z"/><path class="cls-6" d="M176.11,35.94c-.06,1.06-.94,1.54-1.57,2.18Q159.29,53.4,144,68.65c-.55.55-1,1.16-1.54,1.74a3.17,3.17,0,0,1-2.14.36c.08-1,.87-1.43,1.46-2q15.31-15.34,30.64-30.66c.55-.55,1-1.16,1.54-1.74S175.39,36,176.11,35.94Z"/><path class="cls-5" d="M136.59,65.27q0-3.18,0-6.37L155.6,40a1.61,1.61,0,0,0,.51-1.13,31.62,31.62,0,0,1,7.66-.87c-3.42,3.94-7.28,7.46-11,11.16C147.44,54.59,142,59.91,136.59,65.27Z"/><path class="cls-5" d="M136.59,56.76q0-3.18,0-6.37c3.36-3.3,6.72-6.6,10.06-9.93a3.79,3.79,0,0,0,.54-1.1c2.41-.08,4.79-.7,7.22-.45C148.64,45,142.67,50.95,136.59,56.76Z"/><path class="cls-6" d="M136.59,65.27c5.41-5.35,10.86-10.67,16.22-16.07,3.67-3.7,7.53-7.21,11-11.16.61-.68,1.41-.32,2.13-.38a2.07,2.07,0,0,1-.82,1.43l-28,28a3.59,3.59,0,0,1-.52.36Q136.58,66.34,136.59,65.27Z"/><path class="cls-5" d="M136.59,48.25l-.06-8.9h8.93A116,116,0,0,1,136.59,48.25Z"/><path class="cls-6" d="M136.59,56.76c6.08-5.81,12.06-11.72,17.81-17.85h1.71A1.61,1.61,0,0,1,155.6,40l-19,18.86Q136.58,57.83,136.59,56.76Z"/><path class="cls-6" d="M136.59,48.25a116,116,0,0,0,8.87-8.9h1.72a3.79,3.79,0,0,1-.54,1.1c-3.34,3.32-6.71,6.62-10.06,9.93Q136.58,49.32,136.59,48.25Z"/><path class="cls-5" d="M63.84,121q0-3.19,0-6.37,10.35-10.27,20.69-20.55a3.85,3.85,0,0,0,.54-1.1l7.64-.87c-4.3,4.37-8.58,8.77-12.92,13.11C74.5,110.5,69.16,115.74,63.84,121Z"/><path class="cls-5" d="M63.84,112.49q0-3.19,0-6.37,5.67-5.59,11.34-11.2a3.78,3.78,0,0,0,.53-1.11c2.38-.63,4.81-.41,7.23-.45C76.75,99.92,70.34,106.25,63.84,112.49Z"/><path class="cls-6" d="M63.84,121c5.32-5.26,10.66-10.5,15.94-15.79,4.34-4.34,8.61-8.74,12.92-13.11h1.72c0,.72-.51,1.13-1,1.58l-29,29a6.13,6.13,0,0,1-.67.51Q63.84,122.07,63.84,121Z"/><path class="cls-5" d="M63.84,104q0-3.19,0-6.37c1.23-1.16,2.76-2.05,3.37-3.77l6.78,0C70.78,97.37,67.36,100.73,63.84,104Z"/><path class="cls-6" d="M63.84,112.49c6.5-6.24,12.92-12.57,19.09-19.14.61-.68,1.41-.32,2.14-.38a3.85,3.85,0,0,1-.54,1.1q-10.33,10.3-20.69,20.55Q63.84,113.56,63.84,112.49Z"/><path class="cls-6" d="M63.84,104c3.52-3.26,6.94-6.61,10.14-10.18H75.7a3.77,3.77,0,0,1-.53,1.11q-5.64,5.62-11.34,11.2Q63.84,105.05,63.84,104Z"/><path class="cls-6" d="M67.2,93.84c-.61,1.72-2.13,2.61-3.37,3.77q0-1.89-.09-3.78Z"/><path class="cls-5" d="M114.41,87.41a.87.87,0,0,1-.86.41A.88.88,0,0,1,114.41,87.41Z"/></g></g></g></svg>
assets/images/welcome/Form-Builder.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200.24"><defs><style>.cls-1{fill:#7d90a2;}.cls-2{fill:#9674d9;}.cls-3{fill:#f4b217;}</style></defs><title>Asset 1</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M182,156.3l0-6.38,0-2.15q0-3.19,0-6.38l-.17-1.66a7.05,7.05,0,0,0-3.09-3.36l-1.09-.13-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-3.84,0-2.57,0-2.13,0-6.41,0-2.13,0c-2.47.25-5.09-.38-7.31,1.29.43,1.67,2,2.33,3.13,3.25,2.08,1.64,3.68,3.93,6.32,4.83l4.68-.05a2.13,2.13,0,0,1,2.16,0h6.42l1.69.14a38.22,38.22,0,0,1,6.85-.14l1.67,0,6.85,0,1.69,0a18.17,18.17,0,0,1,7.22,0l1.32.07c2.23-.72,4.5-.4,6.76-.24l1.78.24c2.23-.72,4.5-.4,6.76-.24l1.78.24c2.23-.72,4.5-.4,6.76-.24l1.78.24c3.58-1.13,4.07-.63,3.68,3.75.2,6.22,1.09,5.14-5,5l-6.39,0-2.16,0-6.38,0-2.16,0-6.38,0-2.16,0-6.38,0-2.16,0-6.38,0-2.15,0-6.39,0-2.16,0-3.4.08c1.5,2,3.64,3.33,5.51,4.93s3.26,3.36,5.53,4.19c5.42-.33,10.84-.12,16.26-.11l2.15,0,6.38,0,2.15,0,6.38,0,2.15,0,6.38,0,2.15,0,6.38,0,2.15,0c3.66-.28,4.86-1.48,5.2-5.19Z"/><path class="cls-1" d="M48.89,100l2.9-.11,2.15,0,6.38,0,2.15,0,6.39,0,1.05.2a7.65,7.65,0,0,1,2.77,3.29l.07,2.13A5,5,0,0,1,67.12,109c-2.39-.18-4.82,0-7.23.09-3.13-1.57-5.37-4.28-8.07-6.4A10.71,10.71,0,0,1,48.89,100Z"/><path class="cls-2" d="M199.94,10A10,10,0,0,0,190,0c-12.21-.1-24.43,0-36.64,0h0l-3,0L144,0l-2.14,0L126.93,0a1.81,1.81,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38l-2.14,0-6.4,0a1.8,1.8,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38l-2.14,0-6.4,0a1.92,1.92,0,0,1-.57,1.25,1.92,1.92,0,0,0,.57-1.25l-2.13,0-6.4.05a1.8,1.8,0,0,1-.35,1,1.8,1.8,0,0,0,.35-1l-2.13,0-6.4,0a1.8,1.8,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38l-2.14,0L75.71,0a1.8,1.8,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38l-2.14,0-6.4,0a1.8,1.8,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38L65,.06l-6.4,0a1.8,1.8,0,0,1,0,.38,1.8,1.8,0,0,0,0-.38L56.5.06,50.1,0,48,.07C38.38.05,28.79,0,19.2.06A10.34,10.34,0,0,0,9.12,10.37c0,8.52,0,17,0,25.57l3,.11a.47.47,0,0,1,.4,0l.86-.11,2.13,0h0l5.11.13h.42l.87-.11a1.81,1.81,0,0,1,.06-.37,1.81,1.81,0,0,0-.06.37l.44.17,1.69-.17,5.11.13h.42l.87-.11.44.17,1.69-.17,5.11.13h.42l.87-.11.44.17,1.69-.18a1.82,1.82,0,0,1,.06-.37,2.09,2.09,0,0,1,.52-.88,2.09,2.09,0,0,0-.52.88,1.82,1.82,0,0,0-.06.37l5.11.13h.42l1.32.05,6.8,0h.42l.88-.11h0l.44.17,1.69-.17h0l5.11.13h.42l.87-.11h0l.44.17,1.69-.17h0l5.11.13h.42l.87-.11h0l.44.17,1.69-.17h0l5.11.13h.42l.87-.11a1.75,1.75,0,0,1,0-.24,1.75,1.75,0,0,0,0,.24l.44.17,1.69-.17h0l5.11.13h.42l.87-.11a1.81,1.81,0,0,1,.06-.37,1.81,1.81,0,0,0-.06.37l.44.17,1.69-.18h0l5.11.13h.42l1.32.06,6.8,0h.42l.87-.11h0l.44.16,1.69-.17h0l5.11.13H115l.87-.11a1.75,1.75,0,0,1,.09-.46,1.75,1.75,0,0,0-.09.46l.44.17,1.69-.17h0l5.11.13h.42l.87-.11h0l.44.17,1.69-.18h0l5.11.13H132l.88-.12a1.5,1.5,0,0,1,.12-.6,1.5,1.5,0,0,0-.12.6l.44.17,1.69-.18a1.44,1.44,0,0,1,.32-.89,4.65,4.65,0,0,1,.48-.52,4.65,4.65,0,0,0-.48.52,1.44,1.44,0,0,0-.32.89l5.11.14h.42l.88-.12,7.24.13,2.16,0,6.38,0,2.16,0,6.38,0,2.16,0,6.38,0,2.16,0,6.38,0,2.16,0,6.38,0h8.12l.46-.06C200,27.33,200.07,18.67,199.94,10ZM118.24.75s0-.07,0-.1S118.25.72,118.24.75Zm-.38.56,0,0Zm-25.72.12-.37.35ZM92.7.54a1.77,1.77,0,0,1-.07.21A1.77,1.77,0,0,0,92.7.54Zm-17.53.78,0,0ZM56.47,34.89a3.56,3.56,0,0,1,.42-.46A3.56,3.56,0,0,0,56.47,34.89Zm-.33.66a1.8,1.8,0,0,1,.25-.55A1.8,1.8,0,0,0,56.13,35.56Zm34.33-.44a1.77,1.77,0,0,0-.17.39A1.77,1.77,0,0,1,90.47,35.11Zm25.93-.44,0,0Zm37-33.16c0-.18,0-.36,0-.54C153.38,1.16,153.39,1.34,153.39,1.52Z"/><path class="cls-1" d="M36.86,63.6l2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6,.13,1.27.84a5.39,5.39,0,0,1,1.36,4.2,4.7,4.7,0,0,1-3.9,3.89l-6.39,0-2.15,0-6.39,0-2.15,0-6.39,0-2.15,0-6.39,0-2.15,0-6.39,0-2.15,0c-1.85-.18-3.74.18-5.54-.46l-1.24-1a6.19,6.19,0,0,1-1.18-4.21,6,6,0,0,1,3.29-3.43Z"/><path class="cls-3" d="M147.77,196.22c-2.24-1.84-4.47-3.69-6.7-5.53a1.78,1.78,0,0,1-.07.45,1.78,1.78,0,0,0,.07-.45l-.88-.73a12.62,12.62,0,0,0-3-2.52,4.54,4.54,0,0,0-1.77-1.55,18.79,18.79,0,0,0-3.36-2.8l-1.32-1.17-3-2.56a1.86,1.86,0,0,0-1.15-.92,16.63,16.63,0,0,0-3.47-3,3.09,3.09,0,0,0-1.36-1.21,23.76,23.76,0,0,0-3.78-3.16l-.88-.76a14.59,14.59,0,0,0-3-2.54,3.76,3.76,0,0,0-1.67-1.4,17.31,17.31,0,0,0-3.45-2.93,3,3,0,0,0-1.32-1.17l-3-2.57L103,158.38a14.35,14.35,0,0,0-3-2.52l-1.06-1A22.17,22.17,0,0,0,95.48,152h0l-1.41-1.23-3-2.55a3.62,3.62,0,0,0-1.67-1.37,11.06,11.06,0,0,0-2.95-2.5h0a5.06,5.06,0,0,0-1.82-1.61h0l-3.32-2.8a2.2,2.2,0,0,1-.19.4,2.2,2.2,0,0,0,.19-.4l-.86-.7a19.23,19.23,0,0,0-3.46-3,1.94,1.94,0,0,0-1.11-.95,18.86,18.86,0,0,0-3.52-2.93A3.32,3.32,0,0,0,71,131.12a1.85,1.85,0,0,0-1.25-.93c-.45-.44-.88-.92-1.36-1.33L20.83,88.41,3.77,73.93C2.67,73,1.56,72.54.45,73.85c-.66.77-.4,1.77-.4,2.67q0,29,0,58,0,31.13,0,62.27c0,1.07-.36,2.33,1,3a2,2,0,0,0,1.69.29H4.87l6,0h0a4.28,4.28,0,0,0,2.15,0l6.79,0a2,2,0,0,1,.41-.87,2,2,0,0,0-.41.87H30.48l6,0h.85l1.7,0H54.35a1.68,1.68,0,0,1,.48-1.34,1.68,1.68,0,0,0-.48,1.34h8.11a2,2,0,0,1,.41-.88,2,2,0,0,0-.41.88h2.15l6,0,1.26-.7-1.26.7h1.28l1.27,0,6,0,.83-.31-.83.31H80l1.7,0h6.38a2.12,2.12,0,0,1,.61-1.11,2.12,2.12,0,0,0-.61,1.11h8.54a1.94,1.94,0,0,1,.41-.87,3.94,3.94,0,0,1,.43-.46,3.94,3.94,0,0,0-.43.46,1.94,1.94,0,0,0-.41.87h2.16a1.69,1.69,0,0,1,.35-.82,1.69,1.69,0,0,0-.35.82h6.38a1.26,1.26,0,0,1,.18-.53,1.26,1.26,0,0,0-.18.53h8.54a1.76,1.76,0,0,1,.36-.81,1.76,1.76,0,0,0-.36.81h9a1.75,1.75,0,0,1,.56-1.45,1.75,1.75,0,0,0-.56,1.45h10.27l13.37.1a2.24,2.24,0,0,0,2.32-1.51A2.12,2.12,0,0,0,147.77,196.22Zm-7.17-4.33-.06.07ZM94.39,152.76A16.69,16.69,0,0,0,93.07,154,16.68,16.68,0,0,1,94.39,152.76Zm-81,44.8a2.28,2.28,0,0,0-.19.3A2.28,2.28,0,0,1,13.35,197.56Zm-1.57,1.9.31-.21Zm-.48.36.11-.08ZM13,199Zm1.72-.65q11.71-11.81,23.45-23.61H27.47l-2.12-.12V129.2l24.23,21.7.86.74h0a3.28,3.28,0,0,0,1.36,1.26,20.2,20.2,0,0,0,3.4,3,3.08,3.08,0,0,0,1.3,1.2h0l2.93,2.59c1-.81,1.88-1.66,2.78-2.53-.9.87-1.83,1.71-2.78,2.53A3.13,3.13,0,0,0,60.77,161l3.4,3h0a2.89,2.89,0,0,0,1.3,1.19h0l3,2.62a2.9,2.9,0,0,0,1.32,1.22h0l3,2.62a1.39,1.39,0,0,0,.63-.14,1.39,1.39,0,0,1-.63.14,4.54,4.54,0,0,0,1.73,1.58h0l1.19,1.27-3.32.19H38.14Q26.41,186.53,14.69,198.33Zm48.39.63c.15-.15.3-.29.46-.43C63.38,198.67,63.23,198.81,63.08,199Zm36.42-.13.43-.39Z"/><path class="cls-1" d="M182.06,98.7l0-2.15a6.76,6.76,0,0,0-1.45-4.65,2.37,2.37,0,0,1-1.29-.81L173.88,91l-2.15,0-6.39,0-2.15,0-6.38,0-2.15,0-6.39,0-2.15,0-6.38,0-2.15,0-6.38,0-2.15,0-2.14.16,0-.15-4.28,0-2.15,0-6.38,0-2.15,0-6.38,0-2.15,0A5.28,5.28,0,0,0,100,94.41q0,1.07,0,2.15,0,3.19,0,6.39l0,2.15q0,3.19,0,6.39l0,2.15a5.42,5.42,0,0,0,1.8,3.74l1.29.69,5.92.24,1.69-.3a1.74,1.74,0,0,1,0-.38,1.74,1.74,0,0,0,0,.38l.44.34,1.71-.22,4.7.19,1.72-.13,6.82.13,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0,6.4,0,3-.89.84-.81c.27-1,1-1.88.94-3q0-3.19,0-6.39l0-2.15Q182,101.89,182.06,98.7ZM126.9,91.08a2.68,2.68,0,0,1,0,.44,2.67,2.67,0,0,0,0-.44Zm-.05.68a2.62,2.62,0,0,1-.15.49A2.62,2.62,0,0,0,126.85,91.76Zm-2.57,3.44-.71.66Zm-1.43,1.32-.53.5Zm-1,1,0,0Zm-2.63,13.39a2.49,2.49,0,0,0,.91-1.4A2.49,2.49,0,0,1,119.18,110.91Zm51.7-2-6.41,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.13,0-6.4,0-2.14,0-6.42.23,0-.19-1.69.26h0l-.44-.28-1.28.21h0l-5.13-.18-2.13,0c-1.53.35-2.21-.13-2.1-1.81a52.39,52.39,0,0,0,0-5.5c0-1.12.22-1.68,1.5-1.64,2.75.09,5.5.06,8.26.07l1.29-.12h0l.85.14,1.27-.15c.14-.28.22-.62.38-.87-.16.25-.24.59-.38.87h3l2.12.13,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0,6.39,0,2.16,0c.72,0,.78.45.76,1q-.07,2.87-.14,5.74C173.32,108.52,172.78,109.33,170.88,108.92Z"/><path class="cls-1" d="M182,70.94q0-3.19,0-6.39l0-2.15q-.08-2.48-.16-5l-1.24-1.83a7.45,7.45,0,0,0-4.2-1.3l-2.14,0-6.4,0-2.14,0-6.4,0-2.14,0-6.4,0-2.14,0-6.4,0-2.14,0-2.56,0-.42.18a4,4,0,0,1,0,.55,4,4,0,0,0,0-.55l-3.42-.17-2.13,0-6.4,0-2.14,0-6.4,0-2.14,0-6.4,0-2.14,0c-4.56.33-5.75,1.5-6.06,6l0,2.15,0,6.38L100,71l0,6.39.44,1.73A5.47,5.47,0,0,0,103,81.6l2.14.11,6.38,0,2.15,0,6.39,0,1.29-.12a5.15,5.15,0,0,1,1.79-2.4,5.15,5.15,0,0,0-1.79,2.4l.86.14,1.27-.15A12.11,12.11,0,0,1,126,78.38a12.11,12.11,0,0,0-2.53,3.17l5.12.12,1.29-.09,7.24.09,2.15,0,6.38,0,2.15,0,6.38,0,2.15,0,6.39,0,2.15,0,6.39,0,2.15,0c2.4-.34,5,.53,7.2-1.11l.3-.31c1.58-2.21.8-4.79,1.11-7.19ZM136.68,56.82a5.87,5.87,0,0,1-.36.57A5.87,5.87,0,0,0,136.68,56.82Zm.49-1.52c0,.08,0,.17,0,.25C137.16,55.47,137.16,55.39,137.17,55.3ZM123.4,79l.45-.41Zm5.18-3c.25-.26.49-.52.72-.8C129.07,75.45,128.83,75.72,128.58,76Zm38.05-3.37-2.16,0-6.38,0-2.15,0-6.39,0-2.15,0-6.39,0-2.15,0-6.39,0-.43.13h-.86l-.85-.14-1.27.15-5.12-.13-2.15,0-6.39,0-2.15,0c-4.17.27-4.17.27-4.17-3.91,0-5,0-5,5.08-5l6.78,0,2.13,0,6.4,0,1.69-.25c.68-2.23,2.67-3.34,4.17-4.87-1.49,1.53-3.49,2.64-4.17,4.87l.44.29,1.27-.23c.09-.19.15-.42.25-.59-.1.17-.16.4-.25.59a5.49,5.49,0,0,0,2.58,0l2.55.19,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0,6.4,0,2.13,0a40,40,0,0,1,6.79,0c.74.77.36,1.67.29,2.54C173.34,72.85,173.34,72.85,166.63,72.6Z"/></g></g></svg>
assets/images/welcome/Guest-Posting.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 225.02"><defs><style>.cls-1{fill:#667e9f;}.cls-2{fill:#67cf87;}.cls-3{fill:#92a4bb;}.cls-4{fill:#fdcc8d;}.cls-5{fill:#fe6463;}.cls-6{fill:#fe5654;}.cls-7{fill:#f5b574;}</style></defs><title>Asset 4</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="o2aSXG.tif"><path class="cls-1" d="M200,160.86v.88c-.13.16-.36.3-.39.48-1.22,6.78-5.26,11.28-11.15,14.61-12.09,6.83-24.05,13.9-36.08,20.84q-18.79,10.86-37.61,21.67-.47-15.18-1-30.36c0-.92.12-2-1.22-2.2,0-2,0-4.08,0-6.13,0-1-.29-1.54-1.39-1.26l-1.43-.22c-.13-3.07-.23-6.14-.39-9.21a2.18,2.18,0,0,1,1.08-2.18,33.48,33.48,0,0,0,6.69-6.3c8.07-9.32,14.54-19.8,21.6-29.85a9.2,9.2,0,0,0,.77-1.8l0-.11-.11,0,.25-.53a5.69,5.69,0,0,0-3-5.46c-2.07-1.11-4.1,0-5.85,1.38-.58.45-1.13.93-1.68,1.4-2.62,2.22-5.22,4.47-7.87,6.65a20.69,20.69,0,0,1-4.42,3.36c-3.17-13.65-.9-27.24-1-40.75h34.92c2.19,0,3.87-.68,4.43-3a4.14,4.14,0,0,0,.37-2.56q0-15.15,0-30.3c0-3.83-1.63-5.4-5.54-5.4H49.73c-3.72,0-5.3,1.62-5.3,5.4q0,15.15,0,30.3a4.13,4.13,0,0,0,.37,2.56c.58,2.48,2.38,3,4.63,3q27.83,0,55.66,0-.22,11.19-.46,22.38c0,.52.17,1.37-.74,1.26s-.53-.92-.51-1.44c.08-1.68.28-3.36.34-5,.13-3.42-1.92-5.81-5-6s-5.29,2.12-5.51,5.56c-.12,1.9-.24,3.8-.41,5.69-.06.66.26,1.74-.84,1.69-1.37-.06-.66-1.19-.63-1.87.07-1.6.43-3.22,0-4.8a5.08,5.08,0,0,0-5.22-3.55,5.24,5.24,0,0,0-5,4.49c-.31,1.72-.36,3.49-.52,5.24-.07.74-.32,1.32-1.2,1.2s-.64-.84-.68-1.39c0-.36,0-.73,0-1.1,0-3.37-1.8-5.58-4.73-5.74-3.18-.17-5.53,1.91-5.77,5.29a79.35,79.35,0,0,0-.28,8.11c.32,10.39.74,20.77,1.13,31.16.14,3.65.53,7.51,3.14,10.05,2.84,2.75,2.53,5.77,2.42,9,0,.8-.06,1.61-.1,2.41-2.82.42-1.17,2.54-1.49,3.91l-.1,3.88c-1.44.15-1.38,1.3-1.46,2.29q-.86,11-1.66,21.92c-19.68-11.37-39.34-22.78-59.07-34.08C3.47,172.22,0,166,0,157.68q0-44.93,0-89.85C0,59,3.59,52.68,11.28,48.28,33.49,35.58,55.56,22.63,77.76,9.92,84.18,6.25,90.16,1.65,97.6,0h4.83a37.89,37.89,0,0,1,8.63,3.42c8.18,4.83,16.43,9.53,24.65,14.29q26.57,15.36,53.14,30.69c5.42,3.11,9.17,7.37,10.61,13.54.14.6-.2,1.36.53,1.79v.44c-.66.75-.43,1.67-.43,2.52q0,45.83,0,91.65C199.57,159.19,199.33,160.11,200,160.86Z"/><path class="cls-2" d="M114.78,219.33a46.34,46.34,0,0,1-11,5.69H95.84c-9.2-3.89-17.48-9.42-26-14.53q.82-11,1.66-21.92c.08-1,0-2.14,1.46-2.29l4,0,1.74.07c5.87.4,11.74.42,17.62.33h6.57l1.79,0a54.25,54.25,0,0,0,8,0c1.35.21,1.19,1.28,1.22,2.2Q114.31,204.15,114.78,219.33ZM77.66,199.22a3.24,3.24,0,0,0,3.24-3.39,3.32,3.32,0,0,0-3.38-3.06,3.23,3.23,0,1,0,.14,6.46Z"/><path class="cls-3" d="M200,160.86c-.67-.75-.43-1.67-.43-2.52q0-45.83,0-91.65c0-.85-.23-1.77.43-2.52Z"/><path class="cls-4" d="M74.56,178.49c0-.8.07-1.61.1-2.41.1-3.23.41-6.25-2.42-9-2.61-2.54-3-6.41-3.14-10.05-.39-10.39-.81-20.77-1.13-31.16a79.35,79.35,0,0,1,.28-8.11c.24-3.38,2.59-5.47,5.77-5.29,2.93.16,4.75,2.37,4.73,5.74,0,.37,0,.73,0,1.1,0,.55-.16,1.27.68,1.39s1.13-.46,1.2-1.2c.16-1.75.21-3.52.52-5.24a5.24,5.24,0,0,1,5-4.49,5.08,5.08,0,0,1,5.22,3.55c.44,1.58.07,3.2,0,4.8,0,.68-.74,1.81.63,1.87,1.1.05.78-1,.84-1.69.17-1.89.29-3.79.41-5.69.22-3.44,2.46-5.7,5.51-5.56s5.15,2.53,5,6c-.06,1.68-.26,3.36-.34,5,0,.52-.34,1.33.51,1.44s.73-.74.74-1.26q.25-11.19.46-22.38l.06-3.06.27-3.48a12.68,12.68,0,0,1,.58-4A8.31,8.31,0,0,1,109.53,83a8.68,8.68,0,0,1,4,.5A6.55,6.55,0,0,1,116,89c0,1.23,0,2.46,0,3.7a6.64,6.64,0,0,0-.16,3.08c.1,13.51-2.18,27.1,1,40.75a20.69,20.69,0,0,0,4.42-3.36c2.65-2.18,5.25-4.43,7.87-6.65.56-.47,1.11-1,1.68-1.4,1.74-1.36,3.77-2.49,5.85-1.38a5.69,5.69,0,0,1,3,5.46l-.25.53.11,0,0,.11-1.24-.25a3.16,3.16,0,0,0-.62-2.72,2.19,2.19,0,0,0-1-1.17c-2.41-1.78-3.83-1.4-6.38,1.83-1.45,1.84.67,2.19,1.37,3.13l1.17,1.15c.86,1.51,1.8,1.57,3,.26a24.18,24.18,0,0,1,2.21-2,5.58,5.58,0,0,1-1.56,3.07c-4.27,5.56-8.47,11.18-12.84,16.65-4.83,6-9.59,12.18-16.1,16.59a3,3,0,0,0-1.16,2.68,91.88,91.88,0,0,0,.47,10.05l-4,.14a4.29,4.29,0,0,0-2.27-.11,34.94,34.94,0,0,0-6.51-.1L91.87,179H85.31l-1.8,0-7,0Zm36.18-87.8c3.59.52,3.68.44,3.5-3.25-.2-2.1-1.57-3.1-3.92-2.86s-3.32,1.53-3.07,4.53C107.48,91.69,109.43,90.52,110.75,90.69Z"/><path class="cls-5" d="M116,92.73c0-1.23-.06-2.46,0-3.7a6.55,6.55,0,0,0-2.5-5.53,8.9,8.9,0,0,0-3.21-7.29,26.19,26.19,0,0,1-4.27-4.6l-.47-1.73c-.09-1.82.72-2.83,2.6-2.85l1.25.79a2.61,2.61,0,0,1,.09.65c-.26,2.34,1.21,2.49,2.89,2.21,1.92-.31,1-1.81.92-2.77a3.88,3.88,0,0,0-1.57-3,2.43,2.43,0,0,0-1.39-1c-2.58-1-5.15-1-7.06,1.14s-2.1,5-1,7.76a1.34,1.34,0,0,0,.49,1.08c.62,1.73,2.06,2.78,3.31,4,1.52,1.46,3.16,2.85,3.42,5.15A8.33,8.33,0,0,0,106,85.32c-.68-.81-.49-1.8-.54-2.73-.08-1.48-1.23-1-2-1s-1.77-.41-1.92,1.06a6,6,0,0,0,3.86,6.59l-.27,3.48c-6.15,0-12.29.13-18.44.12q-21,0-41.92-.1a4.13,4.13,0,0,1-.37-2.56q0-15.15,0-30.3c0-3.78,1.58-5.4,5.3-5.4H150.06c3.91,0,5.53,1.58,5.54,5.4q0,15.15,0,30.3a4.14,4.14,0,0,1-.37,2.56ZM85.52,74.3a4.68,4.68,0,0,0,0-2.25,9.78,9.78,0,0,0-.73-5.68A2,2,0,0,0,83.73,65c-1.84-1.82-4.14-1.27-6.34-1.22-3.78-.28-4.18.15-3.66,4l0,6.46a4.18,4.18,0,0,0,0,2.33l0,6.46a3.79,3.79,0,0,0,0,2.29c-.35,4.24-.35,4.24,3.19,4,.49.14.84.09.74-.55l0-6.52,0-2.26.53-.4,1.75,0C83.59,79.47,85,78.11,85.52,74.3Zm1.92-4.87a4.07,4.07,0,0,0,0,2.22,36,36,0,0,0,0,6.6l0,1.74c-.18,2.22-.44,4.45.56,6.57a2.56,2.56,0,0,0,1.1,1.52,5.83,5.83,0,0,0,5.37,1.43c3.17-.58,4.32-1.7,4.82-4.69a26.86,26.86,0,0,0,.2-7,4.19,4.19,0,0,0,0-2.32,33.41,33.41,0,0,0,0-6.46,3.14,3.14,0,0,0-.29-1.88,4.41,4.41,0,0,0-3.78-3.48,3.09,3.09,0,0,0-2.21-.32C89.23,63.68,87.53,65.46,87.44,69.43Zm33.88,19.76c1.6.4,1.93-.38,1.62-1.75l0-6.56,0-2.23,0-6.56,0-2.23c-.15-1.92.44-3.08,2.65-2.63a3.12,3.12,0,0,0,.44,0c1.27.07,1.17-.86,1.14-1.64s.4-1.94-1-2c-3.44,0-6.88,0-10.32,0-1.63,0-1,1.28-1.09,2.1s0,1.49,1.2,1.56c3,.17,3,.25,3,3.26,0,.8.07,1.6.11,2.41a1.42,1.42,0,0,0,.32,1.68c-.86,2.34-.34,4.74-.32,7.11a4,4,0,0,0,0,2.22c0,1,0,2-.15,3C118.69,88.87,119.38,89.68,121.32,89.19Z"/><path class="cls-6" d="M44.8,92.79q21,.05,41.92.1c6.15,0,12.29-.08,18.44-.12l-.06,3.06q-27.83,0-55.66,0C47.18,95.82,45.38,95.27,44.8,92.79Z"/><path class="cls-7" d="M106.85,179.13a91.87,91.87,0,0,1-.47-10.05,3,3,0,0,1,1.16-2.68c6.52-4.41,11.28-10.55,16.1-16.59,4.38-5.47,8.58-11.09,12.84-16.65a5.58,5.58,0,0,0,1.56-3.07l.27-.51,1.24.25a9.15,9.15,0,0,1-.76,1.8c-7.06,10.05-13.53,20.53-21.6,29.85a33.48,33.48,0,0,1-6.69,6.3,2.18,2.18,0,0,0-1.08,2.18c.16,3.07.26,6.14.39,9.21l-.77.16Z"/><path class="cls-6" d="M116,92.73l39.2.05c-.56,2.35-2.24,3-4.43,3H115.87A6.65,6.65,0,0,1,116,92.73Z"/><path class="cls-7" d="M139.41,129.76l.25-.53Z"/><path class="cls-5" d="M91.53,85.05l-.19-1.12V77.35l0-1.77L91.36,69a2.46,2.46,0,0,1,1.84-2c1.87.06,2.31,1.28,2.32,2.85l0,2.25,0,6.54,0,2.25c0,.8-.06,1.59-.09,2.39,0,1-.05,2.06-1.22,2.55A2.35,2.35,0,0,1,91.53,85.05Z"/><path class="cls-5" d="M80.31,67.36l1.13,1.22,0,6.12A2.35,2.35,0,0,1,80,76.11c-2.28.41-2.54-1-2.42-2.7q0-1.11,0-2.23a6.06,6.06,0,0,0,.06-1.28C77.29,67.72,78.35,67.08,80.31,67.36Z"/></g></g></g></svg>
assets/images/welcome/My-Account.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 136.08"><defs><style>.cls-1{fill:#5e7889;}.cls-2{fill:#0177a3;}.cls-3{fill:#f6584c;}.cls-4{fill:#fed147;}</style></defs><title>Asset 7</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="IYTXhF.tif"><path class="cls-1" d="M200,115.68c-.78,2.38-1.12,4.88-2.31,7.14-4.37,8.28-11.14,13.09-20.55,13.15-26.82.17-53.64.08-80.46.08-24.67,0-49.34,0-74-.05-11,0-20.6-8.54-22.32-19.45a4,4,0,0,0-.35-.86v-1.56a3.46,3.46,0,0,1,3.3-1.55c4.35,0,8.69,0,13,0H21.8l161.88,0c4.34,0,8.69.09,13,0a3.43,3.43,0,0,1,3.29,1.55ZM99.8,126.56c3.51,0,7,0,10.54,0,1.44,0,2.44-.76,2.4-2.24s-1-2-2.4-2h-.78c-6.44,0-12.88,0-19.32,0-1.53,0-2.78.31-3,2-.18,1.38,1,2.24,3,2.25Z"/><path class="cls-2" d="M183.68,112.53l-161.88,0H16.34q0-41.78,0-83.56,0-12.3,0-24.6C16.33,1.3,17.64,0,20.73,0H179.26c3.07,0,4.42,1.34,4.42,4.37Q183.69,58.45,183.68,112.53ZM99.93,104q36.62,0,73.23,0c1.84,0,2.22-.53,2.21-2.27q-.08-45.79,0-91.59c0-1.85-.77-1.9-2.18-1.9q-73.14,0-146.27,0c-1.93,0-2.32.53-2.32,2.38q.09,45.6,0,91.2c0,1.87.58,2.2,2.29,2.2Q63.41,104,99.93,104Z"/><path class="cls-3" d="M106.21,50.33c8.35,2.45,14.31,8,19.18,14.92a52.37,52.37,0,0,1,9.1,22.38c.57,3.67-1.22,5.9-5,5.9q-22.56,0-45.11,0c-4.49,0-9,0-13.47,0-4.26,0-6.07-2-5.32-6.27,2.28-12.83,8.08-23.66,18.33-31.9a27.41,27.41,0,0,1,10-5.08A19.77,19.77,0,0,0,106.21,50.33Z"/><path class="cls-4" d="M106.21,50.33A19.77,19.77,0,0,1,94,50.27c-4.8-2.32-8.36-5.81-9.6-11.11-1.55-6.58.18-12.31,5.48-16.61,5-4.05,10.71-4.93,16.63-2.25s9.39,7.45,9.65,14.15c.26,6.86-2.85,11.81-8.78,15.11C106.93,49.78,106.58,50.07,106.21,50.33Z"/></g></g></g></svg>
assets/images/welcome/Post-Taxonomies.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 170.09"><defs><style>.cls-1{fill:#00bd98;}.cls-2{fill:#2e495f;}.cls-3{fill:#01bd99;}.cls-4{fill:#32d4bd;}.cls-5{fill:#2ed2b9;}</style></defs><title>Asset 3</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="jbbCb7.tif"><path class="cls-1" d="M81.26.24h1.19c.47.57,1.14.43,1.75.48q.07,28,.13,56,0,54.64,0,109.28c0,1.1-.08,2.2-.13,3.3H69.29q-.05-30.1-.1-60.2,0-53,0-106c0-.8.06-1.6.09-2.4C73.27.41,77.3,1.27,81.26.24Z"/><path class="cls-2" d="M149.59,77.19c-15.65,0-31.3-.06-47,.06-2.29,0-2.84-.59-2.78-2.81.16-5.91.1-11.84,0-17.76,0-1.66.15-2.45,2.2-2.45q47.86.11,95.72,0c1.71,0,2.2.49,2.17,2.19-.09,6.12-.12,12.24,0,18.36,0,2-.66,2.45-2.55,2.44C181.5,77.16,165.55,77.19,149.59,77.19Z"/><path class="cls-2" d="M149.89,154.27c-15.75,0-31.5-.05-47.25.06-2.28,0-2.84-.58-2.78-2.81.17-5.91.11-11.84,0-17.76,0-1.67.18-2.45,2.21-2.45q47.86.11,95.71,0c1.71,0,2.2.5,2.18,2.19-.09,6.12-.14,12.24,0,18.36,0,2.05-.65,2.44-2.54,2.44C181.6,154.24,165.75,154.27,149.89,154.27Z"/><path class="cls-2" d="M142.3,38.65c-13.25,0-26.49,0-39.74,0-2,0-2.76-.39-2.7-2.59.16-6.12.1-12.24,0-18.36,0-1.53.37-2.05,2-2q40.34.07,80.69,0c1.44,0,2.18.23,2.15,1.94-.09,6.32-.14,12.65,0,19,.05,2.28-1.24,2-2.67,2Z"/><path class="cls-2" d="M134.58,115.73c-10.73,0-21.46,0-32.19,0-1.9,0-2.57-.41-2.52-2.44.14-6.11.11-12.23,0-18.35,0-1.68.43-2.19,2.15-2.19q32.49.08,65,0c2,0,2.22.79,2.2,2.45-.08,6-.11,12,0,18,0,1.93-.45,2.52-2.46,2.5C156,115.67,145.31,115.73,134.58,115.73Z"/><path class="cls-3" d="M0,92.22Q0,85,0,77.8c1.38-.21,2.86.4,4.16-.48h1.2c5.38,1,10.81.18,16.21.44a1.24,1.24,0,0,0,1.22-.67v-15c4.42,3.27,8.52,6.25,12.57,9.31,5.47,4.12,10.83,8.37,16.38,12.39,1.57,1.13,1.26,1.69.05,2.59q-12.07,9-24.13,17.91c-1.49,1.1-2.94,2.26-4.87,3.75,0-5.37,0-10.23,0-15.09-.8-1.16-2-.66-3-.67C13.18,92.21,6.59,92.23,0,92.22Z"/><path class="cls-4" d="M0,92.22c6.59,0,13.18,0,19.77,0,1,0,2.23-.49,3,.67-6.7,0-13.4,0-20.1-.11C1.79,92.8.68,93.38,0,92.22Z"/><path class="cls-5" d="M22.8,77.09a1.24,1.24,0,0,1-1.22.67c-5.4-.26-10.83.61-16.21-.44Z"/><path class="cls-4" d="M69.29,169.3H84.2c-1.23,1.29-2.81.64-4.17.57C76.45,169.67,72.8,170.67,69.29,169.3Z"/><path class="cls-5" d="M81.26.24c-4,1-8,.17-12,.48C73.23-.59,77.26.3,81.26.24Z"/><path class="cls-5" d="M4.17,77.32c-1.3.88-2.78.27-4.16.48C1.28,76.62,2.77,77.32,4.17,77.32Z"/><path class="cls-5" d="M84.2.72c-.61,0-1.28.09-1.75-.48C83.09.2,83.85-.31,84.2.72Z"/></g></g></g></svg>
assets/images/welcome/Profile-Builder.png ADDED
Binary file
assets/images/welcome/Profile-Builder.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 149.35"><defs><style>.cls-1{fill:#8e3d01;}.cls-2{fill:#1a2e3a;}.cls-3{fill:#1f3b4c;}.cls-4{fill:#eb5d38;}.cls-5{fill:#0187db;}.cls-6{fill:#b75924;}.cls-7{fill:#fccb25;}.cls-8{fill:#0471b4;}.cls-9{fill:#c73316;}.cls-10{fill:#04619b;}.cls-11{fill:#fecd23;}.cls-12{fill:#f8b602;}.cls-13{fill:#01a586;}</style></defs><title>Asset 6</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="_6IBkkQ.tif" data-name="6IBkkQ.tif"><path class="cls-1" d="M124.34,35.22c-.16-4.69-.72-9.36-.82-14.07C123.31,10.21,131,2.81,140.13.94c4.84-1,9.63-1,13.75,2.39.64.52,1.11.2,1.65,0,5.46-1.81,10.1-.27,13.84,3.81,4.52,4.92,7.15,10.55,6.13,17.56A102.94,102.94,0,0,0,175,35.28a13.68,13.68,0,0,1-.39,2.34c-.41,1.18-.4,2.75-2.2,2.9A7.28,7.28,0,0,1,171,37.21l-.21-2a10.55,10.55,0,0,0-.54-4c-.24-1-.66-1.13-1.49-.4-1.55,1.37-3.2,2.63-4.81,3.93-5.55,2.68-11.34,2.83-17.26,1.64-2-.39-3-1.45-2.89-3.65a16.79,16.79,0,0,0-1.41-8.26c-1.9-4.09-5-4.58-8.05-1.31a7.94,7.94,0,0,0-.51.63c-3.49,4.57-6,9.55-6.2,15.44,0,.42.18,1.07-.49,1.12-.42,0-.6-.47-.77-.83Z"/><path class="cls-2" d="M25.83,35.24c-.43-3.93-.81-7.86-1.29-11.78C23.47,14.56,27.42,7,35.54,3,43-.74,50.63-1.29,58,3.14A17.61,17.61,0,0,0,65.37,6c6.49.8,9.61,5.79,11.34,11.63,1.08,3.64.31,7.33-.07,11-.23,2.2-.61,4.38-.92,6.57-.22,1-.36,2.11-.67,3.12-.24.78-.25,2-1.25,2.05s-.77-1.24-1.15-1.9a2.63,2.63,0,0,0-.27-1.64,14.22,14.22,0,0,0-1.09-6c-.13-.48-.12-1-.52-1.4-.74-2.71-.74-2.7-3.19-1.55-1.13.53-2.26,1-3.39,1.56l-2.77,1-7.26,1.3a5.73,5.73,0,0,0-2.42.21l-3.66-.16a.32.32,0,0,0-.36,0l-1.63-.14c-2-.62-3.4-1.38-3.36-4,0-2.42-2.14-3.78-4.69-3.55a8.3,8.3,0,0,0-7.21,5,20.4,20.4,0,0,0-1.81,9,3.54,3.54,0,0,1-.57,2.73C26.75,39.29,26.76,37,25.83,35.24Z"/><path class="cls-3" d="M99,149.15a114.52,114.52,0,0,1-15.5-.5,133.18,133.18,0,0,1-26.85-4.77c-.9-.27-1.79-.54-2.68-.84-4.9-1.67-4.91-1.67-4.57-6.77a93.89,93.89,0,0,1,1.82-14.35c.37-1.14.66-2.32,1.11-3.43.82-2,1.83-4.09,4-4.75,4.34-1.29,8.77-2.29,13.16-3.41.45,0,.67.32.95.64,3.48,4.07,6.94,8.16,10.48,12.17,1.9,2.15,2,2.09-.13,3.94-.2.18-.41.35-.62.51-2.17,1.6-2.17,1.6-.2,3.51.24.23.48.47.73.7q8.63,7.84,17.25,15.68C98.43,147.94,99,148.37,99,149.15Z"/><path class="cls-3" d="M148.93,121.95a99.45,99.45,0,0,1,1.82,17.35,2.54,2.54,0,0,1-2,2.83,106.33,106.33,0,0,1-22.14,5.31,173.49,173.49,0,0,1-24.23,1.8c-.46,0-.93-.06-1.39-.1a1.94,1.94,0,0,1,.9-1.48c5.9-5.24,11.83-10.44,17.66-15.74,3.09-2.81,3.05-2.95-.41-5.4-1.21-.86-1.2-1.37-.23-2.46,4.05-4.53,8-9.16,12-13.75l3.22.79A102.22,102.22,0,0,0,145,114h0c0,.29.2.37.42.42l1.7,1.92C147.14,118.36,148.6,120,148.93,121.95Z"/><path class="cls-4" d="M180.46,82.5c.77,1.12,2.06.64,3.08,1,2.92,1,5.88,1.81,8.83,2.69a6.7,6.7,0,0,1,4.09,3.92c1.89,3.93,2.49,8.19,3,12.45.35,3.07.44,6.16.55,9.26.06,1.69-.6,2.33-2,2.86a99.38,99.38,0,0,1-19.45,4.9,168.08,168.08,0,0,1-26.27,2.18,7.52,7.52,0,0,1-.8-.08l0-1.62,5.84-5.2c4.45-4,8.89-7.92,13.36-11.85.87-.76,1.35-1.3,0-2.08a23.11,23.11,0,0,1-2.37-1.85c-.93-.73-1.29-1.36-.21-2.39s2.1-2.6,3.25-3.81C174.51,89.54,177.13,85.71,180.46,82.5Z"/><path class="cls-5" d="M47.26,121.66c-15.56-.1-30.86-1.77-45.58-7.19A2.09,2.09,0,0,1,0,112c.35-6.76.6-13.51,2.79-20,1.16-3.44,3.12-5.74,6.93-6.39,3-.51,5.94-1.51,8.91-2.29,1.11,1.65,3,2.5,4.24,4,2.86,3.28,6.61,5.65,9.42,9C33.21,97.4,34,98,32,98.69a46.35,46.35,0,0,0-4.53,2.2c-1.24.57-1.27,1.16-.3,2,2.22,2,4.38,4.15,6.61,6.18s4.61,3.89,6.73,6S45.28,119.2,47.26,121.66Z"/><path class="cls-6" d="M78.54,36.6c.57.16.84-.31,1.19-.59,9.09-7.35,19.17-8.47,30-4.7a7.22,7.22,0,0,1,2.13,1.1c2.77,2.22,5.95,3.74,9,5.49,3,2.92,5,6.28,5.17,10.56-.73,2.54-.32,5.21-.8,7.78v6.39c-.39,1.38-.77,2.77-1.18,4.14-.26.87-.64,1.53-1.66.76,1-1.68,1-3.17-.79-4.34-.2-4-1.76-7.69-2.82-11.49-.38-1.36-.91-1.66-2.28-1.06a46.09,46.09,0,0,1-8.86,2.62c-3.16.67-5.38-.46-5.69-3.13a2.88,2.88,0,0,0-2.81-2.81c-4.42-.73-8.8-.27-13.22.25s-6,2.18-7.11,7.32a38.16,38.16,0,0,0-.45,8.63c-1.19,1.24-.89,2.6-.34,4-.4,1.33-.89.29-1-.05-.68-1.57-1.26-3.18-1.87-4.78a92.55,92.55,0,0,0-.85-11.2,32.84,32.84,0,0,1,.94-9.34Z"/><path class="cls-2" d="M130.88,110.31c-4,4.59-7.93,9.22-12,13.75-1,1.09-1,1.61.23,2.46,3.47,2.45,3.51,2.59.41,5.4-5.84,5.3-11.76,10.51-17.66,15.74a1.94,1.94,0,0,0-.9,1.48,2.68,2.68,0,0,1-2,0c0-.78-.52-1.21-1-1.66q-8.62-7.85-17.25-15.68c-.25-.23-.49-.46-.73-.7-2-1.91-2-1.91.2-3.51.22-.16.42-.33.62-.51,2.1-1.85,2-1.79.13-3.94-3.54-4-7-8.1-10.48-12.17-.27-.32-.49-.63-.95-.64-.11-.9.47-1.29,1.17-1.63,1.21-.57,2.36-1.27,3.6-1.76,3-1.19,6-2.69,9.33-2.67a5.52,5.52,0,0,0,.7,2.47,71.72,71.72,0,0,0,3.36,10.86,1.56,1.56,0,0,0,.44,1.21,22.08,22.08,0,0,0,1.66,4.43,3.25,3.25,0,0,0,.7,1.63,49.76,49.76,0,0,0,3.25,8,36.19,36.19,0,0,0,3.07,6.65,25.44,25.44,0,0,0,2.14,4.32c.66,1.21,1.23,1,1.87,0a28.45,28.45,0,0,0,3.08-5.17,27.81,27.81,0,0,0,3.14-6.12,68.71,68.71,0,0,0,4.9-12.12,10.53,10.53,0,0,0,1.14-3.24,63.47,63.47,0,0,0,2.87-8.88,6.67,6.67,0,0,0,.83-2.82l.55-1.33A38.82,38.82,0,0,1,130.63,109C131.34,109.38,131.13,109.81,130.88,110.31Z"/><path class="cls-7" d="M126,48.45c-.17-4.28-2.22-7.64-5.17-10.56.65-1.57,1.59-2.77,3.51-2.68l2,4.38c.17.37.36.87.77.83.68-.05.48-.71.49-1.12.23-5.89,2.7-10.87,6.2-15.44a7.94,7.94,0,0,1,.51-.63c3.07-3.27,6.16-2.77,8.05,1.31a16.79,16.79,0,0,1,1.41,8.26c-.14,2.2.93,3.26,2.89,3.65,5.91,1.19,11.71,1,17.26-1.64,0,1-.87,1.47-1.46,2.07q-12.64,12.68-25.31,25.34c-.56.56-1,1.21-1.56,1.82-2.39-2.74-3.89-6.07-6-9C131.46,51.31,130.07,48.78,126,48.45Z"/><path class="cls-8" d="M47.26,121.66c-2-2.46-4.57-4.3-6.78-6.53s-4.5-4-6.73-6-4.39-4.14-6.61-6.18c-1-.89-.95-1.48.3-2A46.35,46.35,0,0,1,32,98.69c2.05-.68,1.24-1.29.33-2.36-2.82-3.35-6.56-5.71-9.42-9-1.29-1.47-3.14-2.32-4.24-4,1.09-.21,1.62-1.24,2.41-1.73a38.45,38.45,0,0,1,12.62-4.87,1.54,1.54,0,0,1,.58.13,17.86,17.86,0,0,0,1.29,4c0,.44-.05.9.34,1.23a21.46,21.46,0,0,0,1.37,4.81l.53,1.69a18.12,18.12,0,0,0,1.46,4,3.09,3.09,0,0,0,.65,1.66L41.71,99l.54,1.3a29.45,29.45,0,0,0,2.52,5.81c1.13,3.57,3.18,6.73,4.55,10.2a13.72,13.72,0,0,0-1.67,5.38Z"/><path class="cls-7" d="M172.43,40.52c1.8-.15,1.79-1.72,2.2-2.9a13.68,13.68,0,0,0,.39-2.34c2.08.43,2.6,1.86,2.77,3.79.35,4-1.06,7.43-2.55,10.92-2.51-1.81-4.48-2-6.12-.55s-1.79,3.46-.34,5.92c-.45.66-.91,1.31-1.34,2-2.65,4-5.29,8-9.15,11-4.57,3-9.46,3.12-14.53,1.63.48-.55.94-1.13,1.45-1.65q12.93-13,25.88-25.9C171.64,41.89,172.41,41.46,172.43,40.52Z"/><path class="cls-7" d="M25.83,35.24c.93,1.8.92,4,2.6,5.58A3.54,3.54,0,0,0,29,38.09a20.4,20.4,0,0,1,1.81-9,8.3,8.3,0,0,1,7.21-5c2.55-.22,4.73,1.13,4.69,3.55,0,2.6,1.4,3.36,3.36,4,0,.93-.77,1.37-1.32,1.92q-7.94,8-15.9,15.93c-.56.56-1.27,1-1.41,1.89-1.12.06-1.66-.76-2.18-1.53a17.33,17.33,0,0,1-3-10.81C22.37,36.65,23.47,35.57,25.83,35.24Z"/><path class="cls-9" d="M180.46,82.5c-3.33,3.21-6,7-9.14,10.37-1.15,1.2-2.05,2.66-3.25,3.81s-.73,1.67.21,2.39a23.11,23.11,0,0,0,2.37,1.85c1.33.78.85,1.31,0,2.08-4.48,3.93-8.91,7.89-13.36,11.85l-5.84,5.2a11.52,11.52,0,0,1-1.22-3.17c4.72-3.81,8.86-8.1,11.3-13.78a8.76,8.76,0,0,0,1.27-3.22,74.87,74.87,0,0,0,3.65-9.71,9.54,9.54,0,0,0,1.16-3.22,60.17,60.17,0,0,0,2.89-8c.39-.35.44-1.11,1.3-.88,2.8.75,5.62,1.46,8,3.17A1.3,1.3,0,0,1,180.46,82.5Z"/><path class="cls-10" d="M47.65,121.7a13.71,13.71,0,0,1,1.67-5.38c1,1.12,1.81.78,2.5-.32,1.19-1.88,2.36-3.78,3.53-5.67a41.41,41.41,0,0,0,10.92-2.95c3.1-1.48,6.14-3.14,9.26-4.63,2.74-.84,5.59-1.37,8.15-2.73,1.12-.6,2.68-1.14,3.07-2.11.54-1.33-1.3-2.06-2.08-3-2-2.44-3.17-5.45-5.5-7.62-.92-2.24-1.71-4.41-4.36-5.45-1.78-.69-3.46-2-3.57-4.33,1.43,0,2.62,1.08,4.08,1,0,.39.37.3.59.4a8.06,8.06,0,0,0,2.85,1.19l0,0,.37.34c1,1.53,1.9,3.07,2.87,4.6,2.68,4.23,5.05,8.71,9.36,11.62l-.1,3.58h-.75c-.78-.59-1.16.27-1.71.47-2,.76-3.23,2.74-5.19,3.61-3.37,0-6.31,1.48-9.33,2.67-1.24.49-2.39,1.19-3.6,1.76-.71.34-1.28.73-1.17,1.63-4.39,1.12-8.82,2.12-13.16,3.42-2.21.66-3.22,2.73-4,4.75-.45,1.11-.75,2.28-1.11,3.43Z"/><path class="cls-11" d="M64.18,29.45c1.13-.52,2.27-1,3.39-1.56C70,26.73,70,26.73,70.77,29.43a15.88,15.88,0,0,1-1.12,1.4Q53.76,46.74,37.86,62.62a14,14,0,0,1-1.08.89,16.62,16.62,0,0,1-2.41-3.64,3,3,0,0,0,.5-.33L63.43,31C63.86,30.57,64.3,30.15,64.18,29.45Z"/><path class="cls-11" d="M71.29,30.83a14.22,14.22,0,0,1,1.09,6c-1,0-1.49.85-2.09,1.45Q56.36,52.19,42.44,66.11c-.6.6-1.08,1.42-2.09,1.46A7.66,7.66,0,0,1,38,65.13c0-1,.88-1.47,1.48-2.07Q54.55,47.94,69.66,32.85A5.71,5.71,0,0,0,71.29,30.83Z"/><path class="cls-11" d="M78.54,36.6l-3.35,5.54c-.87-.06-1.3.62-1.8,1.13Q60.71,55.92,48.05,68.6c-.51.51-1.18.93-1.18,1.79-1.72.09-3.15-.92-4.77-1.21a.81.81,0,0,1-.09-.37,6.36,6.36,0,0,1,.59-.8L71.31,39.27a1.92,1.92,0,0,1,1.34-.79c.38.66.25,1.92,1.15,1.9s1-1.27,1.25-2.05c.32-1,.46-2.08.67-3.12A3,3,0,0,1,78.54,36.6Z"/><path class="cls-1" d="M158.29,68.35c3.86-3,6.5-7,9.15-11,.44-.66.9-1.32,1.34-2,3,1.92,4.59,1.66,6.84-1.11a20,20,0,0,0,2.84,7.4c.68.94,0,1.3-.57,1.74-3.72,3.08-8.11,4.79-12.66,6.16-2.16.65-4.38,1.11-6.57,1.65A6,6,0,0,1,158.29,68.35Z"/><path class="cls-11" d="M54.14,31.73l7.26-1.3c0,.86-.7,1.27-1.21,1.78Q47.79,44.63,35.37,57c-.56.56-1.05,1.26-2,1.28a12.68,12.68,0,0,1-1.92-3.18c.52-.61,1-1.25,1.57-1.81q9.83-9.85,19.67-19.69C53.28,33.07,54,32.64,54.14,31.73Z"/><path class="cls-12" d="M158.29,68.35a6,6,0,0,0,.37,2.84,13,13,0,0,0,.54,3.62c-1.53,1.41-3.56,2.09-5.11,3.41-2.82,2.4-5.54,3-8.44.22,0,0-.13,0-.19,0l-1.69-1.09-3.29-2.08-.19-.46a8.34,8.34,0,0,0,.19-3.19l.12-2.45,3.16.84C148.83,71.47,153.72,71.32,158.29,68.35Z"/><path class="cls-11" d="M27.43,51.35c.14-.88.86-1.33,1.41-1.89q7.94-8,15.9-15.93c.55-.55,1.31-1,1.32-1.92l1.63.14.36,0,3.66.16c0,.86-.62,1.29-1.13,1.8Q41.3,43,32,52.33c-.46.46-.85,1.07-1.61,1.09a4.41,4.41,0,0,1-.65-1A1.61,1.61,0,0,0,27.43,51.35Z"/><path class="cls-12" d="M42.1,69.18c1.62.28,3.06,1.3,4.77,1.21.46.55,1.1.36,1.68.39,3.84.24,7.58-.09,11-2l.64,4-.84.46-.63.32-.15,0a31.52,31.52,0,0,0-6.47,2.1l-1.94,0a.91.91,0,0,0-.9-.34L44.46,73.7l-1.24-.41L42,72.8Z"/><path class="cls-7" d="M71.29,30.83a5.71,5.71,0,0,1-1.63,2Q54.56,48,39.47,63.06c-.6.6-1.44,1.06-1.48,2.07a3.5,3.5,0,0,1-1.21-1.62,14,14,0,0,0,1.08-.89q15.9-15.88,31.78-31.78a15.88,15.88,0,0,0,1.12-1.4C71.17,29.81,71.16,30.35,71.29,30.83Z"/><path class="cls-7" d="M72.65,38.48a1.92,1.92,0,0,0-1.34.79L42.59,68a6.36,6.36,0,0,0-.59.8,4.11,4.11,0,0,1-1.65-1.24c1,0,1.48-.86,2.09-1.46q13.93-13.9,27.85-27.82c.6-.6,1.08-1.42,2.09-1.45A2.63,2.63,0,0,1,72.65,38.48Z"/><path class="cls-7" d="M33.4,58.32c.92,0,1.41-.71,2-1.28Q47.79,44.63,60.2,32.21c.51-.51,1.19-.92,1.21-1.78l2.77-1c.12.7-.32,1.12-.75,1.56L34.87,59.54a3,3,0,0,1-.5.33A3.52,3.52,0,0,1,33.4,58.32Z"/><path class="cls-13" d="M175.62,54.24c-2.25,2.77-3.87,3-6.84,1.11-1.45-2.46-1.33-4.46.34-5.92s3.61-1.26,6.12.55A9.13,9.13,0,0,1,175.62,54.24Z"/><path class="cls-7" d="M30.39,53.41c.77,0,1.15-.63,1.61-1.09Q41.31,43,50.59,33.75c.51-.51,1.16-.95,1.13-1.8a5.72,5.72,0,0,1,2.42-.21c-.1.91-.86,1.33-1.42,1.89Q42.9,43.48,33.05,53.32c-.56.57-1.05,1.21-1.57,1.81A3.83,3.83,0,0,1,30.39,53.41Z"/><path class="cls-1" d="M150.2,116.86a11.54,11.54,0,0,0,1.22,3.17l0,1.62-2.53.3c-.33-2-1.79-3.59-1.81-5.66,1-.3,1.55,1.82,2.71.44A.81.81,0,0,0,150.2,116.86Z"/><path class="cls-11" d="M135.63,64.05c.52-.61,1-1.26,1.56-1.82q12.65-12.67,25.31-25.34c.59-.6,1.44-1.05,1.46-2.07,1.61-1.3,3.26-2.56,4.81-3.93.83-.73,1.25-.6,1.49.4a10.55,10.55,0,0,1,.54,4c-.93,0-1.36.8-1.91,1.35q-14.52,14.49-29,29a4.83,4.83,0,0,0-1.4,1.69A9.41,9.41,0,0,1,135.63,64.05Z"/><path class="cls-11" d="M143.76,70l-3.16-.84-.86-.82c0-.85.7-1.27,1.21-1.77q14-14,28.07-28.08c.56-.56,1.06-1.24,2-1.26a7.28,7.28,0,0,0,1.44,3.32c0,.93-.79,1.36-1.34,1.91q-12.93,13-25.88,25.9C144.69,68.85,144.24,69.43,143.76,70Z"/><path class="cls-7" d="M171,37.21c-.91,0-1.41.7-2,1.26q-14,14-28.07,28.08c-.51.51-1.19.92-1.21,1.77a2.59,2.59,0,0,1-1.26-1,4.83,4.83,0,0,1,1.4-1.69q14.49-14.51,29-29c.55-.55,1-1.31,1.91-1.35Z"/><path class="cls-7" d="M48.05,31.79l-.36,0A.32.32,0,0,1,48.05,31.79Z"/><path class="cls-6" d="M130.88,110.31c.25-.5.46-.93-.25-1.31a38.8,38.8,0,0,0-13.34-4.82c-1.27-.78-2.33-1.9-3.74-2.47l-1.22-.75a2.5,2.5,0,0,0-2.85-.72c0-1.49-.67-2.91-.48-4.42.7-.62,1.41-1.23,2.1-1.86,3.24-3,5.34-6.81,7.91-10.3.75.15,1.48.33,1.07,1.36-.26.64.13,1.12.29,1.66a2.26,2.26,0,0,1-.55,1.46,33.84,33.84,0,0,1-6,7.51c-1.18,1-1.22,1.67.2,2.46,2.61,1.45,5,3.24,8.08,3.81a28.6,28.6,0,0,1,5,1.93c.07.83.72,1.19,1.27,1.69a41.31,41.31,0,0,1,5.64,5.55Z"/><path class="cls-1" d="M142.6,110.34c.53,1.39,2,2.17,2.41,3.62a102.24,102.24,0,0,1-10.92-2.86,41.28,41.28,0,0,0-5.64-5.55c-.55-.5-1.2-.86-1.27-1.69l3.26,1.26h0a.91.91,0,0,0,.81.41c2.89,3.06,6.9,3.39,10.64,4.39Z"/><path class="cls-1" d="M145,113.95c.32,0,.45.11.42.42C145.2,114.31,145,114.24,145,113.95Z"/><path class="cls-7" d="M119,83.65c-2.57,3.49-4.67,7.33-7.91,10.3-.69.63-1.4,1.24-2.1,1.86a11.06,11.06,0,0,1-4.52,2,23,23,0,0,1-13.15-1.23C87,93.7,84.67,89.22,82,85c-1-1.52-1.91-3.06-2.87-4.6,0-.22-.09-.39-.37-.34l0,0c-.14-2.33-1.93-.73-2.85-1.19-.22-.1-.57,0-.59-.4a18.05,18.05,0,0,1-3.83-11.6c.08-2.66,1.09-3.82,3.6-4.21.62,1.6,1.19,3.21,1.87,4.78.15.34.63,1.38,1,.05,1,.38,1,1.3,1.22,2.14.93,3.35,2,6.7,5.77,7.92,5.62,1.8,10.55-.52,12.83-6,.31-.74.53-1.52.76-2.29s.4-1.9,1.72-1.85,1.33.88,1.55,1.77a15.21,15.21,0,0,0,2.3,5.12,7.87,7.87,0,0,0,4.67,3.29c6.38,1.61,10.55-.88,12.31-7.3.27-1,.07-2.21,1.24-2.82,1,.78,1.41.11,1.66-.76.41-1.38.79-2.76,1.18-4.14,2.62.42,3.34,1.39,3.64,4.95-.5,3.22-1,6.45-2.84,9.24-.59.87-1.17,2.16-2.28,2-2.25-.31-2.8,1.13-3.43,2.68Z"/><path class="cls-7" d="M78.35,63.51a38.16,38.16,0,0,1,.45-8.63c1.09-5.14,2.61-6.8,7.11-7.32s8.79-1,13.22-.25a2.88,2.88,0,0,1,2.81,2.81c.31,2.66,2.53,3.8,5.69,3.13a46.09,46.09,0,0,0,8.86-2.62c1.37-.6,1.9-.3,2.28,1.06,1.05,3.8,2.62,7.48,2.82,11.49a27.49,27.49,0,0,0-14.08-.85c-5.3,1.17-10.46.67-15.72-.2A24.49,24.49,0,0,0,78.35,63.51Z"/><path class="cls-3" d="M78.35,63.51a24.49,24.49,0,0,1,13.42-1.38c5.27.88,10.43,1.37,15.72.2a27.49,27.49,0,0,1,14.08.85c1.8,1.17,1.82,2.66.79,4.34-1.17.6-1,1.83-1.24,2.82-1.75,6.43-5.93,8.91-12.31,7.3a7.87,7.87,0,0,1-4.67-3.29,15.21,15.21,0,0,1-2.3-5.12c-.22-.89-.38-1.72-1.55-1.77s-1.44.95-1.72,1.85-.45,1.55-.76,2.29c-2.28,5.44-7.21,7.76-12.83,6-3.8-1.22-4.84-4.57-5.77-7.92C79,68.79,79,67.88,78,67.5,77.46,66.11,77.17,64.75,78.35,63.51Zm9,.08c-1.06.1-2.2.17-3.33.34a3.14,3.14,0,0,0-2.43,1.61c-1.58,2.87.51,8.89,3.51,10.17a8.42,8.42,0,0,0,11.76-6.46c.36-2.21-.37-3.55-2.5-4.47S89.82,63.78,87.39,63.59Zm25.36,0c-.88.08-2.16.16-3.42.3-5.93.67-7.5,4.1-4.15,9,.15.22.3.45.47.65,2.06,2.48,4.74,3.08,7.81,2.63s4.62-2.38,5.41-5.23C120.34,65.69,118.84,63.7,112.76,63.62Z"/><path class="cls-7" d="M59.58,68.77c-3.45,1.92-7.19,2.25-11,2-.58,0-1.22.15-1.68-.39,0-.85.67-1.28,1.18-1.79Q60.71,55.92,73.39,43.26c.51-.51.93-1.19,1.8-1.13a32.85,32.85,0,0,0-.94,9.34c-.78.1-1.62-.53-2.26.61C68.56,58.16,64.73,64,59.58,68.77Z"/><path class="cls-1" d="M128.85,67.57c-.3-3.56-1-4.53-3.64-4.95q0-3.2,0-6.39c1.82.94,3.11-.17,4.42-1.17,2.11,2.92,3.61,6.25,6,9a9.41,9.41,0,0,0,2.84,3.24,2.59,2.59,0,0,0,1.26,1l.86.82-.12,2.45A43.4,43.4,0,0,1,128.85,67.57Z"/><path class="cls-13" d="M129.63,55.06c-1.31,1-2.59,2.11-4.42,1.17.47-2.57.06-5.23.8-7.78C130.07,48.78,131.46,51.31,129.63,55.06Z"/><path class="cls-9" d="M96.77,139.51a36.19,36.19,0,0,1-3.07-6.65c1.08-4.22,1.66-8.54,2.38-12.83l.4-2.43c.14-1.29,1.44-2.81-.73-3.64l-1.56-1.64,5.3-9.26h1.9l3.18,5.26a2.09,2.09,0,0,0,.72,1.23c.24.78.89,1.46.54,2.37a2.15,2.15,0,0,0-.74,1.22c-.56.88-1.72,1.37-1.35,2.83.64,2.55,1.06,5.15,1.57,7.72l.36,2a39.55,39.55,0,0,0,1.35,6.83,27.8,27.8,0,0,1-3.14,6.12l-3-16.07-.59,0c-.56,3.06-1,6.14-1.72,9.18C97.94,134.39,98.06,137.12,96.77,139.51Z"/><path class="cls-4" d="M96.77,139.51c1.29-2.4,1.18-5.12,1.76-7.68.69-3,1.15-6.12,1.72-9.18l.59,0,3,16.07a28.44,28.44,0,0,1-3.08,5.17c-.64.94-1.22,1.2-1.87,0A25.44,25.44,0,0,1,96.77,139.51Z"/><path class="cls-13" d="M50.18,75.6l1.94,0,2,3.2a2.07,2.07,0,0,0,.77,1.28,14.94,14.94,0,0,0,2,3.59c.32,1-.42,1.67-.8,2.44-.64.53-1.48.87-1.28,2a21,21,0,0,0,.89,4.44c0,.69-.18,1.42.35,2A15.46,15.46,0,0,0,57,99.45a30.25,30.25,0,0,0,.85,5.47c-.46,2-1.82,3.53-2.48,5.42-1.18,1.89-2.34,3.79-3.53,5.67-.69,1.1-1.51,1.44-2.5.32-1.37-3.47-3.42-6.63-4.55-10.2l1.57-8.76.47-2.77c.39-2.45,1.27-4.83,1.15-7.36-3-2.36-3-2.54-1.11-5.75C48,79.54,49.07,77.56,50.18,75.6Z"/><path class="cls-8" d="M55.35,110.34c.66-1.88,2-3.44,2.48-5.42a40.06,40.06,0,0,0,3.61-8.69,60.87,60.87,0,0,0,3.28-9.31,10.45,10.45,0,0,0,1.05-3.23l2.28-7.16,2.63.76.52.22,0,0c.1,2.33,1.79,3.64,3.56,4.33,2.65,1,3.44,3.21,4.36,5.45a22.85,22.85,0,0,1-1.86,2.08,74.43,74.43,0,0,0-7.68,7.26c-.9,1.05-1.06,1.47.4,2.06,1.72.69,3.3,1.71,5,2.51.81.38.91.86.52,1.57-3.12,1.49-6.15,3.15-9.26,4.63A41.41,41.41,0,0,1,55.35,110.34Z"/><path class="cls-5" d="M75.54,102.75c.39-.71.28-1.18-.52-1.57-1.68-.8-3.26-1.82-5-2.51-1.45-.58-1.29-1-.4-2.06a74.43,74.43,0,0,1,7.68-7.26,22.85,22.85,0,0,0,1.86-2.08c2.34,2.17,3.51,5.18,5.5,7.62.78,1,2.62,1.68,2.08,3-.39,1-2,1.51-3.07,2.11C81.13,101.38,78.27,101.91,75.54,102.75Z"/><path class="cls-12" d="M97,102.23a4.44,4.44,0,0,0-2-.7l-3.68-1.33.1-3.58a23,23,0,0,0,13.15,1.23,11.06,11.06,0,0,0,4.52-2c-.19,1.51.48,2.93.48,4.42l-8.1,2.86h-1.9A5.16,5.16,0,0,0,97,102.23Z"/><path class="cls-9" d="M141.89,109.9c-3.74-1-7.75-1.34-10.64-4.39a.89.89,0,0,0-.81-.41h0a1.41,1.41,0,0,0-.53-1c-2.47-2.15-2.47-2.16,0-4.28a5.68,5.68,0,0,1,.95-.74c1.29-.71,1.27-1.35.26-2.45-3.24-3.56-6.36-7.24-9.53-10.87.86-1.75,1.75-3.35,3.92-3.91A3.92,3.92,0,0,0,128,79.62c.79-.74,1.25-.23,1.67.44a6.61,6.61,0,0,0,.77,2.43,2.73,2.73,0,0,0,.48,1.61,24.91,24.91,0,0,0,1.78,5.21,2.18,2.18,0,0,0,.54,1.32,14.86,14.86,0,0,0,1.65,4,3.35,3.35,0,0,0,.74,1.75,17,17,0,0,0,1.64,3.93,1.62,1.62,0,0,0,.47,1.19,13.8,13.8,0,0,0,2,4.45,2,2,0,0,0,.68,1.26Z"/><path class="cls-13" d="M161.87,83.27c-1.28.6-.41,1.91-.91,2.77l-.65.85c-.66.16-1.3.34-1.1,1.25a1.09,1.09,0,0,1-.05.19,40.93,40.93,0,0,1-5.28,5.12c-.92-.18-1.86-.63-2.28.83-.2.69-1,1-1.76,1.17a2.6,2.6,0,0,1-2.51-1.62c-.36-1-.93-.61-1.53-.38L144.17,93c-.38-.55-1-1.06-1.08-1.66-.19-1.13-.94-1.14-1.75-1.21l-.67-.46c-.54-1.4-.93-2.91-2.46-3.63-.34-.76.21-1.7-.48-2.4a3.36,3.36,0,0,1-.76-2.73h0l1.67,1.54a4.71,4.71,0,0,0,1.46,1.68c.39.54.82,1.06,1.16,1.63.93,1.58,2,1.94,3.28.41l.83,2a3.43,3.43,0,0,1,2.68,1.93c1.24.18,2.62,1.18,3.52-.64.14-.28.44-.67.69-.69,1.67-.12,2-1.41,2.41-2.63l1.89,1.46L162,81.13C162.54,82.07,161.87,82.63,161.87,83.27Z"/><path class="cls-4" d="M121.56,85.72c3.17,3.63,6.28,7.31,9.53,10.87,1,1.1,1,1.74-.26,2.45a5.68,5.68,0,0,0-.95.74c-2.44,2.12-2.44,2.13,0,4.28a1.41,1.41,0,0,1,.53,1l-3.26-1.26a28.58,28.58,0,0,0-5-1.93c-3.07-.57-5.48-2.35-8.08-3.81-1.42-.79-1.38-1.45-.2-2.46a33.84,33.84,0,0,0,6-7.51,2.26,2.26,0,0,0,.55-1.46Z"/><path class="cls-1" d="M121.56,85.72l-1.18.95c-.16-.54-.55-1-.29-1.66.41-1-.32-1.21-1.07-1.36l1.29-2.16c2.57-.61,5-1.59,7.69-1.87a3.92,3.92,0,0,1-2.51,2.19C123.31,82.38,122.42,84,121.56,85.72Z"/><path class="cls-4" d="M130.44,105.1a.89.89,0,0,1,.81.41A.91.91,0,0,1,130.44,105.1Z"/><path class="cls-7" d="M87.39,63.59c2.43.19,4.8.23,7,1.19s2.87,2.26,2.5,4.47A8.42,8.42,0,0,1,85.15,75.7c-3-1.28-5.09-7.3-3.51-10.17a3.14,3.14,0,0,1,2.43-1.61C85.2,63.76,86.34,63.69,87.39,63.59Z"/><path class="cls-7" d="M112.76,63.62c6.08.07,7.59,2.06,6.11,7.4-.79,2.85-2.33,4.78-5.41,5.23s-5.75-.15-7.81-2.63c-.17-.21-.32-.43-.47-.65-3.35-4.94-1.77-8.37,4.15-9C110.6,63.78,111.88,63.7,112.76,63.62Z"/><path class="cls-10" d="M71.21,77.51l-.52-.22C70.92,77.24,71.12,77.26,71.21,77.51Z"/></g></g></g></svg>
assets/images/welcome/Registration-form.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 187.5"><defs><style>.cls-1{fill:#c3d1dd;}.cls-2{fill:#c3d1dc;}.cls-3{fill:#fefefe;}.cls-4{fill:#e7ecf0;}.cls-5{fill:#b8c5cf;}.cls-6{fill:#eaf0f3;}.cls-7{fill:#79909d;}.cls-8{fill:#b9c6d1;}.cls-9{fill:#dde1e4;}.cls-10{fill:#00a901;}.cls-11{fill:#c1ceda;}.cls-12{fill:#17182d;}.cls-13{fill:#c2cfdb;}.cls-14{fill:#ccd6de;}.cls-15{fill:#d2dae1;}.cls-16{fill:#007500;}</style></defs><title>Asset 5</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="U3lwsH.tif"><path class="cls-1" d="M0,179.28V8.22c.66-.49.1-1.48.8-1.95,1.6-.05,5.43-2.91,5.73-4.35.07-.33-.18-.73-.28-1.1C6.75.12,7.74.68,8.22,0H191.78c2.65.74,5.09,1.79,6.57,4.32a17.88,17.88,0,0,0-5.79,5.84h-.37c-1.38-1.36-3.15-.53-4.72-.82a3.94,3.94,0,0,1,.52-1c1.53-1.58,3.1-3.11,4.63-4.68.38-.39,1-.85.44-1.44s-1,0-1.31.39Q188.43,6,185.14,9.39l-5.48,0c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L177.33,9.4l-.41,0-5.07-.08c1.26-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.45-1.1,0-1.53.43L169.51,9.4l-5.48,0c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L161.7,9.4l-5.48-.05a3.94,3.94,0,0,1,.52-1c1.53-1.58,3.1-3.11,4.63-4.68.38-.39,1-.85.44-1.44s-1,0-1.31.39Q157.19,6,153.89,9.4l-.41,0-5.07-.08c1.26-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.45-1.1,0-1.53.43L146.08,9.4l-5.48-.05c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.49-.44-1.1,0-1.53.43L138.27,9.4l-5.48-.05a3.94,3.94,0,0,1,.52-1c1.53-1.58,3.1-3.11,4.63-4.68.38-.39,1-.85.44-1.44s-1,0-1.31.39Q133.75,6,130.46,9.39L125,9.34c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L122.65,9.4l-5.48,0c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L114.84,9.4l-.41,0-5.07-.08c1.26-2.41,3.62-3.82,5.3-5.85.32-.38,1.19-.74.54-1.35-.48-.45-1.1,0-1.53.42L107,9.38l-.41,0-5.08-.06c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.49-.44-1.1,0-1.53.43L99.22,9.4l-5.48,0C95,6.94,97.36,5.52,99,3.5c.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L91.41,9.4l-.41,0-5.07-.08c1.26-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.45-1.1,0-1.53.43L83.6,9.39l-5.48,0c1.27-2.41,3.63-3.82,5.31-5.85.32-.38,1.19-.74.53-1.35-.48-.44-1.1,0-1.53.43L75.79,9.4,70.3,9.35a3.94,3.94,0,0,1,.52-1c1.53-1.58,3.1-3.11,4.63-4.68.38-.39,1-.85.44-1.44s-1,0-1.31.39Q71.27,6,68,9.39l-5.48,0a3.94,3.94,0,0,1,.52-1c1.53-1.58,3.1-3.11,4.63-4.68.38-.39,1-.85.44-1.44s-1,0-1.31.39Q63.46,6,60.16,9.4l-.41,0-5.07-.08c.07-.79.7-1.21,1.19-1.71,1.31-1.33,2.65-2.64,4-4,.38-.39,1-.85.44-1.44s-1,0-1.31.39Q55.65,6,52.35,9.4l-5.49-.05c.08-.79.71-1.21,1.2-1.71,1.41-1.43,2.85-2.85,4.26-4.28.3-.3.87-.65.52-1.11s-1-.26-1.39.09S50.7,3,50.34,3.41Q44.21,9.54,38.08,15.67C35,18.75,32,21.87,28.95,25l-5.51,0c.11-.86.82-1.28,1.34-1.84,2.52-2.68,5.35-5.06,7.67-7.92,1.46.55,2.89.78,4.14-.46s1-2.68.47-4.14C39.74,8.44,42,5.81,44.42,3.44c.33-.32,1-.69.57-1.23s-1.1-.17-1.52.27c-2.38,2.46-5,4.68-7.15,7.36-1.46-.55-2.9-.78-4.14.47s-1,2.68-.46,4.14C28,17.76,24.53,21.33,21.14,25l-5.51,0c.11-.86.81-1.3,1.35-1.85q9.3-9.32,18.62-18.63c.37-.37.74-.73,1.09-1.12s.61-.78.13-1.18-.74-.06-1,.21S35,3.1,34.65,3.47L25.06,12.9a3.72,3.72,0,0,0-2-3.44c2-2.05,4-4.1,5.94-6.17.28-.3.86-.61.41-1.11a.85.85,0,0,0-1.24.08c-2.24,2.32-4.88,4.26-6.64,7a3.73,3.73,0,0,0-2.8,2.81c-.18.06-.42.06-.54.18Q10.29,20.08,2.45,27.89c-.32.32-.65.75-.22,1.18s.82,0,1.18-.23c1.12-.84,1.73-2.29,3.25-2.65-.69,1.92-.25,3.92-.43,5.88-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.06-2.55l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.06-2.55l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5C5,64.53,3.69,65.73,2.44,67c-.39.39-.68,1-.29,1.39.54.59.87-.15,1.23-.43,1-.74,1.52-2,2.82-2.31l0,5.5C5,72.32,3.73,73.5,2.49,74.71c-.43.42-.79,1-.29,1.51s.86-.25,1.22-.53c1-.73,1.5-1.95,2.78-2.26l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5C5,87.94,3.73,89.12,2.49,90.33c-.43.42-.79,1-.29,1.51s.86-.25,1.22-.53c1-.73,1.5-1.95,2.78-2.26l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5C5,103.56,3.73,104.74,2.49,106c-.43.42-.79,1-.29,1.51s.86-.25,1.22-.53c1-.73,1.5-1.95,2.78-2.26l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5c-1.26,1.2-2.52,2.4-3.76,3.61-.32.32-.66.74-.25,1.17s.81.08,1.18-.2c1-.73,1.51-2,2.81-2.28l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.06-2.55l0,5.5C5,134.8,3.73,136,2.49,137.19c-.43.42-.79,1-.29,1.51s.86-.25,1.22-.53c1-.73,1.5-1.95,2.78-2.26l0,5.5c-1.26,1.21-2.54,2.42-3.79,3.65-.39.39-.68,1-.29,1.39.54.59.87-.15,1.23-.42,1-.74,1.52-2,2.83-2.31l0,5.5c-1.27,1.21-2.54,2.42-3.79,3.65-.39.39-.68,1-.29,1.39.54.59.87-.15,1.23-.43,1-.74,1.52-2,2.83-2.31l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55l0,5.5C5,166,3.73,167.23,2.49,168.44c-.43.42-.79,1-.29,1.51s.86-.25,1.22-.53c1-.73,1.5-1.95,2.78-2.26l0,5.5c-1.34,1.28-2.69,2.56-4,3.85-.37.36-.79.79-.22,1.29s.81,0,1.16-.29c1-.82,1.66-2.15,3.05-2.55.23,1.68-.26,3.42.51,5l-4.37,4C.84,182.77.74,180.87,0,179.28ZM6.8,10.59a3.74,3.74,0,0,0,.7,4.64,63.34,63.34,0,0,0-5.33,5.12c-.33.31-.68.68-.26,1.17a.62.62,0,0,0,1,0c1.75-2,4.09-3.4,5.3-5.85,3.37,0,4.3-.92,4.28-4.28C16,9.2,18.31,5.88,21.22,3.15a.62.62,0,0,0,.07-.88c-.43-.46-.86-.17-1.18.16-2.67,2.74-5.57,5.25-8,8.21a3.74,3.74,0,0,0-4.64-.71c-.06-.83.54-1.27,1-1.77,1.51-1.51,3-3,4.52-4.54.37-.38,1.21-.78.74-1.36s-1.18-.12-1.66.36Q7.36,7.33,2.63,12.07c-.36.36-.89.82-.43,1.31s1-.06,1.45-.39C4.71,12.2,5.25,10.74,6.8,10.59Z"/><path class="cls-2" d="M200,8.22V179.28c-.29.84-.53,1.7-.87,2.52-1.36,3.27-4.08,4.83-7.33,5.68H8.22c-1.6-.71-3.49-.82-4.69-2.33l4-4.37c1.62.78,3.37.28,5,.52-.44,1.46-1.85,2.11-2.71,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.44,1.46-1.85,2.11-2.71,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.54,1.55-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.54,1.56-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.39,1.4-1.73,2-2.55,3.06-.31.4-.83.82-.31,1.31s1,0,1.3-.37c1.3-1.33,2.58-2.68,3.87-4l5.5,0c-.44,1.46-1.85,2.11-2.71,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.44,1.46-1.85,2.11-2.71,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.39,1.4-1.73,2-2.55,3.06-.31.4-.83.82-.31,1.31s1,0,1.3-.37c1.3-1.33,2.58-2.68,3.87-4l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.39,1.4-1.73,2-2.55,3.06-.31.4-.83.82-.31,1.31s1,0,1.3-.37c1.3-1.33,2.58-2.68,3.87-4l5.5,0c-.54,1.55-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.54,1.55-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.42,1.23.43.39,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.39,1.4-1.73,2-2.55,3.06-.31.4-.83.82-.31,1.31s1,0,1.3-.37c1.3-1.33,2.58-2.68,3.87-4l5.5,0c-.39,1.4-1.73,2-2.55,3.06-.31.4-.83.82-.31,1.31s1,0,1.3-.37c1.3-1.33,2.58-2.68,3.87-4l5.5,0c-.54,1.55-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.44,1.46-1.85,2.11-2.71,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18l5.5,0c-.54,1.55-2,2.31-3,3.5-.29.36-.65.72-.18,1.17s.84.11,1.16-.22c1.44-1.48,2.87-3,4.31-4.47l5.5,0c-.44,1.46-1.85,2.11-2.7,3.22-.28.36-1,.69-.41,1.23.43.38,1,.1,1.39-.29,1.36-1.38,2.69-2.79,4-4.18,2-.19,4,.26,5.88-.44-.47,1.68-2.1,2.39-3.06,3.66-.27.36-1,.67-.46,1.23.42.41,1,.13,1.39-.25q3.79-3.76,7.55-7.55c.39-.39.66-1,.25-1.39-.56-.57-.87.19-1.23.46-1.27,1-2,2.59-3.66,3.06.7-1.92.25-3.92.44-5.88,1.4-1.34,2.8-2.68,4.18-4,.39-.39.67-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.34-1.29,2.7-2.56,4-3.87.36-.35.85-.8.37-1.3s-.91,0-1.31.31c-1,.82-1.66,2.16-3.06,2.55l0-5.5c1.45-1.39,2.9-2.77,4.33-4.17.35-.35.88-.74.35-1.3s-.91,0-1.3.31c-1.15.92-1.85,2.36-3.36,2.85l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.38.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.71l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.38.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.38.68-1,.29-1.39-.54-.6-.87.14-1.23.42-1.11.86-1.76,2.26-3.23,2.7l0-5.5c1.34-1.29,2.69-2.56,4-3.87.36-.35.85-.8.37-1.3s-.91,0-1.31.31c-1,.82-1.66,2.16-3.06,2.55l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.39.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.71l0-5.5c1.45-1.39,2.9-2.77,4.33-4.17.35-.35.88-.74.35-1.3s-.91,0-1.3.31c-1.15.92-1.85,2.36-3.36,2.85l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.39.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.45-1.39,2.9-2.77,4.33-4.17.35-.35.88-.74.35-1.3s-.91,0-1.3.31c-1.15.92-1.85,2.36-3.36,2.85l0-5.5c1.45-1.39,2.9-2.77,4.33-4.17.35-.35.88-.74.35-1.3s-.91,0-1.3.31C196,84,195.3,85.46,193.79,86l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.39.67-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.34-1.29,2.7-2.56,4-3.87.36-.35.85-.8.37-1.3s-.91,0-1.31.31c-1,.82-1.66,2.16-3.06,2.55l0-5.5c1.34-1.29,2.69-2.56,4-3.87.36-.35.85-.8.37-1.3s-.91,0-1.31.31c-1,.82-1.66,2.16-3.06,2.55l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.38.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.38.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.71l0-5.5c1.4-1.34,2.8-2.68,4.18-4,.39-.39.68-1,.29-1.39-.54-.6-.87.14-1.23.41-1.11.86-1.76,2.26-3.22,2.7l0-5.5c1.45-1.39,2.9-2.77,4.33-4.17.35-.35.88-.74.35-1.3s-.91,0-1.3.31c-1.15.92-1.85,2.36-3.36,2.85-.23-1.68.26-3.43-.52-5A46.89,46.89,0,0,0,198,21.65c.38-.38.61-1,.16-1.39s-.81.15-1.1.45c-1.54,1.57-3,3.17-4.57,4.76-1.62-.79-3.37-.28-5-.52.11-.86.81-1.3,1.35-1.84,2.92-2.94,5.86-5.86,8.78-8.81.37-.38,1.08-.78.45-1.43s-.94,0-1.29.35q-5.8,5.87-11.59,11.75l-21.13,0c.11-.86.81-1.29,1.34-1.83q3.62-3.75,7.27-7.47l14.43,0,1.6,0a21.83,21.83,0,0,0,2.33,0,2.8,2.8,0,0,0,2.49-1.9c.36-1,.59-2-.53-2.77q0-.19,0-.37c.8,0,1.21-.66,1.72-1.13a44.44,44.44,0,0,1,4.18-4C199.76,6.17,199.3,7.43,200,8.22Z"/><path class="cls-3" d="M200,8.22c-.67-.79-.22-2.06-1.14-2.75l-.5-1.14C196.87,1.82,194.42.76,191.78,0c2.47,0,4.95,0,7.42,0,.68,0,.82.12.8.8C199.94,3.28,200,5.75,200,8.22Z"/><path class="cls-3" d="M191.78,187.48c3.25-.86,6-2.41,7.33-5.68.34-.82.58-1.68.87-2.52,0,2.47,0,4.95,0,7.42,0,.68-.12.82-.8.8C196.72,187.45,194.25,187.48,191.78,187.48Z"/><path class="cls-3" d="M3.53,185.15c1.2,1.51,3.1,1.61,4.69,2.33-2.47,0-4.95,0-7.42,0-.68,0-.82-.12-.8-.8.05-2.47,0-4.95,0-7.42.71,1.59.81,3.5,2.33,4.69A2.73,2.73,0,0,0,3.53,185.15Z"/><path class="cls-3" d="M8.22,0c-.49.66-1.48.1-1.94.8a2.17,2.17,0,0,0-1.57.75A5.35,5.35,0,0,0,1.58,4.71,2.18,2.18,0,0,0,.83,6.28C.12,6.74.68,7.74,0,8.22,0,5.75.06,3.28,0,.8,0,.12.12,0,.8,0,3.28.06,5.75,0,8.22,0Z"/><path class="cls-3" d="M193.77,96.07q0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31c-.19,2,.26,4-.44,5.88l-.78.78c-1.92.7-3.92.25-5.88.44l-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0-5.5,0-2.31,0c-1.67-.23-3.42.26-5-.52L6.72,180c-.78-1.62-.28-3.37-.51-5q0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31,0-2.75,0-5.5,0-1.15,0-2.31c.19-2-.26-4,.43-5.88l.78-.78c1.92-.69,3.93-.24,5.89-.43l2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,21.13,0,2.31,0,52.37,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,13.32,0,2.3,0,21.13,0,2.3,0c1.67.24,3.43-.27,5,.52l.77.76c.78,1.62.28,3.37.52,5q0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5,0,1.15,0,2.31,0,2.75,0,5.5Q193.78,94.92,193.77,96.07ZM51.59,87.57C48,87.39,46.78,88.65,47,92.2l0,2.3,0,7.83a3.46,3.46,0,0,0,2.72,3.87l1.92,0,5.51,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,5.51,0h2.3l13.32,0,2.3,0,5.51,0,2.3,0,5.49,0,7.83,0,2.3,0,5.51,0h2.29l5.51,0,2.3,0,5.51,0,2.3,0c1.3,0,2.6.08,3.9.06,2.41,0,3.81-1.24,3.88-3.67.11-3.9.08-7.81,0-11.71a3.18,3.18,0,0,0-3.32-3.33c-.71-.05-1.43,0-2.15,0l-2.3,0-5.51,0h-2.3l-13.32,0-2.3,0-21.13,0-2.3,0-5.49,0-23.45,0H67.22l-5.51,0-2.3,0-5.51,0ZM79.3,162.1c.56.58,1.27.34,1.93.36l5.5,0,2.31,0,5.5,0,2.31,0,5.5,0,2.31,0,5.5,0,2.31,0,5.5,0,2.31,0h5.89a10.1,10.1,0,0,0,7.89-7.17c.24-.74.53-1.48-.08-2.18l.14-.8a.62.62,0,0,0,.24-.73c.69-6.72-4.41-11.24-11.09-11.08-13.82.33-27.66.1-41.49.11a11,11,0,0,0-2.5.21c-5,1.18-7.39,4.71-7.41,10.77a.61.61,0,0,0,.23.72l.14.8c-.62,2,1.13,5.89,3.15,7A6.09,6.09,0,0,0,79.3,162.1ZM46.93,78.51a3.43,3.43,0,0,0,3.89,2.7h2.3l13.32,0,2.3,0,5.51,0,2.3,0,5.51,0,2.3,0,13.32,0,2.3,0,13.32,0h2.29l5.51,0,2.31,0,5.51,0h2.3l13.32,0,2.3,0c5.48.3,6.39-.57,6.24-6,0-.06,0-.13,0-.19q0-3.91,0-7.82l0-1.92a3.43,3.43,0,0,0-3.88-2.7l-2.3,0-13.32,0-2.31,0-7.82,0h-5.5l-2.3,0-13.32,0-2.31,0-28.94,0-2.3,0-5.51,0-2.3,0-5.51,0-2.3,0c-.91,0-1.81-.1-2.72-.06a3.34,3.34,0,0,0-3.52,3.56c0,3.5,0,7,.05,10.49Zm0,47.24c-.07,1.85-.32,3.76,1.54,5a1.69,1.69,0,0,0,1.53.39l31.25,0,5.48,0,7.83,0,2.3,0,13.32,0h2.3l13.32,0,2.3,0,5.49,0,7.83,0,2.3,0,5.5,0c2.63,0,3.85-1.21,3.84-3.84,0-3.43,0-6.86,0-10.29a4.14,4.14,0,0,0-.44-2.63,1.59,1.59,0,0,0-1.51-1.52c-1.64-.88-3.4-.26-5.1-.4l-2.31,0-13.32,0-2.3,0-5.49,0-7.82,0h-2.3l-13.32,0H96.9l-5.51,0-2.31,0-5.51,0H81.28l-5.51,0-2.3,0-5.51,0-2.3,0-13.31,0c-.32,0-.64,0-1,0-3.67,0-4.6,1.14-4.44,5.44q0,2.75,0,5.5ZM100,50c5,0,10,0,15,0,2.29,0,3.69-1.19,3.74-3.08s-1.39-3.16-3.64-3.16q-15.1,0-30.21,0c-2.25,0-3.67,1.28-3.64,3.17S82.69,50,85,50C90,50,95,50,100,50Z"/><path class="cls-4" d="M125,9.34l5.48.05,2.33,0,5.48.05,2.33-.05,5.48.05,1.18.08c-.08.79-.72,1.19-1.2,1.69-1.42,1.49-2.85,3-4.27,4.44l-.4,0-2.33.06c-1,0-1.94,0-2.91-.05L109,15.56c.08-.79.72-1.18,1.2-1.69,1.41-1.49,2.84-3,4.26-4.44l.41,0,2.33,0,5.48,0Z"/><path class="cls-4" d="M78.11,9.35l5.48,0,1.18.08c-.08.79-.72,1.19-1.2,1.69-1.42,1.49-2.85,3-4.27,4.44l-16,0L61,15.7l-5.49-.05-1.18-.08c.08-.79.72-1.19,1.19-1.69,1.41-1.49,2.84-3,4.26-4.44l.41,0,2.33-.05,5.48,0,2.33,0,5.48.05Z"/><path class="cls-4" d="M153.49,9.43l.41,0,2.33-.05,5.48.05,2.33,0,5.48,0,1.18.08c-.08.79-.72,1.19-1.2,1.69-1.42,1.49-2.85,3-4.27,4.44l-8.21,0-2.32,0-5.49-.05L148,15.57c.08-.79.72-1.19,1.19-1.69C150.64,12.39,152.06,10.91,153.49,9.43Z"/><path class="cls-4" d="M101.55,9.35l5.08.06c-.56.62-1.14,1.23-1.67,1.87-1.23,1.48-3,2.44-3.81,4.32l-14.43.05-1.17-.09c.08-.79.72-1.19,1.19-1.69,1.41-1.49,2.84-3,4.26-4.44l.41,0,2.33,0,5.48,0Z"/><path class="cls-4" d="M187.07,15.6l-14.43.05-1.18-.08c.08-.79.72-1.19,1.19-1.69,1.41-1.49,2.84-3,4.26-4.44l.41,0,2.33-.05,5.48,0,2.33,0c1.57.3,3.34-.53,4.72.83C190.33,11.84,188.32,13.36,187.07,15.6Z"/><path class="cls-5" d="M31.25,24.95l-2.3,0c3-3.1,6.07-6.22,9.13-9.3Q44.19,9.52,50.34,3.41c.37-.37.73-.75,1.13-1.07s1-.58,1.39-.09-.22.8-.52,1.11c-1.41,1.43-2.85,2.85-4.26,4.28-.49.5-1.12.92-1.2,1.71a3.28,3.28,0,0,0-3.16,3.16,2.81,2.81,0,0,0-.86.39q-5.62,5.58-11.2,11.2A2.85,2.85,0,0,0,31.25,24.95Z"/><path class="cls-5" d="M15.63,24.95l-2.3,0c.47-.53.91-1.07,1.4-1.57q3.76-3.87,7.53-7.71a3.38,3.38,0,0,0,2.8-2.79l9.59-9.43c.37-.36.73-.74,1.12-1.09s.68-.5,1-.21S37,3,36.69,3.35,36,4.1,35.6,4.47Q26.29,13.79,17,23.1C16.44,23.64,15.74,24.08,15.63,24.95Z"/><path class="cls-4" d="M43.71,12.5a3.28,3.28,0,0,1,3.16-3.16l5.49.05,1.18.08c-.08.79-.72,1.19-1.2,1.69-1.42,1.49-2.85,3-4.27,4.44l-.4,0-1.94,0A3.89,3.89,0,0,1,43.71,12.5Z"/><path class="cls-6" d="M91,9.43c-1.42,1.48-2.85,3-4.26,4.44-.48.5-1.12.9-1.19,1.69l-1.15.13-5.09-.09c1.43-1.48,2.86-3,4.27-4.44.48-.5,1.12-.9,1.2-1.69l1.15-.13Z"/><path class="cls-6" d="M48.06,15.61c1.43-1.48,2.86-3,4.27-4.44.48-.5,1.12-.9,1.2-1.69l1.15-.13,5.07.08c-1.42,1.48-2.85,3-4.26,4.44-.48.5-1.12.9-1.19,1.69l-1.15.13Z"/><path class="cls-6" d="M176.92,9.43c-1.42,1.48-2.85,3-4.26,4.44-.48.5-1.12.9-1.19,1.69l-1.15.13-5.09-.09c1.43-1.48,2.86-3,4.27-4.44.48-.5,1.12-.9,1.2-1.69l1.15-.13Z"/><path class="cls-6" d="M153.49,9.43c-1.42,1.48-2.85,3-4.26,4.44-.48.5-1.12.9-1.19,1.69l-1.15.13-5.09-.09c1.43-1.48,2.86-3,4.27-4.44.48-.5,1.12-.9,1.2-1.69l1.15-.13Z"/><path class="cls-6" d="M114.43,9.43c-1.42,1.48-2.85,3-4.26,4.44-.48.5-1.12.9-1.2,1.69l-6.23.07c.56-.62,1.14-1.23,1.67-1.87,1.23-1.47,3-2.44,3.81-4.31l1.14-.1Z"/><path class="cls-5" d="M7.44,25.41l-.78.78c-1.51.35-2.13,1.81-3.25,2.65-.36.27-.75.65-1.18.23s-.1-.85.22-1.18q7.83-7.81,15.69-15.59c.12-.12.36-.12.54-.18l.15,1.53c-3.88,3.42-7.37,7.24-11,10.89C7.59,24.73,7.55,25.11,7.44,25.41Z"/><path class="cls-7" d="M12.5,11.35c0,3.36-.91,4.29-4.28,4.28l-.72-.41a3.74,3.74,0,0,1-.7-4.64l.67-.67a3.74,3.74,0,0,1,4.64.71Z"/><path class="cls-7" d="M18.83,13.64l-.15-1.53a3.73,3.73,0,0,1,2.8-2.81L23,9.46a3.72,3.72,0,0,1,2,3.44,3.38,3.38,0,0,1-2.8,2.79A3.71,3.71,0,0,1,18.83,13.64Z"/><path class="cls-7" d="M31.72,14.45c-.55-1.46-.78-2.9.46-4.14s2.68-1,4.14-.47l.74.74c.55,1.46.78,2.9-.47,4.14s-2.68,1-4.14.46Z"/><path class="cls-8" d="M7.46,9.92l-.67.67C5.25,10.74,4.71,12.2,3.65,13c-.44.33-.88,1-1.45.39s.08-1,.43-1.31Q7.36,7.33,12.1,2.6c.47-.47,1.16-1,1.66-.36s-.38,1-.74,1.36c-1.48,1.53-3,3-4.52,4.54C8,8.64,7.4,9.09,7.46,9.92Z"/><path class="cls-5" d="M31.72,14.45l.74.73c-2.32,2.87-5.16,5.24-7.67,7.92-.52.55-1.23,1-1.34,1.84l-2.3,0C24.53,21.33,28,17.76,31.72,14.45Z"/><path class="cls-5" d="M12.5,11.35l-.4-.72c2.44-3,5.34-5.47,8-8.21.32-.33.75-.61,1.18-.16a.62.62,0,0,1-.07.88C18.31,5.88,16,9.2,12.5,11.35Z"/><path class="cls-8" d="M37.06,10.59l-.74-.74c2.15-2.67,4.77-4.9,7.15-7.36.42-.44,1.06-.8,1.52-.27s-.24.91-.57,1.23C42,5.81,39.74,8.44,37.06,10.59Z"/><path class="cls-8" d="M164,9.35l-2.33,0,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C167.66,5.52,165.3,6.94,164,9.35Z"/><path class="cls-8" d="M179.65,9.35l-2.33.05L184,2.58c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C183.28,5.52,180.92,6.94,179.65,9.35Z"/><path class="cls-8" d="M148.41,9.35l-1.15.13-1.18-.08,6.64-6.82c.43-.44,1-.88,1.53-.43.66.61-.21,1-.53,1.35C152,5.53,149.67,6.94,148.41,9.35Z"/><path class="cls-8" d="M171.85,9.35l-1.15.13-1.18-.08,6.64-6.82c.43-.44,1-.88,1.53-.43.66.61-.21,1-.53,1.35C175.47,5.53,173.11,6.93,171.85,9.35Z"/><path class="cls-8" d="M140.6,9.34l-2.33.05,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C144.23,5.52,141.87,6.94,140.6,9.34Z"/><path class="cls-8" d="M85.93,9.35l-1.15.13L83.6,9.39l6.64-6.82c.43-.44,1-.88,1.53-.43.66.61-.21,1-.53,1.35C89.55,5.53,87.19,6.94,85.93,9.35Z"/><path class="cls-8" d="M93.74,9.35l-2.33,0L98,2.58c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C97.36,5.52,95,6.94,93.74,9.35Z"/><path class="cls-8" d="M101.55,9.35l-2.33.05,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C105.17,5.52,102.81,6.94,101.55,9.35Z"/><path class="cls-8" d="M109.36,9.35l-1.14.1L107,9.38l6.64-6.81c.43-.44,1-.87,1.53-.42.65.61-.22,1-.54,1.35C113,5.53,110.62,6.94,109.36,9.35Z"/><path class="cls-8" d="M117.17,9.35l-2.33,0,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C120.79,5.52,118.43,6.94,117.17,9.35Z"/><path class="cls-8" d="M125,9.34l-2.33.05,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C128.61,5.52,126.25,6.94,125,9.34Z"/><path class="cls-8" d="M78.11,9.35l-2.33,0,6.64-6.82c.43-.44,1-.88,1.53-.43.67.61-.21,1-.53,1.35C81.74,5.52,79.38,6.94,78.11,9.35Z"/><path class="cls-8" d="M23,9.46l-1.53-.15c1.76-2.78,4.4-4.71,6.64-7a.85.85,0,0,1,1.24-.08c.45.49-.13.81-.41,1.11C27,5.36,25,7.41,23,9.46Z"/><path class="cls-8" d="M54.68,9.35l-1.15.13L52.35,9.4Q55.66,6,59,2.61c.35-.36.82-.88,1.31-.39s-.06,1.05-.44,1.44c-1.31,1.34-2.65,2.65-4,4C55.38,8.14,54.76,8.56,54.68,9.35Z"/><path class="cls-8" d="M62.49,9.35l-2.33.05q3.3-3.4,6.61-6.79c.35-.36.82-.88,1.31-.39S68,3.27,67.64,3.66c-1.53,1.57-3.1,3.1-4.63,4.68A3.94,3.94,0,0,0,62.49,9.35Z"/><path class="cls-8" d="M70.3,9.35,68,9.39q3.3-3.4,6.61-6.79c.35-.36.82-.88,1.31-.39s-.05,1.05-.44,1.44c-1.53,1.57-3.1,3.1-4.63,4.68A3.94,3.94,0,0,0,70.3,9.35Z"/><path class="cls-8" d="M132.79,9.35l-2.33,0q3.3-3.4,6.61-6.79c.35-.36.82-.88,1.31-.39s-.05,1.05-.44,1.44c-1.53,1.57-3.1,3.1-4.63,4.68A3.94,3.94,0,0,0,132.79,9.35Z"/><path class="cls-8" d="M187.46,9.35l-2.33,0q3.3-3.4,6.61-6.79c.35-.36.82-.88,1.31-.39s-.05,1.05-.44,1.44c-1.53,1.57-3.1,3.1-4.63,4.68A3.94,3.94,0,0,0,187.46,9.35Z"/><path class="cls-8" d="M156.22,9.35l-2.33.05q3.3-3.4,6.61-6.79c.35-.36.82-.88,1.31-.39s-.05,1.05-.44,1.44c-1.53,1.57-3.1,3.1-4.63,4.68A3.94,3.94,0,0,0,156.22,9.35Z"/><path class="cls-8" d="M7.5,15.23l.72.41C7,18.09,4.68,19.52,2.92,21.49a.62.62,0,0,1-1,0c-.42-.48-.07-.85.26-1.17A63.34,63.34,0,0,1,7.5,15.23Z"/><path class="cls-9" d="M107,9.38l1.19.07c-.78,1.87-2.58,2.84-3.81,4.31-.54.64-1.11,1.25-1.67,1.87l-1.59,0c.78-1.87,2.58-2.84,3.81-4.32.54-.64,1.11-1.25,1.67-1.87Z"/><path class="cls-8" d="M198.34,4.34l.5,1.14a44.44,44.44,0,0,0-4.18,4c-.51.47-.92,1.1-1.72,1.13l-.39-.39A17.88,17.88,0,0,1,198.34,4.34Z"/><path class="cls-8" d="M.83,6.28a2.18,2.18,0,0,1,.75-1.57A5.21,5.21,0,0,0,4.71,1.58,2.17,2.17,0,0,1,6.28.82c.1.37.35.77.28,1.1C6.25,3.37,2.43,6.22.83,6.28Z"/><path class="cls-9" d="M192.55,10.18l.39.39q0,.19,0,.37l-4.28,4.68-1.6,0c1.25-2.23,3.26-3.76,5.12-5.43Z"/><path class="cls-8" d="M6.23,55.5q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,58.06,4.89,56.79,6.23,55.5Z"/><path class="cls-8" d="M6.23,47.69q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.54-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,50.25,4.89,49,6.23,47.69Z"/><path class="cls-8" d="M6.23,32.07q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,34.63,4.89,33.35,6.23,32.07Z"/><path class="cls-8" d="M6.23,172.66q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,175.22,4.89,173.95,6.23,172.66Z"/><path class="cls-8" d="M6.23,157q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,159.6,4.89,158.33,6.23,157Z"/><path class="cls-8" d="M6.23,78.93q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,81.49,4.89,80.22,6.23,78.93Z"/><path class="cls-8" d="M6.23,94.56q0,1.15,0,2.31c-1.4.39-2,1.72-3.05,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,97.12,4.89,95.84,6.23,94.56Z"/><path class="cls-8" d="M6.23,39.88q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.54C2.8,45,2.46,45.42,2,45s-.15-.93.22-1.29C3.54,42.44,4.89,41.16,6.23,39.88Z"/><path class="cls-8" d="M6.23,125.8q0,1.15,0,2.31c-1.4.39-2,1.72-3.06,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,128.36,4.89,127.08,6.23,125.8Z"/><path class="cls-8" d="M6.23,110.18q0,1.15,0,2.31c-1.4.39-2,1.72-3.05,2.55-.35.28-.69.69-1.16.29s-.15-.93.22-1.29C3.54,112.74,4.89,111.46,6.23,110.18Z"/><path class="cls-8" d="M6.23,86.75q0,1.15,0,2.31c-1.29.31-1.83,1.54-2.79,2.26-.37.28-.69,1-1.22.53s-.14-1.09.29-1.51C3.73,89.12,5,87.94,6.23,86.75Z"/><path class="cls-8" d="M6.23,149.23q0,1.15,0,2.31c-1.3.33-1.86,1.57-2.83,2.31-.36.28-.69,1-1.23.43-.39-.43-.1-1,.29-1.39C3.69,151.65,5,150.45,6.23,149.23Z"/><path class="cls-8" d="M6.23,164.85q0,1.15,0,2.31c-1.29.32-1.83,1.54-2.78,2.26-.37.28-.69,1-1.22.53s-.14-1.09.29-1.51C3.73,167.23,5,166,6.23,164.85Z"/><path class="cls-8" d="M6.23,141.42q0,1.15,0,2.31c-1.3.33-1.86,1.57-2.83,2.31-.36.28-.69,1-1.23.42-.39-.43-.1-1,.29-1.39C3.69,143.84,5,142.63,6.23,141.42Z"/><path class="cls-8" d="M6.23,71.12q0,1.15,0,2.31C4.92,73.75,4.37,75,3.42,75.7c-.37.28-.69,1-1.22.53s-.14-1.09.29-1.51C3.73,73.5,5,72.32,6.23,71.12Z"/><path class="cls-8" d="M6.23,133.61q0,1.15,0,2.31c-1.29.32-1.83,1.54-2.78,2.26-.37.28-.69,1-1.22.53s-.14-1.09.29-1.51C3.73,136,5,134.8,6.23,133.61Z"/><path class="cls-5" d="M6.72,180l.77.77-4,4.37A2.73,2.73,0,0,1,2.35,184Z"/><path class="cls-8" d="M6.23,102.37q0,1.15,0,2.31c-1.29.32-1.83,1.54-2.78,2.26-.37.28-.69,1-1.22.53s-.14-1.09.29-1.51C3.73,104.74,5,103.56,6.23,102.37Z"/><path class="cls-8" d="M6.23,63.31q0,1.15,0,2.31c-1.3.33-1.86,1.57-2.83,2.31-.36.28-.69,1-1.23.43-.39-.43-.1-1,.29-1.39C3.69,65.73,5,64.53,6.23,63.31Z"/><path class="cls-8" d="M6.23,118q0,1.15,0,2.31c-1.3.32-1.85,1.55-2.81,2.28-.36.28-.76.64-1.18.2s-.08-.86.25-1.17C3.71,120.39,5,119.19,6.23,118Z"/><path class="cls-5" d="M187.47,24.95l-2.3,0q5.79-5.88,11.59-11.75c.35-.35.76-.9,1.29-.35s-.08,1.05-.45,1.43c-2.92,2.95-5.86,5.87-8.78,8.81C188.28,23.65,187.57,24.09,187.47,24.95Z"/><path class="cls-8" d="M192.56,180.84l.78-.78c1.68-.47,2.39-2.1,3.66-3.06.36-.27.67-1,1.23-.46.41.42.14,1-.25,1.39q-3.76,3.79-7.55,7.55c-.39.39-1,.66-1.39.25-.58-.56.19-.87.46-1.23C190.46,183.23,192.09,182.52,192.56,180.84Z"/><path class="cls-5" d="M170.31,15.7l1.15-.13,1.18.08q-3.64,3.73-7.27,7.47c-.53.54-1.23,1-1.34,1.83l-2.3,0c2.1-2.16,4.23-4.3,6.3-6.49C168.85,17.61,170,17,170.31,15.7Z"/><path class="cls-6" d="M188.67,15.63,193,10.95c1.12.74.89,1.77.53,2.77a2.8,2.8,0,0,1-2.49,1.9A21.83,21.83,0,0,1,188.67,15.63Z"/><path class="cls-8" d="M193.28,26.23l-.77-.76c1.52-1.59,3-3.19,4.57-4.76.29-.3.63-.87,1.1-.45s.23,1-.16,1.39A46.89,46.89,0,0,1,193.28,26.23Z"/><path class="cls-8" d="M193.77,88.26q0-1.15,0-2.31c1.51-.49,2.21-1.93,3.36-2.85.39-.31.76-.87,1.3-.31s0,.95-.35,1.3C196.67,85.49,195.22,86.87,193.77,88.26Z"/><path class="cls-8" d="M121.88,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C119.86,183.6,121.34,182.85,121.88,181.3Z"/><path class="cls-8" d="M160.94,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C158.91,183.6,160.4,182.85,160.94,181.3Z"/><path class="cls-8" d="M193.77,158.56q0-1.15,0-2.31c1.51-.49,2.21-1.93,3.36-2.85.39-.31.76-.87,1.3-.31s0,.95-.35,1.3C196.67,155.79,195.22,157.17,193.77,158.56Z"/><path class="cls-8" d="M28.15,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C26.13,183.6,27.61,182.85,28.15,181.3Z"/><path class="cls-8" d="M193.77,33.58q0-1.15,0-2.31c1.51-.49,2.21-1.93,3.36-2.85.39-.31.76-.87,1.3-.31s0,.95-.35,1.3C196.67,30.82,195.22,32.2,193.77,33.58Z"/><path class="cls-8" d="M114.07,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C112,183.6,113.53,182.85,114.07,181.3Z"/><path class="cls-8" d="M176.56,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C174.54,183.6,176,182.85,176.56,181.3Z"/><path class="cls-8" d="M193.77,96.07q0-1.15,0-2.31c1.51-.49,2.21-1.93,3.36-2.85.39-.31.76-.87,1.3-.31s0,.95-.35,1.3C196.67,93.3,195.22,94.68,193.77,96.07Z"/><path class="cls-8" d="M36,181.3l2.31,0c-1.44,1.49-2.87,3-4.31,4.47-.32.33-.7.67-1.16.22s-.11-.81.18-1.17C33.94,183.6,35.43,182.85,36,181.3Z"/><path class="cls-8" d="M193.77,111.69q0-1.15,0-2.31c1.51-.49,2.21-1.93,3.36-2.85.39-.31.76-.87,1.3-.31s0,.95-.35,1.3C196.67,108.92,195.22,110.3,193.77,111.69Z"/><path class="cls-8" d="M193.77,174.18q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,171.5,195.17,172.83,193.77,174.18Z"/><path class="cls-8" d="M43.77,181.3l2.31,0c-1.35,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C41.93,183.41,43.33,182.76,43.77,181.3Z"/><path class="cls-8" d="M51.59,181.3l2.31,0c-1.35,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C49.74,183.41,51.14,182.76,51.59,181.3Z"/><path class="cls-8" d="M59.4,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C57.55,183.41,59,182.76,59.4,181.3Z"/><path class="cls-8" d="M193.77,150.75q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.71.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,148.06,195.17,149.4,193.77,150.75Z"/><path class="cls-8" d="M129.69,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.67-1.39.29-.6-.54.14-.87.41-1.23C127.84,183.41,129.25,182.76,129.69,181.3Z"/><path class="cls-8" d="M137.5,181.3l2.31,0c-1.35,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.42-1.23C135.66,183.41,137.06,182.76,137.5,181.3Z"/><path class="cls-8" d="M98.45,181.3l2.31,0c-1.35,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C96.6,183.41,98,182.76,98.45,181.3Z"/><path class="cls-8" d="M75,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C73.17,183.41,74.58,182.76,75,181.3Z"/><path class="cls-8" d="M20.34,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C18.49,183.41,19.9,182.76,20.34,181.3Z"/><path class="cls-8" d="M193.77,142.94q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.23-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,140.25,195.17,141.59,193.77,142.94Z"/><path class="cls-8" d="M12.53,181.3l2.31,0c-1.35,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C10.68,183.41,12.09,182.76,12.53,181.3Z"/><path class="cls-8" d="M184.37,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C182.52,183.41,183.93,182.76,184.37,181.3Z"/><path class="cls-8" d="M82.83,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.39.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C81,183.41,82.39,182.76,82.83,181.3Z"/><path class="cls-8" d="M193.77,135.12q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.23-2.7.36-.28.69-1,1.23-.42.39.43.1,1-.29,1.39C196.57,132.44,195.17,133.78,193.77,135.12Z"/><path class="cls-8" d="M168.75,181.3l2.31,0c-1.34,1.4-2.68,2.8-4,4.18-.38.39-1,.68-1.39.29-.6-.54.14-.87.41-1.23C166.9,183.41,168.31,182.76,168.75,181.3Z"/><path class="cls-8" d="M193.77,103.88q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.23-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,101.2,195.17,102.54,193.77,103.88Z"/><path class="cls-8" d="M193.77,80.45q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,77.77,195.17,79.1,193.77,80.45Z"/><path class="cls-8" d="M193.77,57q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,54.33,195.17,55.67,193.77,57Z"/><path class="cls-8" d="M193.77,49.21q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.71.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,46.52,195.17,47.86,193.77,49.21Z"/><path class="cls-8" d="M193.77,119.5q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.22-2.71.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,116.82,195.17,118.16,193.77,119.5Z"/><path class="cls-8" d="M193.77,41.4q0-1.15,0-2.31c1.46-.44,2.11-1.85,3.23-2.7.36-.28.69-1,1.23-.41.38.43.1,1-.29,1.39C196.57,38.71,195.17,40.05,193.77,41.4Z"/><path class="cls-8" d="M193.77,127.31q0-1.15,0-2.31c1.4-.39,2-1.73,3.06-2.55.4-.31.82-.83,1.31-.31s0,1-.37,1.3C196.47,124.75,195.11,126,193.77,127.31Z"/><path class="cls-8" d="M193.77,166.37q0-1.15,0-2.31c1.4-.39,2-1.73,3.06-2.55.4-.31.82-.83,1.31-.31s0,1-.37,1.3C196.47,163.8,195.11,165.08,193.77,166.37Z"/><path class="cls-8" d="M193.77,72.64q0-1.15,0-2.31c1.4-.39,2-1.73,3.06-2.55.4-.31.82-.83,1.31-.31s0,1-.37,1.3C196.47,70.07,195.11,71.35,193.77,72.64Z"/><path class="cls-8" d="M67.21,181.3l2.31,0c-1.29,1.34-2.56,2.69-3.87,4-.35.36-.8.85-1.3.37s0-.91.31-1.31C65.48,183.31,66.81,182.7,67.21,181.3Z"/><path class="cls-8" d="M90.64,181.3l2.31,0c-1.29,1.34-2.56,2.7-3.87,4-.35.36-.8.85-1.3.37s0-.91.31-1.31C88.91,183.31,90.25,182.7,90.64,181.3Z"/><path class="cls-8" d="M106.26,181.3l2.31,0c-1.29,1.34-2.56,2.69-3.87,4-.35.36-.8.85-1.3.37s0-.91.31-1.31C104.53,183.31,105.87,182.7,106.26,181.3Z"/><path class="cls-8" d="M193.77,64.83q0-1.15,0-2.31c1.4-.39,2-1.73,3.06-2.55.4-.31.82-.83,1.31-.31s0,1-.37,1.3C196.47,62.26,195.11,63.54,193.77,64.83Z"/><path class="cls-8" d="M145.31,181.3l2.31,0c-1.29,1.34-2.56,2.7-3.87,4-.35.36-.8.85-1.3.37s0-.91.31-1.31C143.58,183.31,144.92,182.7,145.31,181.3Z"/><path class="cls-8" d="M153.13,181.3l2.31,0c-1.29,1.34-2.56,2.7-3.87,4-.35.36-.8.85-1.3.37s0-.91.31-1.31C151.4,183.31,152.73,182.7,153.13,181.3Z"/><path class="cls-1" d="M4.71,1.58A5.21,5.21,0,0,1,1.58,4.71,5.35,5.35,0,0,1,4.71,1.58Z"/><path class="cls-10" d="M71.88,151.6c0-6.06,2.42-9.58,7.41-10.77a11,11,0,0,1,2.5-.21c13.83,0,27.67.22,41.49-.11,6.68-.16,11.78,4.36,11.09,11.08l-.24.73-.14.8a11.29,11.29,0,0,1-5.86,5.85c-1.92.6-3.91.27-5.86.47H81.63a13.59,13.59,0,0,1-4.38-.82,12.09,12.09,0,0,1-5-5.48l-.14-.8Zm21.87-1.66a3,3,0,0,0-3.09-3.07,3,3,0,0,0-3.15,2.94,3.12,3.12,0,1,0,6.24.13Zm21.83-3.07a3.12,3.12,0,1,0,3.16,3A3.05,3.05,0,0,0,115.58,146.87Zm-12.35,6.24a3,3,0,0,0,3-3.12,3.12,3.12,0,1,0-3,3.12Z"/><path class="cls-11" d="M101.15,15.6l1.59,0,6.23-.07,27.18.09c1,0,1.94,0,2.91.05-.1.86-.8,1.29-1.32,1.83q-3.62,3.73-7.26,7.43l-52.37,0c.1-.86.81-1.28,1.34-1.83q3.62-3.74,7.26-7.46Z"/><path class="cls-12" d="M100,50c-5,0-10,0-15,0-2.29,0-3.7-1.19-3.73-3.07s1.39-3.16,3.64-3.17q15.1,0,30.21,0c2.24,0,3.68,1.29,3.64,3.16S117.29,50,115,50C110,50,105,50,100,50Z"/><path class="cls-13" d="M79.31,15.61l5.09.09c-.09.86-.8,1.29-1.32,1.83Q79.45,21.26,75.81,25l-21.13,0c.1-.86.81-1.29,1.34-1.83q3.62-3.75,7.27-7.47Z"/><path class="cls-13" d="M170.31,15.7c-.31,1.3-1.46,1.91-2.28,2.78-2.07,2.2-4.19,4.33-6.3,6.49l-13.32,0c.11-.86.81-1.28,1.34-1.83q3.62-3.75,7.26-7.47l8.21,0Z"/><path class="cls-11" d="M81.25,131.2l-31.25,0c.31-1.38,1.77-1.86,2.35-3l.41,0,6.21,0,1.61,0,6.2,0,1.61,0,6.21-.05,1.61,0,6.2,0,1.21,0C83,129.31,81.52,129.79,81.25,131.2Z"/><path class="cls-11" d="M71.07,62.56l28.94,0c-.31,1.38-1.77,1.86-2.35,3l-.41,0-6.21,0-1.61,0-6.21,0-1.61,0-6.21,0-1.61,0-5.08-.07C69,64.2,70.49,63.71,71.07,62.56Z"/><path class="cls-13" d="M147.62,87.55c.72,0,1.43-.08,2.15,0a3.18,3.18,0,0,1,3.32,3.33c.07,3.9.1,7.81,0,11.71-.07,2.43-1.47,3.64-3.88,3.67-1.3,0-2.6,0-3.9-.06.31-1.38,1.78-1.87,2.35-3l.41,0q2.33.43,1.9-1.9l0-7.82,0-1.6c.1-.86-.32-1.16-1.14-1.15-1.17,0-2.34,0-3.51,0C145.58,89.19,147,88.71,147.62,87.55Z"/><path class="cls-11" d="M69.51,87.55l23.45,0c-.58,1.17-2.08,1.65-2.33,3.07l-1.14.08-1.61,0-6.21,0-1.61,0-6.21,0-1.6,0-5.08-.07C67.47,89.19,68.92,88.71,69.51,87.55Z"/><path class="cls-13" d="M100.75,87.55l21.13,0c-.31,1.38-1.77,1.87-2.35,3l-.41,0-6.2,0-1.61,0-6.2,0-1.61,0-5.08-.07C98.71,89.19,100.17,88.71,100.75,87.55Z"/><path class="cls-14" d="M124.19,87.54l13.32,0c-.31,1.39-1.79,1.87-2.36,3.06l-.42,0h-4.08a2.66,2.66,0,0,0-2.17.59c-3.87,4-8,7.74-11.7,11.91l-1.6,0c.14-.84.81-1.3,1.35-1.84,3-3.06,6.12-6.11,9.16-9.19.36-.36,1-.6.78-1.48h-4.62C122.14,89.2,123.62,88.72,124.19,87.54Z"/><path class="cls-14" d="M125.8,131.21l-13.32,0c.18-1,1.09-1.51,1.71-2.2.83-.94,0-.81-.54-.89.11-.85.8-1.29,1.33-1.84,3.44-3.58,7.15-6.89,10.41-10.63l.42,0,1.17,0c-.11.86-.8,1.31-1.34,1.85-3,3-6,6-8.94,9-.42.43-1.09.72-1.08,1.59h5.83l1.62,0,5.08.05C127.85,129.55,126.37,130,125.8,131.21Z"/><path class="cls-14" d="M99.19,112.53l13.32,0c-.17,1-1.09,1.51-1.7,2.21-.83.94,0,.81.54.89-.11.85-.8,1.29-1.33,1.84-3.44,3.58-7.15,6.89-10.41,10.63l-.41,0-1.17,0c.11-.86.8-1.31,1.34-1.85,3-3,6-6,8.94-9,.42-.43,1.1-.72,1.08-1.6h-5.83l-1.62,0-5.08-.06C97.14,114.19,98.62,113.71,99.19,112.53Z"/><path class="cls-14" d="M66.44,81.22l-13.32,0c.18-1,1.09-1.51,1.71-2.2.83-.94,0-.81-.54-.89.11-.85.8-1.29,1.33-1.84C59,72.69,62.76,69.38,66,65.63l.42,0,1.17,0c-.11.86-.8,1.31-1.34,1.85-3,3-6,6-8.94,9-.42.43-1.1.72-1.08,1.59h5.83l1.62,0,5.08.05C68.49,79.56,67,80,66.44,81.22Z"/><path class="cls-14" d="M96.12,106.21l-13.32,0c.18-1,1.09-1.51,1.71-2.2.83-.94,0-.81-.54-.89.11-.85.8-1.29,1.33-1.84,3.44-3.58,7.15-6.88,10.41-10.63l.42,0,1.17,0c-.11.86-.8,1.31-1.34,1.85-3,3-6,6-8.94,9-.42.43-1.1.72-1.08,1.59h5.83l1.62,0,5.08.06C98.17,104.56,96.69,105,96.12,106.21Z"/><path class="cls-1" d="M43.71,12.5a3.89,3.89,0,0,0,2,3.12c-.46.53-.9,1.09-1.39,1.6Q40.56,21.1,36.76,25l-5.51,0a2.85,2.85,0,0,1,.4-.86q5.58-5.62,11.2-11.2A2.81,2.81,0,0,1,43.71,12.5Z"/><path class="cls-14" d="M144.55,81.22l-13.32,0c.31-1.39,1.79-1.87,2.36-3.06l.42,0a9.18,9.18,0,0,0,9.6-3.86,35,35,0,0,1,4.1-4.15c.69-.66,1.2-1.57,2.26-1.76l0,1.17,0,.41c-2.85,2.45-5.39,5.19-8.38,8.24h5.27C146.6,79.56,145.12,80,144.55,81.22Z"/><path class="cls-1" d="M18.83,13.64a3.71,3.71,0,0,0,3.43,2q-3.77,3.85-7.53,7.71c-.49.5-.94,1-1.4,1.57-2,.19-4-.26-5.89.43.11-.3.15-.67.35-.88C11.46,20.89,14.95,17.06,18.83,13.64Z"/><path class="cls-13" d="M152.67,114.44a4.14,4.14,0,0,1,.44,2.63c0,3.43,0,6.86,0,10.29a24.59,24.59,0,0,0-3.84,3.84l-5.5,0c.31-1.38,1.78-1.87,2.35-3l.41,0c4,.05,3.51.49,3.47-3.47l0-7.83,0-.41C151,115.92,151.44,114.62,152.67,114.44Z"/><path class="cls-1" d="M55.48,15.65l5.49,0c-.1.86-.8,1.29-1.32,1.83Q56,21.26,52.38,25l-5.51,0c.11-.86.81-1.29,1.34-1.83Q51.83,19.37,55.48,15.65Z"/><path class="cls-1" d="M48.06,15.61l5.09.09c-.1.86-.8,1.29-1.32,1.83Q48.21,21.26,44.57,25l-5.51,0c.11-.86.81-1.29,1.34-1.83q3.62-3.75,7.27-7.47Z"/><path class="cls-1" d="M141.79,15.61l5.09.08c-.09.86-.79,1.29-1.32,1.83q-3.62,3.73-7.26,7.45l-5.51,0c.11-.86.81-1.29,1.34-1.83q3.62-3.75,7.27-7.47Z"/><path class="cls-1" d="M149.21,15.65l5.49.05c-.1.86-.8,1.29-1.33,1.83q-3.62,3.73-7.26,7.44l-5.51,0c.11-.86.81-1.29,1.34-1.83Q145.56,19.37,149.21,15.65Z"/><path class="cls-13" d="M47,76.58c0-3.5-.09-7-.05-10.49a3.34,3.34,0,0,1,3.52-3.56c.9,0,1.81,0,2.72.06-.31,1.38-1.78,1.87-2.36,3.05-.94.18-.74.93-.75,1.55,0,2.21,0,4.43,0,6.64l0,.41C48.82,74.81,48.34,76.27,47,76.58Z"/><path class="cls-13" d="M133.56,62.56l13.32,0c-.31,1.38-1.77,1.87-2.35,3l-.41,0-6.2,0-1.61,0-5.08-.07C131.52,64.2,133,63.71,133.56,62.56Z"/><path class="cls-13" d="M99.19,128.14l.41,0,6.22-.06,1.61,0,5.08.07c-.29,1.38-1.75,1.87-2.33,3l-13.32,0C97.16,129.79,98.63,129.32,99.19,128.14Z"/><path class="cls-13" d="M102.32,62.56l13.32,0c-.31,1.38-1.77,1.87-2.35,3l-.41,0-6.2,0-1.61,0L100,65.58C100.27,64.2,101.73,63.71,102.32,62.56Z"/><path class="cls-13" d="M97.68,81.21l-13.32,0c.31-1.38,1.77-1.87,2.35-3l.41,0,6.2,0,1.61,0,5.08.07C99.72,79.57,98.27,80.05,97.68,81.21Z"/><path class="cls-13" d="M52.33,112.54l13.31,0c-.31,1.38-1.77,1.87-2.35,3l-.41,0-7.82,0-5.06,0,0,0C50.27,114.2,51.74,113.71,52.33,112.54Z"/><path class="cls-13" d="M113.3,81.21l-13.32,0c.31-1.38,1.77-1.87,2.35-3l.41,0,6.2,0,1.61,0,5.08.07C115.35,79.57,113.89,80.05,113.3,81.21Z"/><path class="cls-13" d="M130.44,112.55l13.32,0c-.31,1.38-1.77,1.87-2.35,3l-.41,0-6.2,0-1.61,0-5.08-.07C128.39,114.19,129.85,113.7,130.44,112.55Z"/><path class="cls-15" d="M121.11,81.23l-5.51,0c.19-1,1.1-1.51,1.72-2.21.83-.94,0-.81-.55-.9.11-.85.8-1.3,1.33-1.84q5.19-5.32,10.41-10.62l.42,0,1.18.06c-.11.86-.8,1.31-1.34,1.85-3,3-6.08,6.07-9.1,9.12-.37.38-1,.63-.86,1.51h4.66C123.17,79.56,121.67,80,121.11,81.23Z"/><path class="cls-15" d="M68.37,128.12l-1.61,0c.13-.85.82-1.3,1.36-1.85,3-3,6.08-6.07,9.09-9.12.37-.38,1-.63.86-1.51H73.42c.29-1.4,1.78-1.88,2.34-3.07l5.51,0c-.18,1-1.1,1.52-1.71,2.21-.83.94,0,.81.55.9-.11.85-.8,1.3-1.33,1.84Q73.58,122.81,68.37,128.12Z"/><path class="cls-15" d="M61.7,87.53l5.51,0c-.18,1-1.1,1.52-1.72,2.22-.84.94,0,.81.55.9-.11.85-.8,1.29-1.33,1.84q-5.19,5.32-10.4,10.62l-.42,0-1.18-.05c.11-.86.81-1.31,1.35-1.85,3-3,6.08-6.07,9.09-9.12.37-.38,1-.63.86-1.51H59.36C59.65,89.2,61.15,88.72,61.7,87.53Z"/><path class="cls-15" d="M83.59,128.13l-1.21,0c.13-.85.82-1.3,1.36-1.85,3-3,6.08-6.07,9.09-9.12.37-.38,1-.63.86-1.51H89c.29-1.4,1.79-1.88,2.34-3.07l5.51,0c-.19,1-1.1,1.51-1.72,2.21-.83.94,0,.81.55.9-.11.85-.8,1.29-1.33,1.84-3.43,3.57-7.14,6.88-10.4,10.62Z"/><path class="cls-15" d="M135.17,106.22l-5.51,0c.19-1,1.1-1.51,1.72-2.21.83-.94,0-.81-.55-.9.11-.85.8-1.29,1.33-1.84,3.43-3.57,7.14-6.88,10.4-10.62l.42,0,1.18.05c-.11.86-.81,1.31-1.35,1.85-3,3-6.08,6.07-9.09,9.12-.37.38-1,.63-.86,1.51h4.66C137.23,104.55,135.73,105,135.17,106.22Z"/><path class="cls-15" d="M150,116.38l0,.41q-5.92,5.41-11.33,11.33l-1.6,0c.13-.85.82-1.3,1.36-1.85,3-3,6.08-6.07,9.09-9.12.37-.38,1-.63.86-1.51h-4.66c.29-1.4,1.78-1.88,2.34-3.07,1.7.13,3.46-.49,5.1.39a1.79,1.79,0,0,1-.89,1.41C149.33,114.94,149.63,115.64,150,116.38Z"/><path class="cls-15" d="M53.89,87.53l5.51,0c-.19,1-1.1,1.52-1.72,2.22-.84.95,0,.81.55.9a38,38,0,0,1-8.19,8.2l0-1.6,6-6.66h-4.5C51.84,89.2,53.34,88.72,53.89,87.53Z"/><path class="cls-11" d="M115.19,103.09l1.6,0,5.1.05c-.29,1.38-1.74,1.87-2.33,3l-7.83,0c.58-1.18,2.08-1.65,2.34-3.07Z"/><path class="cls-13" d="M150,69.93l0-.41c1.18-.56,1.65-2,3-2.33q0,3.91,0,7.82c-1.42.27-1.89,1.79-3.1,2.34Q150,73.64,150,69.93Z"/><path class="cls-11" d="M94.56,131.19l-7.83,0c.58-1.18,2.08-1.65,2.34-3.07l1.14-.08,1.61,0,5.08.07C96.6,129.56,95.15,130,94.56,131.19Z"/><path class="cls-11" d="M137.06,128.08l1.6,0,5.1.06c-.3,1.38-1.75,1.86-2.33,3l-7.83,0c.58-1.17,2.08-1.65,2.34-3.07Z"/><path class="cls-11" d="M50,97.26q0,.8,0,1.6L50,100c-1.42.26-1.9,1.76-3.07,2.34q0-3.91,0-7.83c1.15-.59,1.64-2,3-2.33Z"/><path class="cls-11" d="M114.82,112.54l7.82,0c-.58,1.18-2.08,1.65-2.34,3.07l-1.14.08-1.6,0-5.08-.06C112.77,114.18,114.23,113.7,114.82,112.54Z"/><path class="cls-11" d="M128.92,65.61l-.42,0-6.21.05-1.2-.06c.57-1.19,2.07-1.66,2.34-3.07l7.82,0C131,64,129.49,64.44,128.92,65.61Z"/><path class="cls-9" d="M128.13,159a11.29,11.29,0,0,0,5.86-5.85c.62.71.32,1.44.08,2.18a10.1,10.1,0,0,1-7.89,7.17c0-1,.9-1.33,1.38-2C127.88,160.05,128.8,159.8,128.13,159Z"/><path class="cls-1" d="M150,77.35c1.21-.55,1.67-2.08,3.1-2.34,0,.06,0,.13,0,.19.15,5.41-.76,6.29-6.24,6,.31-1.39,1.79-1.88,2.36-3.06A.73.73,0,0,0,150,77.35Z"/><path class="cls-6" d="M128.13,159c.67.83-.25,1.08-.57,1.52-.48.65-1.33,1-1.38,2h-5.89c.15-1.34,1.8-1.7,2-3C124.22,159.24,126.21,159.57,128.13,159Z"/><path class="cls-5" d="M146.11,25q3.63-3.72,7.26-7.44c.53-.54,1.22-1,1.33-1.83l2.32,0q-3.63,3.73-7.26,7.47c-.53.54-1.23,1-1.34,1.83Z"/><path class="cls-5" d="M149.21,15.65q-3.64,3.73-7.27,7.47c-.53.54-1.23,1-1.34,1.83l-2.3,0q3.63-3.72,7.26-7.45c.53-.54,1.23-1,1.32-1.83l1.15-.13Z"/><path class="cls-5" d="M141.4,15.65q-3.64,3.73-7.27,7.47c-.53.55-1.23,1-1.34,1.83l-2.3,0q3.63-3.72,7.26-7.43c.53-.54,1.23-1,1.32-1.83Z"/><path class="cls-5" d="M75.81,25q3.63-3.72,7.26-7.44c.53-.54,1.23-1,1.32-1.83l1.15-.13,1.17.08q-3.63,3.73-7.26,7.46c-.53.54-1.23,1-1.34,1.83Z"/><path class="cls-5" d="M52.38,25q3.63-3.72,7.26-7.44c.53-.54,1.22-1,1.32-1.83l2.32,0Q59.65,19.38,56,23.12c-.53.54-1.23,1-1.34,1.83Z"/><path class="cls-5" d="M44.57,25q3.63-3.72,7.26-7.44c.53-.54,1.23-1,1.32-1.83l1.15-.13,1.18.08q-3.64,3.73-7.27,7.47c-.53.55-1.23,1-1.34,1.83Z"/><path class="cls-5" d="M47.67,15.65Q44,19.38,40.4,23.12c-.53.55-1.23,1-1.34,1.83l-2.3,0q3.79-3.88,7.57-7.76c.49-.51.93-1.06,1.39-1.6Z"/><path class="cls-6" d="M83.22,159.44h6.22l-2.71,3-5.5,0C81.38,161.11,83,160.76,83.22,159.44Z"/><path class="cls-6" d="M91,159.44h6.22l-2.71,3-5.5,0C89.19,161.12,90.85,160.76,91,159.44Z"/><path class="cls-6" d="M98.84,159.44h6.22l-2.71,3-5.5,0C97,161.12,98.66,160.76,98.84,159.44Z"/><path class="cls-6" d="M114.46,159.44h6.22l-2.71,3-5.5,0C112.63,161.12,114.28,160.76,114.46,159.44Z"/><path class="cls-6" d="M106.65,159.44h6.22l-2.7,3-5.5,0C104.82,161.11,106.47,160.76,106.65,159.44Z"/><path class="cls-1" d="M123.43,62.55c-.27,1.41-1.78,1.89-2.34,3.07l-.41,0-5.08-.06c.29-1.39,1.75-1.87,2.33-3Z"/><path class="cls-1" d="M66.44,65.61l-.42,0-5.09,0c.29-1.39,1.75-1.87,2.33-3l5.51,0C68.47,64,67,64.43,66.44,65.61Z"/><path class="cls-1" d="M135.93,128.15c-.26,1.42-1.76,1.89-2.34,3.07l-5.49,0c.31-1.38,1.77-1.87,2.35-3l.42,0Z"/><path class="cls-1" d="M55.45,62.55l5.51,0c-.31,1.38-1.77,1.87-2.35,3l-.42,0-5.08-.06C53.41,64.2,54.87,63.71,55.45,62.55Z"/><path class="cls-1" d="M53.9,103.14l.42,0,5.09.05c-.29,1.39-1.75,1.87-2.33,3l-5.51,0C51.86,104.8,53.33,104.32,53.9,103.14Z"/><path class="cls-1" d="M64.88,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C66.92,104.56,65.46,105,64.88,106.2Z"/><path class="cls-1" d="M89.07,128.15c-.26,1.42-1.76,1.89-2.34,3.07l-5.48,0c.27-1.41,1.77-1.89,2.34-3.07H84Z"/><path class="cls-1" d="M72.69,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C74.73,104.56,73.27,105,72.69,106.2Z"/><path class="cls-1" d="M80.5,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C82.54,104.56,81.08,105,80.5,106.2Z"/><path class="cls-1" d="M103.93,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C106,104.56,104.51,105,103.93,106.2Z"/><path class="cls-1" d="M114.06,103.15c-.26,1.42-1.76,1.89-2.34,3.07l-5.49,0c.31-1.38,1.77-1.87,2.35-3l.42,0Z"/><path class="cls-1" d="M127.36,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.41,0,5.08.06C129.41,104.56,127.95,105,127.36,106.2Z"/><path class="cls-1" d="M143,106.2l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.41,0,5.09.06C145,104.56,143.57,105,143,106.2Z"/><path class="cls-1" d="M67.95,112.54l5.51,0c-.31,1.38-1.77,1.87-2.35,3l-.42,0-5.08-.06C65.91,114.19,67.37,113.7,67.95,112.54Z"/><path class="cls-13" d="M47,123.45q0-2.75,0-5.5c1.16-.59,1.65-2.06,3.06-2.34l0,0,0,5.06,0,.41C48.83,121.67,48.34,123.13,47,123.45Z"/><path class="cls-1" d="M83.57,112.54l5.51,0c-.31,1.38-1.77,1.87-2.35,3l-.42,0-5.08-.06C81.53,114.19,83,113.7,83.57,112.54Z"/><path class="cls-1" d="M120.31,115.59c.26-1.42,1.76-1.89,2.34-3.07l5.49,0c-.3,1.38-1.78,1.85-2.33,3l-.42,0Z"/><path class="cls-1" d="M82.06,81.21l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C84.11,79.56,82.64,80,82.06,81.21Z"/><path class="cls-1" d="M143,90.61l-.42,0-5.09-.05c.29-1.39,1.75-1.87,2.33-3l5.51,0C145,89,143.54,89.43,143,90.61Z"/><path class="cls-1" d="M74.25,81.21l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C76.29,79.57,74.83,80,74.25,81.21Z"/><path class="cls-1" d="M128.93,81.21l-5.51,0c.31-1.38,1.77-1.87,2.35-3l.42,0,5.08.06C131,79.56,129.51,80,128.93,81.21Z"/><path class="cls-1" d="M96.12,90.61l-.42,0-5.08,0c.26-1.42,1.76-1.89,2.34-3.07l5.49,0C98.15,89,96.68,89.43,96.12,90.61Z"/><path class="cls-1" d="M48.47,130.78c-1.86-1.26-1.61-3.17-1.54-5,1.16-.58,1.65-2,3-2.34q0,2.36.05,4.73C50,129.31,48.51,129.62,48.47,130.78Z"/><path class="cls-1" d="M149.18,62.55a3.43,3.43,0,0,1,3.89,2.7c-1.36.11-1.69,1.81-3,2,0-.86-.08-1.67-1.31-1.59-.62,0-1.26,0-1.88,0C147.14,64.2,148.6,63.71,149.18,62.55Z"/><path class="cls-1" d="M46.91,102.33c1.18-.58,1.65-2.08,3.07-2.34.4,1.13-1,3.16,1.61,3.18-.15,1.33-1.84,1.67-2,3A3.46,3.46,0,0,1,46.91,102.33Z"/><path class="cls-1" d="M50.82,81.21a3.43,3.43,0,0,1-3.89-2.7c1.36-.11,1.69-1.81,3-2,0,.86.08,1.67,1.31,1.59.62,0,1.26,0,1.89,0C52.86,79.56,51.4,80,50.82,81.21Z"/><path class="cls-8" d="M50,115.6c-1.4.28-1.89,1.75-3.06,2.34-.16-4.3.77-5.45,4.44-5.44.32,0,.64,0,1,0C51.74,113.71,50.27,114.2,50,115.6Z"/><path class="cls-6" d="M77.25,158.6a13.59,13.59,0,0,0,4.38.82L79.3,162.1a6.09,6.09,0,0,1-3.9-2A2.82,2.82,0,0,1,77.25,158.6Z"/><path class="cls-9" d="M77.25,158.6a2.82,2.82,0,0,0-1.86,1.54c-2-1.13-3.77-5-3.15-7A12.09,12.09,0,0,0,77.25,158.6Z"/><path class="cls-5" d="M50,92.17c-1.38.29-1.87,1.74-3,2.33q0-1.15,0-2.3a12.59,12.59,0,0,0,4.64-4.63l2.3,0c-.56,1.19-2.06,1.67-2.34,3.07C50.38,90.48,49.9,91.05,50,92.17Z"/><path class="cls-1" d="M51.59,87.57A12.59,12.59,0,0,1,47,92.2C46.78,88.65,48,87.39,51.59,87.57Z"/><path class="cls-5" d="M116.77,78.09c.52.09,1.38,0,.55.9-.62.7-1.53,1.18-1.72,2.21H113.3c.59-1.16,2-1.64,2.33-3Z"/><path class="cls-5" d="M71.11,115.61c.58-1.17,2-1.66,2.35-3l2.3,0c-.56,1.19-2.05,1.67-2.34,3.07l-1.13.08Z"/><path class="cls-5" d="M102.33,78.15c-.58,1.17-2,1.66-2.35,3l-2.3,0c.59-1.16,2-1.64,2.33-3l1.13-.11Z"/><path class="cls-5" d="M67.95,112.54c-.58,1.16-2,1.64-2.33,3l-1.13.1-1.18-.07c.58-1.17,2-1.66,2.35-3Z"/><path class="cls-5" d="M82.06,81.21c.58-1.16,2-1.64,2.33-3l1.13-.1,1.18.07c-.58,1.17-2,1.66-2.35,3Z"/><path class="cls-5" d="M139.83,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.56-1.19,2.05-1.67,2.34-3.07l1.13-.08Z"/><path class="cls-5" d="M58.61,65.62c.58-1.17,2-1.66,2.35-3l2.3,0c-.58,1.16-2,1.64-2.33,3l-1.13.1Z"/><path class="cls-5" d="M74.25,81.21c.58-1.16,2-1.64,2.33-3l1.13-.1,1.18.07c-.58,1.17-2,1.66-2.35,3Z"/><path class="cls-5" d="M143,106.2c.58-1.16,2-1.65,2.34-3l2.32,0c-.58,1.18-2,1.67-2.35,3Z"/><path class="cls-5" d="M100.77,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.57-1.18,2.05-1.66,2.34-3.05l1.13-.09Z"/><path class="cls-5" d="M66.44,65.61c.56-1.18,2-1.66,2.33-3l2.3,0c-.59,1.15-2,1.64-2.33,3l-1.13.08Z"/><path class="cls-5" d="M127.36,106.2c.58-1.16,2-1.64,2.33-3l1.13-.08c.53.09,1.38,0,.55.9-.62.7-1.53,1.18-1.72,2.21Z"/><path class="cls-5" d="M71.09,78.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.57-1.18,2.05-1.66,2.34-3.05l1.13-.09Z"/><path class="cls-5" d="M55.45,62.55c-.58,1.16-2,1.64-2.33,3l-2.33.05c.57-1.18,2-1.67,2.36-3.05Z"/><path class="cls-5" d="M50.82,81.21c.58-1.16,2-1.64,2.33-3l1.13-.07c.54.08,1.37,0,.54.89-.62.7-1.53,1.17-1.71,2.2Z"/><path class="cls-5" d="M102.32,62.56c-.59,1.16-2,1.64-2.33,3l-1.13.1-1.18-.07c.58-1.17,2-1.65,2.35-3Z"/><path class="cls-5" d="M108.58,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.58-1.16,2-1.64,2.33-3l1.13-.1Z"/><path class="cls-5" d="M117.94,62.55c-.58,1.16-2,1.64-2.33,3l-1.13.1-1.18-.07c.58-1.17,2-1.66,2.35-3Z"/><path class="cls-5" d="M128.92,65.61c.57-1.17,2-1.65,2.33-3l2.31,0c-.59,1.16-2,1.64-2.33,3l-1.13.09Z"/><path class="cls-5" d="M149.18,62.55c-.58,1.16-2,1.64-2.33,3l-1.13.1-1.18-.07c.58-1.17,2-1.66,2.35-3Z"/><path class="cls-5" d="M124.2,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.59-1.15,2-1.64,2.33-3l1.14-.11Z"/><path class="cls-5" d="M69.53,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.58-1.16,2-1.65,2.33-3l1.13-.1Z"/><path class="cls-5" d="M61.72,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.58-1.16,2-1.64,2.33-3l1.13-.1Z"/><path class="cls-5" d="M94.56,131.19c.59-1.15,2-1.64,2.33-3l1.13-.08,1.17,0c-.56,1.18-2,1.65-2.33,3Z"/><path class="cls-5" d="M77.34,103.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.58-1.16,2-1.64,2.33-3l1.13-.1Z"/><path class="cls-5" d="M110.18,131.2c.59-1.16,2-1.64,2.33-3l1.13-.08c.54.08,1.37,0,.54.89-.62.7-1.53,1.17-1.71,2.2Z"/><path class="cls-5" d="M130.45,128.13c-.58,1.17-2,1.66-2.35,3l-2.3,0c.57-1.18,2.05-1.66,2.34-3.05l1.13-.09Z"/><path class="cls-5" d="M146.06,112.52c-.56,1.19-2.06,1.67-2.34,3.07l-1.13.08-1.18-.07c.58-1.17,2-1.66,2.35-3Z"/><path class="cls-5" d="M125.8,115.6c.56-1.18,2-1.66,2.33-3l2.3,0c-.59,1.16-2,1.64-2.33,3l-1.13.08Z"/><path class="cls-5" d="M141.42,131.19c.59-1.15,2-1.64,2.33-3l2.33-.05c-.58,1.18-2,1.67-2.35,3Z"/><path class="cls-5" d="M80.5,106.2c.58-1.16,2-1.64,2.33-3L84,103.1c.54.08,1.37,0,.54.89-.62.7-1.53,1.17-1.71,2.2Z"/><path class="cls-5" d="M143,90.61c.56-1.18,2-1.66,2.34-3l2.3,0c-.59,1.15-2,1.64-2.33,3l-1.13.09Z"/><path class="cls-5" d="M139.81,87.55c-.58,1.16-2,1.64-2.33,3l-1.13.1-1.18-.06c.57-1.19,2-1.68,2.36-3.06Z"/><path class="cls-5" d="M124.19,87.54c-.57,1.18-2.05,1.66-2.34,3.05l-1.13.09-1.18-.07c.58-1.17,2-1.66,2.35-3Z"/><path class="cls-5" d="M96.12,90.61c.56-1.18,2-1.66,2.33-3l2.3,0c-.59,1.16-2,1.64-2.33,3l-1.13.08Z"/><path class="cls-5" d="M66,90.66c-.53-.09-1.38,0-.55-.9.62-.7,1.53-1.18,1.72-2.22h2.29c-.59,1.15-2,1.64-2.33,3Z"/><path class="cls-8" d="M114.82,112.54c-.59,1.15-2,1.64-2.33,3l-1.13.08c-.54-.08-1.37.05-.54-.89.61-.7,1.53-1.17,1.7-2.21Z"/><path class="cls-5" d="M95.73,115.66c-.53-.09-1.38,0-.55-.9.62-.7,1.53-1.18,1.72-2.21h2.29c-.57,1.18-2.05,1.66-2.34,3.05Z"/><path class="cls-5" d="M58.24,90.66c-.52-.09-1.38,0-.55-.9.62-.7,1.53-1.18,1.72-2.22l2.3,0c-.56,1.19-2.06,1.67-2.34,3.07Z"/><path class="cls-5" d="M50,123.41c-1.38.3-1.87,1.75-3,2.34q0-1.15,0-2.3c1.38-.31,1.87-1.78,3-2.35Z"/><path class="cls-5" d="M149.21,78.13c-.57,1.18-2.05,1.67-2.36,3.06l-2.3,0c.57-1.18,2.05-1.66,2.34-3.05Z"/><path class="cls-5" d="M128.93,81.21c.58-1.16,2-1.64,2.33-3l1.13-.1,1.19.06c-.57,1.19-2,1.68-2.36,3.06Z"/><path class="cls-5" d="M86.73,115.61c.58-1.17,2-1.66,2.35-3l2.31,0c-.56,1.19-2.06,1.67-2.34,3.07l-1.13.08Z"/><path class="cls-5" d="M125.77,78.14c-.58,1.17-2,1.66-2.35,3l-2.3,0c.56-1.19,2.05-1.67,2.34-3.07l1.13-.08Z"/><path class="cls-5" d="M83.57,112.54c-.58,1.16-2,1.64-2.33,3l-1.13.08c-.53-.09-1.38,0-.55-.9.62-.7,1.53-1.18,1.71-2.21Z"/><path class="cls-8" d="M149.23,131.2a24.59,24.59,0,0,1,3.84-3.84C153.08,130,151.86,131.21,149.23,131.2Z"/><path class="cls-5" d="M49.64,106.2c.11-1.36,1.81-1.69,2-3l1.13-.08,1.18.05c-.56,1.18-2,1.66-2.34,3Z"/><path class="cls-5" d="M150,67.21c1.33-.15,1.67-1.84,3-2q0,1,0,1.92c-1.38.3-1.85,1.77-3,2.33l0-1.17Z"/><path class="cls-5" d="M50,76.55c-1.34.15-1.67,1.84-3,2q0-1,0-1.93c1.38-.31,1.87-1.77,3-2.35l.07,1.18Z"/><path class="cls-9" d="M118,162.47l2.71-3h1.59c-.18,1.32-1.83,1.68-2,3Z"/><path class="cls-9" d="M110.17,162.47l2.7-3h1.59c-.18,1.32-1.83,1.68-2,3Z"/><path class="cls-9" d="M106.65,159.44c-.18,1.32-1.83,1.68-2,3l-2.31,0,2.71-3Z"/><path class="cls-9" d="M98.84,159.44c-.18,1.32-1.83,1.68-2,3l-2.31,0,2.71-3Z"/><path class="cls-9" d="M91,159.44c-.18,1.32-1.83,1.68-2,3l-2.31,0,2.71-3Z"/><path class="cls-9" d="M79.3,162.1l2.33-2.67h1.59c-.18,1.32-1.83,1.68-2,3C80.57,162.44,79.86,162.67,79.3,162.1Z"/><path class="cls-5" d="M48.47,130.78c0-1.15,1.52-1.47,1.54-2.64l1.16-.06,1.18.06c-.58,1.17-2,1.65-2.35,3A1.69,1.69,0,0,1,48.47,130.78Z"/><path class="cls-5" d="M150,116.38c-.38-.74-.68-1.44.26-2.06a1.79,1.79,0,0,0,.89-1.41,1.59,1.59,0,0,1,1.51,1.52C151.44,114.62,151,115.92,150,116.38Z"/><path class="cls-9" d="M134.13,152.32l.24-.73A.62.62,0,0,1,134.13,152.32Z"/><path class="cls-9" d="M71.88,151.6l.23.72A.61.61,0,0,1,71.88,151.6Z"/><path class="cls-16" d="M93.75,149.94a3.12,3.12,0,1,1-6.24-.13,3,3,0,0,1,3.15-2.94A3,3,0,0,1,93.75,149.94Z"/><path class="cls-16" d="M115.58,146.87a3.12,3.12,0,1,1-3.07,3.07A3,3,0,0,1,115.58,146.87Z"/><path class="cls-16" d="M103.23,153.11a3.12,3.12,0,1,1,3-3.12A3,3,0,0,1,103.23,153.11Z"/><path class="cls-6" d="M87.91,115.67l1.13-.08H93.7c.16.88-.49,1.13-.86,1.51-3,3.05-6.07,6.08-9.09,9.12-.54.54-1.23,1-1.36,1.85l-6.2,0q5.19-5.29,10.38-10.58C87.1,117,87.81,116.54,87.91,115.67Z"/><path class="cls-6" d="M80.11,115.66l1.13-.08,5.08.06q-5.19,5.29-10.37,10.58c-.54.55-1.23,1-1.36,1.85l-6.21.05q5.21-5.31,10.41-10.62C79.31,117,80,116.51,80.11,115.66Z"/><path class="cls-6" d="M72.29,115.67l1.13-.08h4.66c.16.88-.49,1.13-.86,1.51-3,3.05-6.07,6.08-9.09,9.12-.54.54-1.23,1-1.36,1.85l-6.2,0q5.19-5.29,10.38-10.58C71.48,117,72.19,116.54,72.29,115.67Z"/><path class="cls-6" d="M64.48,115.67l1.13-.1,5.08.06q-5.19,5.29-10.37,10.58c-.54.55-1.23,1-1.36,1.85l-6.21,0q5.19-5.29,10.38-10.58C63.67,117,64.38,116.54,64.48,115.67Z"/><path class="cls-9" d="M74.59,128.06c.12-.86.82-1.3,1.36-1.85q5.18-5.3,10.37-10.58l.42,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58Z"/><path class="cls-9" d="M59,128.06c.12-.86.82-1.3,1.36-1.85q5.18-5.3,10.37-10.58l.42,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58Z"/><path class="cls-9" d="M64.48,115.67c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58l-.41,0-1.18-.06c.09-.86.79-1.3,1.32-1.84q5.19-5.31,10.4-10.61l.41,0Z"/><path class="cls-6" d="M85.53,78.08l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21,0q-5.19,5.29-10.38,10.58C86.34,76.77,85.64,77.21,85.53,78.08Z"/><path class="cls-6" d="M77.72,78.08l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21,0q-5.19,5.29-10.38,10.58C78.53,76.77,77.82,77.21,77.72,78.08Z"/><path class="cls-6" d="M69.91,78.08l-1.13.09-5.08-.05q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21,0q-5.19,5.29-10.38,10.58C70.72,76.77,70,77.21,69.91,78.08Z"/><path class="cls-6" d="M67.61,65.66l1.13-.08,5.08.07q-5.19,5.29-10.38,10.58c-.54.55-1.23,1-1.36,1.85H56.25c0-.87.66-1.17,1.08-1.59,3-3,6-6,8.94-9C66.81,67,67.5,66.52,67.61,65.66Z"/><path class="cls-9" d="M62.08,78.07c.13-.85.83-1.3,1.36-1.85q5.18-5.3,10.38-10.58l1.6,0c-.12.86-.82,1.3-1.36,1.85Q68.9,72.83,63.7,78.11Z"/><path class="cls-9" d="M69.91,78.08c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.61,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-9" d="M77.72,78.08c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.61,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-9" d="M85.53,78.08c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l.41,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58l-.41,0Z"/><path class="cls-6" d="M144.16,90.66l1.13-.09c1.17,0,2.34.06,3.51,0,.81,0,1.24.29,1.14,1.15a2.51,2.51,0,0,0-1.43.93l-8.93,8.93a2.4,2.4,0,0,0-.92,1.44l-1.13.08h-4.66c-.16-.88.49-1.13.86-1.51,3-3.05,6.07-6.08,9.09-9.12C143.35,92,144,91.52,144.16,90.66Z"/><path class="cls-4" d="M147.64,103.13l-2.32,0-5.09-.06Q144.86,98,150,93.37q0,3.91,0,7.82a6.4,6.4,0,0,0-1.9,1.9Z"/><path class="cls-9" d="M150,93.37q-5.12,4.63-9.75,9.75l-.41,0-1.18-.07a2.4,2.4,0,0,1,.92-1.44l8.93-8.93a2.51,2.51,0,0,1,1.43-.93Q150,92.57,150,93.37Z"/><path class="cls-6" d="M148.05,103.09a6.4,6.4,0,0,1,1.9-1.9Q150.38,103.52,148.05,103.09Z"/><path class="cls-6" d="M84,103.1l-1.13.08-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l1.14-.08,5.08,0c-3.26,3.75-7,7.05-10.41,10.63C84.76,101.81,84.07,102.25,84,103.1Z"/><path class="cls-6" d="M76.16,103.07l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21,0q-5.19,5.29-10.38,10.58C77,101.77,76.26,102.21,76.16,103.07Z"/><path class="cls-6" d="M68.35,103.07l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21,0q-5.19,5.29-10.38,10.58C69.16,101.77,68.45,102.21,68.35,103.07Z"/><path class="cls-6" d="M66,90.66l1.13-.09,5.08.07q-5.19,5.29-10.38,10.58c-.54.55-1.24,1-1.35,1.85l-1.13.1-5.09-.05q5.2-5.31,10.4-10.62C65.25,92,65.94,91.52,66,90.66Z"/><path class="cls-9" d="M76.16,103.07c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.6,0c-.12.86-.82,1.3-1.36,1.85Q83,97.83,77.76,103.11l-.42,0Z"/><path class="cls-9" d="M68.35,103.07c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.6,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-9" d="M60.53,103.07c.1-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.6,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-6" d="M107.4,103.07l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.2,0q-5.19,5.29-10.38,10.58C108.21,101.77,107.5,102.21,107.4,103.07Z"/><path class="cls-6" d="M99.59,103.07l-1.13.09-5.08-.05q5.19-5.29,10.37-10.57c.54-.55,1.23-1,1.36-1.85l6.2,0q-5.19,5.29-10.38,10.58C100.4,101.77,99.69,102.21,99.59,103.07Z"/><path class="cls-6" d="M97.29,90.65l1.13-.08,5.08.07q-5.19,5.29-10.38,10.58c-.54.55-1.23,1-1.36,1.85H85.93c0-.87.66-1.17,1.08-1.59,3-3,6-6,8.94-9C96.49,92,97.18,91.51,97.29,90.65Z"/><path class="cls-9" d="M91.76,103.07c.13-.85.83-1.3,1.36-1.85q5.18-5.3,10.38-10.58l1.61,0c-.13.86-.82,1.3-1.36,1.85q-5.17,5.3-10.37,10.57Z"/><path class="cls-9" d="M99.59,103.07c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l1.61,0c-.13.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-9" d="M107.4,103.07c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l.41,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-6" d="M109,103.11q5.19-5.29,10.37-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.09h4.62c.26.88-.42,1.12-.78,1.48-3,3.08-6.11,6.12-9.16,9.19-.54.54-1.21,1-1.35,1.84l-1.13.06Z"/><path class="cls-6" d="M123,103.07l-1.14.11-5.1-.05c3.69-4.17,7.83-7.91,11.7-11.91a2.66,2.66,0,0,1,2.17-.59h4.08q-5.19,5.29-10.37,10.58C123.83,101.77,123.13,102.21,123,103.07Z"/><path class="cls-9" d="M123,103.07c.11-.87.81-1.3,1.35-1.85q5.17-5.3,10.37-10.58l.42,0,1.18.06c-.1.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58l-.41,0Z"/><path class="cls-6" d="M113.64,128.09l-1.13.08-5.08-.06q5.19-5.29,10.38-10.58c.54-.55,1.23-1,1.36-1.85l1.14-.08,5.08,0c-3.27,3.74-7,7.05-10.41,10.63C114.45,126.8,113.75,127.24,113.64,128.09Z"/><path class="cls-6" d="M127,115.65l1.13-.08,5.08.06q-5.19,5.29-10.38,10.58c-.54.55-1.23,1-1.36,1.85h-5.83c0-.87.66-1.17,1.08-1.59,3-3,6-6,8.94-9C126.17,117,126.86,116.51,127,115.65Z"/><path class="cls-6" d="M129.27,128.07l-1.13.09-5.08-.05q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.2,0q-5.19,5.29-10.38,10.58C130.08,126.76,129.38,127.2,129.27,128.07Z"/><path class="cls-9" d="M134.79,115.68c-.12.86-.82,1.3-1.36,1.85q-5.17,5.3-10.37,10.58l-1.62,0c.13-.85.83-1.3,1.36-1.85q5.18-5.3,10.38-10.58Z"/><path class="cls-6" d="M111.35,115.65l1.13-.08,5.08.06q-5.19,5.29-10.38,10.58c-.54.55-1.23,1-1.36,1.85l-6.22.06c3.27-3.74,7-7.05,10.41-10.63C110.55,116.94,111.24,116.5,111.35,115.65Z"/><path class="cls-6" d="M98,128.09l-1.13.08-5.08-.07q5.19-5.29,10.38-10.58c.54-.55,1.23-1,1.36-1.85h5.83c0,.87-.66,1.17-1.08,1.6-3,3-6,6-8.94,9C98.82,126.78,98.13,127.23,98,128.09Z"/><path class="cls-6" d="M95.73,115.66l1.12-.07,5.08.05q-5.19,5.29-10.37,10.58c-.54.55-1.23,1-1.36,1.85l-1.14.08-5.07,0c3.27-3.74,7-7,10.4-10.62C94.93,116.95,95.62,116.51,95.73,115.66Z"/><path class="cls-9" d="M90.21,128.06c.12-.86.82-1.3,1.36-1.85q5.17-5.3,10.37-10.58l1.62,0c-.13.85-.82,1.3-1.36,1.85q-5.18,5.3-10.38,10.58Z"/><path class="cls-6" d="M50,76.55l.1-1.13c2.16-1,3.47-3,5.09-4.64s3.61-2.93,4.64-5.09l1.13-.1,5.09,0c-3.27,3.74-7,7.05-10.41,10.63-.53.55-1.22,1-1.33,1.84l-1.13.07c-.63,0-1.26-.09-1.88,0C50,78.22,50,77.41,50,76.55Z"/><path class="cls-6" d="M150,67.21,150,68.34c-1.06.19-1.57,1.1-2.26,1.76a35,35,0,0,0-4.1,4.15,9.18,9.18,0,0,1-9.6,3.86q5.19-5.29,10.37-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.1c.63,0,1.26.08,1.88,0C150,65.54,150,66.35,150,67.21Z"/><path class="cls-6" d="M149.21,78.13l-2.32,0h-5.27c3-3,5.53-5.79,8.38-8.24q0,3.71,0,7.42A.73.73,0,0,1,149.21,78.13Z"/><path class="cls-9" d="M145.71,65.68c-.11.87-.81,1.3-1.35,1.85q-5.17,5.3-10.37,10.58l-.42,0-1.19-.06c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l.41,0Z"/><path class="cls-4" d="M146.08,128.12l-2.33.05-5.09-.06q5.41-5.92,11.33-11.33,0,3.91,0,7.83a19.86,19.86,0,0,0-3.47,3.47Z"/><path class="cls-6" d="M146.49,128.09a19.86,19.86,0,0,1,3.47-3.47C150,128.57,150.45,128.14,146.49,128.09Z"/><path class="cls-6" d="M50.79,65.63l2.33-.05,5.08.06A97.79,97.79,0,0,1,50,73.82c0-2.21,0-4.43,0-6.64C50.05,66.57,49.85,65.81,50.79,65.63Z"/><path class="cls-9" d="M50,73.82a97.79,97.79,0,0,0,8.17-8.17l.42,0,1.18.07c-1,2.16-3,3.47-4.64,5.09s-2.93,3.61-5.09,4.64L50,74.23Z"/><path class="cls-6" d="M144.12,65.65q-5.19,5.29-10.38,10.58c-.53.55-1.24,1-1.35,1.85l-1.13.1-5.08-.06q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85Z"/><path class="cls-6" d="M124.58,78.08l-1.13.08h-4.66c-.16-.88.49-1.14.86-1.51,3-3.05,6.07-6.08,9.1-9.12.54-.54,1.24-1,1.34-1.85l1.13-.09,5.08.07q-5.19,5.29-10.38,10.58C125.39,76.78,124.69,77.21,124.58,78.08Z"/><path class="cls-9" d="M124.58,78.08c.1-.87.81-1.31,1.35-1.85q5.18-5.3,10.38-10.58l1.61,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-9" d="M105.83,128.06c.13-.86.82-1.3,1.36-1.85q5.18-5.3,10.38-10.58l1.6,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.38,10.58Z"/><path class="cls-6" d="M101.15,78.08l-1.13.11-5.08-.07q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.2,0q-5.19,5.29-10.38,10.58C102,76.77,101.26,77.21,101.15,78.08Z"/><path class="cls-6" d="M87.13,78.12q5.19-5.29,10.38-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.1,5.08.07q-5.19,5.29-10.37,10.58c-.54.55-1.23,1-1.36,1.85Z"/><path class="cls-9" d="M93.33,78.07c.12-.86.82-1.3,1.36-1.85q5.18-5.3,10.37-10.58l1.61,0c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58Z"/><path class="cls-9" d="M101.15,78.08c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l.41,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.38,10.58l-.41,0Z"/><path class="cls-4" d="M62.89,115.63q-5.2,5.3-10.4,10.61c-.53.54-1.23,1-1.32,1.84l-1.16.06q0-2.36-.05-4.73,0-1.16,0-2.32l0-.41a41.56,41.56,0,0,0,5-5Z"/><path class="cls-6" d="M55.07,115.65a41.56,41.56,0,0,1-5,5q0-2.53,0-5.06Z"/><path class="cls-6" d="M102.75,78.12q5.19-5.29,10.38-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.1,5.08.06q-5.19,5.29-10.37,10.58c-.54.55-1.23,1-1.36,1.85Z"/><path class="cls-6" d="M116.77,78.09l-1.13.09-5.08-.07q5.19-5.29,10.37-10.58c.54-.55,1.23-1,1.36-1.85l6.21-.05q-5.21,5.31-10.41,10.62C117.57,76.8,116.88,77.24,116.77,78.09Z"/><path class="cls-9" d="M122.29,65.69c-.12.86-.82,1.3-1.36,1.85q-5.18,5.3-10.37,10.58l-1.61,0c.12-.86.82-1.3,1.36-1.85q5.18-5.3,10.37-10.58l.41,0Z"/><path class="cls-9" d="M129.27,128.07c.11-.87.81-1.3,1.35-1.85q5.18-5.3,10.38-10.58l.41,0,1.18.07c-.11.87-.81,1.3-1.35,1.85q-5.18,5.3-10.37,10.58l-.42,0Z"/><path class="cls-6" d="M52.72,103.09l-1.13.08c-2.6,0-1.21-2-1.61-3.18l.07-1.13a38,38,0,0,0,8.19-8.2l1.12-.06H64c.16.88-.49,1.13-.86,1.51-3,3.05-6.07,6.08-9.09,9.12C53.52,101.78,52.83,102.23,52.72,103.09Z"/><path class="cls-6" d="M124.62,103.11q5.19-5.29,10.38-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.1,5.09.05c-3.27,3.74-7,7-10.4,10.62-.53.55-1.22,1-1.33,1.84l-1.13.08Z"/><path class="cls-6" d="M130.87,128.1q5.19-5.29,10.37-10.58c.53-.55,1.24-1,1.35-1.85l1.13-.08h4.66c.16.88-.49,1.13-.86,1.51-3,3.05-6.07,6.08-9.09,9.12-.54.54-1.23,1-1.36,1.85l-1.13.07Z"/><path class="cls-6" d="M50,92.17c-.06-1.12.43-1.69,1.59-1.57H56l-6,6.66Z"/></g></g></g></svg>
assets/images/welcome/Subscription-Signup.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 212.06"><defs><style>.cls-1{fill:#397da9;}.cls-2{fill:#fdf0b4;}.cls-3{fill:#fef1b4;}.cls-4{fill:#d3dde7;}.cls-5{fill:#fbe378;}.cls-6{fill:#a5dec7;}.cls-7{fill:#fde679;}.cls-8{fill:#f6e8ae;}.cls-9{fill:#f6dc76;}.cls-10{fill:#9fd5bf;}.cls-11{fill:#fdacab;}.cls-12{fill:#f3a6a5;}</style></defs><title>Asset 12</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="gu7gu3.tif"><path class="cls-1" d="M158.23,126.54l36.3.07c4.2,0,5.47,1.29,5.47,5.54q0,37.14,0,74.28c0,4.4-1.23,5.64-5.61,5.64H84c-4.37,0-5.57-1.22-5.57-5.67,0-3.83,0-3.83-3.85-3.83H34.28c-7.55,0-12.78-5.23-12.78-12.81q0-55.41,0-110.82c0-2-.47-3.13-2.4-4.14C6.37,68.18-1.2,53.87.16,39.35,1.46,25.47,11.51,13.59,25.4,9.59a34.56,34.56,0,0,1,9.35-1.26c1.54,0,2,.4,2,2-.08,5.22,0,10.44,0,15.66l0,2.39,0,7.11,0,2.39c0,.7-.08,1.41-.09,2.11,0,3.21,0,3.21,3.31,3l2.39,0,7.11,0,2.39,0L59,43l2.39,0,7.11,0,1.35.13c.23,2.38-.23,4.72-.35,7.08A7.44,7.44,0,0,0,68.93,53,39.74,39.74,0,0,1,59,69.21l-3.89,3.24a48.22,48.22,0,0,1-10.84,5.34L41,78.57l-7.6.57C29,78.05,29,78.06,29.1,82.49c0,.31.06.62.08.93l0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39c0,1.17-.12,2.34-.07,3.51.05,1.35.25,2.68,1.88,3.11a2,2,0,0,0,1.9.42l7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0c7.89.37,7.89.37,7.52-7.52l0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.09v-19a6.1,6.1,0,0,1,1.51-3.29l2.37-.6,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0,2.39,0,7.11,0Zm26.58,77.85c7.9.38,7.9.38,7.52-7.52l0-2.38,0-7.11,0-2.38,0-7.11,0-2.38,0-7.11,0-2.38,0-7.11,0-2.38,0-7.11,0-2.38,0-7.11,0-2.38v-3l-18,12.34a58.91,58.91,0,0,0-7.05,4.68c-7.4,4.77-14.73,9.65-21.92,14.75l-7,4.68c-7.21,4.69-14.41,9.41-21.4,14.43a66.17,66.17,0,0,0-7.63,5.05c-2.74,1.8-5.5,3.57-8.21,5.42a2.87,2.87,0,0,1-3,.45l-.69-1.87c.58-1.7,2.48-2,3.49-3.19a55.29,55.29,0,0,0,7.07-4.7l28.49-18.94a50.16,50.16,0,0,0-6.64-4.38l-1.44-1-3.81-2.46-1.89-1.3-4.2-2.68-1.4-.94a21.11,21.11,0,0,0-4.32-2.79,2.42,2.42,0,0,0-1.41-.94,19.62,19.62,0,0,0-4.31-2.8l-1.42-.95a15.3,15.3,0,0,0-3.66-2.39,5.2,5.2,0,0,0-2.07-1.36,15.08,15.08,0,0,0-3.69-2.42,4.94,4.94,0,0,0-2-1.34l-8-5.41c0,4.64,0,8.8,0,13l0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38c0,2,0,3.93-.1,5.89,0,1.14.47,1.36,1.43,1.14l2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0,2.38,0,7.11,0Zm-7.12-70.1H92.49l22,14.2,1.42.94a15.11,15.11,0,0,0,3.68,2.41,4.9,4.9,0,0,0,2,1.34,26.67,26.67,0,0,0,4.68,3.08l.68.44a27.84,27.84,0,0,0,5,3.28l.72.49a25.83,25.83,0,0,0,5,3.25,2.29,2.29,0,0,0,1.41,1c.69.82,1.27.2,1.83-.18q8.88-6,17.74-12.05l7.1-4.74,20.21-13.4ZM34.79,46.92c-1.51.16-2.1-.51-1.91-2a11.7,11.7,0,0,0,0-1.85l0-2.39,0-7.11,0-2.39,0-7.11,0-2.39q0-3.55,0-7.11c-.15-1,.84-2.58-1.37-2.31a23.8,23.8,0,0,0-10,2.72A26.09,26.09,0,0,0,6.72,29.74,23.69,23.69,0,0,0,4,39.73l-.05,2.38c0,2.23-.35,4.48.43,6.65,0,.66-.11,1.36.42,1.91a14.84,14.84,0,0,0,1.86,5.76l1,1.95a11.63,11.63,0,0,0,2.82,4.36,2.24,2.24,0,0,0,1,1.32,8.5,8.5,0,0,0,3.25,3.31l1.56,1.35A14,14,0,0,0,21,71.66l1.46.8a12.94,12.94,0,0,0,5.15,1.68l2.45.64c2,.15,4.07.91,6.15.28l2.87-.24A24.29,24.29,0,0,0,50,71.15,26.08,26.08,0,0,0,62.36,58.74a22.09,22.09,0,0,0,3.32-10.46c.41-2.61-1.58-1-2.41-1.36l-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0Z"/><path class="cls-1" d="M42.3,21.69c0-6.48.16-13,0-19.45,0-2.07.76-2.33,2.47-2.22,8.94.58,16,4.81,22.08,11.09a4.54,4.54,0,0,0,3.65,1.59c21.9,0,43.81,0,65.71,0A13.78,13.78,0,0,1,147,17.21c6.29,6.78,12.71,13.44,19.1,20.13a12.34,12.34,0,0,1,3.53,8.78q.05,33.09,0,66.18c0,2.92-.76,3.86-3.79,4.89l-1.37-.21a4.58,4.58,0,0,1-2.51-3.66l0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.09a4.87,4.87,0,0,0-1.23-4.34Q150.83,32.25,141,21.87a3.89,3.89,0,0,0-3.73-1.52l-7.09,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0H73.77l2.13,4.77.58,1.35,1.42,6.2.18,1.86c-.14,4.58-.14,4.58-4.59,4.8l-.23,0-2.39,0-7.11,0-2.39,0-7.11,0-2.39,0-7.11,0-2.35-.16-.1-5.63,0-2.39,0-7.11Zm4-5.22,0,2.39,0,7.11,0,2.39c0,2,0,3.92-.1,5.88,0,1.12.46,1.37,1.43,1.15l2.39,0,7.11,0,2.39,0c4.33,0,8.67,0,13,.11,1.62,0,1.88-.63,1.64-2a35,35,0,0,0-2.91-9.92,2.47,2.47,0,0,0-.81-1.44,14.41,14.41,0,0,0-2.86-4.75l-.76-1a15.54,15.54,0,0,0-3.94-4.33,3.37,3.37,0,0,0-1.46-1.33,13.66,13.66,0,0,0-4.24-3,2.07,2.07,0,0,0-1.45-.83A20.83,20.83,0,0,0,48,4.13c-1.21-.25-1.9,0-1.86,1.48C46.27,9.23,46.23,12.85,46.26,16.47Z"/><path class="cls-2" d="M174.31,146.88l18-12.34v3c-1,.06-1.47.87-2.07,1.46q-31.67,31.65-63.32,63.32c-.6.6-1.4,1.08-1.46,2.07l-7.11,0c.09-1.17,1.08-1.7,1.78-2.41q26.2-26.24,52.42-52.46C173.29,148.78,174.42,148.23,174.31,146.88Z"/><path class="cls-3" d="M135,204.38l-7.11,0c0-1,.85-1.48,1.44-2.07q30.47-30.5,61-61c.6-.6,1.07-1.41,2.07-1.44l0,7.11c-1,.06-1.47.87-2.07,1.47q-26.92,26.9-53.82,53.82C135.82,202.91,135,203.38,135,204.38Z"/><path class="cls-3" d="M144.45,204.38l-7.11,0c0-1,.85-1.48,1.44-2.08q25.72-25.75,51.47-51.47c.6-.6,1.07-1.41,2.08-1.45l0,7.11c-1,.06-1.47.86-2.07,1.46q-22.18,22.16-44.34,44.34C145.31,202.91,144.51,203.39,144.45,204.38Z"/><path class="cls-2" d="M116,204.38l-7.11,0c.06-1.09,1-1.59,1.61-2.24q16.65-16.68,33.32-33.35c.69-.7,1.72-1.23,1.55-2.49,7.18-5.1,14.51-10,21.92-14.75,0,1.31-1,1.9-1.77,2.66Q141.63,178.11,117.77,202C117.06,202.68,116.08,203.22,116,204.38Z"/><path class="cls-4" d="M55.13,72.45,59,69.21c.5.67,1.22.36,1.86.39l1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.11,0,.95.95c.24,2.5-1.28,3-3.3,2.89l-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0a3.5,3.5,0,0,1-1.9-.54C55.94,72.54,55.54,72.49,55.13,72.45Z"/><path class="cls-3" d="M192.33,158.9l0,7.11c-1,.06-1.47.87-2.07,1.46q-17.43,17.41-34.84,34.84c-.6.6-1.4,1.08-1.46,2.07l-7.11,0c0-1,.84-1.48,1.44-2.07q21-21,42-42C190.85,159.74,191.33,158.93,192.33,158.9Z"/><path class="cls-3" d="M87.48,204.38c-1,.22-1.48,0-1.43-1.14.08-2,.07-3.93.1-5.89,1.08-.09,1.58-1,2.23-1.63q17.1-17.06,34.17-34.15c.61-.61,1.29-1.15,1.94-1.72l3.81,2.46c-.07,1.08-1,1.58-1.62,2.23q-12.11,12.15-24.25,24.28c-.69.7-1.72,1.23-1.61,2.47-1,1.23-2.91,1.49-3.49,3.19-2.53,1.27-4.08,3.62-6,5.52C89.92,201.34,88.17,202.42,87.48,204.38Z"/><path class="cls-5" d="M114.53,148.48l-22-14.2h35.34c-.06,1.08-1,1.57-1.6,2.23C122.38,140.55,118.19,144.25,114.53,148.48Z"/><path class="cls-3" d="M118.41,155.87l4.2,2.68c0,.9-.77,1.34-1.31,1.89Q104.68,177.08,88,193.7c-.54.54-1,1.26-1.91,1.27l0-7.11c1-.06,1.47-.87,2.07-1.47q14.36-14.34,28.7-28.7A23,23,0,0,0,118.41,155.87Z"/><path class="cls-3" d="M163.44,204.38l-7.11,0c0-1,.85-1.48,1.44-2.07q16.23-16.26,32.49-32.49c.6-.6,1.07-1.41,2.07-1.44l0,7.11c-.9,0-1.36.75-1.91,1.3q-12.85,12.83-25.67,25.67C164.19,203,163.48,203.47,163.44,204.38Z"/><path class="cls-3" d="M86.13,185.47l0-7.11c1.08-.09,1.58-1,2.23-1.63q11.16-11.12,22.29-22.29c.72-.72,1.34-1.53,2-2.3a21.11,21.11,0,0,1,4.32,2.79,9.11,9.11,0,0,1-.83,1.13Q102,170.31,87.71,184.54A2.25,2.25,0,0,1,86.13,185.47Z"/><path class="cls-6" d="M4.36,48.76c-.78-2.18-.47-4.42-.43-6.65,1.1,0,1.61-.91,2.26-1.56Q18.4,28.37,30.59,16.18c.65-.65,1.15-1.55,2.24-1.6q0,3.55,0,7.11c-1.07.09-1.58,1-2.23,1.63Q18.6,35.26,6.64,47.23C6,47.88,5.46,48.76,4.36,48.76Z"/><path class="cls-2" d="M106.47,204.38l-7.11,0c0-1,.85-1.48,1.45-2.08,4.85-4.88,9.73-9.73,14.58-14.61.65-.65,1.56-1.16,1.52-2.28,7-5,14.18-9.74,21.4-14.43.07,1.21-.87,1.8-1.58,2.51q-14.3,14.33-28.62,28.64C107.45,202.8,106.56,203.3,106.47,204.38Z"/><path class="cls-6" d="M56.16,46.94l7.11,0c0,1.09-1,1.59-1.6,2.24q-11.92,12-23.87,23.9c-.6.6-1.38,1.08-1.6,2-2.08.63-4.1-.13-6.15-.28-.18-1.22.73-1.83,1.44-2.54Q43,60.7,54.54,49.17C55.18,48.52,56.08,48,56.16,46.94Z"/><path class="cls-7" d="M158.7,134.29h7.11c-.06,1.09-1,1.59-1.61,2.23q-12.34,12.38-24.71,24.74c-.7.7-1.67,1.25-1.7,2.44a25.81,25.81,0,0,1-5-3.25,10.73,10.73,0,0,0,1.32-1q11.83-11.8,23.63-23.61A2.33,2.33,0,0,0,158.7,134.29Z"/><path class="cls-7" d="M168.2,134.29h7.11c0,1-.85,1.48-1.44,2.07-4.57,4.59-9.15,9.16-13.72,13.75-.64.65-1.56,1.17-1.38,2.33q-8.87,6-17.74,12.05c-.56.38-1.13,1-1.83.18,0-1.18,1-1.74,1.72-2.45q12.81-12.85,25.64-25.68C167.21,135.88,168.11,135.37,168.2,134.29Z"/><path class="cls-6" d="M32.83,24.08q0,3.55,0,7.11c-1.08.09-1.58,1-2.23,1.63-6.66,6.63-13.29,13.29-20,19.92a23,23,0,0,1-4,3.7,14.86,14.86,0,0,1-1.86-5.76c1.2,0,1.76-1,2.46-1.69q11.68-11.64,23.33-23.3C31.23,25,31.73,24.13,32.83,24.08Z"/><path class="cls-6" d="M46.67,46.94l7.11,0c0,1.09-1,1.59-1.61,2.24Q40.79,60.58,29.4,72a5.81,5.81,0,0,0-1.79,2.17,12.94,12.94,0,0,1-5.15-1.68c0-1.09.94-1.6,1.58-2.24q10.49-10.53,21-21C45.69,48.52,46.58,48,46.67,46.94Z"/><path class="cls-7" d="M149.21,134.29h7.11c-.06,1.09-1,1.59-1.62,2.24q-10.46,10.5-20.94,21c-.71.71-1.66,1.28-1.68,2.47a27.8,27.8,0,0,1-5-3.28,7.34,7.34,0,0,0,1.16-.79q10.12-10.09,20.23-20.2A2.07,2.07,0,0,0,149.21,134.29Z"/><path class="cls-6" d="M32.83,33.57q0,3.55,0,7.11c-1.08.09-1.58,1-2.24,1.63Q22.16,50.67,13.8,59.08a17.14,17.14,0,0,0-3.34,3.66,11.67,11.67,0,0,1-2.82-4.36,7.23,7.23,0,0,1,.69-1Q19.78,46,31.25,34.5A2.22,2.22,0,0,1,32.83,33.57Z"/><path class="cls-3" d="M172.93,204.38l-7.11,0c0-.91.73-1.37,1.28-1.91q11.65-11.67,23.32-23.32c.55-.55,1-1.26,1.91-1.28l0,7.11a2.33,2.33,0,0,0-1.57,1l-16.86,16.86A2.34,2.34,0,0,0,172.93,204.38Z"/><path class="cls-6" d="M4,39.73a23.69,23.69,0,0,1,2.74-10,2,2,0,0,0,1.61-.82L20.66,16.61A2,2,0,0,0,21.48,15a23.8,23.8,0,0,1,10-2.72c0,.91-.72,1.37-1.27,1.91Q18.06,26.33,5.9,38.47C5.36,39,4.9,39.73,4,39.73Z"/><path class="cls-3" d="M86.13,176l0-7.11c2.43-1.14,3.92-3.35,5.73-5.16,5.06-5.08,10.34-9.93,15.09-15.31a19.62,19.62,0,0,1,4.31,2.8,7.08,7.08,0,0,1-.68,1Q99.16,163.6,87.71,175A2.24,2.24,0,0,1,86.13,176Z"/><path class="cls-6" d="M21,71.66a14,14,0,0,1-4.73-2.95c.57-.65,1.1-1.33,1.71-1.94Q26.75,58,35.54,49.18c.65-.65,1.54-1.16,1.63-2.23l7.11,0c0,1.09-1,1.59-1.6,2.24q-10,10-20,20C22,69.9,21,70.47,21,71.66Z"/><path class="cls-6" d="M50,71.15a24.29,24.29,0,0,1-10.95,3.66c0-.91.71-1.37,1.26-1.91Q52,61.18,63.74,49.48c.55-.55,1-1.23,1.94-1.21a22.09,22.09,0,0,1-3.32,10.46,1.86,1.86,0,0,0-1.43.68L50.64,69.7A1.74,1.74,0,0,0,50,71.15Z"/><path class="cls-8" d="M192.33,139.91c-1,0-1.48.85-2.07,1.44q-30.5,30.47-61,61c-.6.6-1.41,1.07-1.44,2.07l-2.38,0c.06-1,.87-1.47,1.46-2.07q31.65-31.67,63.32-63.32c.6-.6,1.08-1.4,2.07-1.46Z"/><path class="cls-7" d="M126.36,156.25a26.67,26.67,0,0,1-4.68-3.08q8.21-8.32,16.41-16.65c.64-.66,1.54-1.15,1.62-2.23h7.11c-.06,1.09-1,1.59-1.61,2.24q-8.59,8.64-17.22,17.24C127.29,154.47,126.37,155.06,126.36,156.25Z"/><path class="cls-6" d="M14.71,67.36a8.49,8.49,0,0,1-3.25-3.31,4.94,4.94,0,0,1,.53-.78L31.41,43.83a2,2,0,0,1,1.41-.76,11.7,11.7,0,0,1,0,1.85c-.19,1.49.4,2.17,1.91,2,0,1-.84,1.47-1.43,2.07-2.54,2.58-5.08,5.16-7.68,7.68C22,60.22,18.64,64.09,14.71,67.36Z"/><path class="cls-8" d="M116,204.38c.12-1.16,1.1-1.69,1.8-2.4q23.85-23.89,47.71-47.75c.76-.76,1.82-1.35,1.77-2.66a58.83,58.83,0,0,1,7.05-4.68c.11,1.34-1,1.9-1.76,2.64q-26.2,26.24-52.42,52.46c-.7.7-1.69,1.23-1.78,2.41Z"/><path class="cls-8" d="M192.33,149.4c-1,0-1.48.85-2.08,1.45q-25.75,25.72-51.47,51.47c-.6.6-1.41,1.07-1.44,2.08l-2.38,0c.06-1,.87-1.47,1.47-2.07q26.9-26.92,53.82-53.82c.6-.6,1.08-1.41,2.07-1.47Z"/><path class="cls-2" d="M129.74,163.28a50.16,50.16,0,0,1,6.64,4.38l-28.49,18.94c-.05-1.21.92-1.78,1.62-2.48q9.28-9.31,18.57-18.61C128.74,164.85,129.64,164.35,129.74,163.28Z"/><path class="cls-3" d="M86.13,166.48l0-7.11c1-.06,1.47-.86,2.06-1.46q5.7-5.66,11.38-11.36c.66-.66,1.24-1.46,2.31-1.5a15.32,15.32,0,0,1,3.65,2.39C99.63,153.94,93.21,160,87,166.18,86.81,166.38,86.43,166.39,86.13,166.48Z"/><path class="cls-7" d="M130.22,134.29h7.11a2.24,2.24,0,0,1-.93,1.57l-15,15a2.66,2.66,0,0,1-1.79,1,15.11,15.11,0,0,1-3.68-2.41q6.33-6.45,12.65-12.91C129.24,135.86,130.14,135.36,130.22,134.29Z"/><path class="cls-8" d="M192.33,158.9c-1,0-1.48.85-2.07,1.44q-21,21-42,42c-.6.6-1.41,1.07-1.44,2.07l-2.38,0c.06-1,.86-1.47,1.46-2.07q22.16-22.18,44.34-44.34c.6-.6,1.08-1.4,2.07-1.46Z"/><path class="cls-3" d="M192.33,187.38l0,7.11c-1.72.48-2.61,2-3.71,3.16-2.08,2.22-4.72,3.94-6.17,6.73l-7.11,0a2.24,2.24,0,0,1,.93-1.57l14.51-14.51A2.24,2.24,0,0,1,192.33,187.38Z"/><path class="cls-8" d="M192.33,168.39c-1,0-1.48.85-2.07,1.44Q174,186.06,157.77,202.32c-.6.6-1.41,1.07-1.44,2.07l-2.38,0c.06-1,.87-1.47,1.46-2.07q17.41-17.43,34.84-34.84c.6-.6,1.08-1.4,2.07-1.46Z"/><path class="cls-8" d="M106.47,204.38c.09-1.08,1-1.58,1.63-2.23q14.3-14.33,28.62-28.64c.71-.71,1.65-1.3,1.58-2.51l7-4.68c.17,1.26-.86,1.79-1.55,2.49q-16.65,16.69-33.32,33.35c-.65.65-1.55,1.15-1.61,2.24Z"/><path class="cls-8" d="M86.13,195c.91,0,1.36-.73,1.91-1.27q16.64-16.62,33.26-33.26c.54-.54,1.27-1,1.31-1.89l1.89,1.3c-.65.57-1.33,1.11-1.94,1.72q-17.09,17.07-34.17,34.15c-.65.65-1.16,1.55-2.23,1.63Z"/><path class="cls-4" d="M67.57,130.46l-1.92,0-7.57,0a3.49,3.49,0,0,1-1.9-.54c-.79-2.37-.25-3.22,2.14-3.3.86,0,1.72,0,2.58-.05l1.93,0,7.57,0,1.93,0,7.58,0v.59a6.1,6.1,0,0,0-1.51,3.29l-1.34,0-1.93,0Z"/><path class="cls-4" d="M67.57,149.44l-1.92,0-7.57,0a3.5,3.5,0,0,1-1.9-.54c-.79-2.37-.25-3.22,2.14-3.3.86,0,1.72,0,2.58-.05l1.93,0H78.39v3.84l-1.33,0-1.92,0Z"/><path class="cls-2" d="M86.13,157l0-7.11c2.91-1.52,4.61-4.38,7-6.42.94-.79,1.52-2.05,2.95-2.18a15.08,15.08,0,0,1,3.69,2.42q-6.32,6.43-12.66,12.85A3.15,3.15,0,0,1,86.13,157Z"/><path class="cls-8" d="M86.13,185.47a2.25,2.25,0,0,0,1.58-.93q14.23-14.23,28.46-28.47a9.11,9.11,0,0,0,.83-1.13l1.4.94a23,23,0,0,1-1.49,1.82q-14.33,14.37-28.7,28.7c-.6.6-1.08,1.41-2.07,1.47Z"/><path class="cls-2" d="M98,196.35a2.87,2.87,0,0,0,3-.45c2.71-1.85,5.47-3.62,8.21-5.42.16,1.13-.71,1.68-1.36,2.33-3.16,3.18-6.34,6.33-9.49,9.51-.59.6-1.4,1.07-1.45,2.06l-7.11,0A27.09,27.09,0,0,1,98,196.35Z"/><path class="cls-9" d="M168.2,134.29c-.08,1.08-1,1.58-1.63,2.24q-12.81,12.85-25.64,25.68c-.71.71-1.67,1.27-1.72,2.45a2.29,2.29,0,0,1-1.41-1c0-1.19,1-1.74,1.7-2.44q12.34-12.38,24.71-24.74c.65-.65,1.55-1.15,1.61-2.23Z"/><path class="cls-10" d="M4,39.73c.91,0,1.37-.71,1.92-1.26Q18.06,26.33,30.19,14.18c.55-.55,1.26-1,1.27-1.91,2.21-.27,1.22,1.36,1.37,2.31-1.09,0-1.59,1-2.24,1.6Q18.38,28.35,6.19,40.55c-.65.65-1.16,1.54-2.26,1.56Z"/><path class="cls-10" d="M65.68,48.28c-.91,0-1.39.66-1.94,1.21Q52,61.18,40.33,72.9c-.54.55-1.25,1-1.26,1.91l-2.87.24c.22-.91,1-1.4,1.6-2q11.93-12,23.87-23.9c.65-.65,1.55-1.15,1.6-2.24C64.1,47.32,66.09,45.67,65.68,48.28Z"/><path class="cls-8" d="M192.33,177.88c-.91,0-1.37.73-1.91,1.28q-11.67,11.65-23.32,23.32c-.55.55-1.26,1-1.28,1.91l-2.38,0c0-.9.75-1.36,1.3-1.91q12.83-12.85,25.67-25.67c.55-.55,1-1.26,1.91-1.3Z"/><path class="cls-10" d="M32.83,24.08c-1.09.05-1.59,1-2.25,1.61Q18.9,37.32,7.25,49c-.71.7-1.26,1.68-2.46,1.69-.53-.55-.38-1.25-.43-1.91,1.1,0,1.62-.89,2.28-1.54q12-11.95,23.94-23.91c.65-.65,1.16-1.54,2.23-1.63Q32.82,22.88,32.83,24.08Z"/><path class="cls-8" d="M129.74,163.28c-.1,1.07-1,1.57-1.65,2.22q-9.27,9.32-18.57,18.61c-.7.71-1.67,1.27-1.62,2.48a55.25,55.25,0,0,1-7.07,4.7c-.11-1.24.91-1.77,1.61-2.47q12.11-12.15,24.25-24.28c.65-.65,1.55-1.15,1.62-2.23Z"/><path class="cls-10" d="M27.61,74.13A5.81,5.81,0,0,1,29.4,72q11.38-11.41,22.77-22.8c.65-.65,1.56-1.15,1.61-2.24l2.39,0c-.09,1.07-1,1.58-1.63,2.23Q43,60.71,31.5,72.23c-.71.71-1.63,1.32-1.44,2.54Z"/><path class="cls-8" d="M86.13,176a2.24,2.24,0,0,0,1.58-.93q11.45-11.45,22.88-22.9a7.08,7.08,0,0,0,.68-1,2.42,2.42,0,0,1,1.41.94c-.67.77-1.29,1.58-2,2.3Q99.55,165.6,88.39,176.73c-.65.65-1.16,1.55-2.23,1.63Z"/><path class="cls-9" d="M132.08,160c0-1.19,1-1.76,1.68-2.47q10.46-10.5,20.94-21c.65-.65,1.56-1.15,1.62-2.24h2.38a2.33,2.33,0,0,1-1,1.57q-11.81,11.81-23.63,23.61a10.73,10.73,0,0,1-1.32,1Z"/><path class="cls-10" d="M32.83,33.57a2.22,2.22,0,0,0-1.58.93Q19.79,46,8.33,57.43a7.23,7.23,0,0,0-.69,1l-1-1.95a23,23,0,0,0,4-3.7c6.67-6.62,13.3-13.29,20-19.92.65-.65,1.16-1.55,2.23-1.63Q32.82,32.38,32.83,33.57Z"/><path class="cls-5" d="M177.69,134.29h8.39l-20.21,13.4c-.15-1.14.74-1.67,1.38-2.32,3-3,6-6,9-9C176.83,135.75,177.64,135.28,177.69,134.29Z"/><path class="cls-10" d="M21,71.66c0-1.19,1-1.75,1.67-2.46q10-10,20-20c.65-.65,1.55-1.15,1.6-2.24l2.39,0c-.09,1.07-1,1.58-1.63,2.23q-10.49,10.53-21,21c-.65.65-1.55,1.15-1.58,2.24Z"/><path class="cls-2" d="M86.13,147.49v-13l8,5.41C91.57,142.58,89.37,145.58,86.13,147.49Z"/><path class="cls-10" d="M32.83,43.06a2,2,0,0,0-1.41.76L12,63.28a4.94,4.94,0,0,0-.53.78,2.24,2.24,0,0,1-1-1.32,17.15,17.15,0,0,1,3.34-3.66q8.35-8.42,16.77-16.77c.65-.65,1.16-1.55,2.24-1.63Q32.82,41.87,32.83,43.06Z"/><path class="cls-9" d="M126.36,156.25c0-1.18.93-1.78,1.64-2.49q8.6-8.63,17.22-17.24c.65-.65,1.55-1.15,1.61-2.24h2.38a2.07,2.07,0,0,1-.78,1.4q-10.11,10.1-20.23,20.2a7.34,7.34,0,0,1-1.16.79Z"/><path class="cls-10" d="M14.71,67.36c3.94-3.28,7.3-7.15,11-10.7,2.6-2.52,5.14-5.1,7.68-7.68.59-.6,1.41-1.07,1.43-2.07l2.39,0c-.09,1.08-1,1.58-1.63,2.23Q26.77,58,18,66.77c-.61.61-1.14,1.29-1.71,1.94Z"/><path class="cls-8" d="M86.13,166.48c.29-.1.68-.1.87-.3,6.2-6.23,12.62-12.24,18.55-18.74l1.42.95c-4.75,5.38-10,10.24-15.09,15.31-1.81,1.82-3.3,4-5.73,5.16Z"/><path class="cls-8" d="M192.33,187.38a2.24,2.24,0,0,0-1.57.93l-14.51,14.51a2.24,2.24,0,0,0-.93,1.57l-2.38,0a2.34,2.34,0,0,1,1-1.57l16.86-16.86a2.33,2.33,0,0,1,1.57-1Z"/><path class="cls-8" d="M97,204.38c.06-1,.86-1.46,1.45-2.06,3.15-3.18,6.33-6.33,9.49-9.51.65-.65,1.52-1.2,1.36-2.33a66.1,66.1,0,0,1,7.63-5.05c0,1.12-.87,1.63-1.52,2.28-4.85,4.88-9.73,9.73-14.58,14.61-.6.6-1.41,1.07-1.45,2.08Z"/><path class="cls-9" d="M119.64,151.83a2.66,2.66,0,0,0,1.79-1l15-15a2.24,2.24,0,0,0,.93-1.57h2.38c-.08,1.08-1,1.58-1.62,2.23q-8.19,8.34-16.41,16.65A4.9,4.9,0,0,1,119.64,151.83Z"/><path class="cls-9" d="M177.69,134.29c-.05,1-.86,1.46-1.45,2.06-3,3-6,6-9,9-.64.65-1.54,1.18-1.38,2.32l-7.1,4.74c-.18-1.15.73-1.68,1.38-2.33,4.57-4.59,9.15-9.16,13.72-13.75.6-.6,1.41-1.07,1.44-2.07Z"/><path class="cls-10" d="M21.48,15a2,2,0,0,1-.82,1.61L8.34,28.92a2,2,0,0,1-1.61.82A26.09,26.09,0,0,1,21.48,15Z"/><path class="cls-8" d="M86.13,157a3.15,3.15,0,0,0,1-.45q6.35-6.4,12.66-12.85a5.21,5.21,0,0,1,2.07,1.36c-1.07,0-1.65.84-2.31,1.5q-5.69,5.68-11.38,11.36c-.6.6-1.08,1.4-2.06,1.46Z"/><path class="cls-9" d="M130.22,134.29c-.08,1.07-1,1.56-1.61,2.22Q122.3,143,116,149.42l-1.42-.94c3.65-4.23,7.85-7.93,11.7-12,.63-.66,1.55-1.15,1.6-2.23Z"/><path class="cls-3" d="M192.33,196.87c.38,7.9.38,7.9-7.52,7.52A25.36,25.36,0,0,1,192.33,196.87Z"/><path class="cls-10" d="M50,71.15a1.74,1.74,0,0,1,.62-1.45L60.93,59.41a1.86,1.86,0,0,1,1.43-.68A26.08,26.08,0,0,1,50,71.15Z"/><path class="cls-8" d="M192.33,196.87a25.36,25.36,0,0,0-7.52,7.52l-2.38,0c1.46-2.79,4.09-4.51,6.17-6.73,1.1-1.17,2-2.68,3.71-3.16Z"/><path class="cls-8" d="M98,196.35a27.09,27.09,0,0,0-8.16,8l-2.38,0c.69-2,2.44-3,3.82-4.37,2-1.9,3.51-4.25,6-5.52Z"/><path class="cls-8" d="M86.13,147.49c3.23-1.91,5.44-4.91,8-7.56a5,5,0,0,1,2,1.34c-1.42.13-2,1.39-2.95,2.18-2.44,2-4.13,4.9-7,6.42Z"/><path class="cls-4" d="M137.29,21.68l0-1.33A3.89,3.89,0,0,1,141,21.87q9.81,10.36,19.67,20.67a4.87,4.87,0,0,1,1.23,4.34l-1.33,0-2.33,0c-.32-1.53-1.34-1.94-2.79-1.92-4.73,0-9.47-.06-14.2.05-1.67,0-2.14-.46-2.11-2.11.1-5.36,0-10.73.05-16.09,0-1.45-.39-2.47-1.92-2.79Z"/><path class="cls-11" d="M62.84,12.1a15.53,15.53,0,0,1,3.94,4.33,2.82,2.82,0,0,0-2,1.14L48.56,33.8a2.35,2.35,0,0,0-1,1.57c-1,.22-1.47,0-1.43-1.15.08-2,.07-3.92.1-5.88.23-.06.52,0,.67-.19C52.32,22.88,57.83,17.73,62.84,12.1Z"/><path class="cls-11" d="M57.1,35.37l-7.11,0a3.18,3.18,0,0,1,.45-1.05Q59,25.86,67.55,17.42a14.41,14.41,0,0,1,2.86,4.75c-.8,0-1.26.54-1.76,1L58.21,33.65C57.72,34.14,57.12,34.58,57.1,35.37Z"/><path class="cls-11" d="M71.21,23.61a35,35,0,0,1,2.91,9.92c.24,1.34,0,2-1.64,2-4.33-.13-8.67-.08-13-.11,1.15-2.53,3.46-4,5.34-5.91C66.87,27.45,68.54,25,71.21,23.61Z"/><path class="cls-11" d="M46.26,26q0-3.55,0-7.11a4.67,4.67,0,0,0,1.22-.63c3-2.92,5.9-5.87,8.85-8.81a2.31,2.31,0,0,0,.81-1.64,13.68,13.68,0,0,1,4.24,3c0,.08,0,.18,0,.23A110.85,110.85,0,0,1,46.26,26Z"/><path class="cls-11" d="M46.26,16.47c0-3.62,0-7.24-.1-10.86,0-1.51.65-1.73,1.86-1.48A20.82,20.82,0,0,1,55.7,6.94c-.07,1.27-1.1,1.88-1.89,2.58C51.25,11.8,49.36,14.79,46.26,16.47Z"/><path class="cls-12" d="M67.55,17.42Q59,25.87,50.44,34.34A3.18,3.18,0,0,0,50,35.39l-2.39,0a2.35,2.35,0,0,1,1-1.57L64.8,17.56a2.82,2.82,0,0,1,2-1.14Z"/><path class="cls-12" d="M46.26,26a110.85,110.85,0,0,0,15.1-15s0-.15,0-.23a3.37,3.37,0,0,1,1.46,1.33c-5,5.64-10.52,10.79-15.9,16.06-.14.14-.44.13-.67.19Z"/><path class="cls-12" d="M71.21,23.61c-2.68,1.36-4.35,3.84-6.39,5.88-1.88,1.86-4.18,3.38-5.34,5.91l-2.39,0c0-.8.62-1.23,1.11-1.72L68.65,23.2c.5-.5,1-1.06,1.76-1A2.47,2.47,0,0,1,71.21,23.61Z"/><path class="cls-12" d="M46.26,16.47c3.1-1.68,5-4.67,7.55-6.94.79-.7,1.82-1.32,1.89-2.58a2.07,2.07,0,0,1,1.45.83,2.31,2.31,0,0,1-.81,1.64c-2.95,2.94-5.88,5.89-8.85,8.81a4.67,4.67,0,0,1-1.22.63Z"/><path class="cls-4" d="M136.38,107.62l.94.95c.25,2.5-1.28,3-3.3,2.9l-1.92,0-7.57,0-1.92,0-7.57,0-1.92,0-7.57,0-1.92,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.92,0-7.57,0-1.91-.54c-.79-2.38-.25-3.22,2.14-3.3.86,0,1.72,0,2.58-.05l1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.57,0,1.93,0,7.56,0,1.92,0Z"/><path class="cls-4" d="M117.85,88.58l1.92,0,7.57,0,1.92,0,7.11,0,.94.95c.25,2.5-1.28,3-3.3,2.89l-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0c-.63-.53-1.28-.07-1.93,0l-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.93,0-7.57,0-1.92,0-7.57,0-1.91-.53c-.79-2.38-.25-3.22,2.14-3.3.86,0,1.72,0,2.58-.05l1.92,0,7.57,0,1.92,0,7.57,0,1.92,0,7.57,0,1.92,0,7.57,0,1.92,0,7.57,0,1.92,0Z"/><path class="cls-1" d="M139.71,48.85l-2.39,0c-1.5.17-2.13-.45-1.91-2a10.75,10.75,0,0,0-.05-1.88l0-2.39,0-7.11,0-2.39,0-7.11a2.3,2.3,0,0,1,2-2c1.53.32,1.93,1.34,1.92,2.79,0,5.36,0,10.73-.05,16.09,0,1.66.43,2.15,2.11,2.11,4.73-.11,9.47,0,14.2-.05,1.45,0,2.47.39,2.79,1.92a2.32,2.32,0,0,1-2,2l-7.11,0-2.39,0Z"/></g></g></g></svg>
assets/images/welcome/Subscriptions.png ADDED
Binary file
assets/images/welcome/Support.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 185.56"><defs><style>.cls-1{fill:#fc9600;}.cls-2{fill:#283f52;}.cls-3{fill:#294052;}</style></defs><title>Asset 2</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="HpjlxI.tif"><path class="cls-1" d="M115.73,148.92c0,3.84-.36,3.25,3.3,3.28,4.4,0,8.8-.08,13.19.09,12.7.48,24.36,10.77,26.59,23.28a72.56,72.56,0,0,1,.57,7.34c.15,2-.35,2.66-2.53,2.65-22.58-.09-45.17-.06-67.76-.06-14.59,0-29.18,0-43.77,0-1.67,0-2.07-.44-2.07-2.09,0-13.39,5.67-23.24,17.94-29A26,26,0,0,1,72.6,152.2c4.2,0,8.4-.06,12.59,0,1.53,0,1.94-.48,1.9-1.95-.09-3.6-.07-7.2,0-10.79a2.58,2.58,0,0,0-1.39-2.57,29,29,0,0,1-10.2-10.72c-.62-1.46-1.35-2.89-1.84-4.4-2.72-8.39-2.32-16.89-.73-25.41.1-.25.2-.49.29-.74,6-17,24.57-25.16,40.52-17.69,8.08,3.78,13.28,10.13,16.17,18.48a33.46,33.46,0,0,1,1,5.86c.51,8.2.4,16.3-3.53,23.84-1.95,3.28-4.07,6.68-7.34,8.5-4.18,2.32-4.9,5.55-4.32,9.67l-1.59.08c-1.81.09-3.43.1-4.64-1.8a4.94,4.94,0,0,0-4.23-1.89c-2.4,0-4.8-.06-7.19,0A6.12,6.12,0,0,0,92,146a5.83,5.83,0,0,0,5,6.38,31.59,31.59,0,0,0,8.95.06,5.55,5.55,0,0,0,4-2.33,2.75,2.75,0,0,1,2.71-1.26C113.73,148.91,114.73,148.89,115.73,148.92Z"/><path class="cls-2" d="M22.92,83.59c-7.06,0-14.12,0-21.18,0C.31,83.64,0,83.24,0,81.86,0,70.48,6.73,61.5,17.49,58.94c4.45-1.06,9-.59,13.53-.53,1.88,0,2.34-.54,2.23-2.31-.15-2.46-.07-4.93,0-7.39a2,2,0,0,0-1-1.93c-7.19-4.72-10.57-11.46-10.6-20,0-4.88.13-9.67,2.38-14.18C28.15,4.21,37.71-.92,46.44.14,55.88,1.28,64.77,8.22,66.25,19c1,7,1.1,14.25-3.06,20.68a22,22,0,0,1-6.82,6.9A2.38,2.38,0,0,0,55,49q.13,3.89,0,7.79c0,1.18.22,1.69,1.52,1.59,1.52-.12,3.07.08,4.59-.06s1.64.48,1.74,1.78c.19,2.54-.41,4-3,5.33A26.33,26.33,0,0,0,46.44,82c-.4,1.36-1,1.67-2.33,1.66C37,83.55,30,83.59,22.92,83.59Z"/><path class="cls-2" d="M176.82,83.58c-7.06,0-14.12,0-21.18,0a1.76,1.76,0,0,1-2-1.5,27.3,27.3,0,0,0-13.86-16.94,2.83,2.83,0,0,1-1.83-3c.14-3.81,0-3.81,3.86-3.81,3.16,0,3.16,0,3.16-3.1a3.9,3.9,0,0,1,0-.4c.46-4.42-.22-7.91-4.42-10.94-4.78-3.44-6.85-9-7-15-.15-4.58-.43-9.17,1.12-13.62A22.39,22.39,0,0,1,156.81,0c10.4.47,19.19,7.78,21,17.85,1.43,8.07,1.42,16.21-3.9,23.3a21.26,21.26,0,0,1-5.79,5.43A2.35,2.35,0,0,0,166.74,49c.1,2.59.12,5.2,0,7.79-.06,1.38.45,1.6,1.68,1.61,4.25.06,8.51-.24,12.76.31,9,1.16,17.35,9.44,18.41,18.44.2,1.65.32,3.3.39,5,.06,1.31-.42,1.51-1.59,1.5C191.21,83.55,184,83.58,176.82,83.58Z"/><path class="cls-3" d="M115.73,148.92c-1,0-2,0-3-.09a2.75,2.75,0,0,0-2.71,1.26,5.55,5.55,0,0,1-4,2.33,31.59,31.59,0,0,1-8.95-.06A5.83,5.83,0,0,1,92,146a6.12,6.12,0,0,1,6.09-5.26c2.4-.07,4.8,0,7.19,0a4.94,4.94,0,0,1,4.23,1.89c1.21,1.9,2.83,1.89,4.64,1.8l1.59-.08c4.71.67,8.82-.45,12.12-4,3-3.27,4.49-7.3,5.66-11.48.33-1.17-.36-1.36-1.31-1.28a5.8,5.8,0,0,1-4.81-1.4c3.93-7.54,4-15.64,3.53-23.84a33.49,33.49,0,0,0-1-5.86c1.92-.5,1.4-1.88,1.1-3.13a25.8,25.8,0,0,0-11-15.6c-8.11-5.57-17.24-6.2-26.4-4.41-11.23,2.2-18.87,8.94-21.87,20.33-.32,1.22-.54,2.37,1.13,2.76-1.58,8.52-2,17,.73,25.41.49,1.51,1.22,2.93,1.84,4.4a6.82,6.82,0,0,1-4.65,1.37c-3.13-.1-6.27-.19-9.39,0-4.94.32-8.63-2.7-9.24-7.46-.74-5.72-1-11.57.64-17.24,1.38-4.83,4.14-6.86,9-6.72,2,.06,2.74-.5,3.14-2.65A30.23,30.23,0,0,1,81.64,71.15c13.74-7,27.72-6.84,41.13.9A29.91,29.91,0,0,1,138,94.53a1.57,1.57,0,0,0,1.81,1.59c1.66,0,3.35-.22,4.94.42a8.67,8.67,0,0,1,5.05,5.84,38.47,38.47,0,0,1,.74,18.35,8.26,8.26,0,0,1-8.73,6.86c-3-.19-3,0-3.84,3-1.32,4.56-3.09,8.91-6.36,12.47a16.87,16.87,0,0,1-12.68,5.74C117.85,148.79,116.79,148.87,115.73,148.92Z"/></g></g></g></svg>
assets/images/welcome/User.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 193.57"><defs><style>.cls-1{fill:#008838;}.cls-2{fill:#5c2f14;}.cls-3{fill:#01b435;}.cls-4{fill:#472614;}.cls-5{fill:#02953c;}.cls-6{fill:#120f0e;}.cls-7{fill:#fbad00;}.cls-8{fill:#f3c7ab;}</style></defs><title>Asset 9</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="_2pOspT.tif" data-name="2pOspT.tif"><path class="cls-1" d="M148.8,193.56l-145.08,0a15.07,15.07,0,0,1-1.63-.17Q1.39,176.22.69,159q-.3-7.1-.67-14.19c0-.76-.06-1.32.83-1.57,7.57-2.09,14.73-5.36,22.16-7.87a32.47,32.47,0,0,0,11.47,16.14c9,7.09,19.45,10.51,30.67,11.39a66.84,66.84,0,0,0,20-1.11c11.15-2.51,21.13-7,28.63-16,3.63-4.33,6.11-9.22,6.55-15,8.27,1.42,16.53,2.83,24.8,4.28,3.69.65,3.7.68,3.7,4.51q0,25.82,0,51.65C148.87,192,148.82,192.8,148.8,193.56Z"/><path class="cls-2" d="M114.65,22l-3.41,1.6c-3.86.65-4.87,1.38-4.46,3.82a56.43,56.43,0,0,1,.31,10.83,20.71,20.71,0,0,1-2.2,8.84c-.31.63-.53.77-.83,0l-.22-1.24,0-6.18,0-2.07c.24-1.95-.37-3.84-.4-5.77A2.13,2.13,0,0,0,103,30.2c-.12-3.34-.45-3.6-3.45-2.66-.64.2-1.27.44-1.91.66a8.43,8.43,0,0,0-2.89.81l-8.25,2a4.15,4.15,0,0,0-2.48.44l-7,.92-2.49.34A38.52,38.52,0,0,0,68.4,33a8.57,8.57,0,0,0-2.94-.2l-4.93-.46-2.07-.41-4.53-1.28a1.65,1.65,0,0,0-1.2-.52,31.37,31.37,0,0,1-7.46-5.29c0-.16-.1-.39-.29-.22s0,.31.19.34c.5,2.19,2,3.87,3,5.91a8,8,0,0,1-2.87.05c-.46-.45-1.09-.26-1.63-.41-2.87-1.12-5.39-2.63-6.56-6.29-1,5.34-1.66,10.19-2.09,15.07l-.37,2.48-.75,6.63-.17,2.44h0l-.73,0c-.1-.42,0-.91-.49-1.18l-.07-.69c0-2.09-1-4-1.42-6-1.42-6.3-3.34-12.53-2.27-19.15.57-3.48,3.06-6,5.94-5.55a17.64,17.64,0,0,1,3,.57c1.06.35,1.61.2,2-.92a4.23,4.23,0,0,1,2.5-2.57A73.16,73.16,0,0,1,67.93,10a80.67,80.67,0,0,1,10.66.34,92,92,0,0,1,18.53,4.1C103.19,16.47,108.82,19.45,114.65,22Z"/><path class="cls-3" d="M120.35,130.86c-.43,5.76-2.92,10.64-6.55,15-7.5,9-17.49,13.47-28.63,16a66.84,66.84,0,0,1-20,1.11c-11.22-.88-21.7-4.3-30.67-11.39A32.47,32.47,0,0,1,23,135.4c4.81-1.61,9.63-3.21,14.42-4.85.78-.27,1.13.1,1.53.6S40,132.37,40.57,133a4.72,4.72,0,0,0,1.36,1.67l2.21,2.79,1.48,1.8L47.81,142a2.79,2.79,0,0,0,1.07,1.28,16.23,16.23,0,0,0,2.6,3.25,2.8,2.8,0,0,0,1.06,1.31,16.46,16.46,0,0,0,2.61,3.25l1,1.24L59.79,157l3.61-6.37,12.81,0,1.91,3.24,1.62,3.25L97.3,135l.75-.92.32-.37.08-.11a.2.2,0,0,0,.21-.25c.32-.35.62-.73,1-1.05,1.66-1.57,2.52-3.25.2-5.65,2.91.66,5.21,1.25,7.55,1.69,4.08.76,8.18,1.43,12.26,2.15A2.73,2.73,0,0,1,120.35,130.86Z"/><path class="cls-4" d="M102.73,71.07c-.48,7.3-1.15,14.58-1.39,21.9a39.13,39.13,0,0,1-.78,5.67A8.05,8.05,0,0,1,95,105.12c-1,.37-2.07.69-3.1,1-2,.26-3.92.55-5.89.79-5.54.67-11.09-.1-16.62.1-8.09.3-16.14.39-24.16-.89a2.35,2.35,0,0,0-.38-.15c-6.71-1.41-8.66-4.33-9.1-11.91-.42-7.26-.91-14.52-1.37-21.78.09-1.07-.2-2.3,1.16-2.93,1.07,2.67,1.66,5.44,3.11,7.86a3,3,0,0,0,.8,1.7,10.75,10.75,0,0,0,2.09,3.66,3.51,3.51,0,0,0,1.23,1.67,6.09,6.09,0,0,0,2.87,2.47,2.91,2.91,0,0,0,2.1.7c2.5.17,4.07-1.38,5.51-3.07,1.92-2.25,3.74-4.58,6.24-6.25,2.21-1.48,4.55-2.27,7.18-1.18,1.08,1.26,2.15,1.55,3.52.26.81-.77,2-.77,3.12-.85l1.66.39,3.25,1.75,1.62,1.36,2.56,2.75,1.07,1.3a7,7,0,0,0,3.87,3.18c2.51,1.19,4.4-.1,6-1.73a25.91,25.91,0,0,0,5.88-10.17c1.08-1.84,1.38-4,2.32-6A4.22,4.22,0,0,1,102.73,71.07ZM63.83,84.65a23.46,23.46,0,0,0-2.43,0c-1.44.14-3.41-.34-4.08,1.06-.75,1.57.39,3.23,1.38,4.63,0,0,.12.07.17.1a2.39,2.39,0,0,0,1.21,1.3,9.58,9.58,0,0,0,2.85,2,2.62,2.62,0,0,0,1.39.92c1.9,1.16,3.72,2.71,6.14,1.18a21.61,21.61,0,0,0,7.16-4.66,6.67,6.67,0,0,0,2.23-4.9c.24-1-.38-1.14-1.1-1.27a15.63,15.63,0,0,0-4.6-.33l-2.06-.05H65.89A4.35,4.35,0,0,0,63.83,84.65Z"/><path class="cls-4" d="M114.65,22c-5.83-2.55-11.47-5.52-17.53-7.54a92,92,0,0,0-18.53-4.1A80.67,80.67,0,0,0,67.93,10a73.16,73.16,0,0,0-25.72,5.33,4.23,4.23,0,0,0-2.5,2.57c-.4,1.13-1,1.27-2,.92a17.64,17.64,0,0,0-3-.57c-2.87-.41-5.37,2.07-5.94,5.55C27.67,30.43,29.59,36.65,31,43c.45,2,1.39,3.87,1.42,6-4.13-7.43-7.69-15.07-8.7-23.64a14.94,14.94,0,0,1-.05-2.88c.33-4.28,2.17-6.33,6.42-6.91a2.51,2.51,0,0,0,2.26-1.59C35.82,6.65,41.77,2.71,49.53,1.34A89,89,0,0,1,66.94,0c18.41.39,34.3,6.81,47.53,19.68.54.53,1.07,1.06,1.62,1.61A2.43,2.43,0,0,1,114.65,22Z"/><path class="cls-4" d="M104.06,47.12c.3.75.52.6.83,0a20.71,20.71,0,0,0,2.2-8.84,56.43,56.43,0,0,0-.31-10.83c-.41-2.44.6-3.17,4.46-3.82a76.1,76.1,0,0,1-2,17.92,18.22,18.22,0,0,1-2.62,6c-.92.22-1.54,2.24-2.79.46Z"/><path class="cls-5" d="M170.24,36.84,171.51,38l2.09,2.93.64,1.69a29.82,29.82,0,0,1,.63,5.32c0,1.21-.31,1.85-1.74,1.8-3.28-.11-6.57-.08-9.85,0-1.21,0-1.74-.3-1.66-1.6a21.92,21.92,0,0,0-.08-3.89c-.14-1.24-.68-2.19-2.23-2.11a2.19,2.19,0,0,0-2.21,2.23c-.37,3,.17,5.58,3.1,7.18,1.31.71,2.56,1.54,3.84,2.32a14.38,14.38,0,0,0,3.28,2A4.6,4.6,0,0,0,169,57l2.88,2.11,1.59,1.78L175.18,64a3,3,0,0,0,.5,1.64l.1.85.2.54.17,4.38,0,2.07c-.76,4.9-2.62,9.1-7.38,11.39a9.84,9.84,0,0,1-3.45,1.24c-2.26.13-2.75,1.3-2.43,3.2s-.42,2.55-2.24,2.23a3.83,3.83,0,0,0-.62,0c-3.57,0-3.2.53-3.19-3.15,0-1.29,0-2.44-1.8-2.07a2.48,2.48,0,0,0-1.65-.44l-3.58-1.73-1.16-.86a17,17,0,0,1-2.77-3.2l-.67-1.26L145,78l-.26-.44-.78-4.1-.13-1.63c.21-4,.21-4,4.39-4,2.4,0,4.8.06,7.2,0,1.18,0,1.55.4,1.55,1.54,0,2.33.08,4.66.15,7,0,1.39.59,2.47,2.13,2.48s2.19-.86,2.43-2.29c1-5.74-.33-8.67-5.16-11.78-2.58-1.67-5.11-3.41-7.66-5.13l-.68-.58-2.63-3.66a3.45,3.45,0,0,0-.81-1.65l-.9-4.12,0-3.72c.76-6.22,4.23-10,10.57-11.07,1.78-.31,2.76-.81,2.41-2.77-.25-1.41.33-2.05,1.79-1.84a8.33,8.33,0,0,0,1.23,0c2.9,0,2.92,0,3.06,2.95,0,.79.11,1.37,1.09,1.27l2.64.67Z"/><path class="cls-6" d="M83.22,67H81.56l-6.59,0c-1.47.12-2.1-.47-1.87-2a17.93,17.93,0,0,0,0-2.66L73,60.3c.18-2.39-1-3.33-4.19-3.32s-4.78,1.12-4,4.16a18.43,18.43,0,0,0,0,3.25c.35,2.18-.61,2.7-2.57,2.47a22.1,22.1,0,0,0-3.24.07H48.57c-2.39,0-4.78-.16-7.16,0-1.6.07-2.26-.4-2-2a11.79,11.79,0,0,0-.05-2V52.47c-.23-1.74.73-2.21,2.23-2.1H60.12c1.51.35,3.12-.35,4.58.44l0,2.07v3.56a11.49,11.49,0,0,1,4.87-1.14c3.84,1,3.84,1,3.43-3.08A.88.88,0,0,0,73,52c0-1,.6-1.44,1.58-1.4h2.08l6.19,0H93.12l5.34.23.06,1.18V66.5l-.44.52-6.59,0H83.22ZM40.77,52.48l0,5.77c0,2,0,4-.08,6,0,.79.1,1.3,1.09,1.28,6.64-.13,13.29.21,19.93-.19,1.32.54,1.86.13,1.58-1.29,0-3.63,0-7.26.07-10.89,0-.95-.24-1.37-1.26-1.35-5.06.07-10.13.1-15.19.14a32,32,0,0,0-5.75,0C40.64,51.8,40.74,52.17,40.77,52.48ZM94.36,65.6c2.88.15,2.88.15,2.61-2.41,0-3.29,0-6.58.15-9.87,0-1.21-.55-1.3-1.5-1.3-6.59,0-13.18,0-19.77,0-1.06,0-1.43.27-1.41,1.37q.1,5.45,0,10.91c0,1.08.3,1.39,1.38,1.38C82,65.62,88.18,65.62,94.36,65.6Z"/><path class="cls-4" d="M51.46,40.56l2.06-.1,4.59.78,2,.87a8.23,8.23,0,0,1,2.38,2.55c0,.57.33,1.29-.73,1.19a4.27,4.27,0,0,0-3.31-3.33l-1.56-.6a12.77,12.77,0,0,0-5.86-.1,7.17,7.17,0,0,0-6.2,4.11c-1-1.47.31-2.21,1.1-3C47.45,41.47,49.52,41.14,51.46,40.56Z"/><path class="cls-7" d="M199.67,59l-.33.25.33-.25-.18-2h0a16.18,16.18,0,0,0-1.16-5.85,1.5,1.5,0,0,1-.1.52,1.5,1.5,0,0,0,.1-.52c0-.47.1-1-.38-1.32a12.1,12.1,0,0,0-1.68-4.46A30,30,0,0,1,194,47.93c-.53.54-1.07,1.07-1.61,1.59.54-.52,1.08-1.05,1.61-1.59a30,30,0,0,0,2.25-2.54c0-.3,0-.62-.33-.79A16.13,16.13,0,0,0,193.39,40a1.93,1.93,0,0,0-.83-1.23,14.91,14.91,0,0,0-2.9-3.7l-.82-.84a13.56,13.56,0,0,0-3.33-3.13,1.41,1.41,0,0,1-.13.52,1.41,1.41,0,0,0,.13-.52l-.74-.56A11.5,11.5,0,0,0,181.22,28c-1.51,1.32-3,2.65-4.46,4,1.45-1.38,3-2.71,4.46-4a2.07,2.07,0,0,0-1.36-.8,11.69,11.69,0,0,0-4.12-2.05,4.18,4.18,0,0,0-2.14-.88A30.71,30.71,0,0,0,162,22l-.67.77L162,22h-2.06a19.65,19.65,0,0,0-7.41.75,1.34,1.34,0,0,1-.16.68,1.34,1.34,0,0,0,.16-.68,5,5,0,0,0-2.48.49,32.07,32.07,0,0,0-11.6,5.18,34.29,34.29,0,0,0-11.59,11.65,29.71,29.71,0,0,0-4.92,11.13h0a.75.75,0,0,0-.31.85,5.18,5.18,0,0,0-.45,2.48,24.26,24.26,0,0,0-.78,6.61v1.65c.23,1.93.06,3.91.77,5.78,0,.58-.17,1.19.31,1.67a15,15,0,0,0,1.64,5.49c.07.4,0,.86.44,1.11a13.54,13.54,0,0,0,2,4.15l.64,1.19a1.19,1.19,0,0,1-.27,1.61c-.9.93-1.71,1.95-2.55,2.93l-6.74,7.88c1.84-.11,3.19.14,4.48-.43a36.47,36.47,0,0,1,3.05-3.33,36.47,36.47,0,0,0-3.05,3.33l2.08-.09c2.22.24,4.39-.48,6.6-.42a4.48,4.48,0,0,0,2.46-.33c1.8.19,3.74-.51,5.34.88a2.08,2.08,0,0,0,1.24.81A15.22,15.22,0,0,0,143,97.38a1.86,1.86,0,0,0,1.23.49,33.57,33.57,0,0,0,11.56,3.21,1.29,1.29,0,0,1,.1-.47,1.29,1.29,0,0,0-.1.47l1.66,0a32.25,32.25,0,0,0,6.19,0,4.37,4.37,0,0,0,2.47-.38,7.81,7.81,0,0,0,1.43,0A39.57,39.57,0,0,0,192,85.32a34.69,34.69,0,0,0,7.17-17.17h0l.07-.08,0-.1.27-.63.08-2.08A12.84,12.84,0,0,0,199.67,59ZM178.14,39.07l0,0Zm-1,34a2.23,2.23,0,0,1-.36.28A2.23,2.23,0,0,0,177.14,73Zm21-21.11a2.43,2.43,0,0,1-.3.4A2.43,2.43,0,0,0,198.13,51.92ZM174.87,34l-.12.13ZM142.68,72.38a5.88,5.88,0,0,0-.42.44A5.88,5.88,0,0,1,142.68,72.38Zm4.84-13,.22-.14Zm-1,1,.42-.45Zm-4.21-10.24a2.51,2.51,0,0,1,.52-.38A2.51,2.51,0,0,0,142.25,50.14ZM126.64,88.47,125,90Zm16.32.1,0,0Zm-.15,2.24q1-1,2-2Q143.82,89.78,142.82,90.81ZM155,86.35a2.48,2.48,0,0,0-1.65-.44h0l-3.58-1.73h0l-1.16-.86h0a17,17,0,0,1-2.77-3.2l-.2.06.2-.06-.67-1.26L145,78l-.26-.44-.78-4.1a17.09,17.09,0,0,0-2.4,2.08,17.09,17.09,0,0,1,2.4-2.08l-.13-1.63a1.65,1.65,0,0,0-.33.06,1.65,1.65,0,0,1,.33-.06c.21-4,.21-4,4.39-4,2.4,0,4.8.06,7.2,0,1.18,0,1.55.4,1.55,1.54,0,2.33.08,4.66.15,7,0,1.39.59,2.47,2.13,2.48s2.19-.86,2.43-2.29c1-5.74-.33-8.67-5.16-11.78-2.58-1.67-5.11-3.41-7.66-5.13h0l-.68-.58h0l-2.63-3.66a3.45,3.45,0,0,0-.81-1.65h0l-.9-4.12a1.63,1.63,0,0,0-.71,0,1.63,1.63,0,0,1,.71,0l0-3.72c.76-6.22,4.23-10,10.57-11.07,1.78-.31,2.76-.81,2.41-2.77-.25-1.41.33-2.05,1.79-1.84a8.33,8.33,0,0,0,1.23,0c2.9,0,2.92,0,3.06,2.95,0,.79.11,1.37,1.09,1.27h0l2.64.67,3.7,1.75L171.51,38l2.09,2.93.64,1.69h0a29.81,29.81,0,0,1,.63,5.32l.2-.05-.2.05c0,1.21-.31,1.85-1.74,1.8-3.28-.11-6.57-.08-9.85,0-1.21,0-1.74-.3-1.66-1.6a21.92,21.92,0,0,0-.08-3.89c-.14-1.24-.68-2.19-2.23-2.11a2.19,2.19,0,0,0-2.21,2.23c-.37,3,.17,5.58,3.1,7.18,1.31.71,2.56,1.54,3.84,2.32a6.59,6.59,0,0,1,.68-1.25,6.59,6.59,0,0,0-.68,1.25,14.38,14.38,0,0,0,3.28,2A4.6,4.6,0,0,0,169,57h0l2.88,2.11,1.59,1.78h0L175.18,64a1.59,1.59,0,0,0,.89-.28,1.59,1.59,0,0,1-.89.28,3,3,0,0,0,.5,1.64,1.51,1.51,0,0,0,.82-.28,1.51,1.51,0,0,1-.82.28l.1.85.2.54.17,4.38,0,2.07.25,0-.25,0c-.76,4.9-2.62,9.1-7.38,11.39a9.84,9.84,0,0,1-3.45,1.24c-2.26.13-2.75,1.3-2.43,3.2s-.42,2.55-2.24,2.23a3.83,3.83,0,0,0-.62,0c-3.57,0-3.2.53-3.19-3.15C156.8,87.13,156.82,86,155,86.35Zm-8.14.47.17-.16Zm1-27.66.06,0Zm20-9a6.24,6.24,0,0,0-1.77,1,6.24,6.24,0,0,1,1.77-1Zm-2.25,1.42q-.22.21-.42.45Q165.34,51.78,165.57,51.57Zm8.21,8.4a1.94,1.94,0,0,0-.17.34A1.94,1.94,0,0,1,173.77,60Zm24.71,8.34a1.4,1.4,0,0,1,.25-.1A1.4,1.4,0,0,0,198.48,68.31Z"/><path class="cls-6" d="M91,42l1.21.82c.67.87,1.65,1.6,1.26,3.34-1.05-1.5-1.59-3.13-3.33-3.44A9.64,9.64,0,0,0,84,41.61a4.5,4.5,0,0,0-2.06.2c-2.62.34-4.78,1.37-5.8,4.18-.48-1.44-.27-2,1-3.1,2.1-1.75,4.68-2.06,7.25-2.41l2.06.11Z"/><path class="cls-6" d="M89.72,60.45c-1.19,2.81-3.46,4.25-6,3.81a5.5,5.5,0,0,1-.51-10.77,4.88,4.88,0,0,1,6.19,3.92c-.2-.16-.41-.31-.59-.48a2.6,2.6,0,0,0-3.83-.1,2.47,2.47,0,0,0-.43,3.49,2.63,2.63,0,0,0,3.74.84C88.76,60.91,89.24,60.69,89.72,60.45Z"/><path class="cls-8" d="M93.48,116h0l-.41-2c-.33-.95-.15-2-.75-2.91-.12-1.63-.65-3.23-.42-4.9-2,.26-3.92.55-5.89.79-5.54.67-11.09-.1-16.62.1-8.09.3-16.14.39-24.16-.89l.15,4.87c2.32.57,4.74.55,7.07,1-2.33-.47-4.76-.45-7.07-1A51.67,51.67,0,0,1,44,122.18l.48.82.79.08c.76,1,2,1.21,2.91,2l.83.37a1.71,1.71,0,0,1,.61-1.24,1.71,1.71,0,0,0-.61,1.24l.8.44q0,.19.06.37a17.86,17.86,0,0,1,3.66,2.14h.39l.46.71.79.1,3.33,2.41h.41l.82.8.8.11c.74,1,2,1.22,2.9,2l.83.37.8.44q0,.18.06.37c1.38.44,2.39,1.49,3.65,2.14a1.41,1.41,0,0,1,.41,0l1.21-1.38-1.21,1.39.36.39h.59c1.17-.89,2.61-1.38,3.63-2.48a1.51,1.51,0,0,1,.48-1.16,1.51,1.51,0,0,0-.48,1.16c3.51-1.72,6.63-4.07,10-6,.64-.37,1.17-1,2-1.06A22,22,0,0,1,91,125.47c1.18-.82,2.33-1.68,3.54-2.45.81-.52,1.1-1,.66-2C94.55,119.4,94.06,117.68,93.48,116Zm-5.86-3.68-.37,0Zm-2.34.37a2.2,2.2,0,0,1,1.78-.4,2.2,2.2,0,0,0-1.78.4,42.65,42.65,0,0,0-7,.86,2.18,2.18,0,0,1-.93,1.54,2.18,2.18,0,0,0,.93-1.54A42.69,42.69,0,0,1,85.28,112.68Zm-9.07,1.25a2.78,2.78,0,0,1,.95-.36,2.78,2.78,0,0,0-.95.36l-7,.43a1.91,1.91,0,0,1-.71,1.34,1.91,1.91,0,0,0,.71-1.34Z"/><path class="cls-8" d="M108.79,57.42c1.1-2.28,1.72-4.6.47-7a91.36,91.36,0,0,0-6.61,6.4,91.36,91.36,0,0,1,6.61-6.4l-.52-1.2c-.29-1.06-1.44-1.08-2.09-1.71-.92.22-1.54,2.24-2.79.46h0l.19-.82-.22-1.24,0-6.18,0-2.07c.24-1.95-.37-3.84-.4-5.77A2.13,2.13,0,0,0,103,30.2c-.12-3.34-.45-3.6-3.45-2.66-.64.2-1.27.44-1.91.66a8.43,8.43,0,0,0-2.89.81l-8.25,2a4.15,4.15,0,0,0-2.48.44l-7,.92-2.49.34A38.51,38.51,0,0,0,68.4,33a44.34,44.34,0,0,1-4.27,4.53c-.6.58-1.19,1.16-1.78,1.75.58-.59,1.18-1.17,1.78-1.75A44.33,44.33,0,0,0,68.4,33a8.57,8.57,0,0,0-2.94-.2l-4.93-.46-2.07-.41-4.53-1.28a1.65,1.65,0,0,0-1.2-.52,31.36,31.36,0,0,1-7.46-5.29l0,.06,0-.06c0-.16-.1-.39-.29-.22s0,.31.19.34c.5,2.19,2,3.87,3,5.91a8,8,0,0,1-2.87.05c0,.07,0,.15,0,.22s0-.15,0-.22c-.46-.45-1.09-.26-1.63-.41-2.87-1.12-5.39-2.63-6.56-6.29-1,5.34-1.66,10.19-2.09,15.07l-.37,2.48-.75,6.63-.17,2.44h0a10.8,10.8,0,0,1-.57.93,10.8,10.8,0,0,0,.57-.93l-.73,0c-.1-.42,0-.91-.49-1.18-1.09.11-1.84-1.6-3.2-.41a6.1,6.1,0,0,0-1.79,6.17c0,.58-.14,1.21.36,1.69a7.81,7.81,0,0,0,2.08,4.1,61.41,61.41,0,0,0,5.63-5.4,61.42,61.42,0,0,1-5.63,5.4,1.69,1.69,0,0,0,.83,1.26c1.4,1.43,1,3.21,1,4.93l.39,1.59a7.46,7.46,0,0,0,2.27,3.36c.09-1.07-.2-2.3,1.16-2.93,1.07,2.67,1.66,5.44,3.11,7.86a3,3,0,0,0,.8,1.7,10.75,10.75,0,0,0,2.09,3.66,3.51,3.51,0,0,0,1.23,1.67,6.09,6.09,0,0,0,2.87,2.47,2.91,2.91,0,0,0,2.1.7c2.5.17,4.07-1.38,5.51-3.07,1.92-2.25,3.74-4.58,6.24-6.25,2.21-1.48,4.55-2.27,7.18-1.18,1.08,1.26,2.15,1.55,3.52.26.81-.77,2-.77,3.12-.85l1.66.39,3.25,1.75,1.62,1.36,2.56,2.75a1.37,1.37,0,0,0,.86-.29,1.37,1.37,0,0,1-.86.29l1.07,1.3a7,7,0,0,0,3.87,3.18c2.51,1.19,4.4-.1,6-1.73a25.91,25.91,0,0,0,5.88-10.17c1.08-1.84,1.38-4,2.32-6a4.22,4.22,0,0,1,1.16,1.92c2.69-2.06,3.23-4.75,2.34-7.87h0A17.41,17.41,0,0,0,108.79,57.42ZM39.33,62.8V52.47c-.23-1.74.73-2.21,2.23-2.1H60.12c1.51.35,3.12-.35,4.58.44l0,2.07v3.56a11.49,11.49,0,0,1,4.87-1.14c3.84,1,3.84,1,3.43-3.08A.88.88,0,0,0,73,52c0-1,.6-1.44,1.58-1.4h2.08l6.19,0H93.12l5.34.23.06,1.18q0,3.09,0,6.18V66.5l-.44.52-6.59,0H81.56l-6.59,0c-1.47.12-2.1-.47-1.87-2a17.93,17.93,0,0,0,0-2.66h0L73,60.3c.18-2.39-1-3.33-4.19-3.32s-4.78,1.12-4,4.16a18.43,18.43,0,0,0,0,3.25c.35,2.18-.61,2.7-2.57,2.47a22.09,22.09,0,0,0-3.24.07H48.57c-2.39,0-4.78-.16-7.16,0-1.6.07-2.26-.4-2-2A11.79,11.79,0,0,0,39.33,62.8ZM56.69,44.95l.38-.33Zm33.43-2.22A9.64,9.64,0,0,0,84,41.61a4.5,4.5,0,0,0-2.06.2c-2.62.34-4.78,1.37-5.8,4.18-.48-1.44-.27-2,1-3.1,2.1-1.75,4.68-2.06,7.25-2.41l2.06.11L91,42l1.21.82c.67.87,1.65,1.6,1.26,3.34-1.05-1.5-1.59-3.13-3.33-3.44Zm12.74,5.61.29-.17ZM61.51,38.14a35.58,35.58,0,0,1-3.39,3.1l2,.87h0a8.23,8.23,0,0,1,2.38,2.55c0,.57.33,1.29-.73,1.19a4.27,4.27,0,0,0-3.31-3.33,2.5,2.5,0,0,1-.37,1,2.5,2.5,0,0,0,.37-1l-1.56-.59a12.77,12.77,0,0,0-5.86-.1,7.17,7.17,0,0,0-6.2,4.11c-1-1.47.31-2.21,1.1-3,1.51-1.48,3.58-1.81,5.51-2.39l2.06-.1,4.59.78A35.58,35.58,0,0,0,61.51,38.14Z"/><path class="cls-8" d="M74.44,64.3c0,1.08.3,1.39,1.38,1.38,6.17-.07,12.35-.06,18.53-.08,2.88.15,2.88.15,2.61-2.41,0-3.29,0-6.58.15-9.87,0-1.21-.55-1.3-1.5-1.3-6.59,0-13.18,0-19.77,0-1.06,0-1.43.27-1.41,1.37Q74.54,58.85,74.44,64.3Zm8.76-10.82a4.88,4.88,0,0,1,6.19,3.92l.36.3a1.33,1.33,0,0,1,.5,1.13,1.32,1.32,0,0,0-.5-1.13,1.3,1.3,0,0,0,0,1.91l-.06.84c-1.19,2.81-3.46,4.25-6,3.81a5.5,5.5,0,0,1-.51-10.77Z"/><path class="cls-8" d="M59.71,57.06l.06,0h-.1Z"/><path class="cls-8" d="M59.67,60.71h.08l0,0Z"/><path class="cls-8" d="M41.79,65.49c6.64-.13,13.29.21,19.93-.19,1.32.54,1.86.13,1.58-1.29,0-3.63,0-7.26.07-10.89,0-.95-.24-1.37-1.26-1.35-5.06.07-10.13.1-15.19.14a32,32,0,0,0-5.75,0c-.54-.07-.43.29-.41.6l0,5.77c0,2,0,4-.08,6C40.68,65,40.8,65.51,41.79,65.49ZM53.88,53.43a5.51,5.51,0,0,1,5.88,2.8c.13.25.41.55,0,.8.64,0,.33.51.34.84a1.79,1.79,0,0,1,0,2.05c-.09.28.29.82-.35.81.43.37,0,.71-.14,1a5.47,5.47,0,0,1-6.23,2.37,5.56,5.56,0,0,1-3.94-5.4A5.63,5.63,0,0,1,53.88,53.43Z"/><path class="cls-6" d="M59.71,60.67c.51.39.07.75-.1,1a5.47,5.47,0,0,1-6.23,2.37,5.56,5.56,0,0,1-3.94-5.4,5.63,5.63,0,0,1,4.44-5.24,5.51,5.51,0,0,1,5.88,2.8c.14.26.44.58,0,.83-.23-.13-.47-.24-.69-.38-1.4-.88-2.75-.89-3.85.45a2.49,2.49,0,0,0,0,3.39A2.62,2.62,0,0,0,59,61,5.15,5.15,0,0,1,59.71,60.67Z"/><path class="cls-6" d="M59.67,60.71a.58.58,0,0,1,.44-.8C60,60.21,60.43,60.78,59.67,60.71Z"/><path class="cls-6" d="M60.11,57.86c-.48-.1-.49-.46-.44-.84C60.44,57,60.09,57.51,60.11,57.86Z"/></g></g></g></svg>
assets/images/welcome/frontend-posting.png ADDED
Binary file
assets/images/welcome/pay-per-post.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 207.24"><defs><style>.cls-1{fill:#feb42c;}.cls-2{fill:#aebfc6;}.cls-3{fill:#fe7400;}.cls-4{fill:#aeb604;}.cls-5{fill:#fea88c;}.cls-6{fill:#8ca6b0;}.cls-7{fill:#fede71;}.cls-8{fill:#fea200;}.cls-9{fill:#fe8601;}.cls-10{fill:#d6ecc0;}.cls-11{fill:#a4e4fc;}.cls-12{fill:#fec8b5;}.cls-13{fill:#feeaaa;}</style></defs><title>Asset 10</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="_8nxI2k.tif" data-name="8nxI2k.tif"><path class="cls-1" d="M0,173.18c1.17-3.47,2.22-7,4.61-9.9,5.59-6.81,12.73-10,21.43-8.17s14.22,7.26,16.71,15.79a9.22,9.22,0,0,1-3.58.88,10.31,10.31,0,0,0-1.82-5.06,18.43,18.43,0,0,0-19-8.18C5.75,160.71-.5,175.44,6.59,186.41c4.51,7,12.37,9.6,21.14,7.22l1.35,3.14C16.74,201.41,3.93,193.36.87,182c-.19-.69-.16-1.51-.87-2Z"/><path class="cls-2" d="M127.73,0c4.12,1.3,7.69,3.34,10.07,7.14,5.09,8.1.2,19.49-9.1,21.52a14.78,14.78,0,0,1-17.23-10.44A14.6,14.6,0,0,1,122,.49c.42-.12.92,0,1.2-.49ZM114.55,14.55a10.91,10.91,0,0,0,21.81.09,10.91,10.91,0,1,0-21.81-.09Z"/><path class="cls-3" d="M169.79,89.85c3.41.39,3.66.89,3.29,4.34-.67,6.22-1.15,12.47-1.71,18.7q-.35,3.83-.72,7.66c-.11,1.11-.6,2-1.84,1.8-1.47-.22-1.56.52-1.55,1.66,0,4.92-.1,9.84.06,14.75a17.58,17.58,0,0,1-2.82,10.94,27.47,27.47,0,0,1-4,3.44,19.26,19.26,0,0,1-8.17,1.44c-15.9,0-31.8,0-47.71,0-1.24.89-2.44-.09-3.67-.09q-19.32.06-38.63.09l-21.13-.07c-5.35,0-8.43-3.08-8.43-8.42q0-39.65,0-79.3c0-.91,0-1.81-.07-2.72v-3.7a8.15,8.15,0,0,1,3.76-6.79,9.68,9.68,0,0,1,3.68-1l1.61,0q18.75,0,37.49.07a8.18,8.18,0,0,0,1.75-.38c.42.67,1.09.39,1.64.39q35.14,0,70.29,0h3.62c2.2.91,4.48,1.65,6.3,3.33a13.18,13.18,0,0,1,4.47,10q0,8.38.07,16.75a34.55,34.55,0,0,1-.1,4.06C167,88.89,167.61,90,169.79,89.85Zm-8.07,32-3.48,0c-5.86-1-11.79-1.36-17.7-1.79-9.41-.68-17.41-9.41-15.33-19.75,1.77-8.81,11.18-14.52,20-12.95,4.27.76,8.66.84,13,1.23l3.44.37c1.78.48,2-.49,2-2,0-6.89,0-13.77,0-20.66,0-6.35-3.63-10-10-10H41.07c-3.26,0-4.19.73-4.68,3.61q0,43,0,85.94c-.91,1.41-.4,2.43.89,3.22.61,2.12,2.38,1.75,3.92,1.75h113c.38,0,.76,0,1.13,0,4.24-.19,8.18-3.94,8.26-8.17.12-6.35,0-12.71,0-19.07C163.65,122.3,163.08,121.69,161.71,121.87Zm-33.08-18.31c-.38,6.9,4.25,11.53,10.51,12.68a110.54,110.54,0,0,0,11,1c4.35.35,8.73.51,13.05,1,4,.5,4,.67,4.49-3.2,0-.22,0-.45,0-.68.55-6.52,1.07-13,1.67-19.56.1-1.09-.22-1.64-1.25-1.67-5.2-.15-10.3-1.32-15.5-1.43a73.2,73.2,0,0,1-8.07-.8C135.53,89.78,128.62,95.06,128.63,103.56Z"/><path class="cls-4" d="M80.94,52.32a8.18,8.18,0,0,1-1.75.38q-18.75,0-37.49-.07c5.53-.58,11.06-1.18,16.59-1.74q14.49-1.46,29-2.89c2.39.47,4.65-.71,7-.53-2.34.07-4.72-.71-7,.34A9.74,9.74,0,0,0,86,47.68c-14.8.47-29.59,1-44.39,1.41-1.36,0-1.72.56-1.59,1.76.07.6.06,1.21.09,1.81a9.68,9.68,0,0,0-3.68,1c0-1.73,0-3.47-.06-5.2-.13-2.08.86-2.85,2.81-2.87,2.71,0,5.42-.16,8.13-.25A10.46,10.46,0,0,0,51.05,45a1.39,1.39,0,0,0,1.43.46c11.23-.9,22.49-.92,33.74-1.36q23.81-.93,47.62-1.73c6.65-.23,13.31-.37,20-.6,1.87-.07,2.59.76,2.59,2.56,0,2.8.07,5.6.11,8.4h-3.62c-.14-1.88-.31-3.76-.41-5.64-.07-1.29-.6-1.51-1.89-1.37-5.62.63-11.27,1.08-16.9,1.61l-25.24,2.4Z"/><path class="cls-5" d="M39.18,171.78a9.22,9.22,0,0,0,3.58-.88c6.29-.27,11.81,1.4,16.08,6.28,4.48,5.12,6,11,3.76,17.46A18.17,18.17,0,0,1,49,206.81c-7.21,1.77-15.74-2-20-10l-1.35-3.14a5.74,5.74,0,0,0,0-.9c-1.51-8.27,1.59-14.5,8.42-19.08C37.12,173,38.16,172.4,39.18,171.78Zm6.41,2.77a14.29,14.29,0,0,0-14.68,14.3c0,8.41,6.17,14.78,14.41,14.79A14.29,14.29,0,0,0,60,189.34C60,180.93,53.82,174.56,45.59,174.55Z"/><path class="cls-5" d="M200,41.76c0,9.53-8.54,18.17-18.08,18.23s-18.32-8.57-18.28-18.25,8.6-18.12,18.18-18.12S200,32.21,200,41.76Zm-18.28,14.6A14.29,14.29,0,0,0,196.36,42c0-8.41-6.2-14.74-14.45-14.75a14.24,14.24,0,0,0-14.64,14.56A14.26,14.26,0,0,0,181.72,56.36Z"/><path class="cls-6" d="M62.29,154.62q19.32,0,38.63-.09c1.22,0,2.43,1,3.67.09,3.74.88,7.59.89,11.39,1.26,6,.58,12,.93,18,1.51,6.83.66,13.65,1.43,20.5,1.72,4.34.18,5.94-1.53,5.95-6a27.47,27.47,0,0,0,4-3.44,56,56,0,0,1-.53,5.86,8.72,8.72,0,0,1-8.95,7.16c-6.71-.38-13.4-1.06-20.1-1.62q-9-.76-18.06-1.54c-8-.7-15.94-1.44-23.92-2.14-5.87-.52-11.74-1-17.61-1.5C71,155.52,66.64,155.05,62.29,154.62Z"/><path class="cls-2" d="M85.45,181.56c.08-7.47,7.12-14.38,14.57-14.29,7.71.09,14.54,6.94,14.52,14.57s-7,14.54-14.57,14.52S85.37,189.34,85.45,181.56Zm14.35,11.16a10.91,10.91,0,0,0,.49-21.81c-6.41-.08-11.17,4.5-11.2,10.77A10.64,10.64,0,0,0,99.81,192.73Z"/><path class="cls-2" d="M51.05,45a10.46,10.46,0,0,1-3.76.32c-1.89-4.68-8.77-6.72-14-4.26-8,3.78-7.93,15.56-.67,19.36v3.7a14.71,14.71,0,0,1-9-14.12A15.29,15.29,0,0,1,34.78,36.85C41.48,35.2,49,39,51.05,45Z"/><path class="cls-6" d="M169.79,89.85c-2.18.12-2.82-1-2.54-3a34.55,34.55,0,0,0,.1-4.06C169.33,84.74,169.83,87.2,169.79,89.85Z"/><path class="cls-7" d="M39.18,171.78c-1,.62-2.06,1.21-3.05,1.88-6.84,4.58-9.94,10.81-8.42,19.08a5.74,5.74,0,0,1,0,.9C19,196,11.1,193.39,6.59,186.41c-7.09-11-.84-25.7,11.79-27.88a18.43,18.43,0,0,1,19,8.18A10.31,10.31,0,0,1,39.18,171.78Z"/><path class="cls-8" d="M158.24,88.59c-4.34-.39-8.73-.47-13-1.23-8.87-1.57-18.28,4.14-20,12.95-2.08,10.34,5.92,19.07,15.33,19.75,5.91.43,11.84.79,17.7,1.79,0,1.56,0,3.13-.06,4.69a2.25,2.25,0,0,0,1.84,2.63v1.67c-2.06.46-2.1,2.13-1.77,3.59.56,2.49-1.81,5.71,1.77,7.47l-.15,1.56a2,2,0,0,0-2.14.29,6.09,6.09,0,0,1-5.15,1.73,1.91,1.91,0,0,0-2.19,1.81h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.13,0a2.08,2.08,0,0,0-2.42,1.83H136a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.14,0a2.07,2.07,0,0,0-2.42,1.83h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.14,0a2.07,2.07,0,0,0-2.42,1.83h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.13,0a2.07,2.07,0,0,0-2.42,1.83h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.13,0a2.07,2.07,0,0,0-2.42,1.83H85a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.14,0A2.08,2.08,0,0,0,74,147.28h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.14,0a2.08,2.08,0,0,0-2.42,1.83h-1.7a2.21,2.21,0,0,0-2.47-1.84c-2,.05-4.09,0-6.13,0a2.08,2.08,0,0,0-2.42,1.83h-1.7c-.2-.86-.68-1.74-1.55-1.73-3,0-6-.59-8.94.38q0-43,0-85.94l1.25,0a2.09,2.09,0,0,0,2.44,1.81c2,0,4.08-.05,6.12,0A2.23,2.23,0,0,0,48.68,60h1.68a2.09,2.09,0,0,0,2.44,1.81c2,0,4.08-.05,6.12,0A2.24,2.24,0,0,0,61.41,60h1.68a2.09,2.09,0,0,0,2.44,1.81c2,0,4.08-.05,6.12,0A2.23,2.23,0,0,0,74.14,60h1.68a2.09,2.09,0,0,0,2.44,1.81c2,0,3.93-.06,5.9,0A2.33,2.33,0,0,0,86.86,60h1.68a2,2,0,0,0,2.66,1.76c2.78-.7,6.26,1.92,8.39-1.77h1.68a2,2,0,0,0,2.66,1.76c2.78-.7,6.26,1.92,8.39-1.77H114a2,2,0,0,0,2.66,1.76c2.78-.7,6.26,1.92,8.39-1.77h1.68a2.09,2.09,0,0,0,2.44,1.81c2,0,3.93-.06,5.9,0A2.33,2.33,0,0,0,137.77,60h1.68a2,2,0,0,0,2.66,1.76c2.78-.7,6.26,1.92,8.39-1.77h1.68c.14.34.24,1,.41,1,3.16.4,4.81,3.22,7.39,4.52V67.2a2.15,2.15,0,0,0-1.82,2.46q.08,3.06,0,6.13A2.16,2.16,0,0,0,160,78.25v1.67c-1.43.31-1.87,1.26-1.82,2.63C158.24,84.57,158.22,86.58,158.24,88.59Z"/><path class="cls-8" d="M128.63,103.56c0-8.5,6.9-13.78,15.94-12.57a73.2,73.2,0,0,0,8.07.8c5.21.11,10.31,1.29,15.5,1.43,1,0,1.35.58,1.25,1.67-.61,6.51-1.13,13-1.67,19.56,0,.23,0,.46,0,.68-.51,3.87-.49,3.69-4.49,3.2-4.33-.54-8.7-.69-13.05-1a110.54,110.54,0,0,1-11-1C132.88,115.09,128.25,110.46,128.63,103.56Zm4.12.4c-.08,1.21.35,2.21,1.61,2.33,1.4.13,1.88-.84,2-2.16.36-3.19,1.83-4.64,5.07-5,1.32-.15,2.27-.66,2.1-2.07-.15-1.26-1.17-1.62-2.37-1.57C137.25,95.63,132.85,100.05,132.75,104Zm9.66,7.86c3.12-.08,6.59-3.55,6.69-6.66,0-1.2-.32-2.19-1.59-2.36s-1.92.65-2,1.89a3.48,3.48,0,0,1-3.47,3.49c-1.25.12-2.07.74-1.92,2S141.2,111.89,142.4,111.82Z"/><path class="cls-1" d="M101.27,60H99.59a2.15,2.15,0,0,0-2.41-1.84c-2.09,0-4.18,0-6.28,0A2,2,0,0,0,88.55,60H86.86a2.15,2.15,0,0,0-2.41-1.84c-2.09,0-4.18,0-6.28,0A2,2,0,0,0,75.82,60H74.14a2.24,2.24,0,0,0-2.63-1.85c-1.94.06-3.89.05-5.83,0-1.37,0-2.34.37-2.59,1.85H61.41a2.24,2.24,0,0,0-2.63-1.85c-1.94.06-3.89.05-5.83,0-1.37,0-2.34.37-2.59,1.85H48.68a2.15,2.15,0,0,0-2.41-1.84c-2.09,0-4.18,0-6.28,0A2,2,0,0,0,37.63,60l-1.25,0c.49-2.89,1.42-3.61,4.68-3.61h112.6c6.34,0,10,3.63,10,10,0,6.89,0,13.77,0,20.66,0,1.47-.2,2.43-2,2,0-2.3.1-4.6.14-6.89A2,2,0,0,0,160,79.93V78.25a2.11,2.11,0,0,0,1.85-2.39q-.06-3.14,0-6.28A2.11,2.11,0,0,0,160,67.2V65.52c1.63-.54,1.74-1.73,1.2-3.08a7.48,7.48,0,0,0-6.41-4.28c-1.4,0-2.35.37-2.6,1.86H150.5a2.15,2.15,0,0,0-2.41-1.84c-2.09,0-4.18,0-6.28,0A2,2,0,0,0,139.45,60h-1.68a2.24,2.24,0,0,0-2.63-1.85c-1.94.06-3.89.05-5.83,0-1.37,0-2.34.37-2.59,1.85H125a2.15,2.15,0,0,0-2.4-1.84c-2.09,0-4.19,0-6.28,0A2,2,0,0,0,114,60h-1.68a2.15,2.15,0,0,0-2.41-1.84c-2.09,0-4.18,0-6.28,0A2,2,0,0,0,101.27,60Z"/><path class="cls-9" d="M136,147.28h1.7c.31,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0a2.36,2.36,0,0,0,2.71-1.83h1.7a2,2,0,0,0,1.77,1.78c2.35.17,4.64.1,6.67-1.42,1.56-1.16,2.23-2.41,1-4.19l.15-1.56c3.5-1.68,1.27-4.81,1.76-7.24.3-1.5.41-3.29-1.76-3.82v-1.67a2.28,2.28,0,0,0,1.83-2.64c-.08-1.55-.08-3.11-.12-4.66,1.37-.18,1.94.43,1.93,1.8,0,6.36.08,12.71,0,19.07-.08,4.23-4,8-8.26,8.17-.38,0-.76,0-1.13,0h-113c-1.54,0-3.3.37-3.92-1.75,2.31,0,4.62-.09,6.93,0a2.36,2.36,0,0,0,2.67-1.84h1.7c.31,1.45,1.3,1.87,2.67,1.83,1.88-.05,3.77-.07,5.65,0a2.36,2.36,0,0,0,2.71-1.83h1.7c.32,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0a2.36,2.36,0,0,0,2.71-1.83H74c.32,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0A2.36,2.36,0,0,0,85,147.28h1.7c.31,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0a2.36,2.36,0,0,0,2.71-1.83h1.7c.31,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0a2.36,2.36,0,0,0,2.71-1.84h1.7c.31,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0a2.36,2.36,0,0,0,2.71-1.84h1.7c.32,1.45,1.29,1.87,2.67,1.83,1.88-.05,3.77-.06,5.65,0A2.36,2.36,0,0,0,136,147.28Z"/><path class="cls-10" d="M80.94,52.32l27.49-2.62,25.24-2.4c5.63-.53,11.28-1,16.9-1.61,1.29-.14,1.82.07,1.89,1.37.1,1.88.27,3.76.41,5.64q-35.14,0-70.29,0C82,52.71,81.36,53,80.94,52.32Z"/><path class="cls-11" d="M160.46,153.14c0,4.44-1.61,6.15-5.95,6-6.86-.29-13.68-1.06-20.5-1.72-6-.58-12-.93-18-1.51-3.8-.37-7.64-.38-11.39-1.26,15.9,0,31.8-.08,47.71,0A19.26,19.26,0,0,0,160.46,153.14Z"/><path class="cls-10" d="M87.29,48q-14.5,1.44-29,2.89c-5.53.56-11.06,1.16-16.59,1.74l-1.62,0c0-.6,0-1.21-.09-1.81-.13-1.2.23-1.72,1.59-1.76,14.8-.43,29.59-.93,44.39-1.41a9.86,9.86,0,0,1,1.34.14Z"/><path class="cls-12" d="M46.86,147.28a2.36,2.36,0,0,1-2.67,1.84c-2.31,0-4.62,0-6.93,0-1.3-.8-1.8-1.81-.89-3.22,2.94-1,6-.35,8.94-.38C46.18,145.53,46.66,146.41,46.86,147.28Z"/><path class="cls-12" d="M161.71,121.87c0,1.55,0,3.11.12,4.66a2.28,2.28,0,0,1-1.83,2.64,2.25,2.25,0,0,1-1.84-2.63c.07-1.56,0-3.13.06-4.69Z"/><path class="cls-7" d="M87.29,48l0-.19c2.28-1,4.67-.26,7-.34C91.94,47.3,89.68,48.48,87.29,48Z"/><path class="cls-13" d="M45.59,174.55c8.23,0,14.44,6.38,14.41,14.79a14.29,14.29,0,0,1-14.68,14.3c-8.23,0-14.44-6.38-14.41-14.79A14.29,14.29,0,0,1,45.59,174.55Z"/><path class="cls-13" d="M181.72,56.36a14.26,14.26,0,0,1-14.45-14.52,14.24,14.24,0,0,1,14.64-14.56c8.25,0,14.46,6.35,14.45,14.75A14.29,14.29,0,0,1,181.72,56.36Z"/><path class="cls-12" d="M159.86,143.45c1.19,1.78.52,3-1,4.19-2,1.52-4.33,1.59-6.67,1.42a2,2,0,0,1-1.77-1.78,1.91,1.91,0,0,1,2.19-1.81,6.09,6.09,0,0,0,5.15-1.73A2,2,0,0,1,159.86,143.45Z"/><path class="cls-12" d="M72.32,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.35-.38-2.67-1.83a2.08,2.08,0,0,1,2.42-1.83c2,0,4.09,0,6.14,0A2.21,2.21,0,0,1,72.32,147.28Z"/><path class="cls-12" d="M85,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.35-.38-2.67-1.83a2.08,2.08,0,0,1,2.42-1.83c2,0,4.09.05,6.14,0A2.21,2.21,0,0,1,85,147.28Z"/><path class="cls-12" d="M59.59,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.37,0-2.36-.38-2.67-1.83A2.08,2.08,0,0,1,51,145.44c2,0,4.09,0,6.13,0A2.21,2.21,0,0,1,59.59,147.28Z"/><path class="cls-12" d="M97.77,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.35-.38-2.67-1.83a2.07,2.07,0,0,1,2.42-1.83c2,0,4.09,0,6.13,0A2.21,2.21,0,0,1,97.77,147.28Z"/><path class="cls-12" d="M110.5,147.28a2.36,2.36,0,0,1-2.71,1.84c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.35-.38-2.67-1.83a2.07,2.07,0,0,1,2.42-1.83c2,0,4.09,0,6.13,0A2.21,2.21,0,0,1,110.5,147.28Z"/><path class="cls-12" d="M123.22,147.28a2.36,2.36,0,0,1-2.71,1.84c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.36-.38-2.67-1.83a2.07,2.07,0,0,1,2.42-1.83c2,0,4.09,0,6.14,0A2.21,2.21,0,0,1,123.22,147.28Z"/><path class="cls-12" d="M136,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.35-.38-2.67-1.83a2.07,2.07,0,0,1,2.42-1.83c2,0,4.09,0,6.14,0A2.21,2.21,0,0,1,136,147.28Z"/><path class="cls-12" d="M148.68,147.28a2.36,2.36,0,0,1-2.71,1.83c-1.88-.07-3.77-.06-5.65,0-1.38,0-2.36-.38-2.67-1.83a2.08,2.08,0,0,1,2.42-1.83c2,0,4.09,0,6.13,0A2.21,2.21,0,0,1,148.68,147.28Z"/><path class="cls-12" d="M160,130.83c2.17.53,2.06,2.32,1.76,3.82-.49,2.43,1.74,5.56-1.76,7.24-3.58-1.76-1.21-5-1.77-7.47C157.91,133,157.94,131.3,160,130.83Z"/><path class="cls-7" d="M132.74,104c.1-3.91,4.51-8.32,8.44-8.49,1.2-.05,2.21.31,2.37,1.57.17,1.41-.78,1.91-2.1,2.07-3.24.38-4.71,1.83-5.07,5-.15,1.32-.62,2.29-2,2.16C133.1,106.16,132.66,105.16,132.74,104Z"/><path class="cls-9" d="M142.4,111.82c-1.2.07-2.19-.34-2.33-1.61s.68-1.9,1.92-2a3.48,3.48,0,0,0,3.47-3.49c.11-1.25.76-2.06,2-1.89s1.64,1.16,1.59,2.36C149,108.27,145.52,111.74,142.4,111.82Z"/></g></g></g></svg>
assets/images/welcome/welcome-video.png ADDED
Binary file
assets/images/welcome/wpuf-logo.png ADDED
Binary file
assets/images/whats-new/admin-bar.png ADDED
Binary file
assets/images/whats-new/category.png ADDED
Binary file
assets/images/whats-new/image_upload_label.png ADDED
Binary file
assets/images/whats-new/limit.png ADDED
Binary file
assets/images/whats-new/role-base.png ADDED
Binary file
assets/images/whats-new/schedule.png ADDED
Binary file
assets/images/whats-new/wizard.gif ADDED
Binary file
assets/images/wpspin_light.gif ADDED
Binary file
assets/images/wpuf-pro.png ADDED
Binary file
assets/js-templates/form-components.php ADDED
@@ -0,0 +1,800 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/x-template" id="tmpl-wpuf-builder-stage">
2
+ <div id="form-preview-stage">
3
+ <h4 v-if="!form_fields.length" class="text-center">
4
+ <?php _e( 'Add fields by dragging the fields from the right sidebar to this area.', 'wpuf' ) ?>
5
+ </h4>
6
+
7
+ <ul :class="['wpuf-form', 'sortable-list', 'form-label-' + label_type]">
8
+ <li
9
+ v-for="(field, index) in form_fields"
10
+ :key="field.id"
11
+ :class="[
12
+ 'field-items', 'wpuf-el', field.name, field.css, 'form-field-' + field.template,
13
+ field.width ? 'field-size-' + field.width : '',
14
+ ('custom_hidden_field' === field.template) ? 'hidden-field' : '',
15
+ parseInt(editing_form_id) === parseInt(field.id) ? 'current-editing' : ''
16
+ ]"
17
+ :data-index="index"
18
+ data-source="stage"
19
+ >
20
+ <div v-if="!is_full_width(field.template)" class="wpuf-label">
21
+ <label v-if="!is_invisible(field)" :for="'wpuf-' + field.name ? field.name : 'cls'">
22
+ {{ field.label }} <span v-if="field.required && 'yes' === field.required" class="required">*</span>
23
+ </label>
24
+ </div>
25
+
26
+ <component v-if="is_template_available(field)" :is="'form-' + field.template" :field="field"></component>
27
+
28
+ <div v-if="is_pro_feature(field.template)" class="stage-pro-alert">
29
+ <label class="wpuf-pro-text-alert">
30
+ <a :href="pro_link" target="_blank"><strong>{{ get_field_name(field.template) }}</strong> <?php _e( 'is available in Pro Version', 'wpuf' ); ?></a>
31
+ </label>
32
+ </div>
33
+
34
+ <div v-if="!is_failed_to_validate(field.template)" class="control-buttons">
35
+ <p>
36
+ <i class="fa fa-arrows move"></i>
37
+ <i class="fa fa-pencil" @click="open_field_settings(field.id)"></i>
38
+ <i class="fa fa-clone" @click="clone_field(field.id, index)"></i>
39
+ <i class="fa fa-trash-o" @click="delete_field(index)"></i>
40
+ </p>
41
+ </div>
42
+ </li>
43
+
44
+ <li v-if="!form_fields.length" class="field-items empty-list-item"></li>
45
+
46
+ <li class="wpuf-submit">
47
+ <div class="wpuf-label">&nbsp;</div>
48
+
49
+ <?php do_action( 'wpuf-form-builder-template-builder-stage-submit-area' ); ?>
50
+ </li>
51
+ </ul><!-- .wpuf-form -->
52
+
53
+ <div v-if="hidden_fields.length" class="hidden-field-list">
54
+ <h4><?php _e( 'Hidden Fields', 'wpuf' ); ?></h4>
55
+
56
+ <ul class="wpuf-form">
57
+ <li
58
+ v-for="(field, index) in hidden_fields"
59
+ :class="['field-items', parseInt(editing_form_id) === parseInt(field.id) ? 'current-editing' : '']"
60
+ >
61
+ <strong><?php _e('key', 'wpuf'); ?></strong>: {{ field.name }} | <strong><?php _e( 'value', 'wpuf' ); ?></strong>: {{ field.meta_value }}
62
+
63
+ <div class="control-buttons">
64
+ <p>
65
+ <i class="fa fa-pencil" @click="open_field_settings(field.id)"></i>
66
+ <i class="fa fa-clone" @click="clone_field(field.id, index)"></i>
67
+ <i class="fa fa-trash-o" @click="delete_hidden_field(field.id)"></i>
68
+ </p>
69
+ </div>
70
+ </li>
71
+ </ul>
72
+ </div>
73
+
74
+ <?php do_action( 'wpuf-form-builder-template-builder-stage-bottom-area' ); ?>
75
+ </div><!-- #form-preview-stage -->
76
+ </script>
77
+
78
+ <script type="text/x-template" id="tmpl-wpuf-field-checkbox">
79
+ <div v-if="met_dependencies" class="panel-field-opt panel-field-opt-checkbox">
80
+ <label v-if="option_field.title" :class="option_field.title_class">
81
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
82
+ </label>
83
+ <ul :class="[option_field.inline ? 'list-inline' : '']">
84
+ <li v-for="(option, key) in option_field.options">
85
+ <label>
86
+ <input type="checkbox" :value="key" v-model="value"> {{ option }}
87
+ </label>
88
+ </li>
89
+ </ul>
90
+ </div>
91
+ </script>
92
+
93
+ <script type="text/x-template" id="tmpl-wpuf-field-html_help_text">
94
+ <div class="panel-field-opt panel-field-html-help-text" v-html="option_field.text"></div>
95
+ </script>
96
+
97
+ <script type="text/x-template" id="tmpl-wpuf-field-option-data">
98
+ <div class="panel-field-opt panel-field-opt-text">
99
+ <label class="clearfix">
100
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
101
+ <span class="pull-right">
102
+ <input type="checkbox" v-model="show_value"> <?php _e( 'Show values', 'wpuf' ); ?>
103
+ </span>
104
+ </label>
105
+
106
+ <ul :class="['option-field-option-chooser', show_value ? 'show-value' : '']">
107
+ <li class="clearfix margin-0 header">
108
+ <div class="selector">&nbsp;</div>
109
+
110
+ <div class="sort-handler">&nbsp;</div>
111
+
112
+ <div class="label">
113
+ <?php _e( 'Label', 'wpuf' ); ?>
114
+ </div>
115
+
116
+ <div v-if="show_value" class="value">
117
+ <?php _e( 'Value', 'wpuf' ) ?>
118
+ </div>
119
+
120
+ <div class="action-buttons">&nbsp;</div>
121
+ </li>
122
+ </ul>
123
+
124
+ <ul :class="['option-field-option-chooser margin-0', show_value ? 'show-value' : '']">
125
+ <li v-for="(option, index) in options" :key="option.id" :data-index="index" class="clearfix option-field-option">
126
+ <div class="selector">
127
+ <input
128
+ v-if="option_field.is_multiple"
129
+ type="checkbox"
130
+ :value="option.value"
131
+ v-model="selected"
132
+ >
133
+ <input
134
+ v-else
135
+ type="radio"
136
+ :value="option.value"
137
+ v-model="selected"
138
+ class="option-chooser-radio"
139
+ >
140
+ </div>
141
+
142
+ <div class="sort-handler">
143
+ <i class="fa fa-bars"></i>
144
+ </div>
145
+
146
+ <div class="label">
147
+ <input type="text" v-model="option.label" @input="set_option_label(index, option.label)">
148
+ </div>
149
+
150
+ <div v-if="show_value" class="value">
151
+ <input type="text" v-model="option.value">
152
+ </div>
153
+
154
+ <div class="action-buttons clearfix">
155
+ <i class="fa fa-minus-circle" @click="delete_option(index)"></i>
156
+ </div>
157
+ </li>
158
+ <li>
159
+ <div class="plus-buttons clearfix" @click="add_option">
160
+ <i class="fa fa-plus-circle"></i>
161
+ </div>
162
+ </li>
163
+ </ul>
164
+
165
+ <a v-if="!option_field.is_multiple && selected" href="#clear" @click.prevent="clear_selection"><?php _e( 'Clear Selection', 'wpuf' ); ?></a>
166
+ </div>
167
+ </script>
168
+
169
+ <script type="text/x-template" id="tmpl-wpuf-field-option-pro-feature-alert">
170
+ <div class="panel-field-opt panel-field-opt-pro-feature">
171
+ <label>{{ option_field.title }}</label><br>
172
+ <label class="wpuf-pro-text-alert">
173
+ <a :href="pro_link" target="_blank"><?php _e( 'Available in Pro Version', 'wpuf' ); ?></a>
174
+ </label>
175
+ </div>
176
+ </script>
177
+
178
+ <script type="text/x-template" id="tmpl-wpuf-field-options">
179
+ <div class="wpuf-form-builder-field-options">
180
+ <div v-if="!parseInt(editing_field_id)" class="options-fileds-section text-center">
181
+ <p>
182
+ <span class="loader"></span>
183
+ </p>
184
+ </div>
185
+
186
+ <div v-else>
187
+ <div class="option-fields-section">
188
+ <h3 class="section-title clearfix" @click="show_basic_settings = !show_basic_settings">
189
+ {{ form_field_type_title }} <i :class="[show_basic_settings ? 'fa fa-angle-down' : 'fa fa-angle-right']"></i>
190
+ </h3>
191
+
192
+ <transition name="slide-fade">
193
+ <div v-show="show_basic_settings" class="option-field-section-fields">
194
+ <component
195
+ v-for="option_field in basic_settings"
196
+ :key="option_field.name"
197
+ :is="'field-' + option_field.type"
198
+ :option_field="option_field"
199
+ :editing_form_field="editing_form_field"
200
+ ></component>
201
+ </div>
202
+ </transition>
203
+ </div>
204
+
205
+
206
+ <div v-if="advanced_settings.length" class="option-fields-section">
207
+ <h3 class="section-title" @click="show_advanced_settings = !show_advanced_settings">
208
+ {{ i18n.advanced_options }} <i :class="[show_advanced_settings ? 'fa fa-angle-down' : 'fa fa-angle-right']"></i>
209
+ </h3>
210
+
211
+ <transition name="slide-fade">
212
+ <div v-show="show_advanced_settings" class="option-field-section-fields">
213
+ <component
214
+ v-for="option_field in advanced_settings"
215
+ :key="option_field.name"
216
+ :is="'field-' + option_field.type"
217
+ :option_field="option_field"
218
+ :editing_form_field="editing_form_field"
219
+ ></component>
220
+ </div>
221
+ </transition>
222
+ </div>
223
+ </div>
224
+
225
+ </div>
226
+ </script>
227
+
228
+ <script type="text/x-template" id="tmpl-wpuf-field-radio">
229
+ <div class="panel-field-opt panel-field-opt-radio">
230
+ <label v-if="option_field.title">
231
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
232
+ </label>
233
+
234
+ <ul :class="[option_field.inline ? 'list-inline' : '']">
235
+ <li v-for="(option, key) in option_field.options">
236
+ <label>
237
+ <input type="radio" :value="key" v-model="value"> {{ option }}
238
+ </label>
239
+ </li>
240
+ </ul>
241
+ </div>
242
+ </script>
243
+
244
+ <script type="text/x-template" id="tmpl-wpuf-field-select">
245
+ <div class="panel-field-opt panel-field-opt-select">
246
+ <label v-if="option_field.title">
247
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
248
+ </label>
249
+
250
+ <select class="opt-select-element" v-model="value">
251
+ <option value=""><?php _e( 'Select an option', 'wpuf' ); ?></option>
252
+ <option v-for="(option, key) in option_field.options" :value="key">{{ option }}</option>
253
+ </select>
254
+ </div>
255
+ </script>
256
+
257
+ <script type="text/x-template" id="tmpl-wpuf-field-text">
258
+ <div v-if="met_dependencies" class="panel-field-opt panel-field-opt-text">
259
+ <label>
260
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
261
+
262
+ <input
263
+ v-if="option_field.variation && 'number' === option_field.variation"
264
+ type="number"
265
+ v-model="value"
266
+ @focusout="on_focusout"
267
+ @keyup="on_keyup"
268
+ >
269
+
270
+ <input
271
+ v-if="!option_field.variation"
272
+ type="text"
273
+ v-model="value"
274
+ @focusout="on_focusout"
275
+ @keyup="on_keyup"
276
+ >
277
+ </label>
278
+ </div>
279
+ </script>
280
+
281
+ <script type="text/x-template" id="tmpl-wpuf-field-text-meta">
282
+ <div class="panel-field-opt panel-field-opt-text panel-field-opt-text-meta">
283
+ <label>
284
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
285
+ <input
286
+ type="text"
287
+ v-model="value"
288
+ >
289
+ </label>
290
+ </div>
291
+ </script>
292
+
293
+ <script type="text/x-template" id="tmpl-wpuf-field-textarea">
294
+ <div class="panel-field-opt panel-field-opt-textarea">
295
+ <label>
296
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
297
+
298
+ <textarea :rows="option_field.rows || 5" v-model="value"></textarea>
299
+ </label>
300
+ </div>
301
+ </script>
302
+
303
+ <script type="text/x-template" id="tmpl-wpuf-field-visibility">
304
+ <div class="panel-field-opt panel-field-opt-radio">
305
+ <label v-if="option_field.title">
306
+ {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
307
+ </label>
308
+
309
+ <ul :class="[option_field.inline ? 'list-inline' : '']">
310
+ <li v-for="(option, key) in option_field.options">
311
+ <label>
312
+ <input type="radio" :value="key" v-model="selected"> {{ option }}
313
+ </label>
314
+ </li>
315
+ </ul>
316
+
317
+ <div v-if="'logged_in' === selected" class="condiotional-logic-container">
318
+
319
+ <?php $roles = get_editable_roles() ?>
320
+
321
+ <ul>
322
+ <?php
323
+ foreach ($roles as $role => $value) {
324
+
325
+ $role_name = $value['name'];
326
+
327
+ $output = "<li>";
328
+ $output .= "<label><input type='checkbox' v-model='choices' value='{$role}'> {$role_name} </label>";
329
+ $output .= "</li>";
330
+
331
+ echo $output;
332
+
333
+ }
334
+ ?>
335
+ </ul>
336
+ </div>
337
+
338
+ <div v-if="'subscribed_users' === selected" class="condiotional-logic-container">
339
+
340
+ <ul>
341
+ <?php
342
+
343
+ $subscriptions = WPUF_Subscription::init()->get_subscriptions();
344
+
345
+ if ( $subscriptions ) {
346
+ foreach ($subscriptions as $pack) {
347
+
348
+ $output = "<li>";
349
+ $output .= "<label><input type='checkbox' v-model='choices' value='{$pack->ID}' > {$pack->post_title} </label>";
350
+ $output .= "</li>";
351
+
352
+ echo $output;
353
+
354
+ }
355
+ } else {
356
+ _e( 'No subscription plan found.', 'wpuf' );
357
+ }
358
+ ?>
359
+ </ul>
360
+
361
+ </div>
362
+ </div></script>
363
+
364
+ <script type="text/x-template" id="tmpl-wpuf-form-checkbox_field">
365
+ <div class="wpuf-fields">
366
+ <ul :class="['wpuf-fields-list', ('yes' === field.inline) ? 'wpuf-list-inline' : '']">
367
+ <li v-if="has_options" v-for="(label, val) in field.options">
368
+ <label>
369
+ <input
370
+ type="checkbox"
371
+ :value="val"
372
+ :checked="is_selected(val)"
373
+ :class="class_names('checkbox_btns')"
374
+ > {{ label }}
375
+ </label>
376
+ </li>
377
+ </ul>
378
+
379
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
380
+ </div>
381
+ </script>
382
+
383
+ <script type="text/x-template" id="tmpl-wpuf-form-custom_hidden_field">
384
+ <div class="wpuf-fields">
385
+ <input
386
+ type="text"
387
+ :class="class_names('textfield')"
388
+ :placeholder="field.placeholder"
389
+ :value="field.default"
390
+ :size="field.size"
391
+ >
392
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
393
+ </div>
394
+ </script>
395
+
396
+ <script type="text/x-template" id="tmpl-wpuf-form-custom_html">
397
+ <div class="wpuf-fields" v-html="field.html"></div>
398
+ </script>
399
+
400
+ <script type="text/x-template" id="tmpl-wpuf-form-dropdown_field">
401
+ <div class="wpuf-fields">
402
+ <select
403
+ :class="class_names('select_lbl')"
404
+ >
405
+ <option v-if="field.first" value="">{{ field.first }}</option>
406
+
407
+ <option
408
+ v-if="has_options"
409
+ v-for="(label, val) in field.options"
410
+ :value="label"
411
+ :selected="is_selected(label)"
412
+ >{{ label }}</option>
413
+ </select>
414
+
415
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
416
+ </div>
417
+ </script>
418
+
419
+ <script type="text/x-template" id="tmpl-wpuf-form-email_address">
420
+ <div class="wpuf-fields">
421
+ <input
422
+ type="email"
423
+ :class="class_names('email')"
424
+ :placeholder="field.placeholder"
425
+ :value="field.default"
426
+ :size="field.size"
427
+ >
428
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
429
+ </div>
430
+ </script>
431
+
432
+ <script type="text/x-template" id="tmpl-wpuf-form-featured_image">
433
+ <div class="wpuf-fields">
434
+ <div :id="'wpuf-img_label-' + field.id + '-upload-container'">
435
+ <div class="wpuf-attachment-upload-filelist" data-type="file" data-required="yes">
436
+ <a class="button file-selector" href="#">
437
+ <?php _e( 'Select Image', 'wpuf' ); ?>
438
+ </a>
439
+ </div>
440
+ </div>
441
+
442
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
443
+ </div>
444
+ </script>
445
+
446
+ <script type="text/x-template" id="tmpl-wpuf-form-fields">
447
+ <div class="wpuf-form-builder-form-fields">
448
+ <template v-for="(section, index) in panel_sections">
449
+ <div v-if="section.fields.length" class="panel-form-field-group clearfix">
450
+ <h3 class="clearfix" @click="panel_toggle(index)">
451
+ {{ section.title }} <i :class="[section.show ? 'fa fa-angle-down' : 'fa fa-angle-right']"></i>
452
+ </h3>
453
+
454
+ <transition name="slide-fade">
455
+ <ul
456
+ v-show="section.show"
457
+ class="panel-form-field-buttons clearfix"
458
+ :id="'panel-form-field-buttons-' + section.id"
459
+ >
460
+ <template v-for="field in section.fields">
461
+ <li
462
+ v-if="is_pro_feature(field)"
463
+ class="button button-faded"
464
+ :data-form-field="field"
465
+ data-source="panel"
466
+ @click="alert_pro_feature(field)"
467
+ >
468
+ <i v-if="field_settings[field].icon" :class="['fa fa-' + field_settings[field].icon]" aria-hidden="true"></i> {{ field_settings[field].title }}
469
+ </li>
470
+
471
+ <li
472
+ v-if="is_failed_to_validate(field)"
473
+ :class="['button', get_invalidate_btn_class(field)]"
474
+ :data-form-field="field"
475
+ data-source="panel"
476
+ @click="alert_invalidate_msg(field)"
477
+ >
478
+ <i v-if="field_settings[field].icon" :class="['fa fa-' + field_settings[field].icon]" aria-hidden="true"></i> {{ field_settings[field].title }}
479
+ </li>
480
+
481
+ <li
482
+ v-if="!is_pro_feature(field) && !is_failed_to_validate(field)"
483
+ class="button"
484
+ :data-form-field="field"
485
+ data-source="panel"
486
+ @click="add_form_field(field)"
487
+ >
488
+ <i v-if="field_settings[field].icon" :class="['fa fa-' + field_settings[field].icon]" aria-hidden="true"></i> {{ field_settings[field].title }}
489
+ </li>
490
+ </template>
491
+ </ul>
492
+ </transition>
493
+ </div>
494
+ </template>
495
+ </div>
496
+ </script>
497
+
498
+ <script type="text/x-template" id="tmpl-wpuf-form-image_upload">
499
+ <div class="wpuf-fields">
500
+ <div :id="'wpuf-img_label-' + field.id + '-upload-container'">
501
+ <div class="wpuf-attachment-upload-filelist" data-type="file" data-required="yes">
502
+ <a class="button file-selector wpuf_img_label_148" href="#">
503
+ {{ field.button_label }}
504
+ </a>
505
+ </div>
506
+ </div>
507
+
508
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
509
+ </div>
510
+ </script>
511
+
512
+ <script type="text/x-template" id="tmpl-wpuf-form-multiple_select">
513
+ <div class="wpuf-fields">
514
+ <select
515
+ :class="class_names('multi_label')"
516
+ multiple
517
+ >
518
+ <option v-if="field.first" value="">{{ field.first }}</option>
519
+
520
+ <option
521
+ v-if="has_options"
522
+ v-for="(label, val) in field.options"
523
+ :value="label"
524
+ :selected="is_selected(label)"
525
+ >{{ label }}</option>
526
+ </select>
527
+
528
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
529
+ </div>
530
+ </script>
531
+
532
+ <script type="text/x-template" id="tmpl-wpuf-form-post_content">
533
+ <div class="wpuf-fields">
534
+ <div class="wp-media-buttons" v-if="field.insert_image == 'yes'">
535
+ <button type="button" class="button insert-media add_media" data-editor="content">
536
+ <span class="dashicons dashicons-admin-media insert-photo-icon"></span> <?php _e( 'Insert Photo', 'wpuf' ); ?>
537
+ </button>
538
+ </div>
539
+ <br v-if="field.insert_image == 'yes'" />
540
+
541
+ <textarea
542
+ v-if="'no' === field.rich"
543
+ :class="class_names('textareafield')"
544
+ :placeholder="field.placeholder"
545
+ :rows="field.rows"
546
+ :cols="field.cols"
547
+ >{{ field.default }}</textarea>
548
+
549
+ <text-editor v-if="'no' !== field.rich" :rich="field.rich"></text-editor>
550
+
551
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
552
+ </div>
553
+ </script>
554
+
555
+ <script type="text/x-template" id="tmpl-wpuf-form-post_excerpt">
556
+ <div class="wpuf-fields">
557
+ <textarea
558
+ :class="class_names('textareafield')"
559
+ :placeholder="field.placeholder"
560
+ :rows="field.rows"
561
+ :cols="field.cols"
562
+ >{{ field.default }}</textarea>
563
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
564
+ </div>
565
+ </script>
566
+
567
+ <script type="text/x-template" id="tmpl-wpuf-form-post_tags">
568
+ <div class="wpuf-fields">
569
+ <input
570
+ type="text"
571
+ :class="class_names('textfield')"
572
+ :placeholder="field.placeholder"
573
+ :value="field.default"
574
+ :size="field.size"
575
+ >
576
+
577
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
578
+ </div>
579
+ </script>
580
+
581
+ <script type="text/x-template" id="tmpl-wpuf-form-post_title">
582
+ <div class="wpuf-fields">
583
+ <input
584
+ type="text"
585
+ :class="class_names('textfield')"
586
+ :placeholder="field.placeholder"
587
+ :value="field.default"
588
+ :size="field.size"
589
+ >
590
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
591
+ </div>
592
+ </script>
593
+
594
+ <script type="text/x-template" id="tmpl-wpuf-form-radio_field">
595
+ <div class="wpuf-fields">
596
+ <ul :class="['wpuf-fields-list', ('yes' === field.inline) ? 'wpuf-list-inline' : '']">
597
+ <li v-if="has_options" v-for="(label, val) in field.options">
598
+ <label>
599
+ <input
600
+ type="radio"
601
+ :value="val"
602
+ :checked="is_selected(val)"
603
+ :class="class_names('radio_btns')"
604
+ > {{ label }}
605
+ </label>
606
+ </li>
607
+ </ul>
608
+
609
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
610
+ </div>
611
+ </script>
612
+
613
+ <script type="text/x-template" id="tmpl-wpuf-form-recaptcha">
614
+ <div class="wpuf-fields">
615
+ <template v-if="!has_recaptcha_api_keys">
616
+ <p v-html="no_api_keys_msg"></p>
617
+ </template>
618
+
619
+ <template v-else>
620
+ <div v-if="'invisible_recaptcha' != field.recaptcha_type">
621
+ <img class="wpuf-recaptcha-placeholder" src="<?php echo WPUF_ASSET_URI . '/images/recaptcha-placeholder.png' ?>" alt="">
622
+ </div>
623
+ </template>
624
+ </div>
625
+ </script>
626
+
627
+ <script type="text/x-template" id="tmpl-wpuf-form-section_break">
628
+ <div class="wpuf-section-wrap">
629
+ <h2 class="wpuf-section-title">{{ field.label }}</h2>
630
+ <div class="wpuf-section-details">{{ field.description }}</div>
631
+ </div>
632
+ </script>
633
+
634
+ <script type="text/x-template" id="tmpl-wpuf-form-taxonomy">
635
+ <div class="wpuf-fields">
636
+ <select
637
+ :class="field.name"
638
+ v-html ="get_term_dropdown_options()"
639
+ >
640
+ </select>
641
+
642
+ <div v-if="'ajax' === field.type" class="category-wrap">
643
+ <div>
644
+ <select>
645
+ <option><?php _e( '— Select —', 'wpuf' ); ?></option>
646
+ <option v-for="term in sorted_terms" :value="term.id">{{ term.name }}</option>
647
+ </select>
648
+ </div>
649
+ </div>
650
+
651
+ <div v-if="'multiselect' === field.type" class="category-wrap">
652
+ <select
653
+ :class="field.name"
654
+ v-html="get_term_dropdown_options()"
655
+ multiple
656
+ >
657
+ </select>
658
+ </div>
659
+
660
+ <div v-if="'checkbox' === field.type" class="category-wrap">
661
+ <div v-if="'yes' === field.show_inline" class="category-wrap">
662
+ <div v-html="get_term_checklist_inline()"></div>
663
+ </div>
664
+ <div v-else-if="'no' === field.show_inline" class="category-wrap">
665
+ <div v-html="get_term_checklist()"></div>
666
+ </div>
667
+ </div>
668
+
669
+
670
+ <input
671
+ v-if="'text' === field.type"
672
+ class="textfield"
673
+ type="text"
674
+ value=""
675
+ size="40"
676
+ autocomplete="off"
677
+ >
678
+
679
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
680
+ </div>
681
+ </script>
682
+
683
+ <script type="text/x-template" id="tmpl-wpuf-form-text_field">
684
+ <div class="wpuf-fields">
685
+ <input
686
+ type="text"
687
+ :class="class_names('textfield')"
688
+ :placeholder="field.placeholder"
689
+ :value="field.default"
690
+ :size="field.size"
691
+ >
692
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
693
+ </div>
694
+ </script>
695
+
696
+ <script type="text/x-template" id="tmpl-wpuf-form-textarea_field">
697
+ <div class="wpuf-fields">
698
+ <textarea
699
+ v-if="'no' === field.rich"
700
+ :class="class_names('textareafield')"
701
+ :placeholder="field.placeholder"
702
+ :rows="field.rows"
703
+ :cols="field.cols"
704
+ >{{ field.default }}</textarea>
705
+
706
+ <text-editor v-if="'no' !== field.rich" :rich="field.rich"></text-editor>
707
+
708
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
709
+ </div>
710
+ </script>
711
+
712
+ <script type="text/x-template" id="tmpl-wpuf-form-website_url">
713
+ <div class="wpuf-fields">
714
+ <input
715
+ type="url"
716
+ :class="class_names('url')"
717
+ :placeholder="field.placeholder"
718
+ :value="field.default"
719
+ :size="field.size"
720
+ >
721
+ <span v-if="field.help" class="wpuf-help">{{ field.help }}</span>
722
+ </div>
723
+ </script>
724
+
725
+ <script type="text/x-template" id="tmpl-wpuf-help-text">
726
+ <i class="fa fa-question-circle field-helper-text wpuf-tooltip" data-placement="top" :title="text"></i>
727
+ </script>
728
+
729
+ <script type="text/x-template" id="tmpl-wpuf-text-editor">
730
+ <div class="wpuf-text-editor">
731
+
732
+ <div class="wp-core-ui wp-editor-wrap tmce-active">
733
+ <link rel="stylesheet" :href="site_url + 'wp-includes/css/editor.css'" type="text/css" media="all">
734
+ <link rel="stylesheet" :href="site_url + 'wp-includes/js/tinymce/skins/lightgray/skin.min.css'" type="text/css" media="all">
735
+
736
+ <div class="wp-editor-container">
737
+ <div class="mce-tinymce mce-container mce-panel" style="visibility: hidden; border-width: 1px;">
738
+ <div class="mce-container-body mce-stack-layout">
739
+ <div class="mce-toolbar-grp mce-container mce-panel mce-stack-layout-item">
740
+ <div class="mce-container-body mce-stack-layout">
741
+ <div class="mce-container mce-toolbar mce-stack-layout-item">
742
+ <div class="mce-container-body mce-flow-layout">
743
+ <div class="mce-container mce-flow-layout-item mce-btn-group">
744
+ <div>
745
+ <div v-if="is_full" class="mce-widget mce-btn mce-menubtn mce-fixed-width mce-listbox mce-btn-has-text"><button type="button"><span class="mce-txt">Paragraph</span> <i class="mce-caret"></i></button></div>
746
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-bold"></i></button></div>
747
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-italic"></i></button></div>
748
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-bullist"></i></button></div>
749
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-numlist"></i></button></div>
750
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-blockquote"></i></button></div>
751
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-alignleft"></i></button></div>
752
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-aligncenter"></i></button></div>
753
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-alignright"></i></button></div>
754
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-link"></i></button></div>
755
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-unlink"></i></button></div>
756
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-wp_more"></i></button></div>
757
+ <div class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-fullscreen"></i></button></div>
758
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-wp_adv"></i></button></div>
759
+ </div>
760
+ </div>
761
+ </div>
762
+ </div>
763
+ <div class="mce-container mce-toolbar mce-stack-layout-item">
764
+ <div class="mce-container-body mce-flow-layout">
765
+ <div class="mce-container mce-flow-layout-item mce-btn-group">
766
+ <div>
767
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-strikethrough"></i></button></div>
768
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-hr"></i></button></div>
769
+ <div v-if="is_full" class="mce-widget mce-btn mce-colorbutton"><button type="button"><i class="mce-ico mce-i-forecolor"></i><span class="mce-preview"></span></button><button type="button" class="mce-open"> <i class="mce-caret"></i></button></div>
770
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-pastetext"></i></button></div>
771
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-removeformat"></i></button></div>
772
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-charmap"></i></button></div>
773
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-outdent"></i></button></div>
774
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-indent"></i></button></div>
775
+ <div class="mce-widget mce-btn mce-disabled"><button type="button"><i class="mce-ico mce-i-undo"></i></button></div>
776
+ <div class="mce-widget mce-btn mce-disabled"><button type="button"><i class="mce-ico mce-i-redo"></i></button></div>
777
+ <div v-if="is_full" class="mce-widget mce-btn"><button type="button"><i class="mce-ico mce-i-wp_help"></i></button></div>
778
+ </div>
779
+ </div>
780
+ </div>
781
+ </div>
782
+ </div>
783
+ </div>
784
+ <div class="mce-edit-area mce-container mce-panel mce-stack-layout-item" style="border-width: 1px 0px 0px;">
785
+ <div style="width: 100%; height: 150px; display: block;"></div><!-- iframe replacement div -->
786
+ </div>
787
+ <div class="mce-statusbar mce-container mce-panel mce-stack-layout-item" style="border-width: 1px 0px 0px;">
788
+ <div class="mce-container-body mce-flow-layout">
789
+ <div class="mce-path mce-flow-layout-item">
790
+ <div class="mce-path-item" data-index="0" aria-level="0">p</div>
791
+ </div>
792
+ <div class="mce-flow-layout-item mce-resizehandle"><i class="mce-ico mce-i-resize"></i></div>
793
+ </div>
794
+ </div>
795
+ </div>
796
+ </div>
797
+ </div>
798
+ </div>
799
+ </div>
800
+ </script>
assets/js/admin-profile-subs.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ $('.wpuf-post-exp-time').hide();
3
+ $(".wpuf-post-exp-enabled").click(function(){
4
+ if($(this).prop("checked")) {
5
+ $('.wpuf-post-exp-time').show();
6
+ } else {
7
+ $('.wpuf-post-exp-time').hide();
8
+ }
9
+ });
10
+ });
assets/js/admin-shortcode.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*jshint devel:true */
2
+ /*global send_to_editor */
3
+ /*global tb_remove */
4
+
5
+ jQuery(function($) {
6
+
7
+ $('#wpuf-form-insert').on('click', function(e) {
8
+ e.preventDefault();
9
+
10
+ var shortcode = '',
11
+ type = $('#wpuf-form-type').val();
12
+
13
+ if ( type === 'post' ) {
14
+ var post = $('#wpuf-form-post').val();
15
+ shortcode += '[wpuf_form id="' + post + '"]';
16
+ } else {
17
+ var registration = $('#wpuf-form-registration').val();
18
+ shortcode += '[wpuf_profile type="registration" id="' + registration + '"] [wpuf_profile type="profile" id="' + registration + '"]';
19
+ }
20
+
21
+ send_to_editor(shortcode);
22
+ tb_remove();
23
+ });
24
+
25
+ $('#wpuf-form-type').on('change', function() {
26
+ var val = $(this).val();
27
+
28
+ if ( val === 'post' ) {
29
+ $('.show-if-post').show();
30
+ $('.show-if-registration').hide();
31
+ } else {
32
+ $('.show-if-post').hide();
33
+ $('.show-if-registration').show();
34
+ }
35
+ });
36
+
37
+ $('#wpuf-form-type').trigger('change');
38
+ });
assets/js/admin/wpuf-enhanced-select.js ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*global wpuf_enhanced_select_params */
2
+ jQuery( function( $ ) {
3
+
4
+ function getEnhancedSelectFormatString() {
5
+ return {
6
+ 'language': {
7
+ errorLoading: function() {
8
+ // Workaround for https://github.com/select2/select2/issues/4355 instead of i18n_ajax_error.
9
+ return wpuf_enhanced_select_params.i18n_searching;
10
+ },
11
+ inputTooLong: function( args ) {
12
+ var overChars = args.input.length - args.maximum;
13
+
14
+ if ( 1 === overChars ) {
15
+ return wpuf_enhanced_select_params.i18n_input_too_long_1;
16
+ }
17
+
18
+ return wpuf_enhanced_select_params.i18n_input_too_long_n.replace( '%qty%', overChars );
19
+ },
20
+ inputTooShort: function( args ) {
21
+ var remainingChars = args.minimum - args.input.length;
22
+
23
+ if ( 1 === remainingChars ) {
24
+ return wpuf_enhanced_select_params.i18n_input_too_short_1;
25
+ }
26
+
27
+ return wpuf_enhanced_select_params.i18n_input_too_short_n.replace( '%qty%', remainingChars );
28
+ },
29
+ loadingMore: function() {
30
+ return wpuf_enhanced_select_params.i18n_load_more;
31
+ },
32
+ maximumSelected: function( args ) {
33
+ if ( args.maximum === 1 ) {
34
+ return wpuf_enhanced_select_params.i18n_selection_too_long_1;
35
+ }
36
+
37
+ return wpuf_enhanced_select_params.i18n_selection_too_long_n.replace( '%qty%', args.maximum );
38
+ },
39
+ noResults: function() {
40
+ return wpuf_enhanced_select_params.i18n_no_matches;
41
+ },
42
+ searching: function() {
43
+ return wpuf_enhanced_select_params.i18n_searching;
44
+ }
45
+ }
46
+ };
47
+ }
48
+
49
+ try {
50
+ $( document.body )
51
+
52
+ .on( 'wpuf-enhanced-select-init', function() {
53
+
54
+ // Regular select boxes
55
+ $( ':input.wpuf-enhanced-select, :input.chosen_select' ).filter( ':not(.enhanced)' ).each( function() {
56
+ var select2_args = $.extend({
57
+ minimumResultsForSearch: 10,
58
+ allowpuflear: $( this ).data( 'allow_clear' ) ? true : false,
59
+ placeholder: $( this ).data( 'placeholder' )
60
+ }, getEnhancedSelectFormatString() );
61
+
62
+ $( this ).selectWoo( select2_args ).addClass( 'enhanced' );
63
+ });
64
+
65
+ $( ':input.wpuf-enhanced-select-nostd, :input.chosen_select_nostd' ).filter( ':not(.enhanced)' ).each( function() {
66
+ var select2_args = $.extend({
67
+ minimumResultsForSearch: 10,
68
+ allowpuflear: true,
69
+ placeholder: $( this ).data( 'placeholder' )
70
+ }, getEnhancedSelectFormatString() );
71
+
72
+ $( this ).selectWoo( select2_args ).addClass( 'enhanced' );
73
+ });
74
+
75
+ // Ajax product search box
76
+ $( ':input.wpuf-product-search' ).filter( ':not(.enhanced)' ).each( function() {
77
+ var select2_args = {
78
+ allowpuflear: $( this ).data( 'allow_clear' ) ? true : false,
79
+ placeholder: $( this ).data( 'placeholder' ),
80
+ minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
81
+ escapeMarkup: function( m ) {
82
+ return m;
83
+ },
84
+ ajax: {
85
+ url: wpuf_enhanced_select_params.ajax_url,
86
+ dataType: 'json',
87
+ delay: 250,
88
+ data: function( params ) {
89
+ return {
90
+ term: params.term,
91
+ action: $( this ).data( 'action' ) || 'woocommerce_json_search_products_and_variations',
92
+ security: wpuf_enhanced_select_params.search_products_nonce,
93
+ exclude: $( this ).data( 'exclude' ),
94
+ include: $( this ).data( 'include' ),
95
+ limit: $( this ).data( 'limit' )
96
+ };
97
+ },
98
+ processResults: function( data ) {
99
+ var terms = [];
100
+ if ( data ) {
101
+ $.each( data, function( id, text ) {
102
+ terms.push( { id: id, text: text } );
103
+ });
104
+ }
105
+ return {
106
+ results: terms
107
+ };
108
+ },
109
+ cache: true
110
+ }
111
+ };
112
+
113
+ select2_args = $.extend( select2_args, getEnhancedSelectFormatString() );
114
+
115
+ $( this ).selectWoo( select2_args ).addClass( 'enhanced' );
116
+
117
+ if ( $( this ).data( 'sortable' ) ) {
118
+ var $select = $(this);
119
+ var $list = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );
120
+
121
+ $list.sortable({
122
+ placeholder : 'ui-state-highlight select2-selection__choice',
123
+ forcePlaceholderSize: true,
124
+ items : 'li:not(.select2-search__field)',
125
+ tolerance : 'pointer',
126
+ stop: function() {
127
+ $( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function() {
128
+ var id = $( this ).data( 'data' ).id;
129
+ var option = $select.find( 'option[value="' + id + '"]' )[0];
130
+ $select.prepend( option );
131
+ } );
132
+ }
133
+ });
134
+ // Keep multiselects ordered alphabetically if they are not sortable.
135
+ } else if ( $( this ).prop( 'multiple' ) ) {
136
+ $( this ).on( 'change', function(){
137
+ var $children = $( this ).children();
138
+ $children.sort(function(a, b){
139
+ var atext = a.text.toLowerCase();
140
+ var btext = b.text.toLowerCase();
141
+
142
+ if ( atext > btext ) {
143
+ return 1;
144
+ }
145
+ if ( atext < btext ) {
146
+ return -1;
147
+ }
148
+ return 0;
149
+ });
150
+ $( this ).html( $children );
151
+ });
152
+ }
153
+ });
154
+
155
+ // Ajax customer search boxes
156
+ $( ':input.wpuf-customer-search' ).filter( ':not(.enhanced)' ).each( function() {
157
+ var select2_args = {
158
+ allowpuflear: $( this ).data( 'allow_clear' ) ? true : false,
159
+ placeholder: $( this ).data( 'placeholder' ),
160
+ minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '1',
161
+ escapeMarkup: function( m ) {
162
+ return m;
163
+ },
164
+ ajax: {
165
+ url: wpuf_enhanced_select_params.ajax_url,
166
+ dataType: 'json',
167
+ delay: 1000,
168
+ data: function( params ) {
169
+ return {
170
+ term: params.term,
171
+ action: 'woocommerce_json_search_customers',
172
+ security: wpuf_enhanced_select_params.search_customers_nonce,
173
+ exclude: $( this ).data( 'exclude' )
174
+ };
175
+ },
176
+ processResults: function( data ) {
177
+ var terms = [];
178
+ if ( data ) {
179
+ $.each( data, function( id, text ) {
180
+ terms.push({
181
+ id: id,
182
+ text: text
183
+ });
184
+ });
185
+ }
186
+ return {
187
+ results: terms
188
+ };
189
+ },
190
+ cache: true
191
+ }
192
+ };
193
+
194
+ select2_args = $.extend( select2_args, getEnhancedSelectFormatString() );
195
+
196
+ $( this ).selectWoo( select2_args ).addClass( 'enhanced' );
197
+
198
+ if ( $( this ).data( 'sortable' ) ) {
199
+ var $select = $(this);
200
+ var $list = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );
201
+
202
+ $list.sortable({
203
+ placeholder : 'ui-state-highlight select2-selection__choice',
204
+ forcePlaceholderSize: true,
205
+ items : 'li:not(.select2-search__field)',
206
+ tolerance : 'pointer',
207
+ stop: function() {
208
+ $( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function() {
209
+ var id = $( this ).data( 'data' ).id;
210
+ var option = $select.find( 'option[value="' + id + '"]' )[0];
211
+ $select.prepend( option );
212
+ } );
213
+ }
214
+ });
215
+ }
216
+ });
217
+
218
+ // Ajax category search boxes
219
+ $( ':input.wpuf-category-search' ).filter( ':not(.enhanced)' ).each( function() {
220
+ var select2_args = $.extend( {
221
+ allowpuflear : $( this ).data( 'allow_clear' ) ? true : false,
222
+ placeholder : $( this ).data( 'placeholder' ),
223
+ minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : 3,
224
+ escapeMarkup : function( m ) {
225
+ return m;
226
+ },
227
+ ajax: {
228
+ url: wpuf_enhanced_select_params.ajax_url,
229
+ dataType: 'json',
230
+ delay: 250,
231
+ data: function( params ) {
232
+ return {
233
+ term: params.term,
234
+ action: 'woocommerce_json_search_categories',
235
+ security: wpuf_enhanced_select_params.search_categories_nonce
236
+ };
237
+ },
238
+ processResults: function( data ) {
239
+ var terms = [];
240
+ if ( data ) {
241
+ $.each( data, function( id, term ) {
242
+ terms.push({
243
+ id: term.slug,
244
+ text: term.formatted_name
245
+ });
246
+ });
247
+ }
248
+ return {
249
+ results: terms
250
+ };
251
+ },
252
+ cache: true
253
+ }
254
+ }, getEnhancedSelectFormatString() );
255
+
256
+ $( this ).selectWoo( select2_args ).addClass( 'enhanced' );
257
+ });
258
+ })
259
+
260
+ // WooCommerce Backbone Modal
261
+ .on( 'wpuf_backbone_modal_before_remove', function() {
262
+ $( '.wpuf-enhanced-select, :input.wpuf-product-search, :input.wpuf-customer-search' ).filter( '.select2-hidden-accessible' ).selectWoo( 'close' );
263
+ })
264
+
265
+ .trigger( 'wpuf-enhanced-select-init' );
266
+
267
+ $( 'html' ).on( 'click', function( event ) {
268
+ if ( this === event.target ) {
269
+ $( '.wpuf-enhanced-select, :input.wpuf-product-search, :input.wpuf-customer-search' ).filter( '.select2-hidden-accessible' ).selectWoo( 'close' );
270
+ }
271
+ } );
272
+ } catch( err ) {
273
+ // If select2 failed (conflict?) log the error but don't stop other scripts breaking.
274
+ window.console.log( err );
275
+ }
276
+ });
assets/js/admin/wpuf-enhanced-select.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(e){function t(){return{language:{errorLoading:function(){return wpuf_enhanced_select_params.i18n_searching},inputTooLong:function(e){var t=e.input.length-e.maximum;return 1===t?wpuf_enhanced_select_params.i18n_input_too_long_1:wpuf_enhanced_select_params.i18n_input_too_long_n.replace("%qty%",t)},inputTooShort:function(e){var t=e.minimum-e.input.length;return 1===t?wpuf_enhanced_select_params.i18n_input_too_short_1:wpuf_enhanced_select_params.i18n_input_too_short_n.replace("%qty%",t)},loadingMore:function(){return wpuf_enhanced_select_params.i18n_load_more},maximumSelected:function(e){return 1===e.maximum?wpuf_enhanced_select_params.i18n_selection_too_long_1:wpuf_enhanced_select_params.i18n_selection_too_long_n.replace("%qty%",e.maximum)},noResults:function(){return wpuf_enhanced_select_params.i18n_no_matches},searching:function(){return wpuf_enhanced_select_params.i18n_searching}}}}try{e(document.body).on("wpuf-enhanced-select-init",function(){e(":input.wpuf-enhanced-select, :input.chosen_select").filter(":not(.enhanced)").each(function(){var n=e.extend({minimumResultsForSearch:10,allowpuflear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder")},t());e(this).selectWoo(n).addClass("enhanced")}),e(":input.wpuf-enhanced-select-nostd, :input.chosen_select_nostd").filter(":not(.enhanced)").each(function(){var n=e.extend({minimumResultsForSearch:10,allowpuflear:!0,placeholder:e(this).data("placeholder")},t());e(this).selectWoo(n).addClass("enhanced")}),e(":input.wpuf-product-search").filter(":not(.enhanced)").each(function(){var n={allowpuflear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:wpuf_enhanced_select_params.ajax_url,dataType:"json",delay:250,data:function(t){return{term:t.term,action:e(this).data("action")||"woocommerce_json_search_products_and_variations",security:wpuf_enhanced_select_params.search_products_nonce,exclude:e(this).data("exclude"),include:e(this).data("include"),limit:e(this).data("limit")}},processResults:function(t){var n=[];return t&&e.each(t,function(e,t){n.push({id:e,text:t})}),{results:n}},cache:!0}};if(n=e.extend(n,t()),e(this).selectWoo(n).addClass("enhanced"),e(this).data("sortable")){var a=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)})}})}else e(this).prop("multiple")&&e(this).on("change",function(){var t=e(this).children();t.sort(function(e,t){var n=e.text.toLowerCase(),a=t.text.toLowerCase();return n>a?1:n<a?-1:0}),e(this).html(t)})}),e(":input.wpuf-customer-search").filter(":not(.enhanced)").each(function(){var n={allowpuflear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"1",escapeMarkup:function(e){return e},ajax:{url:wpuf_enhanced_select_params.ajax_url,dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"woocommerce_json_search_customers",security:wpuf_enhanced_select_params.search_customers_nonce,exclude:e(this).data("exclude")}},processResults:function(t){var n=[];return t&&e.each(t,function(e,t){n.push({id:e,text:t})}),{results:n}},cache:!0}};if(n=e.extend(n,t()),e(this).selectWoo(n).addClass("enhanced"),e(this).data("sortable")){var a=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,n=a.find('option[value="'+t+'"]')[0];a.prepend(n)})}})}}),e(":input.wpuf-category-search").filter(":not(.enhanced)").each(function(){var n=e.extend({allowpuflear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):3,escapeMarkup:function(e){return e},ajax:{url:wpuf_enhanced_select_params.ajax_url,dataType:"json",delay:250,data:function(e){return{term:e.term,action:"woocommerce_json_search_categories",security:wpuf_enhanced_select_params.search_categories_nonce}},processResults:function(t){var n=[];return t&&e.each(t,function(e,t){n.push({id:t.slug,text:t.formatted_name})}),{results:n}},cache:!0}},t());e(this).selectWoo(n).addClass("enhanced")})}).on("wpuf_backbone_modal_before_remove",function(){e(".wpuf-enhanced-select, :input.wpuf-product-search, :input.wpuf-customer-search").filter(".select2-hidden-accessible").selectWoo("close")}).trigger("wpuf-enhanced-select-init"),e("html").on("click",function(t){this===t.target&&e(".wpuf-enhanced-select, :input.wpuf-product-search, :input.wpuf-customer-search").filter(".select2-hidden-accessible").selectWoo("close")})}catch(n){window.console.log(n)}});
assets/js/admin/wpuf-setup.js ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*global wpuf_setup_params */
2
+ /*global wpuf_setup_currencies */
3
+ jQuery( function( $ ) {
4
+ function blockWizardUI() {
5
+ $('.wpuf-setup-content').block({
6
+ message: null,
7
+ overlayCSS: {
8
+ background: '#fff',
9
+ opacity: 0.6
10
+ }
11
+ });
12
+ }
13
+
14
+ $( '.button-next' ).on( 'click', function() {
15
+ var form = $( this ).parents( 'form' ).get( 0 );
16
+
17
+ if ( ( 'function' !== typeof form.checkValidity ) || form.checkValidity() ) {
18
+ blockWizardUI();
19
+ }
20
+
21
+ return true;
22
+ } );
23
+
24
+ $( '.wpuf-wizard-services' ).on( 'change', '.wpuf-wizard-service-enable input', function() {
25
+ if ( $( this ).is( ':checked' ) ) {
26
+ $( this ).closest( '.wpuf-wizard-service-toggle' ).removeClass( 'disabled' );
27
+ $( this ).closest( '.wpuf-wizard-service-item' ).addClass( 'checked' );
28
+ $( this ).closest( '.wpuf-wizard-service-item' )
29
+ .find( '.wpuf-wizard-service-settings' ).removeClass( 'hide' );
30
+ } else {
31
+ $( this ).closest( '.wpuf-wizard-service-toggle' ).addClass( 'disabled' );
32
+ $( this ).closest( '.wpuf-wizard-service-item' ).removeClass( 'checked' );
33
+ $( this ).closest( '.wpuf-wizard-service-item' )
34
+ .find( '.wpuf-wizard-service-settings' ).addClass( 'hide' );
35
+ }
36
+ } );
37
+
38
+ $( '.wpuf-wizard-services' ).on( 'click', '.wpuf-wizard-service-enable', function( e ) {
39
+ var eventTarget = $( e.target );
40
+
41
+ if ( eventTarget.is( 'input' ) ) {
42
+ e.stopPropagation();
43
+ return;
44
+ }
45
+
46
+ var $checkbox = $( this ).find( 'input[type="checkbox"]' );
47
+
48
+ $checkbox.prop( 'checked', ! $checkbox.prop( 'checked' ) ).change();
49
+ } );
50
+
51
+ $( '.wpuf-wizard-services-list-toggle' ).on( 'change', '.wpuf-wizard-service-enable input', function() {
52
+ $( this ).closest( '.wpuf-wizard-services-list-toggle' ).toggleClass( 'closed' );
53
+ $( this ).closest( '.wpuf-wizard-services' ).find( '.wpuf-wizard-service-item' )
54
+ .slideToggle()
55
+ .css( 'display', 'flex' );
56
+ } );
57
+
58
+ $( '.wpuf-wizard-services' ).on( 'change', '.wpuf-wizard-shipping-method-select .method', function( e ) {
59
+ var zone = $( this ).closest( '.wpuf-wizard-service-description' );
60
+ var selectedMethod = e.target.value;
61
+
62
+ var description = zone.find( '.shipping-method-descriptions' );
63
+ description.find( '.shipping-method-description' ).addClass( 'hide' );
64
+ description.find( '.' + selectedMethod ).removeClass( 'hide' );
65
+
66
+ var settings = zone.find( '.shipping-method-settings' );
67
+ settings
68
+ .find( '.shipping-method-setting' )
69
+ .addClass( 'hide' )
70
+ .find( '.shipping-method-required-field' )
71
+ .prop( 'required', false );
72
+ settings
73
+ .find( '.' + selectedMethod )
74
+ .removeClass( 'hide' )
75
+ .find( '.shipping-method-required-field' )
76
+ .prop( 'required', true );
77
+ } );
78
+
79
+ $( '.wpuf-wizard-services' ).on( 'change', '.wpuf-wizard-shipping-method-enable', function() {
80
+ var checked = $( this ).is( ':checked' );
81
+
82
+ $( this )
83
+ .closest( '.wpuf-wizard-service-item' )
84
+ .find( '.shipping-method-required-field' )
85
+ .prop( 'required', checked );
86
+ } );
87
+
88
+ function submitActivateForm() {
89
+ $( 'form.activate-jetpack' ).submit();
90
+ }
91
+
92
+ function waitForJetpackInstall() {
93
+ wp.ajax.post( 'setup_wizard_check_jetpack' )
94
+ .then( function( result ) {
95
+ // If we receive success, or an unexpected result
96
+ // let the form submit.
97
+ if (
98
+ ! result ||
99
+ ! result.is_active ||
100
+ 'yes' === result.is_active
101
+ ) {
102
+ return submitActivateForm();
103
+ }
104
+
105
+ // Wait until checking the status again
106
+ setTimeout( waitForJetpackInstall, 3000 );
107
+ } )
108
+ .fail( function() {
109
+ // Submit the form as normal if the request fails
110
+ submitActivateForm();
111
+ } );
112
+ }
113
+
114
+ // Wait for a pending Jetpack install to finish before triggering a "save"
115
+ // on the activate step, which launches the Jetpack connection flow.
116
+ $( '.activate-jetpack' ).on( 'click', '.button-primary', function( e ) {
117
+ blockWizardUI();
118
+
119
+ if ( 'no' === wpuf_setup_params.pending_jetpack_install ) {
120
+ return true;
121
+ }
122
+
123
+ e.preventDefault();
124
+ waitForJetpackInstall();
125
+ } );
126
+
127
+ $( '.wpuf-wizard-services' ).on( 'change', 'input#stripe_create_account', function() {
128
+ if ( $( this ).is( ':checked' ) ) {
129
+ $( this ).closest( '.wpuf-wizard-service-settings' )
130
+ .find( 'input.payment-email-input' )
131
+ .prop( 'required', true );
132
+ $( this ).closest( '.wpuf-wizard-service-settings' )
133
+ .find( '.wpuf-wizard-service-setting-stripe_email' )
134
+ .show();
135
+ } else {
136
+ $( this ).closest( '.wpuf-wizard-service-settings' )
137
+ .find( 'input.payment-email-input' )
138
+ .prop( 'required', false );
139
+ $( this ).closest( '.wpuf-wizard-service-settings' )
140
+ .find( '.wpuf-wizard-service-setting-stripe_email' )
141
+ .hide();
142
+ }
143
+ } );
144
+
145
+ $( '.wpuf-wizard-services input#stripe_create_account' ).change();
146
+
147
+ $( 'select#store_country_state' ).on( 'change', function() {
148
+ var countryCode = this.value.split( ':' )[ 0 ];
149
+ $( 'select#currency_code' ).val( wpuf_setup_currencies[ countryCode ] ).change();
150
+ } );
151
+ } );
assets/js/admin/wpuf-setup.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(e){function i(){e(".wpuf-setup-content").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}function s(){e("form.activate-jetpack").submit()}function t(){wp.ajax.post("setup_wizard_check_jetpack").then(function(e){if(!e||!e.is_active||"yes"===e.is_active)return s();setTimeout(t,3e3)}).fail(function(){s()})}e(".button-next").on("click",function(){var s=e(this).parents("form").get(0);return("function"!=typeof s.checkValidity||s.checkValidity())&&i(),!0}),e(".wpuf-wizard-services").on("change",".wpuf-wizard-service-enable input",function(){e(this).is(":checked")?(e(this).closest(".wpuf-wizard-service-toggle").removeClass("disabled"),e(this).closest(".wpuf-wizard-service-item").addClass("checked"),e(this).closest(".wpuf-wizard-service-item").find(".wpuf-wizard-service-settings").removeClass("hide")):(e(this).closest(".wpuf-wizard-service-toggle").addClass("disabled"),e(this).closest(".wpuf-wizard-service-item").removeClass("checked"),e(this).closest(".wpuf-wizard-service-item").find(".wpuf-wizard-service-settings").addClass("hide"))}),e(".wpuf-wizard-services").on("click",".wpuf-wizard-service-enable",function(i){if(e(i.target).is("input"))i.stopPropagation();else{var s=e(this).find('input[type="checkbox"]');s.prop("checked",!s.prop("checked")).change()}}),e(".wpuf-wizard-services-list-toggle").on("change",".wpuf-wizard-service-enable input",function(){e(this).closest(".wpuf-wizard-services-list-toggle").toggleClass("closed"),e(this).closest(".wpuf-wizard-services").find(".wpuf-wizard-service-item").slideToggle().css("display","flex")}),e(".wpuf-wizard-services").on("change",".wpuf-wizard-shipping-method-select .method",function(i){var s=e(this).closest(".wpuf-wizard-service-description"),t=i.target.value,c=s.find(".shipping-method-descriptions");c.find(".shipping-method-description").addClass("hide"),c.find("."+t).removeClass("hide");var r=s.find(".shipping-method-settings");r.find(".shipping-method-setting").addClass("hide").find(".shipping-method-required-field").prop("required",!1),r.find("."+t).removeClass("hide").find(".shipping-method-required-field").prop("required",!0)}),e(".wpuf-wizard-services").on("change",".wpuf-wizard-shipping-method-enable",function(){var i=e(this).is(":checked");e(this).closest(".wpuf-wizard-service-item").find(".shipping-method-required-field").prop("required",i)}),e(".activate-jetpack").on("click",".button-primary",function(e){if(i(),"no"===wpuf_setup_params.pending_jetpack_install)return!0;e.preventDefault(),t()}),e(".wpuf-wizard-services").on("change","input#stripe_create_account",function(){e(this).is(":checked")?(e(this).closest(".wpuf-wizard-service-settings").find("input.payment-email-input").prop("required",!0),e(this).closest(".wpuf-wizard-service-settings").find(".wpuf-wizard-service-setting-stripe_email").show()):(e(this).closest(".wpuf-wizard-service-settings").find("input.payment-email-input").prop("required",!1),e(this).closest(".wpuf-wizard-service-settings").find(".wpuf-wizard-service-setting-stripe_email").hide())}),e(".wpuf-wizard-services input#stripe_create_account").change(),e("select#store_country_state").on("change",function(){var i=this.value.split(":")[0];e("select#currency_code").val(wpuf_setup_currencies[i]).change()})});
assets/js/chosen.jquery.js ADDED
@@ -0,0 +1,1211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Chosen, a Select Box Enhancer for jQuery and Prototype
3
+ by Patrick Filler for Harvest, http://getharvest.com
4
+
5
+ Version 1.1.0
6
+ Full source at https://github.com/harvesthq/chosen
7
+ Copyright (c) 2011 Harvest http://getharvest.com
8
+
9
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
10
+ This file is generated by `grunt build`, do not edit it by hand.
11
+ */
12
+
13
+ (function() {
14
+ var $, AbstractChosen, Chosen, SelectParser, _ref,
15
+ __hasProp = {}.hasOwnProperty,
16
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
17
+
18
+ SelectParser = (function() {
19
+ function SelectParser() {
20
+ this.options_index = 0;
21
+ this.parsed = [];
22
+ }
23
+
24
+ SelectParser.prototype.add_node = function(child) {
25
+ if (child.nodeName.toUpperCase() === "OPTGROUP") {
26
+ return this.add_group(child);
27
+ } else {
28
+ return this.add_option(child);
29
+ }
30
+ };
31
+
32
+ SelectParser.prototype.add_group = function(group) {
33
+ var group_position, option, _i, _len, _ref, _results;
34
+ group_position = this.parsed.length;
35
+ this.parsed.push({
36
+ array_index: group_position,
37
+ group: true,
38
+ label: this.escapeExpression(group.label),
39
+ children: 0,
40
+ disabled: group.disabled
41
+ });
42
+ _ref = group.childNodes;
43
+ _results = [];
44
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
45
+ option = _ref[_i];
46
+ _results.push(this.add_option(option, group_position, group.disabled));
47
+ }
48
+ return _results;
49
+ };
50
+
51
+ SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
52
+ if (option.nodeName.toUpperCase() === "OPTION") {
53
+ if (option.text !== "") {
54
+ if (group_position != null) {
55
+ this.parsed[group_position].children += 1;
56
+ }
57
+ this.parsed.push({
58
+ array_index: this.parsed.length,
59
+ options_index: this.options_index,
60
+ value: option.value,
61
+ text: option.text,
62
+ html: option.innerHTML,
63
+ selected: option.selected,
64
+ disabled: group_disabled === true ? group_disabled : option.disabled,
65
+ group_array_index: group_position,
66
+ classes: option.className,
67
+ style: option.style.cssText
68
+ });
69
+ } else {
70
+ this.parsed.push({
71
+ array_index: this.parsed.length,
72
+ options_index: this.options_index,
73
+ empty: true
74
+ });
75
+ }
76
+ return this.options_index += 1;
77
+ }
78
+ };
79
+
80
+ SelectParser.prototype.escapeExpression = function(text) {
81
+ var map, unsafe_chars;
82
+ if ((text == null) || text === false) {
83
+ return "";
84
+ }
85
+ if (!/[\&\<\>\"\'\`]/.test(text)) {
86
+ return text;
87
+ }
88
+ map = {
89
+ "<": "&lt;",
90
+ ">": "&gt;",
91
+ '"': "&quot;",
92
+ "'": "&#x27;",
93
+ "`": "&#x60;"
94
+ };
95
+ unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
96
+ return text.replace(unsafe_chars, function(chr) {
97
+ return map[chr] || "&amp;";
98
+ });
99
+ };
100
+
101
+ return SelectParser;
102
+
103
+ })();
104
+
105
+ SelectParser.select_to_array = function(select) {
106
+ var child, parser, _i, _len, _ref;
107
+ parser = new SelectParser();
108
+ _ref = select.childNodes;
109
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
110
+ child = _ref[_i];
111
+ parser.add_node(child);
112
+ }
113
+ return parser.parsed;
114
+ };
115
+
116
+ AbstractChosen = (function() {
117
+ function AbstractChosen(form_field, options) {
118
+ this.form_field = form_field;
119
+ this.options = options != null ? options : {};
120
+ if (!AbstractChosen.browser_is_supported()) {
121
+ return;
122
+ }
123
+ this.is_multiple = this.form_field.multiple;
124
+ this.set_default_text();
125
+ this.set_default_values();
126
+ this.setup();
127
+ this.set_up_html();
128
+ this.register_observers();
129
+ }
130
+
131
+ AbstractChosen.prototype.set_default_values = function() {
132
+ var _this = this;
133
+ this.click_test_action = function(evt) {
134
+ return _this.test_active_click(evt);
135
+ };
136
+ this.activate_action = function(evt) {
137
+ return _this.activate_field(evt);
138
+ };
139
+ this.active_field = false;
140
+ this.mouse_on_container = false;
141
+ this.results_showing = false;
142
+ this.result_highlighted = null;
143
+ this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
144
+ this.disable_search_threshold = this.options.disable_search_threshold || 0;
145
+ this.disable_search = this.options.disable_search || false;
146
+ this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
147
+ this.group_search = this.options.group_search != null ? this.options.group_search : true;
148
+ this.search_contains = this.options.search_contains || false;
149
+ this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
150
+ this.max_selected_options = this.options.max_selected_options || Infinity;
151
+ this.inherit_select_classes = this.options.inherit_select_classes || false;
152
+ this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
153
+ return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
154
+ };
155
+
156
+ AbstractChosen.prototype.set_default_text = function() {
157
+ if (this.form_field.getAttribute("data-placeholder")) {
158
+ this.default_text = this.form_field.getAttribute("data-placeholder");
159
+ } else if (this.is_multiple) {
160
+ this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
161
+ } else {
162
+ this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
163
+ }
164
+ return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
165
+ };
166
+
167
+ AbstractChosen.prototype.mouse_enter = function() {
168
+ return this.mouse_on_container = true;
169
+ };
170
+
171
+ AbstractChosen.prototype.mouse_leave = function() {
172
+ return this.mouse_on_container = false;
173
+ };
174
+
175
+ AbstractChosen.prototype.input_focus = function(evt) {
176
+ var _this = this;
177
+ if (this.is_multiple) {
178
+ if (!this.active_field) {
179
+ return setTimeout((function() {
180
+ return _this.container_mousedown();
181
+ }), 50);
182
+ }
183
+ } else {
184
+ if (!this.active_field) {
185
+ return this.activate_field();
186
+ }
187
+ }
188
+ };
189
+
190
+ AbstractChosen.prototype.input_blur = function(evt) {
191
+ var _this = this;
192
+ if (!this.mouse_on_container) {
193
+ this.active_field = false;
194
+ return setTimeout((function() {
195
+ return _this.blur_test();
196
+ }), 100);
197
+ }
198
+ };
199
+
200
+ AbstractChosen.prototype.results_option_build = function(options) {
201
+ var content, data, _i, _len, _ref;
202
+ content = '';
203
+ _ref = this.results_data;
204
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
205
+ data = _ref[_i];
206
+ if (data.group) {
207
+ content += this.result_add_group(data);
208
+ } else {
209
+ content += this.result_add_option(data);
210
+ }
211
+ if (options != null ? options.first : void 0) {
212
+ if (data.selected && this.is_multiple) {
213
+ this.choice_build(data);
214
+ } else if (data.selected && !this.is_multiple) {
215
+ this.single_set_selected_text(data.text);
216
+ }
217
+ }
218
+ }
219
+ return content;
220
+ };
221
+
222
+ AbstractChosen.prototype.result_add_option = function(option) {
223
+ var classes, option_el;
224
+ if (!option.search_match) {
225
+ return '';
226
+ }
227
+ if (!this.include_option_in_results(option)) {
228
+ return '';
229
+ }
230
+ classes = [];
231
+ if (!option.disabled && !(option.selected && this.is_multiple)) {
232
+ classes.push("active-result");
233
+ }
234
+ if (option.disabled && !(option.selected && this.is_multiple)) {
235
+ classes.push("disabled-result");
236
+ }
237
+ if (option.selected) {
238
+ classes.push("result-selected");
239
+ }
240
+ if (option.group_array_index != null) {
241
+ classes.push("group-option");
242
+ }
243
+ if (option.classes !== "") {
244
+ classes.push(option.classes);
245
+ }
246
+ option_el = document.createElement("li");
247
+ option_el.className = classes.join(" ");
248
+ option_el.style.cssText = option.style;
249
+ option_el.setAttribute("data-option-array-index", option.array_index);
250
+ option_el.innerHTML = option.search_text;
251
+ return this.outerHTML(option_el);
252
+ };
253
+
254
+ AbstractChosen.prototype.result_add_group = function(group) {
255
+ var group_el;
256
+ if (!(group.search_match || group.group_match)) {
257
+ return '';
258
+ }
259
+ if (!(group.active_options > 0)) {
260
+ return '';
261
+ }
262
+ group_el = document.createElement("li");
263
+ group_el.className = "group-result";
264
+ group_el.innerHTML = group.search_text;
265
+ return this.outerHTML(group_el);
266
+ };
267
+
268
+ AbstractChosen.prototype.results_update_field = function() {
269
+ this.set_default_text();
270
+ if (!this.is_multiple) {
271
+ this.results_reset_cleanup();
272
+ }
273
+ this.result_clear_highlight();
274
+ this.results_build();
275
+ if (this.results_showing) {
276
+ return this.winnow_results();
277
+ }
278
+ };
279
+
280
+ AbstractChosen.prototype.reset_single_select_options = function() {
281
+ var result, _i, _len, _ref, _results;
282
+ _ref = this.results_data;
283
+ _results = [];
284
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
285
+ result = _ref[_i];
286
+ if (result.selected) {
287
+ _results.push(result.selected = false);
288
+ } else {
289
+ _results.push(void 0);
290
+ }
291
+ }
292
+ return _results;
293
+ };
294
+
295
+ AbstractChosen.prototype.results_toggle = function() {
296
+ if (this.results_showing) {
297
+ return this.results_hide();
298
+ } else {
299
+ return this.results_show();
300
+ }
301
+ };
302
+
303
+ AbstractChosen.prototype.results_search = function(evt) {
304
+ if (this.results_showing) {
305
+ return this.winnow_results();
306
+ } else {
307
+ return this.results_show();
308
+ }
309
+ };
310
+
311
+ AbstractChosen.prototype.winnow_results = function() {
312
+ var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
313
+ this.no_results_clear();
314
+ results = 0;
315
+ searchText = this.get_search_text();
316
+ escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
317
+ regexAnchor = this.search_contains ? "" : "^";
318
+ regex = new RegExp(regexAnchor + escapedSearchText, 'i');
319
+ zregex = new RegExp(escapedSearchText, 'i');
320
+ _ref = this.results_data;
321
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
322
+ option = _ref[_i];
323
+ option.search_match = false;
324
+ results_group = null;
325
+ if (this.include_option_in_results(option)) {
326
+ if (option.group) {
327
+ option.group_match = false;
328
+ option.active_options = 0;
329
+ }
330
+ if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
331
+ results_group = this.results_data[option.group_array_index];
332
+ if (results_group.active_options === 0 && results_group.search_match) {
333
+ results += 1;
334
+ }
335
+ results_group.active_options += 1;
336
+ }
337
+ if (!(option.group && !this.group_search)) {
338
+ option.search_text = option.group ? option.label : option.html;
339
+ option.search_match = this.search_string_match(option.search_text, regex);
340
+ if (option.search_match && !option.group) {
341
+ results += 1;
342
+ }
343
+ if (option.search_match) {
344
+ if (searchText.length) {
345
+ startpos = option.search_text.search(zregex);
346
+ text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
347
+ option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
348
+ }
349
+ if (results_group != null) {
350
+ results_group.group_match = true;
351
+ }
352
+ } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
353
+ option.search_match = true;
354
+ }
355
+ }
356
+ }
357
+ }
358
+ this.result_clear_highlight();
359
+ if (results < 1 && searchText.length) {
360
+ this.update_results_content("");
361
+ return this.no_results(searchText);
362
+ } else {
363
+ this.update_results_content(this.results_option_build());
364
+ return this.winnow_results_set_highlight();
365
+ }
366
+ };
367
+
368
+ AbstractChosen.prototype.search_string_match = function(search_string, regex) {
369
+ var part, parts, _i, _len;
370
+ if (regex.test(search_string)) {
371
+ return true;
372
+ } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
373
+ parts = search_string.replace(/\[|\]/g, "").split(" ");
374
+ if (parts.length) {
375
+ for (_i = 0, _len = parts.length; _i < _len; _i++) {
376
+ part = parts[_i];
377
+ if (regex.test(part)) {
378
+ return true;
379
+ }
380
+ }
381
+ }
382
+ }
383
+ };
384
+
385
+ AbstractChosen.prototype.choices_count = function() {
386
+ var option, _i, _len, _ref;
387
+ if (this.selected_option_count != null) {
388
+ return this.selected_option_count;
389
+ }
390
+ this.selected_option_count = 0;
391
+ _ref = this.form_field.options;
392
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
393
+ option = _ref[_i];
394
+ if (option.selected) {
395
+ this.selected_option_count += 1;
396
+ }
397
+ }
398
+ return this.selected_option_count;
399
+ };
400
+
401
+ AbstractChosen.prototype.choices_click = function(evt) {
402
+ evt.preventDefault();
403
+ if (!(this.results_showing || this.is_disabled)) {
404
+ return this.results_show();
405
+ }
406
+ };
407
+
408
+ AbstractChosen.prototype.keyup_checker = function(evt) {
409
+ var stroke, _ref;
410
+ stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
411
+ this.search_field_scale();
412
+ switch (stroke) {
413
+ case 8:
414
+ if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
415
+ return this.keydown_backstroke();
416
+ } else if (!this.pending_backstroke) {
417
+ this.result_clear_highlight();
418
+ return this.results_search();
419
+ }
420
+ break;
421
+ case 13:
422
+ evt.preventDefault();
423
+ if (this.results_showing) {
424
+ return this.result_select(evt);
425
+ }
426
+ break;
427
+ case 27:
428
+ if (this.results_showing) {
429
+ this.results_hide();
430
+ }
431
+ return true;
432
+ case 9:
433
+ case 38:
434
+ case 40:
435
+ case 16:
436
+ case 91:
437
+ case 17:
438
+ break;
439
+ default:
440
+ return this.results_search();
441
+ }
442
+ };
443
+
444
+ AbstractChosen.prototype.clipboard_event_checker = function(evt) {
445
+ var _this = this;
446
+ return setTimeout((function() {
447
+ return _this.results_search();
448
+ }), 50);
449
+ };
450
+
451
+ AbstractChosen.prototype.container_width = function() {
452
+ if (this.options.width != null) {
453
+ return this.options.width;
454
+ } else {
455
+ return "" + this.form_field.offsetWidth + "px";
456
+ }
457
+ };
458
+
459
+ AbstractChosen.prototype.include_option_in_results = function(option) {
460
+ if (this.is_multiple && (!this.display_selected_options && option.selected)) {
461
+ return false;
462
+ }
463
+ if (!this.display_disabled_options && option.disabled) {
464
+ return false;
465
+ }
466
+ if (option.empty) {
467
+ return false;
468
+ }
469
+ return true;
470
+ };
471
+
472
+ AbstractChosen.prototype.search_results_touchstart = function(evt) {
473
+ this.touch_started = true;
474
+ return this.search_results_mouseover(evt);
475
+ };
476
+
477
+ AbstractChosen.prototype.search_results_touchmove = function(evt) {
478
+ this.touch_started = false;
479
+ return this.search_results_mouseout(evt);
480
+ };
481
+
482
+ AbstractChosen.prototype.search_results_touchend = function(evt) {
483
+ if (this.touch_started) {
484
+ return this.search_results_mouseup(evt);
485
+ }
486
+ };
487
+
488
+ AbstractChosen.prototype.outerHTML = function(element) {
489
+ var tmp;
490
+ if (element.outerHTML) {
491
+ return element.outerHTML;
492
+ }
493
+ tmp = document.createElement("div");
494
+ tmp.appendChild(element);
495
+ return tmp.innerHTML;
496
+ };
497
+
498
+ AbstractChosen.browser_is_supported = function() {
499
+ if (window.navigator.appName === "Microsoft Internet Explorer") {
500
+ return document.documentMode >= 8;
501
+ }
502
+ if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
503
+ return false;
504
+ }
505
+ if (/Android/i.test(window.navigator.userAgent)) {
506
+ if (/Mobile/i.test(window.navigator.userAgent)) {
507
+ return false;
508
+ }
509
+ }
510
+ return true;
511
+ };
512
+
513
+ AbstractChosen.default_multiple_text = "Select Some Options";
514
+
515
+ AbstractChosen.default_single_text = "Select an Option";
516
+
517
+ AbstractChosen.default_no_result_text = "No results match";
518
+
519
+ return AbstractChosen;
520
+
521
+ })();
522
+
523
+ $ = jQuery;
524
+
525
+ $.fn.extend({
526
+ chosen: function(options) {
527
+ if (!AbstractChosen.browser_is_supported()) {
528
+ return this;
529
+ }
530
+ return this.each(function(input_field) {
531
+ var $this, chosen;
532
+ $this = $(this);
533
+ chosen = $this.data('chosen');
534
+ if (options === 'destroy' && chosen) {
535
+ chosen.destroy();
536
+ } else if (!chosen) {
537
+ $this.data('chosen', new Chosen(this, options));
538
+ }
539
+ });
540
+ }
541
+ });
542
+
543
+ Chosen = (function(_super) {
544
+ __extends(Chosen, _super);
545
+
546
+ function Chosen() {
547
+ _ref = Chosen.__super__.constructor.apply(this, arguments);
548
+ return _ref;
549
+ }
550
+
551
+ Chosen.prototype.setup = function() {
552
+ this.form_field_jq = $(this.form_field);
553
+ this.current_selectedIndex = this.form_field.selectedIndex;
554
+ return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
555
+ };
556
+
557
+ Chosen.prototype.set_up_html = function() {
558
+ var container_classes, container_props;
559
+ container_classes = ["chosen-container"];
560
+ container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
561
+ if (this.inherit_select_classes && this.form_field.className) {
562
+ container_classes.push(this.form_field.className);
563
+ }
564
+ if (this.is_rtl) {
565
+ container_classes.push("chosen-rtl");
566
+ }
567
+ container_props = {
568
+ 'class': container_classes.join(' '),
569
+ 'style': "width: " + (this.container_width()) + ";",
570
+ 'title': this.form_field.title
571
+ };
572
+ if (this.form_field.id.length) {
573
+ container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
574
+ }
575
+ this.container = $("<div />", container_props);
576
+ if (this.is_multiple) {
577
+ this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
578
+ } else {
579
+ this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
580
+ }
581
+ this.form_field_jq.hide().after(this.container);
582
+ this.dropdown = this.container.find('div.chosen-drop').first();
583
+ this.search_field = this.container.find('input').first();
584
+ this.search_results = this.container.find('ul.chosen-results').first();
585
+ this.search_field_scale();
586
+ this.search_no_results = this.container.find('li.no-results').first();
587
+ if (this.is_multiple) {
588
+ this.search_choices = this.container.find('ul.chosen-choices').first();
589
+ this.search_container = this.container.find('li.search-field').first();
590
+ } else {
591
+ this.search_container = this.container.find('div.chosen-search').first();
592
+ this.selected_item = this.container.find('.chosen-single').first();
593
+ }
594
+ this.results_build();
595
+ this.set_tab_index();
596
+ this.set_label_behavior();
597
+ return this.form_field_jq.trigger("chosen:ready", {
598
+ chosen: this
599
+ });
600
+ };
601
+
602
+ Chosen.prototype.register_observers = function() {
603
+ var _this = this;
604
+ this.container.bind('mousedown.chosen', function(evt) {
605
+ _this.container_mousedown(evt);
606
+ });
607
+ this.container.bind('mouseup.chosen', function(evt) {
608
+ _this.container_mouseup(evt);
609
+ });
610
+ this.container.bind('mouseenter.chosen', function(evt) {
611
+ _this.mouse_enter(evt);
612
+ });
613
+ this.container.bind('mouseleave.chosen', function(evt) {
614
+ _this.mouse_leave(evt);
615
+ });
616
+ this.search_results.bind('mouseup.chosen', function(evt) {
617
+ _this.search_results_mouseup(evt);
618
+ });
619
+ this.search_results.bind('mouseover.chosen', function(evt) {
620
+ _this.search_results_mouseover(evt);
621
+ });
622
+ this.search_results.bind('mouseout.chosen', function(evt) {
623
+ _this.search_results_mouseout(evt);
624
+ });
625
+ this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
626
+ _this.search_results_mousewheel(evt);
627
+ });
628
+ this.search_results.bind('touchstart.chosen', function(evt) {
629
+ _this.search_results_touchstart(evt);
630
+ });
631
+ this.search_results.bind('touchmove.chosen', function(evt) {
632
+ _this.search_results_touchmove(evt);
633
+ });
634
+ this.search_results.bind('touchend.chosen', function(evt) {
635
+ _this.search_results_touchend(evt);
636
+ });
637
+ this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
638
+ _this.results_update_field(evt);
639
+ });
640
+ this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
641
+ _this.activate_field(evt);
642
+ });
643
+ this.form_field_jq.bind("chosen:open.chosen", function(evt) {
644
+ _this.container_mousedown(evt);
645
+ });
646
+ this.form_field_jq.bind("chosen:close.chosen", function(evt) {
647
+ _this.input_blur(evt);
648
+ });
649
+ this.search_field.bind('blur.chosen', function(evt) {
650
+ _this.input_blur(evt);
651
+ });
652
+ this.search_field.bind('keyup.chosen', function(evt) {
653
+ _this.keyup_checker(evt);
654
+ });
655
+ this.search_field.bind('keydown.chosen', function(evt) {
656
+ _this.keydown_checker(evt);
657
+ });
658
+ this.search_field.bind('focus.chosen', function(evt) {
659
+ _this.input_focus(evt);
660
+ });
661
+ this.search_field.bind('cut.chosen', function(evt) {
662
+ _this.clipboard_event_checker(evt);
663
+ });
664
+ this.search_field.bind('paste.chosen', function(evt) {
665
+ _this.clipboard_event_checker(evt);
666
+ });
667
+ if (this.is_multiple) {
668
+ return this.search_choices.bind('click.chosen', function(evt) {
669
+ _this.choices_click(evt);
670
+ });
671
+ } else {
672
+ return this.container.bind('click.chosen', function(evt) {
673
+ evt.preventDefault();
674
+ });
675
+ }
676
+ };
677
+
678
+ Chosen.prototype.destroy = function() {
679
+ $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
680
+ if (this.search_field[0].tabIndex) {
681
+ this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
682
+ }
683
+ this.container.remove();
684
+ this.form_field_jq.removeData('chosen');
685
+ return this.form_field_jq.show();
686
+ };
687
+
688
+ Chosen.prototype.search_field_disabled = function() {
689
+ this.is_disabled = this.form_field_jq[0].disabled;
690
+ if (this.is_disabled) {
691
+ this.container.addClass('chosen-disabled');
692
+ this.search_field[0].disabled = true;
693
+ if (!this.is_multiple) {
694
+ this.selected_item.unbind("focus.chosen", this.activate_action);
695
+ }
696
+ return this.close_field();
697
+ } else {
698
+ this.container.removeClass('chosen-disabled');
699
+ this.search_field[0].disabled = false;
700
+ if (!this.is_multiple) {
701
+ return this.selected_item.bind("focus.chosen", this.activate_action);
702
+ }
703
+ }
704
+ };
705
+
706
+ Chosen.prototype.container_mousedown = function(evt) {
707
+ if (!this.is_disabled) {
708
+ if (evt && evt.type === "mousedown" && !this.results_showing) {
709
+ evt.preventDefault();
710
+ }
711
+ if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
712
+ if (!this.active_field) {
713
+ if (this.is_multiple) {
714
+ this.search_field.val("");
715
+ }
716
+ $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
717
+ this.results_show();
718
+ } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
719
+ evt.preventDefault();
720
+ this.results_toggle();
721
+ }
722
+ return this.activate_field();
723
+ }
724
+ }
725
+ };
726
+
727
+ Chosen.prototype.container_mouseup = function(evt) {
728
+ if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
729
+ return this.results_reset(evt);
730
+ }
731
+ };
732
+
733
+ Chosen.prototype.search_results_mousewheel = function(evt) {
734
+ var delta;
735
+ if (evt.originalEvent) {
736
+ delta = -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
737
+ }
738
+ if (delta != null) {
739
+ evt.preventDefault();
740
+ if (evt.type === 'DOMMouseScroll') {
741
+ delta = delta * 40;
742
+ }
743
+ return this.search_results.scrollTop(delta + this.search_results.scrollTop());
744
+ }
745
+ };
746
+
747
+ Chosen.prototype.blur_test = function(evt) {
748
+ if (!this.active_field && this.container.hasClass("chosen-container-active")) {
749
+ return this.close_field();
750
+ }
751
+ };
752
+
753
+ Chosen.prototype.close_field = function() {
754
+ $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
755
+ this.active_field = false;
756
+ this.results_hide();
757
+ this.container.removeClass("chosen-container-active");
758
+ this.clear_backstroke();
759
+ this.show_search_field_default();
760
+ return this.search_field_scale();
761
+ };
762
+
763
+ Chosen.prototype.activate_field = function() {
764
+ this.container.addClass("chosen-container-active");
765
+ this.active_field = true;
766
+ this.search_field.val(this.search_field.val());
767
+ return this.search_field.focus();
768
+ };
769
+
770
+ Chosen.prototype.test_active_click = function(evt) {
771
+ var active_container;
772
+ active_container = $(evt.target).closest('.chosen-container');
773
+ if (active_container.length && this.container[0] === active_container[0]) {
774
+ return this.active_field = true;
775
+ } else {
776
+ return this.close_field();
777
+ }
778
+ };
779
+
780
+ Chosen.prototype.results_build = function() {
781
+ this.parsing = true;
782
+ this.selected_option_count = null;
783
+ this.results_data = SelectParser.select_to_array(this.form_field);
784
+ if (this.is_multiple) {
785
+ this.search_choices.find("li.search-choice").remove();
786
+ } else if (!this.is_multiple) {
787
+ this.single_set_selected_text();
788
+ if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
789
+ this.search_field[0].readOnly = true;
790
+ this.container.addClass("chosen-container-single-nosearch");
791
+ } else {
792
+ this.search_field[0].readOnly = false;
793
+ this.container.removeClass("chosen-container-single-nosearch");
794
+ }
795
+ }
796
+ this.update_results_content(this.results_option_build({
797
+ first: true
798
+ }));
799
+ this.search_field_disabled();
800
+ this.show_search_field_default();
801
+ this.search_field_scale();
802
+ return this.parsing = false;
803
+ };
804
+
805
+ Chosen.prototype.result_do_highlight = function(el) {
806
+ var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
807
+ if (el.length) {
808
+ this.result_clear_highlight();
809
+ this.result_highlight = el;
810
+ this.result_highlight.addClass("highlighted");
811
+ maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
812
+ visible_top = this.search_results.scrollTop();
813
+ visible_bottom = maxHeight + visible_top;
814
+ high_top = this.result_highlight.position().top + this.search_results.scrollTop();
815
+ high_bottom = high_top + this.result_highlight.outerHeight();
816
+ if (high_bottom >= visible_bottom) {
817
+ return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
818
+ } else if (high_top < visible_top) {
819
+ return this.search_results.scrollTop(high_top);
820
+ }
821
+ }
822
+ };
823
+
824
+ Chosen.prototype.result_clear_highlight = function() {
825
+ if (this.result_highlight) {
826
+ this.result_highlight.removeClass("highlighted");
827
+ }
828
+ return this.result_highlight = null;
829
+ };
830
+
831
+ Chosen.prototype.results_show = function() {
832
+ if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
833
+ this.form_field_jq.trigger("chosen:maxselected", {
834
+ chosen: this
835
+ });
836
+ return false;
837
+ }
838
+ this.container.addClass("chosen-with-drop");
839
+ this.results_showing = true;
840
+ this.search_field.focus();
841
+ this.search_field.val(this.search_field.val());
842
+ this.winnow_results();
843
+ return this.form_field_jq.trigger("chosen:showing_dropdown", {
844
+ chosen: this
845
+ });
846
+ };
847
+
848
+ Chosen.prototype.update_results_content = function(content) {
849
+ return this.search_results.html(content);
850
+ };
851
+
852
+ Chosen.prototype.results_hide = function() {
853
+ if (this.results_showing) {
854
+ this.result_clear_highlight();
855
+ this.container.removeClass("chosen-with-drop");
856
+ this.form_field_jq.trigger("chosen:hiding_dropdown", {
857
+ chosen: this
858
+ });
859
+ }
860
+ return this.results_showing = false;
861
+ };
862
+
863
+ Chosen.prototype.set_tab_index = function(el) {
864
+ var ti;
865
+ if (this.form_field.tabIndex) {
866
+ ti = this.form_field.tabIndex;
867
+ this.form_field.tabIndex = -1;
868
+ return this.search_field[0].tabIndex = ti;
869
+ }
870
+ };
871
+
872
+ Chosen.prototype.set_label_behavior = function() {
873
+ var _this = this;
874
+ this.form_field_label = this.form_field_jq.parents("label");
875
+ if (!this.form_field_label.length && this.form_field.id.length) {
876
+ this.form_field_label = $("label[for='" + this.form_field.id + "']");
877
+ }
878
+ if (this.form_field_label.length > 0) {
879
+ return this.form_field_label.bind('click.chosen', function(evt) {
880
+ if (_this.is_multiple) {
881
+ return _this.container_mousedown(evt);
882
+ } else {
883
+ return _this.activate_field();
884
+ }
885
+ });
886
+ }
887
+ };
888
+
889
+ Chosen.prototype.show_search_field_default = function() {
890
+ if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
891
+ this.search_field.val(this.default_text);
892
+ return this.search_field.addClass("default");
893
+ } else {
894
+ this.search_field.val("");
895
+ return this.search_field.removeClass("default");
896
+ }
897
+ };
898
+
899
+ Chosen.prototype.search_results_mouseup = function(evt) {
900
+ var target;
901
+ target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
902
+ if (target.length) {
903
+ this.result_highlight = target;
904
+ this.result_select(evt);
905
+ return this.search_field.focus();
906
+ }
907
+ };
908
+
909
+ Chosen.prototype.search_results_mouseover = function(evt) {
910
+ var target;
911
+ target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
912
+ if (target) {
913
+ return this.result_do_highlight(target);
914
+ }
915
+ };
916
+
917
+ Chosen.prototype.search_results_mouseout = function(evt) {
918
+ if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
919
+ return this.result_clear_highlight();
920
+ }
921
+ };
922
+
923
+ Chosen.prototype.choice_build = function(item) {
924
+ var choice, close_link,
925
+ _this = this;
926
+ choice = $('<li />', {
927
+ "class": "search-choice"
928
+ }).html("<span>" + item.html + "</span>");
929
+ if (item.disabled) {
930
+ choice.addClass('search-choice-disabled');
931
+ } else {
932
+ close_link = $('<a />', {
933
+ "class": 'search-choice-close',
934
+ 'data-option-array-index': item.array_index
935
+ });
936
+ close_link.bind('click.chosen', function(evt) {
937
+ return _this.choice_destroy_link_click(evt);
938
+ });
939
+ choice.append(close_link);
940
+ }
941
+ return this.search_container.before(choice);
942
+ };
943
+
944
+ Chosen.prototype.choice_destroy_link_click = function(evt) {
945
+ evt.preventDefault();
946
+ evt.stopPropagation();
947
+ if (!this.is_disabled) {
948
+ return this.choice_destroy($(evt.target));
949
+ }
950
+ };
951
+
952
+ Chosen.prototype.choice_destroy = function(link) {
953
+ if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
954
+ this.show_search_field_default();
955
+ if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
956
+ this.results_hide();
957
+ }
958
+ link.parents('li').first().remove();
959
+ return this.search_field_scale();
960
+ }
961
+ };
962
+
963
+ Chosen.prototype.results_reset = function() {
964
+ this.reset_single_select_options();
965
+ this.form_field.options[0].selected = true;
966
+ this.single_set_selected_text();
967
+ this.show_search_field_default();
968
+ this.results_reset_cleanup();
969
+ this.form_field_jq.trigger("change");
970
+ if (this.active_field) {
971
+ return this.results_hide();
972
+ }
973
+ };
974
+
975
+ Chosen.prototype.results_reset_cleanup = function() {
976
+ this.current_selectedIndex = this.form_field.selectedIndex;
977
+ return this.selected_item.find("abbr").remove();
978
+ };
979
+
980
+ Chosen.prototype.result_select = function(evt) {
981
+ var high, item;
982
+ if (this.result_highlight) {
983
+ high = this.result_highlight;
984
+ this.result_clear_highlight();
985
+ if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
986
+ this.form_field_jq.trigger("chosen:maxselected", {
987
+ chosen: this
988
+ });
989
+ return false;
990
+ }
991
+ if (this.is_multiple) {
992
+ high.removeClass("active-result");
993
+ } else {
994
+ this.reset_single_select_options();
995
+ }
996
+ item = this.results_data[high[0].getAttribute("data-option-array-index")];
997
+ item.selected = true;
998
+ this.form_field.options[item.options_index].selected = true;
999
+ this.selected_option_count = null;
1000
+ if (this.is_multiple) {
1001
+ this.choice_build(item);
1002
+ } else {
1003
+ this.single_set_selected_text(item.text);
1004
+ }
1005
+ if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
1006
+ this.results_hide();
1007
+ }
1008
+ this.search_field.val("");
1009
+ if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
1010
+ this.form_field_jq.trigger("change", {
1011
+ 'selected': this.form_field.options[item.options_index].value
1012
+ });
1013
+ }
1014
+ this.current_selectedIndex = this.form_field.selectedIndex;
1015
+ return this.search_field_scale();
1016
+ }
1017
+ };
1018
+
1019
+ Chosen.prototype.single_set_selected_text = function(text) {
1020
+ if (text == null) {
1021
+ text = this.default_text;
1022
+ }
1023
+ if (text === this.default_text) {
1024
+ this.selected_item.addClass("chosen-default");
1025
+ } else {
1026
+ this.single_deselect_control_build();
1027
+ this.selected_item.removeClass("chosen-default");
1028
+ }
1029
+ return this.selected_item.find("span").text(text);
1030
+ };
1031
+
1032
+ Chosen.prototype.result_deselect = function(pos) {
1033
+ var result_data;
1034
+ result_data = this.results_data[pos];
1035
+ if (!this.form_field.options[result_data.options_index].disabled) {
1036
+ result_data.selected = false;
1037
+ this.form_field.options[result_data.options_index].selected = false;
1038
+ this.selected_option_count = null;
1039
+ this.result_clear_highlight();
1040
+ if (this.results_showing) {
1041
+ this.winnow_results();
1042
+ }
1043
+ this.form_field_jq.trigger("change", {
1044
+ deselected: this.form_field.options[result_data.options_index].value
1045
+ });
1046
+ this.search_field_scale();
1047
+ return true;
1048
+ } else {
1049
+ return false;
1050
+ }
1051
+ };
1052
+
1053
+ Chosen.prototype.single_deselect_control_build = function() {
1054
+ if (!this.allow_single_deselect) {
1055
+ return;
1056
+ }
1057
+ if (!this.selected_item.find("abbr").length) {
1058
+ this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
1059
+ }
1060
+ return this.selected_item.addClass("chosen-single-with-deselect");
1061
+ };
1062
+
1063
+ Chosen.prototype.get_search_text = function() {
1064
+ if (this.search_field.val() === this.default_text) {
1065
+ return "";
1066
+ } else {
1067
+ return $('<div/>').text($.trim(this.search_field.val())).html();
1068
+ }
1069
+ };
1070
+
1071
+ Chosen.prototype.winnow_results_set_highlight = function() {
1072
+ var do_high, selected_results;
1073
+ selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
1074
+ do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
1075
+ if (do_high != null) {
1076
+ return this.result_do_highlight(do_high);
1077
+ }
1078
+ };
1079
+
1080
+ Chosen.prototype.no_results = function(terms) {
1081
+ var no_results_html;
1082
+ no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
1083
+ no_results_html.find("span").first().html(terms);
1084
+ this.search_results.append(no_results_html);
1085
+ return this.form_field_jq.trigger("chosen:no_results", {
1086
+ chosen: this
1087
+ });
1088
+ };
1089
+
1090
+ Chosen.prototype.no_results_clear = function() {
1091
+ return this.search_results.find(".no-results").remove();
1092
+ };
1093
+
1094
+ Chosen.prototype.keydown_arrow = function() {
1095
+ var next_sib;
1096
+ if (this.results_showing && this.result_highlight) {
1097
+ next_sib = this.result_highlight.nextAll("li.active-result").first();
1098
+ if (next_sib) {
1099
+ return this.result_do_highlight(next_sib);
1100
+ }
1101
+ } else {
1102
+ return this.results_show();
1103
+ }
1104
+ };
1105
+
1106
+ Chosen.prototype.keyup_arrow = function() {
1107
+ var prev_sibs;
1108
+ if (!this.results_showing && !this.is_multiple) {
1109
+ return this.results_show();
1110
+ } else if (this.result_highlight) {
1111
+ prev_sibs = this.result_highlight.prevAll("li.active-result");
1112
+ if (prev_sibs.length) {
1113
+ return this.result_do_highlight(prev_sibs.first());
1114
+ } else {
1115
+ if (this.choices_count() > 0) {
1116
+ this.results_hide();
1117
+ }
1118
+ return this.result_clear_highlight();
1119
+ }
1120
+ }
1121
+ };
1122
+
1123
+ Chosen.prototype.keydown_backstroke = function() {
1124
+ var next_available_destroy;
1125
+ if (this.pending_backstroke) {
1126
+ this.choice_destroy(this.pending_backstroke.find("a").first());
1127
+ return this.clear_backstroke();
1128
+ } else {
1129
+ next_available_destroy = this.search_container.siblings("li.search-choice").last();
1130
+ if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
1131
+ this.pending_backstroke = next_available_destroy;
1132
+ if (this.single_backstroke_delete) {
1133
+ return this.keydown_backstroke();
1134
+ } else {
1135
+ return this.pending_backstroke.addClass("search-choice-focus");
1136
+ }
1137
+ }
1138
+ }
1139
+ };
1140
+
1141
+ Chosen.prototype.clear_backstroke = function() {
1142
+ if (this.pending_backstroke) {
1143
+ this.pending_backstroke.removeClass("search-choice-focus");
1144
+ }
1145
+ return this.pending_backstroke = null;
1146
+ };
1147
+
1148
+ Chosen.prototype.keydown_checker = function(evt) {
1149
+ var stroke, _ref1;
1150
+ stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
1151
+ this.search_field_scale();
1152
+ if (stroke !== 8 && this.pending_backstroke) {
1153
+ this.clear_backstroke();
1154
+ }
1155
+ switch (stroke) {
1156
+ case 8:
1157
+ this.backstroke_length = this.search_field.val().length;
1158
+ break;
1159
+ case 9:
1160
+ if (this.results_showing && !this.is_multiple) {
1161
+ this.result_select(evt);
1162
+ }
1163
+ this.mouse_on_container = false;
1164
+ break;
1165
+ case 13:
1166
+ evt.preventDefault();
1167
+ break;
1168
+ case 38:
1169
+ evt.preventDefault();
1170
+ this.keyup_arrow();
1171
+ break;
1172
+ case 40:
1173
+ evt.preventDefault();
1174
+ this.keydown_arrow();
1175
+ break;
1176
+ }
1177
+ };
1178
+
1179
+ Chosen.prototype.search_field_scale = function() {
1180
+ var div, f_width, h, style, style_block, styles, w, _i, _len;
1181
+ if (this.is_multiple) {
1182
+ h = 0;
1183
+ w = 0;
1184
+ style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
1185
+ styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
1186
+ for (_i = 0, _len = styles.length; _i < _len; _i++) {
1187
+ style = styles[_i];
1188
+ style_block += style + ":" + this.search_field.css(style) + ";";
1189
+ }
1190
+ div = $('<div />', {
1191
+ 'style': style_block
1192
+ });
1193
+ div.text(this.search_field.val());
1194
+ $('body').append(div);
1195
+ w = div.width() + 25;
1196
+ div.remove();
1197
+ f_width = this.container.outerWidth();
1198
+ if (w > f_width - 10) {
1199
+ w = f_width - 10;
1200
+ }
1201
+ return this.search_field.css({
1202
+ 'width': w + 'px'
1203
+ });
1204
+ }
1205
+ };
1206
+
1207
+ return Chosen;
1208
+
1209
+ })(AbstractChosen);
1210
+
1211
+ }).call(this);
assets/js/conditional.js ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This is a JavaScript Scratchpad.
3
+ *
4
+ * Enter some JavaScript, then Right Click or choose from the Execute Menu:
5
+ * 1. Run to evaluate the selected text (Cmd-R),
6
+ * 2. Inspect to bring up an Object Inspector on the result (Cmd-I), or,
7
+ * 3. Display to insert the result in a comment after the selection. (Cmd-L)
8
+ */
9
+
10
+ (function($, window) {
11
+
12
+ var WPUF_Conditional = {
13
+
14
+ init: function() {
15
+ var form = $('#wpuf-form-editor');
16
+ form.on('click', 'a.wpuf-conditional-plus', this.duplicateRow);
17
+ form.on('click', 'a.wpuf-conditional-minus', this.removeRow);
18
+ form.on('click', 'input[type=radio].wpuf-conditional-enable', this.showHide);
19
+ form.on('change', 'input[type=text][data-type="label"]', this.labelRender );
20
+ form.on('change', 'input[type=text][data-type="option"]', this.optionRender );
21
+ form.on('change', 'input[type=text][data-type="option_value"]', this.optionRender );
22
+ form.on('change', 'select.wpuf-conditional-fields', this.optionChange);
23
+
24
+ this.getLabel( true );
25
+
26
+ //initially get options values array
27
+ this.getOption( true );
28
+
29
+ this.labelRender();
30
+ this.optionRender();
31
+
32
+ },
33
+
34
+
35
+ newOptionValue: [],
36
+
37
+ prevOptionValue: [],
38
+
39
+ prevLabelValue: [],
40
+
41
+ newLabelValue: [],
42
+
43
+ getOption: function( optionStatus ) {
44
+ var labels = $('#wpuf-form-editor').find('input[data-type="name"]');
45
+
46
+ $.each( labels, function(k, label_field ) {
47
+ var label = $(label_field),
48
+ label_name = label.val();
49
+ if( label_name != '' ) {
50
+
51
+ var label_option = label.closest('.wpuf-form-holder').find('input[data-type="option_value"]');
52
+
53
+ var generate = [];
54
+
55
+ $.each( label_option, function( key, option ) {
56
+ var field_value = $(option).val();
57
+ if ( field_value == '' ) {
58
+ var field_value = $(option).closest('div').find('input[data-type=option]').val();
59
+ }
60
+ generate.push( field_value );
61
+ });
62
+
63
+ if( optionStatus === true ) {
64
+ WPUF_Conditional.prevOptionValue[label_name] = generate;
65
+ }
66
+
67
+ if( optionStatus === false ) {
68
+ WPUF_Conditional.newOptionValue[label_name] = generate;
69
+ }
70
+ }
71
+ });
72
+ },
73
+
74
+ getLabel: function( labelStatus ) {
75
+ var label = $('#wpuf-form-editor').find('input[data-type="name"]'),
76
+ prev_label = WPUF_Conditional.prevLabelValue,
77
+ new_label = WPUF_Conditional.newLabelValue;
78
+
79
+ if( labelStatus === true ) {
80
+ prev_label.length = 0;
81
+ }
82
+
83
+ if( labelStatus === false ) {
84
+ new_label.length = 0;
85
+ }
86
+
87
+ $.each( label, function(k, label_field ) {
88
+ var label = $(label_field),
89
+ label_name = label.val();
90
+ if( label_name != '' && labelStatus === true ) {
91
+ prev_label.push( label_name );
92
+ }
93
+
94
+ if( label_name != '' && labelStatus === false ) {
95
+ new_label.push( label_name );
96
+ }
97
+ });
98
+ },
99
+
100
+ labelRender: function() {
101
+
102
+ //after change get options values array
103
+ WPUF_Conditional.getLabel( false );
104
+
105
+ var options = WPUF_Conditional.fieldDropdown(),
106
+ label = $('#wpuf-form-editor').find('input[data-type="name"]'),
107
+ cond_select_wraps = $('select.wpuf-conditional-fields'),
108
+ wrap = $('.wpuf-form-holder'),
109
+ prev_label = WPUF_Conditional.prevLabelValue,
110
+ new_label = WPUF_Conditional.newLabelValue;
111
+
112
+ $.each( wrap, function( key, parent ) {
113
+
114
+ var label_name = $(parent).find('input[data-type="name"]').val(),
115
+ cond_select_wraps = $(parent).find('select.wpuf-conditional-fields'),
116
+ new_option = [];
117
+
118
+ $.each( options, function( k, opt_value ) {
119
+ var opt_val = $( opt_value ).attr('value');
120
+
121
+ if( opt_val !== label_name || label_name == '' ) {
122
+ new_option.push( opt_value );
123
+ }
124
+
125
+ });
126
+
127
+ $.each( cond_select_wraps, function( i, select_val) {
128
+ var select = $(select_val),
129
+ select_val = select.val();
130
+
131
+ var index = new_label.indexOf( select_val );
132
+
133
+ if( index == '-1' ) {
134
+ var oldindex = prev_label.indexOf( select_val );
135
+ select.html( new_option.join('') ).val( new_label[oldindex] );
136
+ } else {
137
+ select.html( new_option.join('') ).val( select_val );
138
+ }
139
+ });
140
+ });
141
+
142
+
143
+
144
+ WPUF_Conditional.getLabel( true );
145
+ WPUF_Conditional.getOption( true );
146
+ },
147
+
148
+ optionRender: function() {
149
+
150
+ //after change get options values array
151
+ WPUF_Conditional.getOption( false );
152
+
153
+ var option = WPUF_Conditional.labelOptionValue,
154
+ cond_select_wraps = $('select.wpuf-conditional-fields');
155
+
156
+ $.each( cond_select_wraps, function( i, select_val) {
157
+
158
+ var select = $(select_val),
159
+ select_val = $(select_val).val(),
160
+ option_generate = WPUF_Conditional.optionDropdown( select_val ),
161
+ optionDropdown = select.closest('tr').find('select.wpuf-conditional-fields-option'),
162
+ option_prev_val = optionDropdown.val(),
163
+ prev_options = WPUF_Conditional.prevOptionValue,
164
+ new_options = WPUF_Conditional.newOptionValue;
165
+
166
+ if( select_val !== '' ) {
167
+
168
+ var index = new_options[select_val].indexOf( option_prev_val );
169
+
170
+ if( index == '-1') {
171
+
172
+ var oldindex = prev_options[select_val].indexOf( option_prev_val );
173
+
174
+ optionDropdown.html(option_generate).val( new_options[select_val][oldindex] );
175
+ } else {
176
+ optionDropdown.html(option_generate).val(option_prev_val);
177
+ }
178
+ } else {
179
+ optionDropdown.html('<option>- select -</option>');
180
+ }
181
+ });
182
+
183
+ WPUF_Conditional.getOption( true );
184
+ },
185
+
186
+
187
+ getFields: function() {
188
+ var elements = [],
189
+ form_editor = $('#wpuf-form-editor');
190
+
191
+ form_editor.find('li.wpuf-conditional').each(function(i, el) {
192
+ el = $(el);
193
+
194
+ var label = el.find('input[type=text][data-type="label"]').val(),
195
+ name = el.find('[data-type="name"]').val();
196
+
197
+ elements[i] = {
198
+ 'name': name,
199
+ 'label': label,
200
+ 'options': [],
201
+ 'values': [],
202
+ };
203
+
204
+ el.find('.wpuf-options [data-type="option"]').each(function(j, jel){
205
+ var option_value = $(this).siblings('input[data-type="option_value"]').val();
206
+ if ( option_value == '') {
207
+ option_value = $(jel).val();
208
+ }
209
+ elements[i].options.push( $(jel).val() );
210
+ elements[i].values.push( option_value );
211
+ });
212
+ });
213
+
214
+ return elements;
215
+ },
216
+
217
+ fieldDropdown: function() {
218
+
219
+ var fields = this.getFields(),
220
+ dropdown = [];
221
+
222
+ dropdown.push('<option value="">- select -</option>');
223
+
224
+ for( var field in fields ) {
225
+
226
+ var label = fields[field].label;
227
+ if( label != '') {
228
+ dropdown.push('<option value="' + fields[field].name + '">' + label + '</option>');
229
+ }
230
+ }
231
+
232
+ return dropdown;
233
+ },
234
+
235
+ optionDropdown: function(fieldName) {
236
+ var fields = this.getFields(),
237
+ dropdown = '<option value="">- select -</option>',
238
+ options = [],
239
+ values =[];
240
+
241
+ for(field in fields) {
242
+
243
+ if(fields[field].name === fieldName) {
244
+ options = fields[field].options;
245
+ values = fields[field].values;
246
+ }
247
+ }
248
+
249
+ for( var option in options ) {
250
+
251
+ var o = options[option],
252
+ v = values[option];
253
+ dropdown += '<option value="' + v + '">' + o + '</option>';
254
+ }
255
+
256
+ return dropdown;
257
+ },
258
+
259
+ fillFields: function() {
260
+ var options = this.fieldDropdown();
261
+ $('.wpuf-conditional-fields').each(function(i, el) {
262
+ $(el).empty().append(options);
263
+ });
264
+ },
265
+
266
+ showHide: function() {
267
+
268
+ var self = $(this),
269
+ parent = self.closest('.wpuf-form-sub-fields').find('.conditional-rules-wrap'),
270
+ val = self.val();
271
+
272
+ if ( val === 'yes' ) {
273
+ parent.removeClass('wpuf-hide');
274
+ WPUF_Conditional.labelRender();
275
+ WPUF_Conditional.optionRender();
276
+
277
+ } else {
278
+ parent.addClass('wpuf-hide');
279
+ }
280
+ },
281
+
282
+ duplicateRow: function(e) {
283
+ e.preventDefault();
284
+
285
+ var self = $(this),
286
+ tr = self.closest('tr');
287
+
288
+ tr.clone().insertAfter(tr);
289
+ },
290
+
291
+ removeRow: function(e) {
292
+ e.preventDefault();
293
+
294
+ var table = $(this).closest('table'),
295
+ rows = table.find('tr').length;
296
+
297
+ if ( rows > 1 ) {
298
+ $(this).closest('tr').remove();
299
+ }
300
+ },
301
+
302
+ optionChange: function() {
303
+ var self = $(this),
304
+ value = self.val(),
305
+ optionDropdown = self.closest('tr').find('select.wpuf-conditional-fields-option');
306
+
307
+ if ( value !== '' ) {
308
+ options = WPUF_Conditional.optionDropdown(value);
309
+ optionDropdown.empty().append(options);
310
+ } else {
311
+ optionDropdown.html('<option>- Select -</option>');
312
+ }
313
+ }
314
+ };
315
+
316
+ $(function(){
317
+ window.wpuf_conditional = WPUF_Conditional;
318
+ WPUF_Conditional.init();
319
+ });
320
+
321
+ })(jQuery, window);
assets/js/countries.json ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {"name": "Afghanistan", "code": "AF"},
3
+ {"name": "Åland Islands", "code": "AX"},
4
+ {"name": "Albania", "code": "AL"},
5
+ {"name": "Algeria", "code": "DZ"},
6
+ {"name": "American Samoa", "code": "AS"},
7
+ {"name": "AndorrA", "code": "AD"},
8
+ {"name": "Angola", "code": "AO"},
9
+ {"name": "Anguilla", "code": "AI"},
10
+ {"name": "Antarctica", "code": "AQ"},
11
+ {"name": "Antigua and Barbuda", "code": "AG"},
12
+ {"name": "Argentina", "code": "AR"},
13
+ {"name": "Armenia", "code": "AM"},
14
+ {"name": "Aruba", "code": "AW"},
15
+ {"name": "Australia", "code": "AU"},
16
+ {"name": "Austria", "code": "AT"},
17
+ {"name": "Azerbaijan", "code": "AZ"},
18
+ {"name": "Bahamas", "code": "BS"},
19
+ {"name": "Bahrain", "code": "BH"},
20
+ {"name": "Bangladesh", "code": "BD"},
21
+ {"name": "Barbados", "code": "BB"},
22
+ {"name": "Belarus", "code": "BY"},
23
+ {"name": "Belgium", "code": "BE"},
24
+ {"name": "Belize", "code": "BZ"},
25
+ {"name": "Benin", "code": "BJ"},
26
+ {"name": "Bermuda", "code": "BM"},
27
+ {"name": "Bhutan", "code": "BT"},
28
+ {"name": "Bolivia", "code": "BO"},
29
+ {"name": "Bosnia and Herzegovina", "code": "BA"},
30
+ {"name": "Botswana", "code": "BW"},
31
+ {"name": "Bouvet Island", "code": "BV"},
32
+ {"name": "Brazil", "code": "BR"},
33
+ {"name": "British Indian Ocean Territory", "code": "IO"},
34
+ {"name": "Brunei Darussalam", "code": "BN"},
35
+ {"name": "Bulgaria", "code": "BG"},
36
+ {"name": "Burkina Faso", "code": "BF"},
37
+ {"name": "Burundi", "code": "BI"},
38
+ {"name": "Cambodia", "code": "KH"},
39
+ {"name": "Cameroon", "code": "CM"},
40
+ {"name": "Canada", "code": "CA"},
41
+ {"name": "Cape Verde", "code": "CV"},
42
+ {"name": "Cayman Islands", "code": "KY"},
43
+ {"name": "Central African Republic", "code": "CF"},
44
+ {"name": "Chad", "code": "TD"},
45
+ {"name": "Chile", "code": "CL"},
46
+ {"name": "China", "code": "CN"},
47
+ {"name": "Christmas Island", "code": "CX"},
48
+ {"name": "Cocos (Keeling) Islands", "code": "CC"},
49
+ {"name": "Colombia", "code": "CO"},
50
+ {"name": "Comoros", "code": "KM"},
51
+ {"name": "Congo", "code": "CG"},
52
+ {"name": "Congo, The Democratic Republic of the", "code": "CD"},
53
+ {"name": "Cook Islands", "code": "CK"},
54
+ {"name": "Costa Rica", "code": "CR"},
55
+ {"name": "Cote D\"Ivoire", "code": "CI"},
56
+ {"name": "Croatia", "code": "HR"},
57
+ {"name": "Cuba", "code": "CU"},
58
+ {"name": "Cyprus", "code": "CY"},
59
+ {"name": "Czech Republic", "code": "CZ"},
60
+ {"name": "Denmark", "code": "DK"},
61
+ {"name": "Djibouti", "code": "DJ"},
62
+ {"name": "Dominica", "code": "DM"},
63
+ {"name": "Dominican Republic", "code": "DO"},
64
+ {"name": "Ecuador", "code": "EC"},
65
+ {"name": "Egypt", "code": "EG"},
66
+ {"name": "El Salvador", "code": "SV"},
67
+ {"name": "Equatorial Guinea", "code": "GQ"},
68
+ {"name": "Eritrea", "code": "ER"},
69
+ {"name": "Estonia", "code": "EE"},
70
+ {"name": "Ethiopia", "code": "ET"},
71
+ {"name": "Falkland Islands (Malvinas)", "code": "FK"},
72
+ {"name": "Faroe Islands", "code": "FO"},
73
+ {"name": "Fiji", "code": "FJ"},
74
+ {"name": "Finland", "code": "FI"},
75
+ {"name": "France", "code": "FR"},
76
+ {"name": "French Guiana", "code": "GF"},
77
+ {"name": "French Polynesia", "code": "PF"},
78
+ {"name": "French Southern Territories", "code": "TF"},
79
+ {"name": "Gabon", "code": "GA"},
80
+ {"name": "Gambia", "code": "GM"},
81
+ {"name": "Georgia", "code": "GE"},
82
+ {"name": "Germany", "code": "DE"},
83
+ {"name": "Ghana", "code": "GH"},
84
+ {"name": "Gibraltar", "code": "GI"},
85
+ {"name": "Greece", "code": "GR"},
86
+ {"name": "Greenland", "code": "GL"},
87
+ {"name": "Grenada", "code": "GD"},
88
+ {"name": "Guadeloupe", "code": "GP"},
89
+ {"name": "Guam", "code": "GU"},
90
+ {"name": "Guatemala", "code": "GT"},
91
+ {"name": "Guernsey", "code": "GG"},
92
+ {"name": "Guinea", "code": "GN"},
93
+ {"name": "Guinea-Bissau", "code": "GW"},
94
+ {"name": "Guyana", "code": "GY"},
95
+ {"name": "Haiti", "code": "HT"},
96
+ {"name": "Heard Island and Mcdonald Islands", "code": "HM"},
97
+ {"name": "Holy See (Vatican City State)", "code": "VA"},
98
+ {"name": "Honduras", "code": "HN"},
99
+ {"name": "Hong Kong", "code": "HK"},
100
+ {"name": "Hungary", "code": "HU"},
101
+ {"name": "Iceland", "code": "IS"},
102
+ {"name": "India", "code": "IN"},
103
+ {"name": "Indonesia", "code": "ID"},
104
+ {"name": "Iran, Islamic Republic Of", "code": "IR"},
105
+ {"name": "Iraq", "code": "IQ"},
106
+ {"name": "Ireland", "code": "IE"},
107
+ {"name": "Isle of Man", "code": "IM"},
108
+ {"name": "Israel", "code": "IL"},
109
+ {"name": "Italy", "code": "IT"},
110
+ {"name": "Jamaica", "code": "JM"},
111
+ {"name": "Japan", "code": "JP"},
112
+ {"name": "Jersey", "code": "JE"},
113
+ {"name": "Jordan", "code": "JO"},
114
+ {"name": "Kazakhstan", "code": "KZ"},
115
+ {"name": "Kenya", "code": "KE"},
116
+ {"name": "Kiribati", "code": "KI"},
117
+ {"name": "Korea, Democratic People\"S Republic of", "code": "KP"},
118
+ {"name": "Korea, Republic of", "code": "KR"},
119
+ {"name": "Kuwait", "code": "KW"},
120
+ {"name": "Kyrgyzstan", "code": "KG"},
121
+ {"name": "Lao People\"S Democratic Republic", "code": "LA"},
122
+ {"name": "Latvia", "code": "LV"},
123
+ {"name": "Lebanon", "code": "LB"},
124
+ {"name": "Lesotho", "code": "LS"},
125
+ {"name": "Liberia", "code": "LR"},
126
+ {"name": "Libyan Arab Jamahiriya", "code": "LY"},
127
+ {"name": "Liechtenstein", "code": "LI"},
128
+ {"name": "Lithuania", "code": "LT"},
129
+ {"name": "Luxembourg", "code": "LU"},
130
+ {"name": "Macao", "code": "MO"},
131
+ {"name": "Macedonia, The Former Yugoslav Republic of", "code": "MK"},
132
+ {"name": "Madagascar", "code": "MG"},
133
+ {"name": "Malawi", "code": "MW"},
134
+ {"name": "Malaysia", "code": "MY"},
135
+ {"name": "Maldives", "code": "MV"},
136
+ {"name": "Mali", "code": "ML"},
137
+ {"name": "Malta", "code": "MT"},
138
+ {"name": "Marshall Islands", "code": "MH"},
139
+ {"name": "Martinique", "code": "MQ"},
140
+ {"name": "Mauritania", "code": "MR"},
141
+ {"name": "Mauritius", "code": "MU"},
142
+ {"name": "Mayotte", "code": "YT"},
143
+ {"name": "Mexico", "code": "MX"},
144
+ {"name": "Micronesia, Federated States of", "code": "FM"},
145
+ {"name": "Moldova, Republic of", "code": "MD"},
146
+ {"name": "Monaco", "code": "MC"},
147
+ {"name": "Mongolia", "code": "MN"},
148
+ {"name": "Montserrat", "code": "MS"},
149
+ {"name": "Morocco", "code": "MA"},
150
+ {"name": "Mozambique", "code": "MZ"},
151
+ {"name": "Myanmar", "code": "MM"},
152
+ {"name": "Namibia", "code": "NA"},
153
+ {"name": "Nauru", "code": "NR"},
154
+ {"name": "Nepal", "code": "NP"},
155
+ {"name": "Netherlands", "code": "NL"},
156
+ {"name": "Netherlands Antilles", "code": "AN"},
157
+ {"name": "New Caledonia", "code": "NC"},
158
+ {"name": "New Zealand", "code": "NZ"},
159
+ {"name": "Nicaragua", "code": "NI"},
160
+ {"name": "Niger", "code": "NE"},
161
+ {"name": "Nigeria", "code": "NG"},
162
+ {"name": "Niue", "code": "NU"},
163
+ {"name": "Norfolk Island", "code": "NF"},
164
+ {"name": "Northern Mariana Islands", "code": "MP"},
165
+ {"name": "Norway", "code": "NO"},
166
+ {"name": "Oman", "code": "OM"},
167
+ {"name": "Pakistan", "code": "PK"},
168
+ {"name": "Palau", "code": "PW"},
169
+ {"name": "Palestinian Territory, Occupied", "code": "PS"},
170
+ {"name": "Panama", "code": "PA"},
171
+ {"name": "Papua New Guinea", "code": "PG"},
172
+ {"name": "Paraguay", "code": "PY"},
173
+ {"name": "Peru", "code": "PE"},
174
+ {"name": "Philippines", "code": "PH"},
175
+ {"name": "Pitcairn", "code": "PN"},
176
+ {"name": "Poland", "code": "PL"},
177
+ {"name": "Portugal", "code": "PT"},
178
+ {"name": "Puerto Rico", "code": "PR"},
179
+ {"name": "Qatar", "code": "QA"},
180
+ {"name": "Reunion", "code": "RE"},
181
+ {"name": "Romania", "code": "RO"},
182
+ {"name": "Russian Federation", "code": "RU"},
183
+ {"name": "RWANDA", "code": "RW"},
184
+ {"name": "Saint Helena", "code": "SH"},
185
+ {"name": "Saint Kitts and Nevis", "code": "KN"},
186
+ {"name": "Saint Lucia", "code": "LC"},
187
+ {"name": "Saint Pierre and Miquelon", "code": "PM"},
188
+ {"name": "Saint Vincent and the Grenadines", "code": "VC"},
189
+ {"name": "Samoa", "code": "WS"},
190
+ {"name": "San Marino", "code": "SM"},
191
+ {"name": "Sao Tome and Principe", "code": "ST"},
192
+ {"name": "Saudi Arabia", "code": "SA"},
193
+ {"name": "Senegal", "code": "SN"},
194
+ {"name": "Serbia and Montenegro", "code": "CS"},
195
+ {"name": "Seychelles", "code": "SC"},
196
+ {"name": "Sierra Leone", "code": "SL"},
197
+ {"name": "Singapore", "code": "SG"},
198
+ {"name": "Slovakia", "code": "SK"},
199
+ {"name": "Slovenia", "code": "SI"},
200
+ {"name": "Solomon Islands", "code": "SB"},
201
+ {"name": "Somalia", "code": "SO"},
202
+ {"name": "South Africa", "code": "ZA"},
203
+ {"name": "South Georgia and the South Sandwich Islands", "code": "GS"},
204
+ {"name": "Spain", "code": "ES"},
205
+ {"name": "Sri Lanka", "code": "LK"},
206
+ {"name": "Sudan", "code": "SD"},
207
+ {"name": "Suriname", "code": "SR"},
208
+ {"name": "Svalbard and Jan Mayen", "code": "SJ"},
209
+ {"name": "Swaziland", "code": "SZ"},
210
+ {"name": "Sweden", "code": "SE"},
211
+ {"name": "Switzerland", "code": "CH"},
212
+ {"name": "Syrian Arab Republic", "code": "SY"},
213
+ {"name": "Taiwan, Province of China", "code": "TW"},
214
+ {"name": "Tajikistan", "code": "TJ"},
215
+ {"name": "Tanzania, United Republic of", "code": "TZ"},
216
+ {"name": "Thailand", "code": "TH"},
217
+ {"name": "Timor-Leste", "code": "TL"},
218
+ {"name": "Togo", "code": "TG"},
219
+ {"name": "Tokelau", "code": "TK"},
220
+ {"name": "Tonga", "code": "TO"},
221
+ {"name": "Trinidad and Tobago", "code": "TT"},
222
+ {"name": "Tunisia", "code": "TN"},
223
+ {"name": "Turkey", "code": "TR"},
224
+ {"name": "Turkmenistan", "code": "TM"},
225
+ {"name": "Turks and Caicos Islands", "code": "TC"},
226
+ {"name": "Tuvalu", "code": "TV"},
227
+ {"name": "Uganda", "code": "UG"},
228
+ {"name": "Ukraine", "code": "UA"},
229
+ {"name": "United Arab Emirates", "code": "AE"},
230
+ {"name": "United Kingdom", "code": "GB"},
231
+ {"name": "United States", "code": "US"},
232
+ {"name": "United States Minor Outlying Islands", "code": "UM"},
233
+ {"name": "Uruguay", "code": "UY"},
234
+ {"name": "Uzbekistan", "code": "UZ"},
235
+ {"name": "Vanuatu", "code": "VU"},
236
+ {"name": "Venezuela", "code": "VE"},
237
+ {"name": "Viet Nam", "code": "VN"},
238
+ {"name": "Virgin Islands, British", "code": "VG"},
239
+ {"name": "Virgin Islands, U.S.", "code": "VI"},
240
+ {"name": "Wallis and Futuna", "code": "WF"},
241
+ {"name": "Western Sahara", "code": "EH"},
242
+ {"name": "Yemen", "code": "YE"},
243
+ {"name": "Zambia", "code": "ZM"},
244
+ {"name": "Zimbabwe", "code": "ZW"}
245
+ ]
assets/js/frontend-form.js ADDED
@@ -0,0 +1,1016 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function($, window) {
2
+
3
+ $.fn.listautowidth = function() {
4
+ return this.each(function() {
5
+ var w = $(this).width();
6
+ var liw = w / $(this).children('li').length;
7
+ $(this).children('li').each(function(){
8
+ var s = $(this).outerWidth(true)-$(this).width();
9
+ $(this).width(liw-s);
10
+ });
11
+ });
12
+ };
13
+
14
+ window.WP_User_Frontend = {
15
+
16
+ init: function() {
17
+
18
+ //enable multistep
19
+ this.enableMultistep(this);
20
+
21
+ // clone and remove repeated field
22
+ $('.wpuf-form').on('click', 'img.wpuf-clone-field', this.cloneField);
23
+ $('.wpuf-form').on('click', 'img.wpuf-remove-field', this.removeField);
24
+ $('.wpuf-form').on('click', 'a.wpuf-delete-avatar', this.deleteAvatar);
25
+ $('.wpuf-form').on('click', 'a#wpuf-post-draft', this.draftPost);
26
+ $('.wpuf-form').on('click', 'button#wpuf-account-update-profile', this.account_update_profile);
27
+
28
+ $('.wpuf-form-add').on('submit', this.formSubmit);
29
+ $('form#post').on('submit', this.adminPostSubmit);
30
+ // $( '.wpuf-form').on('keyup', '#pass1', this.check_pass_strength );
31
+
32
+ // refresh pluploads on each step change (multistep form)
33
+ $('.wpuf-form').on('step-change-fieldset', function(event, number, step) {
34
+ if ( wpuf_plupload_items.length ) {
35
+ for (var i = wpuf_plupload_items.length - 1; i >= 0; i--) {
36
+ wpuf_plupload_items[i].refresh();
37
+ }
38
+ }
39
+ if ( wpuf_map_items.length ) {
40
+ for (var i = wpuf_map_items.length - 1; i >= 0; i--) {
41
+ google.maps.event.trigger(wpuf_map_items[i].map, 'resize');
42
+ wpuf_map_items[i].map.setCenter(wpuf_map_items[i].center);
43
+ }
44
+ }
45
+ });
46
+
47
+ this.ajaxCategory();
48
+ // image insert
49
+ // this.insertImage();
50
+
51
+ //comfirmation alert for canceling subscription
52
+ $( ':submit[name="wpuf_cancel_subscription"]').click(function(){
53
+ if ( !confirm( 'Are you sure you want to cancel your current subscription ?' ) ) {
54
+ return false;
55
+ }
56
+
57
+ });
58
+ },
59
+
60
+ check_pass_strength : function() {
61
+ var pass1 = $('#pass1').val(), strength;
62
+
63
+ $('#pass-strength-result').show();
64
+
65
+ $('#pass-strength-result').removeClass('short bad good strong');
66
+ if ( ! pass1 ) {
67
+ $('#pass-strength-result').html( '&nbsp;' );
68
+ $('#pass-strength-result').hide();
69
+ return;
70
+ }
71
+
72
+ if ( typeof wp.passwordStrength != 'undefined' ) {
73
+
74
+ strength = wp.passwordStrength.meter( pass1, wp.passwordStrength.userInputBlacklist(), pass1 );
75
+
76
+ switch ( strength ) {
77
+ case 2:
78
+ $('#pass-strength-result').addClass('bad').html( pwsL10n.bad );
79
+ break;
80
+ case 3:
81
+ $('#pass-strength-result').addClass('good').html( pwsL10n.good );
82
+ break;
83
+ case 4:
84
+ $('#pass-strength-result').addClass('strong').html( pwsL10n.strong );
85
+ break;
86
+ case 5:
87
+ $('#pass-strength-result').addClass('short').html( pwsL10n.mismatch );
88
+ break;
89
+ default:
90
+ $('#pass-strength-result').addClass('short').html( pwsL10n['short'] );
91
+ }
92
+
93
+ }
94
+ },
95
+
96
+ enableMultistep: function(o) {
97
+
98
+ var js_obj = this;
99
+ var step_number = 0;
100
+ var progressbar_type = $(':hidden[name="wpuf_multistep_type"]').val();
101
+
102
+ if ( progressbar_type == null ) {
103
+ return;
104
+ }
105
+
106
+ // first fieldset doesn't have prev button,
107
+ // last fieldset doesn't have next button
108
+ $('fieldset.wpuf-multistep-fieldset').find('.wpuf-multistep-prev-btn').first().remove();
109
+ $('fieldset.wpuf-multistep-fieldset').find('.wpuf-multistep-next-btn').last().remove();
110
+
111
+ // at first first fieldset will be shown, and others will be hidden
112
+ $('.wpuf-form fieldset').removeClass('field-active').first().addClass('field-active');
113
+
114
+ if ( progressbar_type == 'progressive' && $('.wpuf-form .wpuf-multistep-fieldset').length != 0 ) {
115
+
116
+ var firstLegend = $('fieldset.wpuf-multistep-fieldset legend').first();
117
+ $('.wpuf-multistep-progressbar').html('<div class="wpuf-progress-percentage"></div>' );
118
+
119
+ var progressbar = $( ".wpuf-multistep-progressbar" ),
120
+ progressLabel = $( ".wpuf-progress-percentage" );
121
+
122
+ $( ".wpuf-multistep-progressbar" ).progressbar({
123
+ change: function() {
124
+ progressLabel.text( progressbar.progressbar( "value" ) + "%" );
125
+ }
126
+ });
127
+
128
+ $('.wpuf-multistep-fieldset legend').hide();
129
+
130
+ } else {
131
+ $('.wpuf-form').each(function() {
132
+ var this_obj = $(this);
133
+ var progressbar = $('.wpuf-multistep-progressbar', this_obj);
134
+ var nav = '';
135
+
136
+ progressbar.addClass('wizard-steps');
137
+ nav += '<ul class="wpuf-step-wizard">';
138
+
139
+ $('.wpuf-multistep-fieldset', this).each(function(){
140
+ nav += '<li>' + $.trim( $('legend', this).text() ) + '</li>';
141
+ $('legend', this).hide();
142
+ });
143
+
144
+ nav += '</ul>';
145
+ progressbar.append( nav );
146
+
147
+ $('.wpuf-step-wizard li', progressbar).first().addClass('active-step');
148
+ $('.wpuf-step-wizard', progressbar).listautowidth();
149
+ });
150
+ }
151
+
152
+ this.change_fieldset(step_number, progressbar_type);
153
+
154
+ $('fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn').click(function(e) {
155
+
156
+ // js_obj.formSubmit();
157
+ if ( $(this).hasClass('wpuf-multistep-next-btn') ) {
158
+ var result = js_obj.formStepCheck( '', $(this).closest('fieldset') );
159
+
160
+ if ( result != false ) {
161
+ o.change_fieldset(++step_number,progressbar_type);
162
+ }
163
+
164
+ } else if ( $(this).hasClass('wpuf-multistep-prev-btn') ) {
165
+ o.change_fieldset( --step_number,progressbar_type );
166
+ }
167
+
168
+ return false;
169
+ });
170
+ },
171
+
172
+ change_fieldset: function(step_number, progressbar_type) {
173
+ var current_step = $('fieldset.wpuf-multistep-fieldset').eq(step_number);
174
+
175
+ $('fieldset.wpuf-multistep-fieldset').removeClass('field-active').eq(step_number).addClass('field-active');
176
+
177
+ $('.wpuf-step-wizard li').each(function(){
178
+ if ( $(this).index() <= step_number ){
179
+ progressbar_type == 'step_by_step'? $(this).addClass('passed-wpuf-ms-bar') : $('.wpuf-ps-bar',this).addClass('passed-wpuf-ms-bar');
180
+ } else {
181
+ progressbar_type == 'step_by_step'? $(this).removeClass('passed-wpuf-ms-bar') : $('.wpuf-ps-bar',this).removeClass('passed-wpuf-ms-bar');
182
+ }
183
+ });
184
+
185
+ $('.wpuf-step-wizard li').removeClass('wpuf-ms-bar-active active-step completed-step');
186
+ $('.passed-wpuf-ms-bar').addClass('completed-step').last().addClass('wpuf-ms-bar-active');
187
+ $('.wpuf-ms-bar-active').addClass('active-step');
188
+
189
+ var legend = $('fieldset.wpuf-multistep-fieldset').eq(step_number).find('legend').text();
190
+ legend = $.trim( legend );
191
+
192
+ if ( progressbar_type == 'progressive' && $('.wpuf-form .wpuf-multistep-fieldset').length != 0 ) {
193
+ var progress_percent = ( step_number + 1 ) * 100 / $('fieldset.wpuf-multistep-fieldset').length ;
194
+ var progress_percent = Number( progress_percent.toFixed(2) );
195
+ $( ".wpuf-multistep-progressbar" ).progressbar({value: progress_percent });
196
+ $( '.wpuf-progress-percentage' ).text( legend + ' (' + progress_percent + '%)');
197
+ }
198
+
199
+ // trigger a change event
200
+ $('.wpuf-form').trigger('step-change-fieldset', [ step_number, current_step ]);
201
+ },
202
+
203
+ ajaxCategory: function () {
204
+
205
+ var el = '.cat-ajax',
206
+ wrap = '.category-wrap';
207
+
208
+ $(wrap).on('change', el, function(){
209
+ currentLevel = parseInt( $(this).parent().attr('level') );
210
+ WP_User_Frontend.getChildCats( $(this), 'lvl', currentLevel+1, wrap, 'category');
211
+ });
212
+ },
213
+
214
+ getChildCats: function (dropdown, result_div, level, wrap_div, taxonomy) {
215
+
216
+ cat = $(dropdown).val();
217
+ results_div = result_div + level;
218
+ taxonomy = typeof taxonomy !== 'undefined' ? taxonomy : 'category';
219
+ field_attr = $(dropdown).siblings('span').data('taxonomy');
220
+
221
+ $.ajax({
222
+ type: 'post',
223
+ url: wpuf_frontend.ajaxurl,
224
+ data: {
225
+ action: 'wpuf_get_child_cat',
226
+ catID: cat,
227
+ nonce: wpuf_frontend.nonce,
228
+ field_attr: field_attr
229
+ },
230
+ beforeSend: function() {
231
+ $(dropdown).parent().parent().next('.loading').addClass('wpuf-loading');
232
+ },
233
+ complete: function() {
234
+ $(dropdown).parent().parent().next('.loading').removeClass('wpuf-loading');
235
+ },
236
+ success: function(html) {
237
+ //console.log( html ); return;
238
+ $(dropdown).parent().nextAll().each(function(){
239
+ $(this).remove();
240
+ });
241
+
242
+ if(html != "") {
243
+ $(dropdown).parent().addClass('hasChild').parent().append('<div id="'+result_div+level+'" level="'+level+'"></div>');
244
+ dropdown.parent().parent().find('#'+results_div).html(html).slideDown('fast');
245
+ }
246
+ }
247
+ });
248
+ },
249
+
250
+ cloneField: function(e) {
251
+ e.preventDefault();
252
+
253
+ var $div = $(this).closest('tr');
254
+ var $clone = $div.clone();
255
+ // console.log($clone);
256
+
257
+ //clear the inputs
258
+ $clone.find('input').val('');
259
+ $clone.find(':checked').attr('checked', '');
260
+ $div.after($clone);
261
+ },
262
+
263
+ removeField: function() {
264
+ //check if it's the only item
265
+ var $parent = $(this).closest('tr');
266
+ var items = $parent.siblings().andSelf().length;
267
+
268
+ if( items > 1 ) {
269
+ $parent.remove();
270
+ }
271
+ },
272
+
273
+ adminPostSubmit: function(e) {
274
+ e.preventDefault();
275
+
276
+ var form = $(this),
277
+ form_data = WP_User_Frontend.validateForm(form);
278
+
279
+ if (form_data) {
280
+ return true;
281
+ }
282
+ },
283
+
284
+ draftPost: function (e) {
285
+ e.preventDefault();
286
+
287
+ var self = $(this),
288
+ form = $(this).closest('form'),
289
+ form_data = form.serialize() + '&action=wpuf_draft_post',
290
+ post_id = form.find('input[type="hidden"][name="post_id"]').val();
291
+
292
+ var rich_texts = [],
293
+ val;
294
+
295
+ // grab rich texts from tinyMCE
296
+ $('.wpuf-rich-validation').each(function (index, item) {
297
+ var item = $(item);
298
+ var editor_id = item.data('id');
299
+ var item_name = item.data('name');
300
+ var val = $.trim( tinyMCE.get(editor_id).getContent() );
301
+
302
+ rich_texts.push(item_name + '=' + encodeURIComponent( val ) );
303
+ });
304
+
305
+ // append them to the form var
306
+ form_data = form_data + '&' + rich_texts.join('&');
307
+
308
+
309
+ self.after(' <span class="wpuf-loading"></span>');
310
+ $.post(wpuf_frontend.ajaxurl, form_data, function(res) {
311
+ // console.log(res, post_id);
312
+ if ( typeof post_id === 'undefined') {
313
+ var html = '<input type="hidden" name="post_id" value="' + res.post_id +'">';
314
+ html += '<input type="hidden" name="post_date" value="' + res.date +'">';
315
+ html += '<input type="hidden" name="post_author" value="' + res.post_author +'">';
316
+ html += '<input type="hidden" name="comment_status" value="' + res.comment_status +'">';
317
+
318
+ form.append( html );
319
+ }
320
+
321
+ self.next('span.wpuf-loading').remove();
322
+
323
+ self.after('<span class="wpuf-draft-saved">&nbsp; Post Saved</span>');
324
+ $('.wpuf-draft-saved').delay(2500).fadeOut('fast', function(){
325
+ $(this).remove();
326
+ });
327
+ })
328
+ },
329
+
330
+ // Frontend account dashboard update profile
331
+ account_update_profile: function (e) {
332
+ e.preventDefault();
333
+ var form = $(this).closest('form');
334
+
335
+ $.post(wpuf_frontend.ajaxurl, form.serialize(), function (res) {
336
+ if (res.success) {
337
+ form.find('.wpuf-error').hide();
338
+ form.find('.wpuf-success').show();
339
+ } else {
340
+ form.find('.wpuf-success').hide();
341
+ form.find('.wpuf-error').show();
342
+ form.find('.wpuf-error').text(res.data);
343
+ }
344
+ });
345
+ },
346
+
347
+ formStepCheck : function(e,fieldset) {
348
+ var form = fieldset,
349
+ submitButton = form.find('input[type=submit]');
350
+ form_data = WP_User_Frontend.validateForm(form);
351
+
352
+ if ( form_data == false ) {
353
+ WP_User_Frontend.addErrorNotice( self, 'bottom' );
354
+ }
355
+ return form_data;
356
+ },
357
+
358
+ formSubmit: function(e) {
359
+ e.preventDefault();
360
+
361
+ var form = $(this),
362
+ submitButton = form.find('input[type=submit]')
363
+ form_data = WP_User_Frontend.validateForm(form);
364
+
365
+ if (form_data) {
366
+
367
+ // send the request
368
+ form.find('li.wpuf-submit').append('<span class="wpuf-loading"></span>');
369
+ submitButton.attr('disabled', 'disabled').addClass('button-primary-disabled');
370
+
371
+ $.post(wpuf_frontend.ajaxurl, form_data, function(res) {
372
+ // var res = $.parseJSON(res);
373
+
374
+ if ( res.success) {
375
+
376
+ // enable external plugins to use events
377
+ $('body').trigger('wpuf:postform:success', res);
378
+
379
+ if ( res.show_message == true) {
380
+ form.before( '<div class="wpuf-success">' + res.message + '</div>');
381
+ form.slideUp( 'fast', function() {
382
+ form.remove();
383
+ });
384
+
385
+ //focus
386
+ $('html, body').animate({
387
+ scrollTop: $('.wpuf-success').offset().top - 100
388
+ }, 'fast');
389
+
390
+ } else {
391
+ window.location = res.redirect_to;
392
+ }
393
+
394
+ } else {
395
+
396
+ if ( typeof res.type !== 'undefined' && res.type === 'login' ) {
397
+
398
+ if ( confirm(res.error) ) {
399
+ window.location = res.redirect_to;
400
+ } else {
401
+ submitButton.removeAttr('disabled');
402
+ submitButton.removeClass('button-primary-disabled');
403
+ form.find('span.wpuf-loading').remove();
404
+ }
405
+
406
+ return;
407
+ } else {
408
+ if ( form.find('.g-recaptcha').length > 0 ) {
409
+ grecaptcha.reset();
410
+ }
411
+
412
+ alert( res.error );
413
+ }
414
+
415
+ submitButton.removeAttr('disabled');
416
+ }
417
+
418
+ submitButton.removeClass('button-primary-disabled');
419
+ form.find('span.wpuf-loading').remove();
420
+ });
421
+ }
422
+ },
423
+
424
+ validateForm: function( self ) {
425
+
426
+ var temp,
427
+ temp_val = '',
428
+ error = false,
429
+ error_items = [];
430
+ error_type = '';
431
+
432
+ // remove all initial errors if any
433
+ WP_User_Frontend.removeErrors(self);
434
+ WP_User_Frontend.removeErrorNotice(self);
435
+
436
+ // ===== Validate: Text and Textarea ========
437
+ var required = self.find('[data-required="yes"]:visible');
438
+
439
+ required.each(function(i, item) {
440
+ // temp_val = $.trim($(item).val());
441
+
442
+ // console.log( $(item).data('type') );
443
+ var data_type = $(item).data('type')
444
+ val = '';
445
+
446
+ switch(data_type) {
447
+ case 'rich':
448
+ var name = $(item).data('id')
449
+ val = $.trim( tinyMCE.get(name).getContent() );
450
+
451
+ if ( val === '') {
452
+ error = true;
453
+
454
+ // make it warn collor
455
+ WP_User_Frontend.markError(item);
456
+ }
457
+ break;
458
+
459
+ case 'textarea':
460
+ case 'text':
461
+
462
+ val = $.trim( $(item).val() );
463
+
464
+ if ( val === '') {
465
+ error = true;
466
+ error_type = 'required';
467
+
468
+ // make it warn collor
469
+ WP_User_Frontend.markError( item, error_type );
470
+ }
471
+ break;
472
+
473
+ case 'password':
474
+ case 'confirm_password':
475
+ var hasRepeat = $(item).data('repeat');
476
+
477
+ val = $.trim( $(item).val() );
478
+
479
+ if ( val === '') {
480
+ error = true;
481
+ error_type = 'required';
482
+
483
+ // make it warn collor
484
+ WP_User_Frontend.markError( item, error_type );
485
+ }
486
+
487
+ if ( hasRepeat ) {
488
+ var repeatItem = $('[data-type="confirm_password"]').eq(0);;
489
+
490
+ if ( repeatItem.val() != val ) {
491
+ error = true;
492
+ error_type = 'mismatch';
493
+
494
+ WP_User_Frontend.markError( repeatItem, error_type );
495
+ }
496
+ }
497
+
498
+ break;
499
+
500
+ case 'select':
501
+ val = $(item).val();
502
+
503
+ // console.log(val);
504
+ if ( !val || val === '-1' ) {
505
+ error = true;
506
+ error_type = 'required';
507
+
508
+ // make it warn collor
509
+ WP_User_Frontend.markError( item, error_type );
510
+ }
511
+ break;
512
+
513
+ case 'multiselect':
514
+ val = $(item).val();
515
+
516
+ if ( val === null || val.length === 0 ) {
517
+ error = true;
518
+ error_type = 'required';
519
+
520
+ // make it warn collor
521
+ WP_User_Frontend.markError( item, error_type );
522
+ }
523
+ break;
524
+
525
+ case 'tax-checkbox':
526
+ var length = $(item).children().find('input:checked').length;
527
+
528
+ if ( !length ) {
529
+ error = true;
530
+ error_type = 'required';
531
+
532
+ // make it warn collor
533
+ WP_User_Frontend.markError( item, error_type );
534
+ }
535
+ break;
536
+
537
+ case 'radio':
538
+ var length = $(item).find('input:checked').length;
539
+
540
+ if ( !length ) {
541
+ error = true;
542
+ error_type = 'required';
543
+
544
+ // make it warn collor
545
+ WP_User_Frontend.markError( item, error_type );
546
+ }
547
+ break;
548
+
549
+ case 'file':
550
+ var length = $(item).find('ul').children().length;
551
+
552
+ if ( !length ) {
553
+ error = true;
554
+ error_type = 'required';
555
+
556
+ // make it warn collor
557
+ WP_User_Frontend.markError( item, error_type );
558
+ }
559
+ break;
560
+
561
+ case 'email':
562
+ var val = $(item).val();
563
+
564
+ if ( val !== '' ) {
565
+ //run the validation
566
+ if( !WP_User_Frontend.isValidEmail( val ) ) {
567
+ error = true;
568
+ error_type = 'validation';
569
+
570
+ WP_User_Frontend.markError( item, error_type );
571
+ }
572
+ } else if( val === '' ) {
573
+ error = true;
574
+ error_type = 'required';
575
+
576
+ WP_User_Frontend.markError( item, error_type );
577
+ }
578
+ break;
579
+
580
+
581
+ case 'url':
582
+ var val = $(item).val();
583
+
584
+ if ( val !== '' ) {
585
+ //run the validation
586
+ if( !WP_User_Frontend.isValidURL( val ) ) {
587
+ error = true;
588
+ error_type = 'validation';
589
+
590
+ WP_User_Frontend.markError( item, error_type );
591
+ }
592
+ }
593
+ break;
594
+
595
+ };
596
+
597
+ });
598
+
599
+ //check Google Map is required
600
+ var map_required = self.find('[data-required="yes"][name="google_map"]');
601
+ if ( map_required ) {
602
+ var val = $(map_required).val();
603
+ if ( val == ',' ) {
604
+ error = true;
605
+ error_type = 'required';
606
+
607
+ WP_User_Frontend.markError( map_required, error_type );
608
+ }
609
+ }
610
+
611
+ // if already some error found, bail out
612
+ if (error) {
613
+ // add error notice
614
+ WP_User_Frontend.addErrorNotice(self,'end');
615
+
616
+ return false;
617
+ }
618
+
619
+ var form_data = self.serialize(),
620
+ rich_texts = [];
621
+
622
+ // grab rich texts from tinyMCE
623
+ $('.wpuf-rich-validation', self).each(function (index, item) {
624
+ var item = $(item);
625
+ var editor_id = item.data('id');
626
+ var item_name = item.data('name');
627
+ var val = $.trim( tinyMCE.get(editor_id).getContent() );
628
+
629
+ rich_texts.push(item_name + '=' + encodeURIComponent( val ) );
630
+ });
631
+
632
+ // append them to the form var
633
+ form_data = form_data + '&' + rich_texts.join('&');
634
+ return form_data;
635
+ },
636
+
637
+ /**
638
+ *
639
+ * @param form
640
+ * @param position (value = bottom or end) end if form is onepare, bottom, if form is multistep
641
+ */
642
+ addErrorNotice: function( form, position ) {
643
+ if( position == 'bottom' ) {
644
+ $('.wpuf-multistep-fieldset:visible').append('<div class="wpuf-errors">' + wpuf_frontend.error_message + '</div>');
645
+ } else {
646
+ $(form).find('li.wpuf-submit').append('<div class="wpuf-errors">' + wpuf_frontend.error_message + '</div>');
647
+ }
648
+
649
+ },
650
+
651
+ removeErrorNotice: function(form) {
652
+ $(form).find('.wpuf-errors').remove();
653
+ },
654
+
655
+ markError: function(item, error_type) {
656
+
657
+ var error_string = '';
658
+ $(item).closest('li').addClass('has-error');
659
+
660
+ if ( error_type ) {
661
+ error_string = $(item).closest('li').data('label');
662
+ switch ( error_type ) {
663
+ case 'required' :
664
+ error_string = error_string + ' ' + error_str_obj[error_type];
665
+ break;
666
+ case 'mismatch' :
667
+ error_string = error_string + ' ' +error_str_obj[error_type];
668
+ break;
669
+ case 'validation' :
670
+ error_string = error_string + ' ' + error_str_obj[error_type];
671
+ break
672
+ }
673
+ $(item).siblings('.wpuf-error-msg').remove();
674
+ $(item).after('<div class="wpuf-error-msg">'+ error_string +'</div>')
675
+ }
676
+
677
+ $(item).focus();
678
+ },
679
+
680
+ removeErrors: function(item) {
681
+ $(item).find('.has-error').removeClass('has-error');
682
+ $('.wpuf-error-msg').remove();
683
+ },
684
+
685
+ isValidEmail: function( email ) {
686
+ var pattern = 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);
687
+ return pattern.test(email);
688
+ },
689
+
690
+ isValidURL: function(url) {
691
+ var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.|http:\/\/|https:\/\/){1}([0-9A-Za-z]+\.)");
692
+ return urlregex.test(url);
693
+ },
694
+
695
+ insertImage: function(button, form_id) {
696
+
697
+ var container = 'wpuf-insert-image-container';
698
+
699
+ if ( ! $( '#' + button ).length ) {
700
+ return;
701
+ };
702
+
703
+ var imageUploader = new plupload.Uploader({
704
+ runtimes: 'html5,html4',
705
+ browse_button: button,
706
+ container: container,
707
+ multipart: true,
708
+ multipart_params: {
709
+ action: 'wpuf_insert_image',
710
+ form_id: $( '#' + button ).data('form_id')
711
+ },
712
+ multiple_queues: false,
713
+ multi_selection: false,
714
+ urlstream_upload: true,
715
+ file_data_name: 'wpuf_file',
716
+ max_file_size: '2mb',
717
+ url: wpuf_frontend_upload.plupload.url,
718
+ flash_swf_url: wpuf_frontend_upload.flash_swf_url,
719
+ filters: [{
720
+ title: 'Allowed Files',
721
+ extensions: 'jpg,jpeg,gif,png,bmp'
722
+ }]
723
+ });
724
+
725
+ imageUploader.bind('Init', function(up, params) {
726
+ // console.log("Current runtime environment: " + params.runtime);
727
+ });
728
+
729
+ imageUploader.bind('FilesAdded', function(up, files) {
730
+ var $container = $('#' + container);
731
+
732
+ $.each(files, function(i, file) {
733
+ $container.append(
734
+ '<div class="upload-item" id="' + file.id + '"><div class="progress progress-striped active"><div class="bar"></div></div></div>');
735
+ });
736
+
737
+ up.refresh();
738
+ up.start();
739
+ });
740
+
741
+ imageUploader.bind('QueueChanged', function (uploader) {
742
+ imageUploader.start();
743
+ });
744
+
745
+ imageUploader.bind('UploadProgress', function(up, file) {
746
+ var item = $('#' + file.id);
747
+
748
+ $('.bar', item).css({ width: file.percent + '%' });
749
+ $('.percent', item).html( file.percent + '%' );
750
+ });
751
+
752
+ imageUploader.bind('Error', function(up, error) {
753
+ alert('Error #' + error.code + ': ' + error.message);
754
+ });
755
+
756
+ imageUploader.bind('FileUploaded', function(up, file, response) {
757
+
758
+ $('#' + file.id).remove();
759
+
760
+ if ( response.response !== 'error' ) {
761
+ var success = false;
762
+
763
+ if ( typeof tinyMCE !== 'undefined' ) {
764
+
765
+ if ( typeof tinyMCE.execInstanceCommand !== 'function' ) {
766
+ // tinyMCE 4.x
767
+ var mce = tinyMCE.get( 'post_content_' + form_id );
768
+
769
+ if ( mce !== null ) {
770
+ mce.insertContent(response.response);
771
+ }
772
+ } else {
773
+ // tinyMCE 3.x
774
+ tinyMCE.execInstanceCommand( 'post_content_' + form_id, 'mceInsertContent', false, response.response);
775
+ }
776
+ }
777
+
778
+ // insert failed to the edit, perhaps insert into textarea
779
+ var post_content = $('#post_content_' + form_id);
780
+ post_content.val( post_content.val() + response.response );
781
+
782
+ } else {
783
+ alert('Something went wrong');
784
+ }
785
+ });
786
+
787
+ imageUploader.init();
788
+ },
789
+
790
+ deleteAvatar: function(e) {
791
+ e.preventDefault();
792
+
793
+ if ( confirm( $(this).data('confirm') ) ) {
794
+ $.post(wpuf_frontend.ajaxurl, {action: 'wpuf_delete_avatar', _wpnonce: wpuf_frontend.nonce}, function() {
795
+ $(e.target).parent().remove();
796
+ });
797
+ }
798
+ },
799
+
800
+ editorLimit: {
801
+
802
+ bind: function(limit, field, type) {
803
+ if ( type === 'no' ) {
804
+ // it's a textarea
805
+ $('textarea#' + field).keydown( function(event) {
806
+ WP_User_Frontend.editorLimit.textLimit.call(this, event, limit);
807
+ });
808
+
809
+ $('input#' + field).keydown( function(event) {
810
+ WP_User_Frontend.editorLimit.textLimit.call(this, event, limit);
811
+ });
812
+
813
+ $('textarea#' + field).on('paste', function(event) {
814
+ var self = $(this);
815
+
816
+ setTimeout(function() {
817
+ WP_User_Frontend.editorLimit.textLimit.call(self, event, limit);
818
+ }, 100);
819
+ });
820
+
821
+ $('input#' + field).on('paste', function(event) {
822
+ var self = $(this);
823
+
824
+ setTimeout(function() {
825
+ WP_User_Frontend.editorLimit.textLimit.call(self, event, limit);
826
+ }, 100);
827
+ });
828
+
829
+ } else {
830
+ // it's a rich textarea
831
+ setTimeout(function () {
832
+ tinyMCE.get(field).onKeyDown.add( function(ed, event) {
833
+ WP_User_Frontend.editorLimit.tinymce.onKeyDown(ed, event, limit);
834
+ } );
835
+
836
+ tinyMCE.get(field).onPaste.add(function(ed, event) {
837
+ setTimeout(function() {
838
+ WP_User_Frontend.editorLimit.tinymce.onPaste(ed, event, limit);
839
+ }, 100);
840
+ });
841
+
842
+ }, 1000);
843
+ }
844
+ },
845
+
846
+ tinymce: {
847
+
848
+ getStats: function(ed) {
849
+ var body = ed.getBody(), text = tinymce.trim(body.innerText || body.textContent);
850
+
851
+ return {
852
+ chars: text.length,
853
+ words: text.split(/[\w\u2019\'-]+/).length
854
+ };
855
+ },
856
+
857
+ onKeyDown: function(ed, event, limit) {
858
+ var numWords = WP_User_Frontend.editorLimit.tinymce.getStats(ed).words - 1;
859
+
860
+ limit ? $('.mce-path-item.mce-last', ed.container).html('Word Limit : '+ numWords +'/'+limit):'';
861
+
862
+ if ( limit && numWords > limit ) {
863
+ WP_User_Frontend.editorLimit.blockTyping(event);
864
+ jQuery('.mce-path-item.mce-last', ed.container).html( wpuf_frontend.word_limit );
865
+ }
866
+ },
867
+
868
+ onPaste: function(ed, event, limit) {
869
+ var editorContent = ed.getContent().split(' ').slice(0, limit).join(' ');
870
+
871
+ // Let TinyMCE do the heavy lifting for inserting that content into the editor.
872
+ // ed.insertContent(content); //ed.execCommand('mceInsertContent', false, content);
873
+ ed.setContent(editorContent);
874
+
875
+ WP_User_Frontend.editorLimit.make_media_embed_code(editorContent, ed);
876
+ }
877
+ },
878
+
879
+ textLimit: function(event, limit) {
880
+ var self = $(this),
881
+ content = self.val().split(' ');
882
+
883
+ if ( limit && content.length > limit ) {
884
+ self.closest('.wpuf-fields').find('span.wpuf-wordlimit-message').html( wpuf_frontend.word_limit );
885
+ WP_User_Frontend.editorLimit.blockTyping(event);
886
+ } else {
887
+ self.closest('.wpuf-fields').find('span.wpuf-wordlimit-message').html('');
888
+ }
889
+
890
+ // handle the paste event
891
+ if ( event.type === 'paste' ) {
892
+ self.val( content.slice(0, limit).join( ' ' ) );
893
+ }
894
+ },
895
+
896
+ blockTyping: function(event) {
897
+ // Allow: backspace, delete, tab, escape, minus enter and . backspace = 8,delete=46,tab=9,enter=13,.=190,escape=27, minus = 189
898
+ if ($.inArray(event.keyCode, [46, 8, 9, 27, 13, 110, 190, 189]) !== -1 ||
899
+ // Allow: Ctrl+A
900
+ (event.keyCode == 65 && event.ctrlKey === true) ||
901
+ // Allow: home, end, left, right, down, up
902
+ (event.keyCode >= 35 && event.keyCode <= 40)) {
903
+ // let it happen, don't do anything
904
+ return;
905
+ }
906
+
907
+ event.preventDefault();
908
+ event.stopPropagation();
909
+ },
910
+
911
+ make_media_embed_code: function(content, editor){
912
+ $.post( ajaxurl, {
913
+ action:'make_media_embed_code',
914
+ content: content
915
+ },
916
+ function(data){
917
+ // console.log(data);
918
+ editor.setContent(editor.getContent() + editor.setContent(data));
919
+ }
920
+ )
921
+ }
922
+ }
923
+ };
924
+
925
+ $(function() {
926
+ WP_User_Frontend.init();
927
+
928
+ // payment gateway selection
929
+ $('ul.wpuf-payment-gateways').on('click', 'input[type=radio]', function(e) {
930
+ $('.wpuf-payment-instruction').slideUp(250);
931
+
932
+ $(this).parents('li').find('.wpuf-payment-instruction').slideDown(250);
933
+ });
934
+
935
+ if( !$('ul.wpuf-payment-gateways li').find('input[type=radio]').is(':checked') ) {
936
+ $('ul.wpuf-payment-gateways li').first().find('input[type=radio]').click()
937
+ } else {
938
+ var el = $('ul.wpuf-payment-gateways li').find('input[type=radio]:checked');
939
+ el.parents('li').find('.wpuf-payment-instruction').slideDown(250);
940
+ }
941
+ });
942
+
943
+ $(function() {
944
+ $('input[name="first_name"], input[name="last_name"]').on('change keyup', function() {
945
+ var myVal, newVal = $.makeArray($('input[name="first_name"], input[name="last_name"]').map(function(){
946
+ if (myVal = $(this).val()) {
947
+ return(myVal);
948
+ }
949
+ })).join(' ');
950
+ $('input[name="display_name"]').val(newVal);
951
+ });
952
+ });
953
+
954
+ // script for Dokan vendor registration template
955
+ $(function($) {
956
+
957
+ $('.wpuf-form-add input[name="dokan_store_name"]').on('focusout', function() {
958
+ var value = $(this).val().toLowerCase().replace(/-+/g, '').replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
959
+ $('input[name="shopurl"]').val(value);
960
+ $('#url-alart').text( value );
961
+ $('input[name="shopurl"]').focus();
962
+ });
963
+
964
+ $('.wpuf-form-add input[name="shopurl"]').keydown(function(e) {
965
+ var text = $(this).val();
966
+
967
+ // Allow: backspace, delete, tab, escape, enter and .
968
+ if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 109, 110, 173, 189, 190]) !== -1 ||
969
+ // Allow: Ctrl+A
970
+ (e.keyCode == 65 && e.ctrlKey === true) ||
971
+ // Allow: home, end, left, right
972
+ (e.keyCode >= 35 && e.keyCode <= 39)) {
973
+ // let it happen, don't do anything
974
+ return;
975
+ }
976
+
977
+ if ((e.shiftKey || (e.keyCode < 65 || e.keyCode > 90) && (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) ) {
978
+ e.preventDefault();
979
+ }
980
+ });
981
+
982
+ $('.wpuf-form-add input[name="shopurl"]').keyup(function(e) {
983
+ $('#url-alart').text( $(this).val() );
984
+ });
985
+
986
+ $('.wpuf-form-add input[name="shopurl"]').on('focusout', function() {
987
+ var self = $(this),
988
+ data = {
989
+ action : 'shop_url',
990
+ url_slug : self.val(),
991
+ _nonce : dokan.nonce,
992
+ };
993
+
994
+ if ( self.val() === '' ) {
995
+ return;
996
+ }
997
+
998
+ $.post( dokan.ajaxurl, data, function(resp) {
999
+
1000
+ if ( resp == 0){
1001
+ $('#url-alart').removeClass('text-success').addClass('text-danger');
1002
+ $('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan.seller.notAvailable);
1003
+ } else {
1004
+ $('#url-alart').removeClass('text-danger').addClass('text-success');
1005
+ $('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan.seller.available);
1006
+ }
1007
+
1008
+ } );
1009
+
1010
+ });
1011
+
1012
+ // Set name attribute for google map search field
1013
+ $(".wpuf-form-add #wpuf-map-add-location").attr("name", "find_address");
1014
+ });
1015
+
1016
+ })(jQuery, window);
assets/js/frontend-form.min.js ADDED
@@ -0,0 +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),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_cancel_subscription"]').click(function(){if(!confirm("Are you sure you want to cancel your current subscription ?"))return!1})},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("&nbsp;"),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(b){var c=this,d=0,e=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=e){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"==e&&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 f=a(".wpuf-multistep-progressbar"),g=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){g.text(f.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(d,e),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(f){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=c.formStepCheck("",a(this).closest("fieldset"))&&b.change_fieldset(++d,e)}else a(this).hasClass("wpuf-multistep-prev-btn")&&b.change_fieldset(--d,e);return!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(){var b=".category-wrap";a(b).on("change",".cat-ajax",function(){currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),"lvl",currentLevel+1,b,"category")})},getChildCats:function(b,c,d,e,f){cat=a(b).val(),results_div=c+d,f=void 0!==f?f:"category",field_attr=a(b).siblings("span").data("taxonomy"),a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:cat,nonce:wpuf_frontend.nonce,field_attr:field_attr},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="'+c+d+'" level="'+d+'"></div>'),b.parent().parent().find("#"+results_div).html(e).slideDown("fast"))}})},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().andSelf().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">&nbsp; Post Saved</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;c.find("input[type=submit]");return form_data=WP_User_Frontend.validateForm(c),0==form_data&&WP_User_Frontend.addErrorNotice(self,"bottom"),form_data},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(),alert(c.error),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},validateForm:function(b){var c=!1;error_type="",WP_User_Frontend.removeErrors(b),WP_User_Frontend.removeErrorNotice(b),b.find('[data-required="yes"]:visible').each(function(b,d){var e=a(d).data("type");switch(j="",e){case"rich":var f=a(d).data("id");""===(j=a.trim(tinyMCE.get(f).getContent()))&&(c=!0,WP_User_Frontend.markError(d));break;case"textarea":case"text":""===(j=a.trim(a(d).val()))&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"password":case"confirm_password":var g=a(d).data("repeat");if(j=a.trim(a(d).val()),""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type)),g){var h=a('[data-type="confirm_password"]').eq(0);h.val()!=j&&(c=!0,error_type="mismatch",WP_User_Frontend.markError(h,error_type))}break;case"select":(j=a(d).val())&&"-1"!==j||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"multiselect":null!==(j=a(d).val())&&0!==j.length||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"tax-checkbox":var i=a(d).children().find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"radio":var i=a(d).find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"file":var i=a(d).find("ul").children().length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"email":var j=a(d).val();""!==j?WP_User_Frontend.isValidEmail(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)):""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"url":var j=a(d).val();""!==j&&(WP_User_Frontend.isValidURL(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)))}});var d=b.find('[data-required="yes"][name="google_map"]');if(d){","==a(d).val()&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type))}if(c)return WP_User_Frontend.addErrorNotice(b,"end"),!1;var e=b.serialize(),f=[];return a(".wpuf-rich-validation",b).each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),g=a.trim(tinyMCE.get(d).getContent());f.push(e+"="+encodeURIComponent(g))}),e=e+"&"+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){var d="";if(a(b).closest("li").addClass("has-error"),c){switch(d=a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":d=d+" "+error_str_obj[c]}a(b).siblings(".wpuf-error-msg").remove(),a(b).after('<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.|ftp://www.|www.|http://|https://){1}([0-9A-Za-z]+.)").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:"2mb",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()})},editorLimit:{bind:function(b,c,d){"no"===d?(a("textarea#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("input#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyDown.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyDown(a,c,b)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b)},100)})},1e3)},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){var e=WP_User_Frontend.editorLimit.tinymce.getStats(b).words-1;d&&a(".mce-path-item.mce-last",b.container).html("Word Limit : "+e+"/"+d),d&&e>d&&(WP_User_Frontend.editorLimit.blockTyping(c),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend.word_limit))},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){var d=a(this),e=d.val().split(" ");c&&e.length>c?(d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(wpuf_frontend.word_limit),WP_User_Frontend.editorLimit.blockTyping(b)):d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(""),"paste"===b.type&&d.val(e.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))})}}},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/jquery-blockui/jquery.blockUI.js ADDED
@@ -0,0 +1,619 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery blockUI plugin
3
+ * Version 2.70.0-2014.11.23
4
+ * Requires jQuery v1.7 or later
5
+ *
6
+ * Examples at: http://malsup.com/jquery/block/
7
+ * Copyright (c) 2007-2013 M. Alsup
8
+ * Dual licensed under the MIT and GPL licenses:
9
+ * http://www.opensource.org/licenses/mit-license.php
10
+ * http://www.gnu.org/licenses/gpl.html
11
+ *
12
+ * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
+ */
14
+ ;(function() {
15
+ /*jshint eqeqeq:false curly:false latedef:false */
16
+ "use strict";
17
+
18
+ function setup($) {
19
+ $.fn._fadeIn = $.fn.fadeIn;
20
+
21
+ var noOp = $.noop || function() {};
22
+
23
+ // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
24
+ // confusing userAgent strings on Vista)
25
+ var msie = /MSIE/.test(navigator.userAgent);
26
+ var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
27
+ var mode = document.documentMode || 0;
28
+ var setExpr = $.isFunction( document.createElement('div').style.setExpression );
29
+
30
+ // global $ methods for blocking/unblocking the entire page
31
+ $.blockUI = function(opts) { install(window, opts); };
32
+ $.unblockUI = function(opts) { remove(window, opts); };
33
+
34
+ // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
35
+ $.growlUI = function(title, message, timeout, onClose) {
36
+ var $m = $('<div class="growlUI"></div>');
37
+ if (title) $m.append('<h1>'+title+'</h1>');
38
+ if (message) $m.append('<h2>'+message+'</h2>');
39
+ if (timeout === undefined) timeout = 3000;
40
+
41
+ // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
42
+ var callBlock = function(opts) {
43
+ opts = opts || {};
44
+
45
+ $.blockUI({
46
+ message: $m,
47
+ fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
48
+ fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
49
+ timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
50
+ centerY: false,
51
+ showOverlay: false,
52
+ onUnblock: onClose,
53
+ css: $.blockUI.defaults.growlCSS
54
+ });
55
+ };
56
+
57
+ callBlock();
58
+ var nonmousedOpacity = $m.css('opacity');
59
+ $m.mouseover(function() {
60
+ callBlock({
61
+ fadeIn: 0,
62
+ timeout: 30000
63
+ });
64
+
65
+ var displayBlock = $('.blockMsg');
66
+ displayBlock.stop(); // cancel fadeout if it has started
67
+ displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
68
+ }).mouseout(function() {
69
+ $('.blockMsg').fadeOut(1000);
70
+ });
71
+ // End konapun additions
72
+ };
73
+
74
+ // plugin method for blocking element content
75
+ $.fn.block = function(opts) {
76
+ if ( this[0] === window ) {
77
+ $.blockUI( opts );
78
+ return this;
79
+ }
80
+ var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
81
+ this.each(function() {
82
+ var $el = $(this);
83
+ if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
84
+ return;
85
+ $el.unblock({ fadeOut: 0 });
86
+ });
87
+
88
+ return this.each(function() {
89
+ if ($.css(this,'position') == 'static') {
90
+ this.style.position = 'relative';
91
+ $(this).data('blockUI.static', true);
92
+ }
93
+ this.style.zoom = 1; // force 'hasLayout' in ie
94
+ install(this, opts);
95
+ });
96
+ };
97
+
98
+ // plugin method for unblocking element content
99
+ $.fn.unblock = function(opts) {
100
+ if ( this[0] === window ) {
101
+ $.unblockUI( opts );
102
+ return this;
103
+ }
104
+ return this.each(function() {
105
+ remove(this, opts);
106
+ });
107
+ };
108
+
109
+ $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!
110
+
111
+ // override these in your code to change the default behavior and style
112
+ $.blockUI.defaults = {
113
+ // message displayed when blocking (use null for no message)
114
+ message: '<h1>Please wait...</h1>',
115
+
116
+ title: null, // title string; only used when theme == true
117
+ draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
118
+
119
+ theme: false, // set to true to use with jQuery UI themes
120
+
121
+ // styles for the message when blocking; if you wish to disable
122
+ // these and use an external stylesheet then do this in your code:
123
+ // $.blockUI.defaults.css = {};
124
+ css: {
125
+ padding: 0,
126
+ margin: 0,
127
+ width: '30%',
128
+ top: '40%',
129
+ left: '35%',
130
+ textAlign: 'center',
131
+ color: '#000',
132
+ border: '3px solid #aaa',
133
+ backgroundColor:'#fff',
134
+ cursor: 'wait'
135
+ },
136
+
137
+ // minimal style set used when themes are used
138
+ themedCSS: {
139
+ width: '30%',
140
+ top: '40%',
141
+ left: '35%'
142
+ },
143
+
144
+ // styles for the overlay
145
+ overlayCSS: {
146
+ backgroundColor: '#000',
147
+ opacity: 0.6,
148
+ cursor: 'wait'
149
+ },
150
+
151
+ // style to replace wait cursor before unblocking to correct issue
152
+ // of lingering wait cursor
153
+ cursorReset: 'default',
154
+
155
+ // styles applied when using $.growlUI
156
+ growlCSS: {
157
+ width: '350px',
158
+ top: '10px',
159
+ left: '',
160
+ right: '10px',
161
+ border: 'none',
162
+ padding: '5px',
163
+ opacity: 0.6,
164
+ cursor: 'default',
165
+ color: '#fff',
166
+ backgroundColor: '#000',
167
+ '-webkit-border-radius':'10px',
168
+ '-moz-border-radius': '10px',
169
+ 'border-radius': '10px'
170
+ },
171
+
172
+ // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
173
+ // (hat tip to Jorge H. N. de Vasconcelos)
174
+ /*jshint scripturl:true */
175
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
176
+
177
+ // force usage of iframe in non-IE browsers (handy for blocking applets)
178
+ forceIframe: false,
179
+
180
+ // z-index for the blocking overlay
181
+ baseZ: 1000,
182
+
183
+ // set these to true to have the message automatically centered
184
+ centerX: true, // <-- only effects element blocking (page block controlled via css above)
185
+ centerY: true,
186
+
187
+ // allow body element to be stetched in ie6; this makes blocking look better
188
+ // on "short" pages. disable if you wish to prevent changes to the body height
189
+ allowBodyStretch: true,
190
+
191
+ // enable if you want key and mouse events to be disabled for content that is blocked
192
+ bindEvents: true,
193
+
194
+ // be default blockUI will supress tab navigation from leaving blocking content
195
+ // (if bindEvents is true)
196
+ constrainTabKey: true,
197
+
198
+ // fadeIn time in millis; set to 0 to disable fadeIn on block
199
+ fadeIn: 200,
200
+
201
+ // fadeOut time in millis; set to 0 to disable fadeOut on unblock
202
+ fadeOut: 400,
203
+
204
+ // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
205
+ timeout: 0,
206
+
207
+ // disable if you don't want to show the overlay
208
+ showOverlay: true,
209
+
210
+ // if true, focus will be placed in the first available input field when
211
+ // page blocking
212
+ focusInput: true,
213
+
214
+ // elements that can receive focus
215
+ focusableElements: ':input:enabled:visible',
216
+
217
+ // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
218
+ // no longer needed in 2012
219
+ // applyPlatformOpacityRules: true,
220
+
221
+ // callback method invoked when fadeIn has completed and blocking message is visible
222
+ onBlock: null,
223
+
224
+ // callback method invoked when unblocking has completed; the callback is
225
+ // passed the element that has been unblocked (which is the window object for page
226
+ // blocks) and the options that were passed to the unblock call:
227
+ // onUnblock(element, options)
228
+ onUnblock: null,
229
+
230
+ // callback method invoked when the overlay area is clicked.
231
+ // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
232
+ onOverlayClick: null,
233
+
234
+ // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
235
+ quirksmodeOffsetHack: 4,
236
+
237
+ // class name of the message block
238
+ blockMsgClass: 'blockMsg',
239
+
240
+ // if it is already blocked, then ignore it (don't unblock and reblock)
241
+ ignoreIfBlocked: false
242
+ };
243
+
244
+ // private data and functions follow...
245
+
246
+ var pageBlock = null;
247
+ var pageBlockEls = [];
248
+
249
+ function install(el, opts) {
250
+ var css, themedCSS;
251
+ var full = (el == window);
252
+ var msg = (opts && opts.message !== undefined ? opts.message : undefined);
253
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
254
+
255
+ if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
256
+ return;
257
+
258
+ opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
259
+ css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
260
+ if (opts.onOverlayClick)
261
+ opts.overlayCSS.cursor = 'pointer';
262
+
263
+ themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
264
+ msg = msg === undefined ? opts.message : msg;
265
+
266
+ // remove the current block (if there is one)
267
+ if (full && pageBlock)
268
+ remove(window, {fadeOut:0});
269
+
270
+ // if an existing element is being used as the blocking content then we capture
271
+ // its current place in the DOM (and current display style) so we can restore
272
+ // it when we unblock
273
+ if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
274
+ var node = msg.jquery ? msg[0] : msg;
275
+ var data = {};
276
+ $(el).data('blockUI.history', data);
277
+ data.el = node;
278
+ data.parent = node.parentNode;
279
+ data.display = node.style.display;
280
+ data.position = node.style.position;
281
+ if (data.parent)
282
+ data.parent.removeChild(node);
283
+ }
284
+
285
+ $(el).data('blockUI.onUnblock', opts.onUnblock);
286
+ var z = opts.baseZ;
287
+
288
+ // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
289
+ // layer1 is the iframe layer which is used to supress bleed through of underlying content
290
+ // layer2 is the overlay layer which has opacity and a wait cursor (by default)
291
+ // layer3 is the message content that is displayed while blocking
292
+ var lyr1, lyr2, lyr3, s;
293
+ if (msie || opts.forceIframe)
294
+ lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
295
+ else
296
+ lyr1 = $('<div class="blockUI" style="display:none"></div>');
297
+
298
+ if (opts.theme)
299
+ lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
300
+ else
301
+ lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
302
+
303
+ if (opts.theme && full) {
304
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
305
+ if ( opts.title ) {
306
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
307
+ }
308
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
309
+ s += '</div>';
310
+ }
311
+ else if (opts.theme) {
312
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
313
+ if ( opts.title ) {
314
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
315
+ }
316
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
317
+ s += '</div>';
318
+ }
319
+ else if (full) {
320
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
321
+ }
322
+ else {
323
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
324
+ }
325
+ lyr3 = $(s);
326
+
327
+ // if we have a message, style it
328
+ if (msg) {
329
+ if (opts.theme) {
330
+ lyr3.css(themedCSS);
331
+ lyr3.addClass('ui-widget-content');
332
+ }
333
+ else
334
+ lyr3.css(css);
335
+ }
336
+
337
+ // style the overlay
338
+ if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
339
+ lyr2.css(opts.overlayCSS);
340
+ lyr2.css('position', full ? 'fixed' : 'absolute');
341
+
342
+ // make iframe layer transparent in IE
343
+ if (msie || opts.forceIframe)
344
+ lyr1.css('opacity',0.0);
345
+
346
+ //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
347
+ var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
348
+ $.each(layers, function() {
349
+ this.appendTo($par);
350
+ });
351
+
352
+ if (opts.theme && opts.draggable && $.fn.draggable) {
353
+ lyr3.draggable({
354
+ handle: '.ui-dialog-titlebar',
355
+ cancel: 'li'
356
+ });
357
+ }
358
+
359
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
360
+ var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
361
+ if (ie6 || expr) {
362
+ // give body 100% height
363
+ if (full && opts.allowBodyStretch && $.support.boxModel)
364
+ $('html,body').css('height','100%');
365
+
366
+ // fix ie6 issue when blocked element has a border width
367
+ if ((ie6 || !$.support.boxModel) && !full) {
368
+ var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
369
+ var fixT = t ? '(0 - '+t+')' : 0;
370
+ var fixL = l ? '(0 - '+l+')' : 0;
371
+ }
372
+
373
+ // simulate fixed position
374
+ $.each(layers, function(i,o) {
375
+ var s = o[0].style;
376
+ s.position = 'absolute';
377
+ if (i < 2) {
378
+ if (full)
379
+ s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
380
+ else
381
+ s.setExpression('height','this.parentNode.offsetHeight + "px"');
382
+ if (full)
383
+ s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
384
+ else
385
+ s.setExpression('width','this.parentNode.offsetWidth + "px"');
386
+ if (fixL) s.setExpression('left', fixL);
387
+ if (fixT) s.setExpression('top', fixT);
388
+ }
389
+ else if (opts.centerY) {
390
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
391
+ s.marginTop = 0;
392
+ }
393
+ else if (!opts.centerY && full) {
394
+ var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
395
+ var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
396
+ s.setExpression('top',expression);
397
+ }
398
+ });
399
+ }
400
+
401
+ // show the message
402
+ if (msg) {
403
+ if (opts.theme)
404
+ lyr3.find('.ui-widget-content').append(msg);
405
+ else
406
+ lyr3.append(msg);
407
+ if (msg.jquery || msg.nodeType)
408
+ $(msg).show();
409
+ }
410
+
411
+ if ((msie || opts.forceIframe) && opts.showOverlay)
412
+ lyr1.show(); // opacity is zero
413
+ if (opts.fadeIn) {
414
+ var cb = opts.onBlock ? opts.onBlock : noOp;
415
+ var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
416
+ var cb2 = msg ? cb : noOp;
417
+ if (opts.showOverlay)
418
+ lyr2._fadeIn(opts.fadeIn, cb1);
419
+ if (msg)
420
+ lyr3._fadeIn(opts.fadeIn, cb2);
421
+ }
422
+ else {
423
+ if (opts.showOverlay)
424
+ lyr2.show();
425
+ if (msg)
426
+ lyr3.show();
427
+ if (opts.onBlock)
428
+ opts.onBlock.bind(lyr3)();
429
+ }
430
+
431
+ // bind key and mouse events
432
+ bind(1, el, opts);
433
+
434
+ if (full) {
435
+ pageBlock = lyr3[0];
436
+ pageBlockEls = $(opts.focusableElements,pageBlock);
437
+ if (opts.focusInput)
438
+ setTimeout(focus, 20);
439
+ }
440
+ else
441
+ center(lyr3[0], opts.centerX, opts.centerY);
442
+
443
+ if (opts.timeout) {
444
+ // auto-unblock
445
+ var to = setTimeout(function() {
446
+ if (full)
447
+ $.unblockUI(opts);
448
+ else
449
+ $(el).unblock(opts);
450
+ }, opts.timeout);
451
+ $(el).data('blockUI.timeout', to);
452
+ }
453
+ }
454
+
455
+ // remove the block
456
+ function remove(el, opts) {
457
+ var count;
458
+ var full = (el == window);
459
+ var $el = $(el);
460
+ var data = $el.data('blockUI.history');
461
+ var to = $el.data('blockUI.timeout');
462
+ if (to) {
463
+ clearTimeout(to);
464
+ $el.removeData('blockUI.timeout');
465
+ }
466
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
467
+ bind(0, el, opts); // unbind events
468
+
469
+ if (opts.onUnblock === null) {
470
+ opts.onUnblock = $el.data('blockUI.onUnblock');
471
+ $el.removeData('blockUI.onUnblock');
472
+ }
473
+
474
+ var els;
475
+ if (full) // crazy selector to handle odd field errors in ie6/7
476
+ els = $(document.body).children().filter('.blockUI').add('body > .blockUI');
477
+ else
478
+ els = $el.find('>.blockUI');
479
+
480
+ // fix cursor issue
481
+ if ( opts.cursorReset ) {
482
+ if ( els.length > 1 )
483
+ els[1].style.cursor = opts.cursorReset;
484
+ if ( els.length > 2 )
485
+ els[2].style.cursor = opts.cursorReset;
486
+ }
487
+
488
+ if (full)
489
+ pageBlock = pageBlockEls = null;
490
+
491
+ if (opts.fadeOut) {
492
+ count = els.length;
493
+ els.stop().fadeOut(opts.fadeOut, function() {
494
+ if ( --count === 0)
495
+ reset(els,data,opts,el);
496
+ });
497
+ }
498
+ else
499
+ reset(els, data, opts, el);
500
+ }
501
+
502
+ // move blocking element back into the DOM where it started
503
+ function reset(els,data,opts,el) {
504
+ var $el = $(el);
505
+ if ( $el.data('blockUI.isBlocked') )
506
+ return;
507
+
508
+ els.each(function(i,o) {
509
+ // remove via DOM calls so we don't lose event handlers
510
+ if (this.parentNode)
511
+ this.parentNode.removeChild(this);
512
+ });
513
+
514
+ if (data && data.el) {
515
+ data.el.style.display = data.display;
516
+ data.el.style.position = data.position;
517
+ data.el.style.cursor = 'default'; // #59
518
+ if (data.parent)
519
+ data.parent.appendChild(data.el);
520
+ $el.removeData('blockUI.history');
521
+ }
522
+
523
+ if ($el.data('blockUI.static')) {
524
+ $el.css('position', 'static'); // #22
525
+ }
526
+
527
+ if (typeof opts.onUnblock == 'function')
528
+ opts.onUnblock(el,opts);
529
+
530
+ // fix issue in Safari 6 where block artifacts remain until reflow
531
+ var body = $(document.body), w = body.width(), cssW = body[0].style.width;
532
+ body.width(w-1).width(w);
533
+ body[0].style.width = cssW;
534
+ }
535
+
536
+ // bind/unbind the handler
537
+ function bind(b, el, opts) {
538
+ var full = el == window, $el = $(el);
539
+
540
+ // don't bother unbinding if there is nothing to unbind
541
+ if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
542
+ return;
543
+
544
+ $el.data('blockUI.isBlocked', b);
545
+
546
+ // don't bind events when overlay is not in use or if bindEvents is false
547
+ if (!full || !opts.bindEvents || (b && !opts.showOverlay))
548
+ return;
549
+
550
+ // bind anchors and inputs for mouse and key events
551
+ var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
552
+ if (b)
553
+ $(document).bind(events, opts, handler);
554
+ else
555
+ $(document).unbind(events, handler);
556
+
557
+ // former impl...
558
+ // var $e = $('a,:input');
559
+ // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
560
+ }
561
+
562
+ // event handler to suppress keyboard/mouse events when blocking
563
+ function handler(e) {
564
+ // allow tab navigation (conditionally)
565
+ if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {
566
+ if (pageBlock && e.data.constrainTabKey) {
567
+ var els = pageBlockEls;
568
+ var fwd = !e.shiftKey && e.target === els[els.length-1];
569
+ var back = e.shiftKey && e.target === els[0];
570
+ if (fwd || back) {
571
+ setTimeout(function(){focus(back);},10);
572
+ return false;
573
+ }
574
+ }
575
+ }
576
+ var opts = e.data;
577
+ var target = $(e.target);
578
+ if (target.hasClass('blockOverlay') && opts.onOverlayClick)
579
+ opts.onOverlayClick(e);
580
+
581
+ // allow events within the message content
582
+ if (target.parents('div.' + opts.blockMsgClass).length > 0)
583
+ return true;
584
+
585
+ // allow events for content that is not being blocked
586
+ return target.parents().children().filter('div.blockUI').length === 0;
587
+ }
588
+
589
+ function focus(back) {
590
+ if (!pageBlockEls)
591
+ return;
592
+ var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
593
+ if (e)
594
+ e.focus();
595
+ }
596
+
597
+ function center(el, x, y) {
598
+ var p = el.parentNode, s = el.style;
599
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
600
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
601
+ if (x) s.left = l > 0 ? (l+'px') : '0';
602
+ if (y) s.top = t > 0 ? (t+'px') : '0';
603
+ }
604
+
605
+ function sz(el, p) {
606
+ return parseInt($.css(el,p),10)||0;
607
+ }
608
+
609
+ }
610
+
611
+
612
+ /*global define:true */
613
+ if (typeof define === 'function' && define.amd && define.amd.jQuery) {
614
+ define(['jquery'], setup);
615
+ } else {
616
+ setup(jQuery);
617
+ }
618
+
619
+ })();
assets/js/jquery-blockui/jquery.blockUI.min.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery blockUI plugin
3
+ * Version 2.70.0-2014.11.23
4
+ * Requires jQuery v1.7 or later
5
+ *
6
+ * Examples at: http://malsup.com/jquery/block/
7
+ * Copyright (c) 2007-2013 M. Alsup
8
+ * Dual licensed under the MIT and GPL licenses:
9
+ * http://www.opensource.org/licenses/mit-license.php
10
+ * http://www.gnu.org/licenses/gpl.html
11
+ *
12
+ * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
+ */
14
+ !function(){"use strict";function e(e){function t(t,n){var s,h,k=t==window,y=n&&n.message!==undefined?n.message:undefined;if(!(n=e.extend({},e.blockUI.defaults,n||{})).ignoreIfBlocked||!e(t).data("blockUI.isBlocked")){if(n.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,n.overlayCSS||{}),s=e.extend({},e.blockUI.defaults.css,n.css||{}),n.onOverlayClick&&(n.overlayCSS.cursor="pointer"),h=e.extend({},e.blockUI.defaults.themedCSS,n.themedCSS||{}),y=y===undefined?n.message:y,k&&p&&o(window,{fadeOut:0}),y&&"string"!=typeof y&&(y.parentNode||y.jquery)){var m=y.jquery?y[0]:y,g={};e(t).data("blockUI.history",g),g.el=m,g.parent=m.parentNode,g.display=m.style.display,g.position=m.style.position,g.parent&&g.parent.removeChild(m)}e(t).data("blockUI.onUnblock",n.onUnblock);var v,I,w,U,x=n.baseZ;v=e(r||n.forceIframe?'<iframe class="blockUI" style="z-index:'+x+++';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+n.iframeSrc+'"></iframe>':'<div class="blockUI" style="display:none"></div>'),I=e(n.theme?'<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+x+++';display:none"></div>':'<div class="blockUI blockOverlay" style="z-index:'+x+++';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),n.theme&&k?(U='<div class="blockUI '+n.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(x+10)+';display:none;position:fixed">',n.title&&(U+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(n.title||"&nbsp;")+"</div>"),U+='<div class="ui-widget-content ui-dialog-content"></div>',U+="</div>"):n.theme?(U='<div class="blockUI '+n.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(x+10)+';display:none;position:absolute">',n.title&&(U+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(n.title||"&nbsp;")+"</div>"),U+='<div class="ui-widget-content ui-dialog-content"></div>',U+="</div>"):U=k?'<div class="blockUI '+n.blockMsgClass+' blockPage" style="z-index:'+(x+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+n.blockMsgClass+' blockElement" style="z-index:'+(x+10)+';display:none;position:absolute"></div>',w=e(U),y&&(n.theme?(w.css(h),w.addClass("ui-widget-content")):w.css(s)),n.theme||I.css(n.overlayCSS),I.css("position",k?"fixed":"absolute"),(r||n.forceIframe)&&v.css("opacity",0);var C=[v,I,w],S=e(k?"body":t);e.each(C,function(){this.appendTo(S)}),n.theme&&n.draggable&&e.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var O=f&&(!e.support.boxModel||e("object,embed",k?null:t).length>0);if(u||O){if(k&&n.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(u||!e.support.boxModel)&&!k)var E=a(t,"borderTopWidth"),T=a(t,"borderLeftWidth"),M=E?"(0 - "+E+")":0,B=T?"(0 - "+T+")":0;e.each(C,function(e,t){var o=t[0].style;if(o.position="absolute",e<2)k?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+n.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),k?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),B&&o.setExpression("left",B),M&&o.setExpression("top",M);else if(n.centerY)k&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!n.centerY&&k){var i="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+(n.css&&n.css.top?parseInt(n.css.top,10):0)+') + "px"';o.setExpression("top",i)}})}if(y&&(n.theme?w.find(".ui-widget-content").append(y):w.append(y),(y.jquery||y.nodeType)&&e(y).show()),(r||n.forceIframe)&&n.showOverlay&&v.show(),n.fadeIn){var j=n.onBlock?n.onBlock:c,H=n.showOverlay&&!y?j:c,z=y?j:c;n.showOverlay&&I._fadeIn(n.fadeIn,H),y&&w._fadeIn(n.fadeIn,z)}else n.showOverlay&&I.show(),y&&w.show(),n.onBlock&&n.onBlock.bind(w)();if(i(1,t,n),k?(p=w[0],b=e(n.focusableElements,p),n.focusInput&&setTimeout(l,20)):d(w[0],n.centerX,n.centerY),n.timeout){var W=setTimeout(function(){k?e.unblockUI(n):e(t).unblock(n)},n.timeout);e(t).data("blockUI.timeout",W)}}}function o(t,o){var s,l=t==window,d=e(t),a=d.data("blockUI.history"),c=d.data("blockUI.timeout");c&&(clearTimeout(c),d.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),i(0,t,o),null===o.onUnblock&&(o.onUnblock=d.data("blockUI.onUnblock"),d.removeData("blockUI.onUnblock"));var r;r=l?e(document.body).children().filter(".blockUI").add("body > .blockUI"):d.find(">.blockUI"),o.cursorReset&&(r.length>1&&(r[1].style.cursor=o.cursorReset),r.length>2&&(r[2].style.cursor=o.cursorReset)),l&&(p=b=null),o.fadeOut?(s=r.length,r.stop().fadeOut(o.fadeOut,function(){0==--s&&n(r,a,o,t)})):n(r,a,o,t)}function n(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.el.style.cursor="default",o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),d=l.width(),a=l[0].style.width;l.width(d-1).width(d),l[0].style.width=a}}function i(t,o,n){var i=o==window,l=e(o);if((t||(!i||p)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var d="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).bind(d,n,s):e(document).unbind(d,s)}}function s(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&p&&t.data.constrainTabKey){var o=b,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){l(i)},10),!1}var s=t.data,d=e(t.target);return d.hasClass("blockOverlay")&&s.onOverlayClick&&s.onOverlayClick(t),d.parents("div."+s.blockMsgClass).length>0||0===d.parents().children().filter("div.blockUI").length}function l(e){if(b){var t=b[!0===e?b.length-1:0];t&&t.focus()}}function d(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-a(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-a(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0"),o&&(i.top=l>0?l+"px":"0")}function a(t,o){return parseInt(e.css(t,o),10)||0}e.fn._fadeIn=e.fn.fadeIn;var c=e.noop||function(){},r=/MSIE/.test(navigator.userAgent),u=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),f=(document.documentMode,e.isFunction(document.createElement("div").style.setExpression));e.blockUI=function(e){t(window,e)},e.unblockUI=function(e){o(window,e)},e.growlUI=function(t,o,n,i){var s=e('<div class="growlUI"></div>');t&&s.append("<h1>"+t+"</h1>"),o&&s.append("<h2>"+o+"</h2>"),n===undefined&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.mouseover(function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(o){if(this[0]===window)return e.blockUI(o),this;var n=e.extend({},e.blockUI.defaults,o||{});return this.each(function(){var t=e(this);n.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,t(this,o)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){o(this,t)})},e.blockUI.version=2.7,e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var p=null,b=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}();
assets/js/jquery-ui-timepicker-addon.js ADDED
@@ -0,0 +1,1919 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery timepicker addon
3
+ * By: Trent Richardson [http://trentrichardson.com]
4
+ * Version 1.2
5
+ * Last Modified: 02/02/2013
6
+ *
7
+ * Copyright 2013 Trent Richardson
8
+ * You may use this project under MIT or GPL licenses.
9
+ * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
10
+ * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
11
+ */
12
+
13
+ /*jslint evil: true, white: false, undef: false, nomen: false */
14
+
15
+ (function($) {
16
+
17
+ /*
18
+ * Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded"
19
+ */
20
+ $.ui.timepicker = $.ui.timepicker || {};
21
+ if ($.ui.timepicker.version) {
22
+ return;
23
+ }
24
+
25
+ /*
26
+ * Extend jQueryUI, get it started with our version number
27
+ */
28
+ $.extend($.ui, {
29
+ timepicker: {
30
+ version: "1.2"
31
+ }
32
+ });
33
+
34
+ /*
35
+ * Timepicker manager.
36
+ * Use the singleton instance of this class, $.timepicker, to interact with the time picker.
37
+ * Settings for (groups of) time pickers are maintained in an instance object,
38
+ * allowing multiple different settings on the same page.
39
+ */
40
+ var Timepicker = function() {
41
+ this.regional = []; // Available regional settings, indexed by language code
42
+ this.regional[''] = { // Default regional settings
43
+ currentText: 'Now',
44
+ closeText: 'Done',
45
+ amNames: ['AM', 'A'],
46
+ pmNames: ['PM', 'P'],
47
+ timeFormat: 'HH:mm',
48
+ timeSuffix: '',
49
+ timeOnlyTitle: 'Choose Time',
50
+ timeText: 'Time',
51
+ hourText: 'Hour',
52
+ minuteText: 'Minute',
53
+ secondText: 'Second',
54
+ millisecText: 'Millisecond',
55
+ timezoneText: 'Time Zone',
56
+ isRTL: false
57
+ };
58
+ this._defaults = { // Global defaults for all the datetime picker instances
59
+ showButtonPanel: true,
60
+ timeOnly: false,
61
+ showHour: true,
62
+ showMinute: true,
63
+ showSecond: false,
64
+ showMillisec: false,
65
+ showTimezone: false,
66
+ showTime: true,
67
+ stepHour: 1,
68
+ stepMinute: 1,
69
+ stepSecond: 1,
70
+ stepMillisec: 1,
71
+ hour: 0,
72
+ minute: 0,
73
+ second: 0,
74
+ millisec: 0,
75
+ timezone: null,
76
+ useLocalTimezone: false,
77
+ defaultTimezone: "+0000",
78
+ hourMin: 0,
79
+ minuteMin: 0,
80
+ secondMin: 0,
81
+ millisecMin: 0,
82
+ hourMax: 23,
83
+ minuteMax: 59,
84
+ secondMax: 59,
85
+ millisecMax: 999,
86
+ minDateTime: null,
87
+ maxDateTime: null,
88
+ onSelect: null,
89
+ hourGrid: 0,
90
+ minuteGrid: 0,
91
+ secondGrid: 0,
92
+ millisecGrid: 0,
93
+ alwaysSetTime: true,
94
+ separator: ' ',
95
+ altFieldTimeOnly: true,
96
+ altTimeFormat: null,
97
+ altSeparator: null,
98
+ altTimeSuffix: null,
99
+ pickerTimeFormat: null,
100
+ pickerTimeSuffix: null,
101
+ showTimepicker: true,
102
+ timezoneIso8601: false,
103
+ timezoneList: null,
104
+ addSliderAccess: false,
105
+ sliderAccessArgs: null,
106
+ controlType: 'slider',
107
+ defaultValue: null,
108
+ parse: 'strict'
109
+ };
110
+ $.extend(this._defaults, this.regional['']);
111
+ };
112
+
113
+ $.extend(Timepicker.prototype, {
114
+ $input: null,
115
+ $altInput: null,
116
+ $timeObj: null,
117
+ inst: null,
118
+ hour_slider: null,
119
+ minute_slider: null,
120
+ second_slider: null,
121
+ millisec_slider: null,
122
+ timezone_select: null,
123
+ hour: 0,
124
+ minute: 0,
125
+ second: 0,
126
+ millisec: 0,
127
+ timezone: null,
128
+ defaultTimezone: "+0000",
129
+ hourMinOriginal: null,
130
+ minuteMinOriginal: null,
131
+ secondMinOriginal: null,
132
+ millisecMinOriginal: null,
133
+ hourMaxOriginal: null,
134
+ minuteMaxOriginal: null,
135
+ secondMaxOriginal: null,
136
+ millisecMaxOriginal: null,
137
+ ampm: '',
138
+ formattedDate: '',
139
+ formattedTime: '',
140
+ formattedDateTime: '',
141
+ timezoneList: null,
142
+ units: ['hour','minute','second','millisec'],
143
+ control: null,
144
+
145
+ /*
146
+ * Override the default settings for all instances of the time picker.
147
+ * @param settings object - the new settings to use as defaults (anonymous object)
148
+ * @return the manager object
149
+ */
150
+ setDefaults: function(settings) {
151
+ extendRemove(this._defaults, settings || {});
152
+ return this;
153
+ },
154
+
155
+ /*
156
+ * Create a new Timepicker instance
157
+ */
158
+ _newInst: function($input, o) {
159
+ var tp_inst = new Timepicker(),
160
+ inlineSettings = {},
161
+ fns = {},
162
+ overrides, i;
163
+
164
+ for (var attrName in this._defaults) {
165
+ if(this._defaults.hasOwnProperty(attrName)){
166
+ var attrValue = $input.attr('time:' + attrName);
167
+ if (attrValue) {
168
+ try {
169
+ inlineSettings[attrName] = eval(attrValue);
170
+ } catch (err) {
171
+ inlineSettings[attrName] = attrValue;
172
+ }
173
+ }
174
+ }
175
+ }
176
+ overrides = {
177
+ beforeShow: function (input, dp_inst) {
178
+ if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
179
+ return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst);
180
+ }
181
+ },
182
+ onChangeMonthYear: function (year, month, dp_inst) {
183
+ // Update the time as well : this prevents the time from disappearing from the $input field.
184
+ tp_inst._updateDateTime(dp_inst);
185
+ if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) {
186
+ tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);
187
+ }
188
+ },
189
+ onClose: function (dateText, dp_inst) {
190
+ if (tp_inst.timeDefined === true && $input.val() !== '') {
191
+ tp_inst._updateDateTime(dp_inst);
192
+ }
193
+ if ($.isFunction(tp_inst._defaults.evnts.onClose)) {
194
+ tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst);
195
+ }
196
+ }
197
+ };
198
+ for (i in overrides) {
199
+ if (overrides.hasOwnProperty(i)) {
200
+ fns[i] = o[i] || null;
201
+ }
202
+ }
203
+ tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, overrides, {
204
+ evnts:fns,
205
+ timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
206
+ });
207
+ tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) {
208
+ return val.toUpperCase();
209
+ });
210
+ tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) {
211
+ return val.toUpperCase();
212
+ });
213
+
214
+ // controlType is string - key to our this._controls
215
+ if(typeof(tp_inst._defaults.controlType) === 'string'){
216
+ if($.fn[tp_inst._defaults.controlType] === undefined){
217
+ tp_inst._defaults.controlType = 'select';
218
+ }
219
+ tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType];
220
+ }
221
+ // controlType is an object and must implement create, options, value methods
222
+ else{
223
+ tp_inst.control = tp_inst._defaults.controlType;
224
+ }
225
+
226
+ if (tp_inst._defaults.timezoneList === null) {
227
+ var timezoneList = ['-1200', '-1100', '-1000', '-0930', '-0900', '-0800', '-0700', '-0600', '-0500', '-0430', '-0400', '-0330', '-0300', '-0200', '-0100', '+0000',
228
+ '+0100', '+0200', '+0300', '+0330', '+0400', '+0430', '+0500', '+0530', '+0545', '+0600', '+0630', '+0700', '+0800', '+0845', '+0900', '+0930',
229
+ '+1000', '+1030', '+1100', '+1130', '+1200', '+1245', '+1300', '+1400'];
230
+
231
+ if (tp_inst._defaults.timezoneIso8601) {
232
+ timezoneList = $.map(timezoneList, function(val) {
233
+ return val == '+0000' ? 'Z' : (val.substring(0, 3) + ':' + val.substring(3));
234
+ });
235
+ }
236
+ tp_inst._defaults.timezoneList = timezoneList;
237
+ }
238
+
239
+ tp_inst.