PK\K\00 readme.txtnuW+A=== User Registration - Custom Registration Form, Login And User Profile For WordPress === Contributors: WPEverest Tags: user registration, registration, user profile, registration form, login form, Requires at least: 4.0 Requires PHP: 5.3 Tested up to: 5.4 Stable tag: 1.8.3 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html Drag and drop user registration form and login form builder == Description == User Registration plugin provides you with an easy way to create frontend user registration form and login form. Drag and Drop fields make ordering and creating forms extremely easy. The plugin is lightweight, extendible, and can be used to create any type of registration form. Beside registration form, the plugin also supports beautiful frontend profile account page for profile edit, password change, Log out and more. Users can visit their account page after registration and view the details they have filled and can make changes if necessary. The registration forms are 100% mobile responsive and optimized to display on any devices. View [All features](https://wpeverest.com/wordpress-plugins/user-registration/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) View [Demo](http://demo.wpeverest.com/user-registration/) Get [Free Support](https://wpeverest.com/support-forum/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) Check [Documentation](http://docs.wpeverest.com/docs/user-registration/) = User Registration Plugin in action: = [youtube https://www.youtube.com/watch?v=zNhNvj8jPhM] ### Features And Options: * Simple, Clean and Beautiful WordPress Registration Forms * Drag and Drop Fields * Unlimited Registration Forms * Inbuilt Login Form * Frontend Profile account page * Multiple Column Design * Multiple Form template designs * Shortcode Support * Google reCaptcha Support (v2 and v3) * Email notifications * Email Customizers * Form Duplicate Option * Admin approval option for registration * Auto login option * Email confirmation to register * Enable/Disable Strong Password * Default User Role Selection Option * Support for profile image upload * Form Preview Option on backend * User data export in CSV * Import/Export registration form * Well Documented * Translation ready ### Premium Addons User Registration can be easily extended with some premium addons. * [Style Customizer](https://wpeverest.com/wordpress-plugins/user-registration/style-customizer/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows users to customize design elements like color, font size, font color, border, margin, padding and more for registration and login form. * [Multi Step Form](https://wpeverest.com/wordpress-plugins/user-registration/multi-part/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows users to break lengthy registration form into multiple pages. * [Social Connect](https://wpeverest.com/wordpress-plugins/user-registration/social-connect/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows users to register/login to your site with social platforms like Facebook, Twitter, Google+ or LinkedIn. * [Content Restriction](https://wpeverest.com/wordpress-plugins/user-registration/content-restriction/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows you to restrict full or partial content from page, post to only logged in users or logged in users with specific roles. Check our article for [content restriction](https://wpeverest.com/blog/restrict-content-in-wordpress/) * [File Upload](https://wpeverest.com/wordpress-plugins/user-registration/file-upload/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows you to add upload field in registration form so that users can upload documents, images and more. * [WooCommerce Integration](https://wpeverest.com/wordpress-plugins/user-registration/woocommerce/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Integrates and syncs WooCommerce related information to user registration account page like orders, customer details, billings plus allows you to create extended registration page with woocommerce fields. Check [detail guide](https://wpeverest.com/blog/woocommerce-registration-form/) * [MailChimp](https://wpeverest.com/wordpress-plugins/user-registration/mailchimp/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Lets you sync your registered users with MailChimp list. Automatically add users to your selected MailChimp list upon registration. * [Advanced Fields](https://wpeverest.com/wordpress-plugins/user-registration/advanced-fields/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Lets you add advanced extra fields such as WYSIWYG, Time picker, Phone Number, HTML, Section title in form. * [Conditional Logic](https://wpeverest.com/wordpress-plugins/user-registration/conditional-logic/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Lets you apply conditions to your fields. Conditional Logic allows you to show or hide certain fields based upon other field’s value. * [Profile Connect](https://wpeverest.com/wordpress-plugins/user-registration/profile-connect/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows admin to connect users registered via other forms to User Registration selected form. * [PDF Form Submission](https://wpeverest.com/wordpress-plugins/user-registration/pdf-form-submission/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Lets you export user's data in PDF, PDF file as email attachment on form submission. * [Payments (PayPal)](https://wpeverest.com/wordpress-plugins/user-registration/payments/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Integrates PayPal into your forms for registration fee payments, donations, and more. * [Geolocation](https://wpeverest.com/wordpress-plugins/user-registration/geolocation/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Collects and stores users geolocation data along with their form filled information. * [LearnDash](https://wpeverest.com/wordpress-plugins/user-registration/learndash/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows users to view their registered learndash courses, course progresses, expiry date on my account section and more. * [Invite Codes](https://wpeverest.com/wordpress-plugins/user-registration/invite-codes/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows you to restrict the registration on your site to only users with invite codes. Check our [invitation code guide](https://wpeverest.com/blog/user-registration-invitation-code/) * [Field Visibility](https://wpeverest.com/wordpress-plugins/user-registration/field-visibility/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows you to hide registration fields on the registration form but show it in the account profile page and vice versa. Also, make selective fields read-only on profile page, registration form or both. * [Customize My Account](https://wpeverest.com/wordpress-plugins/user-registration/customize-my-account/?utm_source=wporg&utm_medium=link&utm_campaign=ur-upgrade-to-pro) - Allows you to create, edit and delete additional tabs on the account page along with custom content for that tab. Also supports drag and drop sorting of account tabs. == Installation == 1. Install the plugin either via the WordPress.org plugin directory, or by uploading the files to your server (in the /wp-content/plugins/ directory). 2. Activate the User Registration plugin through the 'Plugins' menu in WordPress. 3. Go to User Registration->Add New and start creating a registration form. == Frequently Asked Questions == = Do I need to have coding skills to use the User Registration Plugin? = No, you don't need any coding skills. One can simply drag and drop fields, arrange them and use built-in shortcodes to display the form. = Does the plugin work with any WordPress themes? Yes, the plugin is designed to work with any themes that have been coded following WordPress guidelines. = How can admin access registered users data? All the users registered via the registration forms and their data can be accessed from the Users menu in the WordPress Dashboard. = Can a user edit their profile informaton after registration? Yes, a registered user can access their profile details via the account page. One can create an [account profile page](https://docs.wpeverest.com/docs/user-registration/registration-form-and-login-form/how-to-show-account-profile/) for their user using the shortcode available. = Does the plugin come with a login form as well? Yes, the plugin has a shortcode for the login form. == Screenshots == 1. Form Fields 2. Form Fields - Fullscreen Mode 3. Field Options 4. Form Settings 5. General Options 6. Login Options 7. Frontend Messages 8. Google reCaptcha 9. General Email Settings 10. Export Users 11. Import/Export Forms 12. Gutenberg Block 13. Registration Form 14. Login Form 15. User Account Page - Horizontal Layout 16. User Account Page - Vertical Layout == Changelog == = 1.8.3 - 17/04/2020 * Security - Form field validation for missing required fields. * Enhance - Toggle out on clicking out of form name edit box. * Enhance - Confirmation message on field deletion. * Enhance - Form live changes for conditional logic. * Enhance - Registered At column to display registered log. * Dev - WordPress v5.4 Compatibility. * Dev - WPML compatibility for Select2 and Multi Select2 fields. * Dev - Invite code compatibility with the conditional logic addon. * Fix - Section division issue in form builder. * Fix - Multiple date field. * Fix - User approval status. * Fix - Enable Recaptcha and password strength checkbox backward compatibility. * Fix - Placeholder conflict with the value of the select field. * Fix - User Registration component placeholder design on Gutenblock. * Fix - Form event submit conflict in presence of popup creator plugins. = 1.8.2.1 - 20/03/2020 * Fix - Unable to Login User Due to Pending Status. * Fix - Recaptcha Backward compatibility = 1.8.2 - 18/03/2020 * Feature - Search Field introduced in form builder. * Enhancement - Prevent Core Login enabled with redirect login page. * Enhancement - WPML on multiple choice options. * Refactor - Remove unnecessary CSS codes. * Tweak - Custom class in submit button. * Tweak - Password strength meter and password visibility enabled in change password. * Fix - User Approval status in Users Section. * Fix - Toggle option in field option's setting. * Fix - pre_get_users hook placement. * Fix - Password reset link validation. * Fix - Incompatibility with password fields of other registration plugins. = 1.8.1 - 13/02/2020 * Fix - Fatal error while installing the plugin. * Fix - SweetAlert issue. = 1.8.0 - 12/02/2020 * Feature - Login option introduced for individual forms. * Feature - Allows selective country selection in country field. * Enhancement - Date field * Enhancement - Conditional logic in edit profile. * Enhancement - Real time password matching. * Enhancement - Real time email matching. * Enhancement - Modal popup with documentation links on form creation. * Enhancement - Form settings dropdown changed to checkbox. * Enhancement - Premium fields showcase. * Tweak - Toggle feature added for field option's setting. * Tweak - SweetAlert2 added in frontend. * Tweak - CDN styling swapped with local file. * Fix - Exclude unwanted fields in edit profile. * Fix - Broken reset password link. = 1.7.6 - 30/12/2019 = * Enhancement - Registered user source. * Tweak - Remove inline css from recaptcha. * Fix - Email attachment hook mismatch arguments. * Fix - wp_authenticate_user filter mismatch arguments. * Fix - Hide/show password enabled in edit profile. = 1.7.5 - 13/12/2019 = * Enhancement - Redirect URL after logout. * Enhancement - Password field eye icon. * Fix - Escaping attribute in checkbox field. * Fix - Remove admin notice from form builder. * Fix - Case sensitive in confirm password. * Fix - Invite code field name made non editable. = 1.7.4 - 21/11/2019 = * Feature - WPML Plugin Compatibility. * Tweak - Country Field Default Value. * Tweak - Icons alignment to support WordPress v5.3. * Fix - HTML field Form Duplication. [See changelog for all versions](https://raw.githubusercontent.com/wpeverest/user-registration/master/CHANGELOG.txt). PK\v'templates/notices/success.phpnuW+A
PK\=,templates/notices/notice.phpnuW+A
PK\Jtemplates/notices/index.phpnuW+A PK\4templates/dashboard-widget.phpnuW+A
PK\*templates/myaccount/form-lost-password.phpnuW+A

PK\O4%[ [ +templates/myaccount/form-reset-password.phpnuW+A

PK\Jtemplates/myaccount/index.phpnuW+A
PK\K_55*templates/myaccount/form-edit-password.phpnuW+A

'; } ?>

'; } ?>

'; } ?>

PK\LQ!Q!)templates/myaccount/form-edit-profile.phpnuW+A

profile-picture

'; ?>

$grid_data ) { $found_field = false; foreach ( $grid_data as $grid_data_key => $single_item ) { $key = 'user_registration_' . $single_item->general_setting->field_name; if ( isset( $single_item->field_key ) && isset( $profile[ $key ] ) ) { $found_field = true; } } if ( $found_field ) { ?>
$single_item ) { $key = 'user_registration_' . $single_item->general_setting->field_name; if ( isset( $profile[ $key ] ) ) { $field = $profile[ $key ]; $field['input_class'] = array( 'ur-edit-profile-field ' ); $advance_data = array( 'general_setting' => (object) $single_item->general_setting, 'advance_setting' => (object) $single_item->advance_setting, ); ?>
'readonly', ); if ( isset( $readonly_fields[ $field['field_key'] ] ['value'] ) ) { $field['value'] = $readonly_fields[ $field['field_key'] ] ['value']; } if ( isset( $readonly_fields[ $field['field_key'] ] ['message'] ) ) { $field['custom_attributes']['title'] = $readonly_fields[ $field['field_key'] ] ['message']; $field['input_class'][] = 'user-registration-help-tip'; } } if ( 'phone' === $single_item->field_key ) { $field['phone_format'] = $single_item->general_setting->phone_format; if ( 'smart' === $field['phone_format'] ) { unset( $field['input_mask'] ); } } if ( 'select' === $single_item->field_key ) { $field['placeholder'] = $single_item->general_setting->placeholder; if ( isset( $field['placeholder'] ) ) { unset( $field['placeholder'] ); } } $filter_data = array( 'form_data' => $field, 'data' => $advance_data, ); $form_data_array = apply_filters( 'user_registration_' . $field['field_key'] . '_frontend_form_data', $filter_data ); $field = isset( $form_data_array['form_data'] ) ? $form_data_array['form_data'] : $field; $value = ! empty( $_POST[ $key ] ) ? ur_clean( $_POST[ $key ] ) : $field['value']; user_registration_form_field( $key, $field, $value ); /** * Embed the current country value to allow to remove it if it's not allowed. */ if ( 'country' === $single_item->field_key && ! empty( $value ) ) { echo sprintf( '', $value, UR_Form_Field_Country::get_instance()->get_country()[ $value ] ); } ?>

PK\Ys"templates/myaccount/form-login.phpnuW+A

' . $recaptcha_node . '
'; } ?>

'; $label = get_option( 'user_registration_general_setting_registration_label' ); if ( ! empty( $label ) ) { ?> '; } ?>

PK\㧂 !templates/myaccount/dashboard.phpnuW+A

display_name ) ); ?>

profile-picture
display_name; } ?>

display_name ) ); ?>

profile details and edit your password.', 'user-registration' ), esc_url( ur_get_endpoint_url( 'edit-profile' ) ), esc_url( ur_get_endpoint_url( 'edit-password' ) ) ); ?>

Sign out', 'user-registration' ), '' . esc_html( $current_user->display_name ) . '', esc_url( ur_logout_url( ur_get_page_permalink( 'myaccount' ) ) ) ); ?>

PK\Jtemplates/index.phpnuW+A

PK\@촢templates/form-registration.phpnuW+A
' id='user-registration-form-'>
> $data ) { $row_id = ( ! empty( $row_ids ) ) ? absint( $row_ids[ $index ] ) : $index; do_action( 'user_registration_before_field_row', $row_id, $form_data_array, $form_id ); ?>
$grid_data ) { ?>
$single_item ) { if ( isset( $single_item->field_key ) ) { ?>
user_registration_frontend_form( $single_item, $form_id ); $is_field_exists = true; ?>
' . $recaptcha_node . '
'; } $btn_container_class = apply_filters( 'user_registration_form_btn_container_class', array(), $form_id ); ?>

define_constants(); $this->includes(); $this->init_hooks(); add_action( 'plugins_loaded', array( $this, 'objects' ), 1 ); do_action( 'user_registration_loaded' ); } /** * Hook into actions and filters. */ private function init_hooks() { register_activation_hook( __FILE__, array( 'UR_Install', 'install' ) ); add_action( 'after_setup_theme', array( $this, 'include_template_functions' ), 11 ); add_action( 'init', array( $this, 'init' ), 0 ); add_action( 'init', array( 'UR_Shortcodes', 'init' ) ); } /** * Define FT Constants. */ private function define_constants() { $upload_dir = wp_upload_dir(); $this->define( 'UR_LOG_DIR', $upload_dir['basedir'] . '/ur-logs/' ); $this->define( 'UR_DS', DIRECTORY_SEPARATOR ); $this->define( 'UR_PLUGIN_FILE', __FILE__ ); $this->define( 'UR_ABSPATH', dirname( __FILE__ ) . UR_DS ); $this->define( 'UR_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); $this->define( 'UR_VERSION', $this->version ); $this->define( 'UR_TEMPLATE_DEBUG_MODE', false ); $this->define( 'UR_FORM_PATH', UR_ABSPATH . 'includes' . UR_DS . 'form' . UR_DS ); $this->define( 'UR_SESSION_CACHE_GROUP', 'ur_session_id' ); } /** * Define constant if not already set. * * @param string $name * @param string|bool $value */ private function define( $name, $value ) { if ( ! defined( $name ) ) { define( $name, $value ); } } /** * What type of request is this? * * @param string $type admin, ajax, cron or frontend. * @return bool */ private function is_request( $type ) { switch ( $type ) { case 'admin': return is_admin(); case 'ajax': return defined( 'DOING_AJAX' ); case 'cron': return defined( 'DOING_CRON' ); case 'frontend': return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ); } } /** * Includes. */ private function includes() { /** * Class autoloader. */ include_once UR_ABSPATH . 'includes/class-ur-autoloader.php'; /** * Interfaces. */ include_once UR_ABSPATH . 'includes/interfaces/class-ur-logger-interface.php'; include_once UR_ABSPATH . 'includes/interfaces/class-ur-log-handler-interface.php'; /** * Abstract classes */ include_once UR_ABSPATH . 'includes/abstracts/abstract-ur-form-field.php'; include_once UR_ABSPATH . 'includes/abstracts/abstract-ur-field-settings.php'; include_once UR_ABSPATH . 'includes/abstracts/abstract-ur-log-handler.php'; include_once UR_ABSPATH . 'includes/abstracts/abstract-ur-session.php'; /** * Core classes. */ include_once UR_ABSPATH . 'includes/functions-ur-core.php'; include_once UR_ABSPATH . 'includes/class-ur-install.php'; include_once UR_ABSPATH . 'includes/class-ur-post-types.php'; // Registers post types include_once UR_ABSPATH . 'includes/class-ur-user-approval.php'; // User Approval class include_once UR_ABSPATH . 'includes/class-ur-emailer.php'; include_once UR_ABSPATH . 'includes/class-ur-ajax.php'; include_once UR_ABSPATH . 'includes/class-ur-query.php'; include_once UR_ABSPATH . 'includes/class-ur-email-confirmation.php'; include_once UR_ABSPATH . 'includes/class-ur-privacy.php'; include_once UR_ABSPATH . 'includes/class-ur-form-block.php'; include_once UR_ABSPATH . 'includes/class-ur-cache-helper.php'; /** * Config classes. */ include_once UR_ABSPATH . 'includes/admin/class-ur-config.php'; /** * Plugin/Addon Updater. */ include_once UR_ABSPATH . 'includes/class-ur-plugin-updater.php'; if ( $this->is_request( 'admin' ) ) { include_once UR_ABSPATH . 'includes/admin/class-ur-admin.php'; } if ( $this->is_request( 'frontend' ) ) { $this->frontend_includes(); } if ( $this->is_request( 'frontend' ) || $this->is_request( 'cron' ) ) { include_once UR_ABSPATH . 'includes/class-ur-session-handler.php'; } $this->query = new UR_Query(); } /** * Include required frontend files. */ public function frontend_includes() { include_once UR_ABSPATH . 'includes/functions-ur-notice.php'; include_once UR_ABSPATH . 'includes/class-ur-form-handler.php'; // Form Handlers include_once UR_ABSPATH . 'includes/class-ur-frontend-scripts.php'; // Frontend Scripts include_once UR_ABSPATH . 'includes/frontend/class-ur-frontend.php'; include_once UR_ABSPATH . 'includes/class-ur-preview.php'; } /** * Function used to Init UserRegistration Template Functions - This makes them pluggable by plugins and themes. */ public function include_template_functions() { include_once UR_ABSPATH . 'includes/functions-ur-template.php'; } /** * Setup Objects. * * @since 1.7.2 */ public function objects() { $this->form = new UR_Form_Handler(); } /** * Init UserRegistration when WordPress Initialises. */ public function init() { // Before init action. do_action( 'before_user_registration_init' ); // Set up localisation. $this->load_plugin_textdomain(); // Session class, handles session data for users - can be overwritten if custom handler is needed. if ( $this->is_request( 'frontend' ) || $this->is_request( 'cron' ) || $this->is_request( 'admin' ) ) { $session_class = apply_filters( 'user_registration_session_handler', 'UR_Session_Handler' ); $this->session = new $session_class(); } // Init action. do_action( 'user_registration_init' ); } /** * Load Localisation files. * * Note: the first-loaded translation file overrides any following ones if the same translation is present. * * Locales found in: * - WP_LANG_DIR/user-registration/user-registration-LOCALE.mo * - WP_LANG_DIR/plugins/user-registration-LOCALE.mo */ public function load_plugin_textdomain() { $locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale(); $locale = apply_filters( 'plugin_locale', $locale, 'user-registration' ); unload_textdomain( 'user-registration' ); load_textdomain( 'user-registration', WP_LANG_DIR . '/user-registration/user-registration-' . $locale . '.mo' ); load_plugin_textdomain( 'user-registration', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); } /** * Get the plugin url. * * @return string */ public function plugin_url() { return untrailingslashit( plugins_url( '/', __FILE__ ) ); } /** * Get the plugin path. * * @return string */ public function plugin_path() { return untrailingslashit( plugin_dir_path( __FILE__ ) ); } /** * Get the template path. * * @return string */ public function template_path() { return apply_filters( 'user_registration_template_path', 'user-registration/' ); } /** * Get Ajax URL. * * @return string */ public function ajax_url() { return admin_url( 'admin-ajax.php', 'relative' ); } } endif; /** * Main instance of UserRegistration. * * Returns the main instance of FT to prevent the need to use globals. * * @since 1.0.0 * @return UserRegistration */ function UR() { return UserRegistration::instance(); } // Global for backwards compatibility. $GLOBALS['user-registration'] = UR(); PK\585eassets/images/hover-col-3.pngnuW+APNG  IHDRm PLTE8;tRNS=z&IDATc@_^ OC݅ KKgɷIENDB`PK\F g!!assets/images/logo.pngnuW+APNG  IHDRUU8ZtEXtSoftwareAdobe ImageReadyqe<IDATx\Kr@|@N6':"첲r'@nTJ=2.@hoZ2FP( BP(nxw'Ǝ׷ύFsk;ܽJ'cB':s(K~~4R1&w ;EOhpI2x/1?,= 781}M|ߎ}O¦fTbtTUq`RkGB [i*.'NgH6ў8e Ɉ.q|PA 6T? D3fT{kΨr4#Zv\ڗ%w:DCX$³v\#%}oBT 5ɋH$KZi-^Pa)GPИĮ=:듿+)'b: R$  b m :  WyR0!&Ub_̸HeH;; D3R'̉,˞Aő>fJ{.,N:g|eAVċUafXNjc腑 *x !{af Sj-B\''Wp@OBq*Nr'͑e__06.T2HƒZ[ 1iJXN`_ĚTTRqiRc)1naLZ])i#:%2.LZ֜^IURնf \Jy}CTk_Pl>iR ^IT)XRaFU*E*4RcmTR"U-~z!אjPk.d>2mہHmRn!VzKͷ8[InLʩ~&  nTkC4 V*Yv 1N̎xywR<(p[A7 fݨk VLwK:gtsAq"%٠1; ڽ4x]Hoc{}ObԄF/G:"(L=#ygJ}a6p@G50ZDp`܋PQK]^kxVJeJI\$H;FbP/,ʎm.$JK|:G~* BP(  YY6IENDB`PK\2assets/images/col-3.pngnuW+APNG  IHDRm PLTE+tRNS=z&IDATc@_^ OC݅ KKgɷIENDB`PK\O!##!assets/images/wpspin_light-2x.gifnuW+AGIF89a ~~~}}}{{{! NETSCAPE2.0! , @ 8p$i Z8$Jba.ZXE3 Ra8pNxc቉E,,`@& \3$I0i$*Ud0ghМ:r!@|A *Q8A5ԨAƌ( q$Dca $H`eP$E2dH< }H4PdA 3HDe +Whٲ%n x C?_qÆ.~0XB<2THqD !np $\3sB2!#2,DC _xР1,z9 w !3, @Pȇ>s Ƃc B0AQDFPc01@hHAgRN@V`1\X ق/a㕃 CXxF \ Br1 }Ah9Y88H;u#›qb@ .>h e 'wߙ%(T@DF!odJ^{t$8Q_b !ٰ`XPBM NaO.D<Ѓ @@꒰QkBl`"P! \1/DW Y9 ?@ e@ qJ(2^ @d0E:[pQUi LT NMQRͦo FCaFbAFuH"IP QXr@1B! , @ HpD4~)GMJ$C8nԠ1C4 )aÆ .X0!VYD"6X  E*U`/a @ "3q?Wbhb 'JC%  (t ?zPMB3 !BYy2t&M8ѣ21p3}x(ĝA}&ܠpJ;ta !pQ (PC!CD ` =,|5H$!q ! !m r$FWRHl$PeDP` uaW`ESOTUi@BxC+6 NPM DI Y+puko WE!DG0Pu؁/|77 1PwV $BBg aQuT9H!h~1HK áCm0m1 w1ֈFa@W RAB(8N T !YqĶH f6 ,`n JE6TEU GP j\p_q Vph"Hjqhq m)HSp`@!, @ HpÒ5~)G # !A~ౣ ,9Q >,QȂB.ObTHB"A )Iq7Ѳ /_|Yq@ 8 }C! .;rQc .ZPēlt3M$H0MB5ٰA \ *V\ᣐD 4hE"p0aTX*2 ;pšH9r'c,L#|1Ǎg]`{(0 B-FX59DF nЉ,U3e"HF "2.$PSmQا, S; cEJ'O,I!?|́= / +XQ^>21CF /(L.\mؠP ) X$bPx Brud @!Ym1)DjO9LP,ܡ )69+$) q8b9 sYHEA -G`3(9t]gf;萃{(tDn HSLsN,Dm 7P @w^Rv`CJ2ا8X_Yd^0 q .Vi zi^ Ǯryᬳ @ '`Af$P=([p`MRh![S $i5PB fx& B:L9EHa@Xi~&Pӱ@RJ 6_~L0QED#cBR`W@`Cf "Ce Pem!, @ H8)# M.\hrLt!"$=zpQb|)0r(P A}> H`"H` <!b ?H0К+VLI&J1RLA9t'L0x(QUpܸaƙAk Cq!B9'PHBşAJ"̌$LP zQE߁, $E.Z % ǰR] !%a8A`k|A Abd@Bxء#G `B4` G(D ?` ,ЂAOe@vCMH q$` 'A*(TGF!AYplD x(B`LmH$M Q"[y!Yf1AZ|5ɠaf|0 Eq\DD"أkOD6A E/ ApQd9PEtgA! , @ 8U <Вp B2N(I1 8pB(ȡe% @0B 6pBD (R`ѢIBDze,XT"%ʓ'$Cʀ(-AQPo%#4jC :=Ab^!3FL3ei,WJI%K^L G%H"C\9H V$H 5lظAa@-\;0$1f lZ\2uJ0pREe\\_TpDFV 74VY[`fEV5I$1Bc2Df=FFPY|@F$LP9H̡ЎCAl!CA%B TG5pC9 mĂBwAL kЂ /X%%H gh j D5qer*':<my(UqDj]wVt! >HD |pQ 1F[`IIEBp 4TP$Ɨ{\1EQ<A핞z D?(᠀ RbI4  P Pr[H,< n Ր(NS(4T`8>(tC`;(tEh!a(dYpC +䠆BC;)dGmE PN  5p[jwDz`SQ 2P{UD5Dp Q)V Rn_ CM!BiD%AFj $!, @ H02})H# \0Ȃ  8`҅-YQ(,ȴPD$6ٹ hBĈ&PX 6p N b#q>=  0Y€ō =t(qgP2eApհ(!Bt`P K0 …m0Ĵ}P!qnhcx "J bqk!4EP KU+a #` (k7 q?!HdOS#\c8gR1 kl@(F! , @ H A2B *8a40E8e <| V\I)F,ZcF:v!dH#H,R`  @p` 40U -؅ -[ Q E t (RV)ʄ8rDȕ AO`,0,X {,mBRLn)RAW(&Ml 8w "H#S]#ycV'xdBH[%3p@SG 5TdUffQh=tAQ6$A^|BX]Y֕WiU}ZA XoW\E  oTTada$’eio^ACp )P A9`dBA(S EaDmC l Mm'w@5qXzP yDVDu^I-! , @ H3})  J$B6hp0 yaRP胐'PHB!K( 3 gH 7pG!E(YI(St 4D @aB4X zQ(P0"BB8 PD#4G .^B $Pʕ,$E" ? L)"F.bG! JO,XHJBd$)H8ۀA۷% X@g5A" 2 $HIŠzOBi_ 5jMBp-11Zl[1H 11 4Cm!-RLQEV\ qgE,kB aH,NTG$AUUPHQj\0QmC=8%kD*qfp5bBTXan8=HU),Fz #! , @ HP3~)L # lI #DaȘh@AP#2bT(B"  BkZH!CIɓ(SXE˖-d #цB?K:pؠ &DA } f+VHD d(AT9t츣0D x R"$L8"e 2yx`4 p "#=UX&` g)Hж cFP8a!0P qA7B@_ "E `C! {|P1;C>P [pE^xLJN ARH(SRP!XA Æ)6 GnMh Q zkAfUlpFf-34'֗ѩŖu iC6dZ=@I|y V'ɇa x'1D3(F Α-^!  P :\0M"8t @Ce PPg` Ua6HF QD"B$ } b \@GEAU.v\M@D5$VYBD9FF,j|(ԃxP nEdȑBoL%A<Ƒ;PK\v!!assets/images/icons/loader.svgnuW+A PK\FPassets/images/icons/clippy.svgnuW+APK\_0RRassets/images/logo.svgnuW+AArtboard 1 copy 3PK\"0assets/images/hover-col-2.pngnuW+APNG  IHDRm PLTE8;tRNS=z&IDATc@_h^ OC݅ )YƯIENDB`PK\assets/images/col-2.pngnuW+APNG  IHDRm PLTE+tRNS=z&IDATc@_h^ OC݅ )YƯIENDB`PK\lassets/images/col-1.pngnuW+APNG  IHDRm PLTE+tRNS=z"IDATc@_(00  m]sIENDB`PK\:!assets/images/default_profile.pngnuW+AJFIF;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?j;Q@PQQE{Qǵ/Iǵ{Q4(zg]vI(= ?ofψOkKu gt Ŀ?rTRPE?mV/O0< ?μzkd2AJ?J-ڬIHH>G?*[Z<ݏTWPR@ E<')<3EvG0~qм;};"}AM}j6wVH2} X=koU<>tS//I.neX`eX_^ I܍Wހ<$ėDFc?£J|;}˯"q fEP(Mk[w'1K.8EA^hvqO͏=exË (@ '=z/8=h=(=i?Z(=(=iZ^D$5==xW<7?5GKW?s9C4PnH|?*z(#N Jum8^\C7lTn1q*@E%RPIG@ E%<҆ؑv#y=W?^&c!d'ӟ?PK\ assets/images/hover-col-1.pngnuW+APNG  IHDRm PLTE8;tRNS=z"IDATc@_(00  m]sIENDB`PK\r r assets/images/not-found.pngnuW+APNG  IHDRddpTtEXtSoftwareAdobe ImageReadyqe< IDATx]o#] {E.&]$ ` Hs8L%pONcRTR@{uh4 ivk2Fz.;y} N\unSV[?t`#0jwE@9Pxsnu a8_oA/`@%@{sCA;?b>N PiA` 60gvM%̖ƅ nȦ窶c46}[x/^ qaF̄ږj꣩f:釆*%(n`ta8}O#iS0VԚ">,Oɛ!ZEAqCf5[aȔa$}V,ȇg;+Zm"L^Bޗ&rBNC#ێOrLc <0Yןe`d>EJm@>ľK7e-LL#aҚD*$t Uй h'ye3,~S`7ZF 0#jTc&E_4|V{$Ur hI|DLs65k7<03 pYLLQ03|: 8kd:UGx1㉭NT@ iC‡C[) Et%X;;^14Q/?Zx'Y.phR滎&#s L".r-8NV (!sDZ>cN(KhOyҌlL鐜.SKv,IOm*v #B3v8ހzyNs\qy:Y>K0!jF `2Ө9)S vhv'9aAf`dDOP.-@eIdtu$EE,4ep:%sFVl\æXv#T@g<೴v|}e!bbLjp@9֛+ !БxQ82e] 䭦PѵbI'zL|W_ 1vGMxYXf9X=#^֮cr;$"<,%B ꦏ)v $>JB|VmZ_Y8*\7Mx=l\EaQ^r rTԵGP} wt9*Eez);~6z9J 3j~4IX.kI/K~ I>IgFZ%Cy&+Ӊ'NGd)֮KNv+x(^Ȳ<}5'u')Fz z+6Q1KvyN rgIBC[P=ӠkˠjA=\/83t@=QiBzg)r8+̌94LǽQz±e@8&ºϒ2: e1Cu^гD3d#n)=w x[XY3M.Gd.y(=q@}A8;i^$8I*Z<Lܹe"1,ʎ}Ij?秙O^j@Ax_s1twjV6ۆyv9k]e:_a}~[I@4FX>Us|%L#:Fq\[CL~Ҩ?X7bu̹bT!C~F /'C_) ks?S2\LuOfT,AP^8*9/ws)MlmRq*"q])@((E1ɏe Bު `o>. L"'tF9U @BAO-6dy%<\ IENDB`PK\qnn!assets/fonts/UserRegistration.svgnuW+A { "fontFamily": "UserRegistration", "majorVersion": 1, "minorVersion": 0, "fontURL": "https://wpeverest.com/wordpress-plugins/user-registration/", "description": "Iconfont for Everest FormFont generated with IcoMoon.\nFont generated by IcoMoon.", "copyright": "2019", "designer": "Nilan Bhasima", "designerURL": "https://dribbble.com/nilanzva", "license": "SIL OFL", "licenseURL": "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL", "version": "Version 1.0", "fontId": "UserRegistration", "psName": "UserRegistration", "subFamily": "Regular", "fullName": "UserRegistration" } PK\r<**!assets/fonts/UserRegistration.eotnuW+A*)LPo= UserRegistrationRegularVersion 1.0 UserRegistration 0OS/2D`cmap UTgasppglyfdx!headi#6hhea#<$hmtx #`loca$ Xmaxp;$d nameڰ>-$.post) 3 @'@@ 8  '  797979@ #/2#"&51463>32!!!#35#537#535#3!!(88((88(#d99d#@@@@@@8((88((8(//'I@@@@@@@ #/#"&546312!5>323#35#5!!!!535#3#8((88((8`#d99d#@@@@@@@(88((88(I(//'w@@@@@@@@ 535#3!!!!#35#3@@@@@@@@@@@@@@@ '32#"&51463#2#"&51463%#3#53!!!!5#53#3%%%%%%%%@@@@@%%%%%%%%@@@@@@@@ '!!!!=.@ˇ<-@@ +I"&546321#"327>76514'.'&#"'.'&547>76321#PppPPppPPEFiiFEPPEFiiFEP]QRz####zRQ]]QRz####zRQ]pPPppPPp@iFEPPEFiiFEPPEFi##zRQ]]QRz####zRQ]]QRz##@#'7!!#3#5##5#535#53533533#3#!!@@@@@@@@@@@@!#53"&546321##53!!@@@   @@  @@@ #5#!5##!!!@@@@@   %!!!!-@.=@@@@ 3##5#3!!7!!@@@@@@@ ! !7!7'!@@ZmSSZ@ #(/F3533##5#2654&#"13%77./!''!!.5147>76321@@@@@@`B^^BB^^Bӭ?eӀ @=))..))=@@@@@^BB^^BB^ZSE6Ӏ m .))==)).@ &)I#7''32654"''7./7'!!<547>763:31:321H)-q-ZDpPPppPPpSӀSKo@C.-44-.C@j* .r.ZPppPPppPӀ fH-4-.CC.-4@ ),169A2#"&51463#2#"&51463#2#"&514637!''!3!3%%%%%%%%%%%%ӭ@Ӏ@@@%%%%%%%%%%%%mZS@Ӏm )7E!54&#"1!!"&546321#3"&546321#3"&546321#!35463213K55K%%%%%%%%%%%%pPPp@5KK5%%%%%%%%%%%%@PppP@@:Hb'77'"326514&#%!54&#"1!.5181"&546321>312'5!#"&546312!35463213#154'.'&#"!4632#1"&567>7632 Y99BEWF./55/.FVDC::Y pPPppPPp#$a<55LL44=@` r2654&#"13!2654&#"13"1>3892#1"&'327>7671#89"'.'&547>76312#&'.'94632#1"&5"&546321##"'.'&/.54671367>763121B^^BB^^B@B^^BB^^B*'(F .))==)). F('**''G .))==)). F('*%%%%%%%%''`88=?;:c'&!!''c<;AA<;e&'!! ^BB^^BB^^BB^^BB^ #=))..))=# #=))..))=# %%%%@%%%%Z4*+=B.-7 P--O900ED0/9O--O #%!5>325!#"&546312!!!!#d99d# 8((88((8 @I(//'@@(88((88( @ #'2#"&51463!!!5!7!5!5!5>32!!(88((88(#d99d#8((88((8@@@@I(//'w @*7Ecq}814&'5'>5<9.'#7>?>7.'#267.#"73'>32'>54&'#1"&'57.#"31267./7>7>?.5467.''#"'.'&5181467#!!5!!367>7632 ') 7  -:- /)*/\/0/0//)* --  }') (b6B;:W@L-,1C::W"@4 () 4- $- % +rA;;A$%$%;AA;+$  $- () 45"W:;B!@@@@+#$2W::B7c(c '7!5##35#!c@@@ffc@@@@` -K#5#526513.'#./.547>7632527>7654'.'&#"13@@@%@@ ;7_%`@@II@@`#45c##<45NN54<<45NN54<@%@89G$V.I@@__@@I.V&KDDhN54<<45NN54<<45N`[27>7654'.'&#"137#546?>54&'1.'1.#181"5'>73>32#15110'.'&'1.547>7632<45NN54<<45NN54<`p   42    ]H#45c####c54#`@@II@@`N54<<45NN54<<45N@@ p   '#  # \HKDDhhDDK$V.I@@__@@I.V&@ .Uj2#"&514635"326514&#!!47>763210'.'&'#3#3#3#5#535#535#5#!4&#"167>76%%%%5KK55KK5F./55/.F@)_6 T))i@@@@@@@@@@`pPPp:!""!:%%%%@K55KK55K5/.FF./5:e*X::?@@@@@@@@@@@@@PppP)++P#""#P++@ !'+26:A!3#3#3#3#3#3##533##53!!#53535#535#535#5#53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #'+19?CI3#5#53#53#3#3#3#3##3#3#533#!35!353#!!!!3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#5!#5!5!##%!53!53@@@@@@@@@@@@@Fv33!4&#"31265814'.'&#"'>73533#7327>7651"&'##5.'5#53>73.5147>7632# @`K55KK55KW:;BB;:W @%@4PEFiiFEPPEFi@@@#535%33#!5#!!53333#3@@@@@1@@ @@@8x@@@@@@@ @ #'-!35!3!5=!!5!5%!!#5=3#5!!!@@@@@@@@@@@@@@@@@@@@@@@@@ "!#5!###!!!5!5#535#535#53`@`.Ҁ@@@@@@@@@@@ %77''!5!5!5!5!5!''77````MMvMM%@@@@@@ (6N!!!!!!4&#"13!4!32651!1!8126?7#1!"&51#54631!213@ @@8(Z8((8 @1 E^B@B^8(B^@@@@@  ` (8 (88( ! $ B^^B(8^B#5!!'#'7!!@@$@$-qq.b$$-qq1JOU30291#5.51332651814&'1.'1.'1.546?531#4&#"1811!!#5!! 2D6)@*6@%%   05)@*6@%% .@@ I2,D $$ E,%%  .,D $$ E,%%  1@ !'7'7'7!!---f--@----@ ll;dxMnK:3:31>54&'1.76&5.'1.#"131>7320325"110813>71>3:31:32&5.#*3326?6&'.#"17"32654&#4+.'1.54671045049>54&'.'1&"#"1531267045>71>716232115010232671645<#1%0&'.'>5<5.'1.'#'04'4&'.'1>754&'&51130297>767>714&#*#*#3.'5.54673>3:3#'1.'1&6767>76740504949#"&'623267>7:3211&'.'5.54671>71.'1.7>71323232671>71623:12111#"'&3:3126746716&'.'3.'53267>?0207>732#1 '01.#"370&7 j        X9S    N   #}X.2[[()2- P//4834U!!  &7) +%3& ;#++V&&  %A/ 3 93   P 11"       ") K'  0HjQ  $$70*&&";   %  )         #    +   B':% ,+33^^+  +-%$5 1$%/*`3$ 1.'E%z(2++;  -B#$&    3  2>   !;82!-  ) &   );2 = -   =o_< ْْ+@@@@@@@@@@@@@@@@@@@@@@@@@@@l d<4XN<8t z *  Z \ ^ +>K *{  P :0  X?m      [   5    . tj : _ ~UserRegistrationUserRegistrationhttps://wpeverest.com/wordpress-plugins/user-registration/https://wpeverest.com/wordpress-plugins/user-registration/Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.20192019Nilan BhasimaNilan Bhasimahttps://dribbble.com/nilanzvahttps://dribbble.com/nilanzvaSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0UserRegistrationUserRegistrationUserRegistrationUserRegistrationRegularRegularUserRegistrationUserRegistrationPK\K * *"assets/fonts/UserRegistration.woffnuW+AwOFF* )OS/2``DcmaphTT Ugaspglyf!!dhead#P66ihhea#$$hmtx# loca$XXXmaxp$ ;name$..ڰ>-post* 3 @'@@ 8  '  797979@ #/2#"&51463>32!!!#35#537#535#3!!(88((88(#d99d#@@@@@@8((88((8(//'I@@@@@@@ #/#"&546312!5>323#35#5!!!!535#3#8((88((8`#d99d#@@@@@@@(88((88(I(//'w@@@@@@@@ 535#3!!!!#35#3@@@@@@@@@@@@@@@ '32#"&51463#2#"&51463%#3#53!!!!5#53#3%%%%%%%%@@@@@%%%%%%%%@@@@@@@@ '!!!!=.@ˇ<-@@ +I"&546321#"327>76514'.'&#"'.'&547>76321#PppPPppPPEFiiFEPPEFiiFEP]QRz####zRQ]]QRz####zRQ]pPPppPPp@iFEPPEFiiFEPPEFi##zRQ]]QRz####zRQ]]QRz##@#'7!!#3#5##5#535#53533533#3#!!@@@@@@@@@@@@!#53"&546321##53!!@@@   @@  @@@ #5#!5##!!!@@@@@   %!!!!-@.=@@@@ 3##5#3!!7!!@@@@@@@ ! !7!7'!@@ZmSSZ@ #(/F3533##5#2654&#"13%77./!''!!.5147>76321@@@@@@`B^^BB^^Bӭ?eӀ @=))..))=@@@@@^BB^^BB^ZSE6Ӏ m .))==)).@ &)I#7''32654"''7./7'!!<547>763:31:321H)-q-ZDpPPppPPpSӀSKo@C.-44-.C@j* .r.ZPppPPppPӀ fH-4-.CC.-4@ ),169A2#"&51463#2#"&51463#2#"&514637!''!3!3%%%%%%%%%%%%ӭ@Ӏ@@@%%%%%%%%%%%%mZS@Ӏm )7E!54&#"1!!"&546321#3"&546321#3"&546321#!35463213K55K%%%%%%%%%%%%pPPp@5KK5%%%%%%%%%%%%@PppP@@:Hb'77'"326514&#%!54&#"1!.5181"&546321>312'5!#"&546312!35463213#154'.'&#"!4632#1"&567>7632 Y99BEWF./55/.FVDC::Y pPPppPPp#$a<55LL44=@` r2654&#"13!2654&#"13"1>3892#1"&'327>7671#89"'.'&547>76312#&'.'94632#1"&5"&546321##"'.'&/.54671367>763121B^^BB^^B@B^^BB^^B*'(F .))==)). F('**''G .))==)). F('*%%%%%%%%''`88=?;:c'&!!''c<;AA<;e&'!! ^BB^^BB^^BB^^BB^ #=))..))=# #=))..))=# %%%%@%%%%Z4*+=B.-7 P--O900ED0/9O--O #%!5>325!#"&546312!!!!#d99d# 8((88((8 @I(//'@@(88((88( @ #'2#"&51463!!!5!7!5!5!5>32!!(88((88(#d99d#8((88((8@@@@I(//'w @*7Ecq}814&'5'>5<9.'#7>?>7.'#267.#"73'>32'>54&'#1"&'57.#"31267./7>7>?.5467.''#"'.'&5181467#!!5!!367>7632 ') 7  -:- /)*/\/0/0//)* --  }') (b6B;:W@L-,1C::W"@4 () 4- $- % +rA;;A$%$%;AA;+$  $- () 45"W:;B!@@@@+#$2W::B7c(c '7!5##35#!c@@@ffc@@@@` -K#5#526513.'#./.547>7632527>7654'.'&#"13@@@%@@ ;7_%`@@II@@`#45c##<45NN54<<45NN54<@%@89G$V.I@@__@@I.V&KDDhN54<<45NN54<<45N`[27>7654'.'&#"137#546?>54&'1.'1.#181"5'>73>32#15110'.'&'1.547>7632<45NN54<<45NN54<`p   42    ]H#45c####c54#`@@II@@`N54<<45NN54<<45N@@ p   '#  # \HKDDhhDDK$V.I@@__@@I.V&@ .Uj2#"&514635"326514&#!!47>763210'.'&'#3#3#3#5#535#535#5#!4&#"167>76%%%%5KK55KK5F./55/.F@)_6 T))i@@@@@@@@@@`pPPp:!""!:%%%%@K55KK55K5/.FF./5:e*X::?@@@@@@@@@@@@@PppP)++P#""#P++@ !'+26:A!3#3#3#3#3#3##533##53!!#53535#535#535#5#53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #'+19?CI3#5#53#53#3#3#3#3##3#3#533#!35!353#!!!!3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#5!#5!5!##%!53!53@@@@@@@@@@@@@Fv33!4&#"31265814'.'&#"'>73533#7327>7651"&'##5.'5#53>73.5147>7632# @`K55KK55KW:;BB;:W @%@4PEFiiFEPPEFi@@@#535%33#!5#!!53333#3@@@@@1@@ @@@8x@@@@@@@ @ #'-!35!3!5=!!5!5%!!#5=3#5!!!@@@@@@@@@@@@@@@@@@@@@@@@@ "!#5!###!!!5!5#535#535#53`@`.Ҁ@@@@@@@@@@@ %77''!5!5!5!5!5!''77````MMvMM%@@@@@@ (6N!!!!!!4&#"13!4!32651!1!8126?7#1!"&51#54631!213@ @@8(Z8((8 @1 E^B@B^8(B^@@@@@  ` (8 (88( ! $ B^^B(8^B#5!!'#'7!!@@$@$-qq.b$$-qq1JOU30291#5.51332651814&'1.'1.'1.546?531#4&#"1811!!#5!! 2D6)@*6@%%   05)@*6@%% .@@ I2,D $$ E,%%  .,D $$ E,%%  1@ !'7'7'7!!---f--@----@ ll;dxMnK:3:31>54&'1.76&5.'1.#"131>7320325"110813>71>3:31:32&5.#*3326?6&'.#"17"32654&#4+.'1.54671045049>54&'.'1&"#"1531267045>71>716232115010232671645<#1%0&'.'>5<5.'1.'#'04'4&'.'1>754&'&51130297>767>714&#*#*#3.'5.54673>3:3#'1.'1&6767>76740504949#"&'623267>7:3211&'.'5.54671>71.'1.7>71323232671>71623:12111#"'&3:3126746716&'.'3.'53267>?0207>732#1 '01.#"370&7 j        X9S    N   #}X.2[[()2- P//4834U!!  &7) +%3& ;#++V&&  %A/ 3 93   P 11"       ") K'  0HjQ  $$70*&&";   %  )         #    +   B':% ,+33^^+  +-%$5 1$%/*`3$ 1.'E%z(2++;  -B#$&    3  2>   !;82!-  ) &   );2 = -   =o_< ْْ+@@@@@@@@@@@@@@@@@@@@@@@@@@@l d<4XN<8t z *  Z \ ^ +>K *{  P :0  X?m      [   5    . tj : _ ~UserRegistrationUserRegistrationhttps://wpeverest.com/wordpress-plugins/user-registration/https://wpeverest.com/wordpress-plugins/user-registration/Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.20192019Nilan BhasimaNilan Bhasimahttps://dribbble.com/nilanzvahttps://dribbble.com/nilanzvaSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0UserRegistrationUserRegistrationUserRegistrationUserRegistrationRegularRegularUserRegistrationUserRegistrationPK\x))!assets/fonts/UserRegistration.ttfnuW+A 0OS/2D`cmap UTgasppglyfdx!headi#6hhea#<$hmtx #`loca$ Xmaxp;$d nameڰ>-$.post) 3 @'@@ 8  '  797979@ #/2#"&51463>32!!!#35#537#535#3!!(88((88(#d99d#@@@@@@8((88((8(//'I@@@@@@@ #/#"&546312!5>323#35#5!!!!535#3#8((88((8`#d99d#@@@@@@@(88((88(I(//'w@@@@@@@@ 535#3!!!!#35#3@@@@@@@@@@@@@@@ '32#"&51463#2#"&51463%#3#53!!!!5#53#3%%%%%%%%@@@@@%%%%%%%%@@@@@@@@ '!!!!=.@ˇ<-@@ +I"&546321#"327>76514'.'&#"'.'&547>76321#PppPPppPPEFiiFEPPEFiiFEP]QRz####zRQ]]QRz####zRQ]pPPppPPp@iFEPPEFiiFEPPEFi##zRQ]]QRz####zRQ]]QRz##@#'7!!#3#5##5#535#53533533#3#!!@@@@@@@@@@@@!#53"&546321##53!!@@@   @@  @@@ #5#!5##!!!@@@@@   %!!!!-@.=@@@@ 3##5#3!!7!!@@@@@@@ ! !7!7'!@@ZmSSZ@ #(/F3533##5#2654&#"13%77./!''!!.5147>76321@@@@@@`B^^BB^^Bӭ?eӀ @=))..))=@@@@@^BB^^BB^ZSE6Ӏ m .))==)).@ &)I#7''32654"''7./7'!!<547>763:31:321H)-q-ZDpPPppPPpSӀSKo@C.-44-.C@j* .r.ZPppPPppPӀ fH-4-.CC.-4@ ),169A2#"&51463#2#"&51463#2#"&514637!''!3!3%%%%%%%%%%%%ӭ@Ӏ@@@%%%%%%%%%%%%mZS@Ӏm )7E!54&#"1!!"&546321#3"&546321#3"&546321#!35463213K55K%%%%%%%%%%%%pPPp@5KK5%%%%%%%%%%%%@PppP@@:Hb'77'"326514&#%!54&#"1!.5181"&546321>312'5!#"&546312!35463213#154'.'&#"!4632#1"&567>7632 Y99BEWF./55/.FVDC::Y pPPppPPp#$a<55LL44=@` r2654&#"13!2654&#"13"1>3892#1"&'327>7671#89"'.'&547>76312#&'.'94632#1"&5"&546321##"'.'&/.54671367>763121B^^BB^^B@B^^BB^^B*'(F .))==)). F('**''G .))==)). F('*%%%%%%%%''`88=?;:c'&!!''c<;AA<;e&'!! ^BB^^BB^^BB^^BB^ #=))..))=# #=))..))=# %%%%@%%%%Z4*+=B.-7 P--O900ED0/9O--O #%!5>325!#"&546312!!!!#d99d# 8((88((8 @I(//'@@(88((88( @ #'2#"&51463!!!5!7!5!5!5>32!!(88((88(#d99d#8((88((8@@@@I(//'w @*7Ecq}814&'5'>5<9.'#7>?>7.'#267.#"73'>32'>54&'#1"&'57.#"31267./7>7>?.5467.''#"'.'&5181467#!!5!!367>7632 ') 7  -:- /)*/\/0/0//)* --  }') (b6B;:W@L-,1C::W"@4 () 4- $- % +rA;;A$%$%;AA;+$  $- () 45"W:;B!@@@@+#$2W::B7c(c '7!5##35#!c@@@ffc@@@@` -K#5#526513.'#./.547>7632527>7654'.'&#"13@@@%@@ ;7_%`@@II@@`#45c##<45NN54<<45NN54<@%@89G$V.I@@__@@I.V&KDDhN54<<45NN54<<45N`[27>7654'.'&#"137#546?>54&'1.'1.#181"5'>73>32#15110'.'&'1.547>7632<45NN54<<45NN54<`p   42    ]H#45c####c54#`@@II@@`N54<<45NN54<<45N@@ p   '#  # \HKDDhhDDK$V.I@@__@@I.V&@ .Uj2#"&514635"326514&#!!47>763210'.'&'#3#3#3#5#535#535#5#!4&#"167>76%%%%5KK55KK5F./55/.F@)_6 T))i@@@@@@@@@@`pPPp:!""!:%%%%@K55KK55K5/.FF./5:e*X::?@@@@@@@@@@@@@PppP)++P#""#P++@ !'+26:A!3#3#3#3#3#3##533##53!!#53535#535#535#5#53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #'+19?CI3#5#53#53#3#3#3#3##3#3#533#!35!353#!!!!3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#5!#5!5!##%!53!53@@@@@@@@@@@@@Fv33!4&#"31265814'.'&#"'>73533#7327>7651"&'##5.'5#53>73.5147>7632# @`K55KK55KW:;BB;:W @%@4PEFiiFEPPEFi@@@#535%33#!5#!!53333#3@@@@@1@@ @@@8x@@@@@@@ @ #'-!35!3!5=!!5!5%!!#5=3#5!!!@@@@@@@@@@@@@@@@@@@@@@@@@ "!#5!###!!!5!5#535#535#53`@`.Ҁ@@@@@@@@@@@ %77''!5!5!5!5!5!''77````MMvMM%@@@@@@ (6N!!!!!!4&#"13!4!32651!1!8126?7#1!"&51#54631!213@ @@8(Z8((8 @1 E^B@B^8(B^@@@@@  ` (8 (88( ! $ B^^B(8^B#5!!'#'7!!@@$@$-qq.b$$-qq1JOU30291#5.51332651814&'1.'1.'1.546?531#4&#"1811!!#5!! 2D6)@*6@%%   05)@*6@%% .@@ I2,D $$ E,%%  .,D $$ E,%%  1@ !'7'7'7!!---f--@----@ ll;dxMnK:3:31>54&'1.76&5.'1.#"131>7320325"110813>71>3:31:32&5.#*3326?6&'.#"17"32654&#4+.'1.54671045049>54&'.'1&"#"1531267045>71>716232115010232671645<#1%0&'.'>5<5.'1.'#'04'4&'.'1>754&'&51130297>767>714&#*#*#3.'5.54673>3:3#'1.'1&6767>76740504949#"&'623267>7:3211&'.'5.54671>71.'1.7>71323232671>71623:12111#"'&3:3126746716&'.'3.'53267>?0207>732#1 '01.#"370&7 j        X9S    N   #}X.2[[()2- P//4834U!!  &7) +%3& ;#++V&&  %A/ 3 93   P 11"       ") K'  0HjQ  $$70*&&";   %  )         #    +   B':% ,+33^^+  +-%$5 1$%/*`3$ 1.'E%z(2++;  -B#$&    3  2>   !;82!-  ) &   );2 = -   =o_< ْْ+@@@@@@@@@@@@@@@@@@@@@@@@@@@l d<4XN<8t z *  Z \ ^ +>K *{  P :0  X?m      [   5    . tj : _ ~UserRegistrationUserRegistrationhttps://wpeverest.com/wordpress-plugins/user-registration/https://wpeverest.com/wordpress-plugins/user-registration/Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.Iconfont for Everest FormFont generated with IcoMoon. Font generated by IcoMoon.20192019Nilan BhasimaNilan Bhasimahttps://dribbble.com/nilanzvahttps://dribbble.com/nilanzvaSIL OFLSIL OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLhttp://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFLVersion 1.0Version 1.0UserRegistrationUserRegistrationUserRegistrationUserRegistrationRegularRegularUserRegistrationUserRegistrationPK\kK::assets/css/review-rtl.cssnuW+A#user-registration-review-notice.user-registration-review-notice{padding:15px 0 15px 15px;background-color:#fff}#user-registration-review-notice .notice-dismiss:before{display:none}#user-registration-review-notice .user-registration-review-thumbnail{float:right;text-align:center;margin:5px 20px}#user-registration-review-notice .user-registration-review-thumbnail img{border-radius:5px;vertical-align:middle}#user-registration-review-notice .user-registration-review-text{overflow:hidden}#user-registration-review-notice .user-registration-review-text h3{font-size:20px;margin:0 0 5px;line-height:1.3}#user-registration-review-notice .user-registration-review-text p{font-size:13px}#user-registration-review-notice .user-registration-review-ul{margin:0;padding:0}#user-registration-review-notice .user-registration-review-ul li{display:inline-block;margin-left:10px}#user-registration-review-notice .user-registration-review-ul li a{display:inline-block;text-decoration:none;position:relative}#user-registration-review-notice .user-registration-review-ul li a span{margin-left:5px}PK\assets/css/menu.scssnuW+A/** * menu.scss * Styles applied to dashboard menu items added via UserRegistration. * Adds icons to top level menu items, etc. */ /** * Imports */ @import 'variables'; @import 'mixins'; /** * Styling begins */ .ur_plugin_upgrade_notice { font-weight: normal; color: #fff; background: #d54d21; padding: 1em; margin: 9px 0; &::before { content: '\f348'; display: inline-block; font: 400 18px/1 dashicons; speak: none; margin: 0 8px 0 -2px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; vertical-align: top; } } /** * Plugin Updater. */ .user-registration-updater-licensed { th, td { box-shadow: none !important; } } .user-registration-deactivation-notice { th, td { box-shadow: none !important; } } .user-registration-updater-license-key { border: 0; font-size: 13px; font-weight: 400; padding: 6px 12px; margin: 5px 20px 15px 40px; background-color: rgba(0, 0, 0, .03); line-height: 27px; input { margin: 0 4px; vertical-align: middle; } &::before { color: #32373c; content: '\f160'; margin: 0 8px 0 -2px; display: inline-block; font: 400 20px/27px dashicons; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; vertical-align: middle; } } .wp-list-table { &.users { .ur-user-notification { td { padding: 0; text-align: center; a { display: none; padding: 10px; box-shadow: none; background: lighten(#475bb2, 45%); border: 1px solid lighten(#475bb2, 25%) } } } } } /** * Progressbar styles **/ .user-registration-progress { display: flex; height: 1rem; overflow: hidden; font-size: .75rem; margin: 1rem 0; background-color: $color_gray_five; border-radius: .25rem; .user-registration-progress-bar { display: flex; flex-direction: column; justify-content: center; color: $white; text-align: center; white-space: nowrap; background-color: $primary_color; transition: width .6s ease; } } PK\ª薴assets/css/admin.scssnuW+A/** * admin.scss * General User Registration admin styles. */ /** * Imports */ @import "variables"; @import "mixins"; @import "fonts"; @import "button"; @import "tables"; /** * Styling begins */ .blockUI.blockOverlay { @include loader(); } .ur-spinner { @include loader(); } /** * Keyframe animation */ @keyframes spin { 100% { transform: rotate( 360deg ); } } .ur-export-users-page { margin-top: 6px; .nav-tab-content { .nav-tab-inside { .postbox { width: 50%; flex: 1; } } .hndle, .stuffbox .hndle { margin: 10px; padding-bottom: 10px; } } } /** * Addons page **/ .ur_addons_wrap { .products { overflow: hidden; display: flex; flex-wrap: wrap; li { margin: 0 1% 1% 0 !important; padding: 0; vertical-align: top; width: 19.2%; float: left; &:nth-child(5n) { margin: 0 0 1% 0!important; } a { text-decoration: none; color: inherit; border: 1px solid #ddd; display: block; min-height: 220px; overflow: hidden; background: #f5f5f5; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.1); .product-image { display: block; background: $white; img { max-width: 100%; display: block; margin: 0; } } img.extension-thumb + h3 { display: none; } .price { display: none; } h2, h3 { margin: 0 !important; padding: 20px !important; background: $white; } p { padding: 20px !important; margin: 0 !important; border-top: 1px solid #f1f1f1; } &:hover, &:focus { background-color: $white; } } } } } .clear { clear: both; } .wrap.user-registration div.updated, .wrap.user-registration div.error { margin-top: 10px; } /** * Form Builder Styles **/ .user-registration_page_add-new-registration { #wpfooter { display: none; //Hide WP footer on form builder page } .ur-form-container { margin: 0; .ur-loading-container { position: fixed; left: 160px; right: 0; top: 0; bottom: 0; background: $white; display: flex; z-index: 9; .ur-circle-loading { margin: auto; left: 30px; } } #menu-management { margin-top: 0; .menu-edit { position: fixed; left: 160px; right: 0; border: none; box-shadow: none; margin-bottom: 0; } } // Form Builder Fullscreen mode #ur-full-screen-mode { &.closed { .ur-fs-close-label { display:none; } } &.opened { .ur-fs-open-label { display:none; } } } } #menu-management-liquid { margin-top: 0; margin-left: -20px; min-width: calc(100% + 20px); } #nav-menu-header { padding: 12px; display: flex; align-items: center; position: relative; border-color: $border_color; background-color: $white; z-index: 9; .ur-brand-logo { border-right: 1px solid $border_color; img { width: 32px; height: 32px; padding: 0 8px; margin-right: 8px; display: flex; } } &::before, &::after { content: ''; display: flex; position: absolute; left: 0; right: 0; bottom: 0; background: $white; } &::before { top: 0; z-index: -1; } &::after { height: 10px; box-shadow: 0px 4px 8px transparentize($gray_base, 0.92); z-index: -2; } } .major-publishing-actions { clear: both; line-height: 28px; margin-left: auto; .publishing-action { text-align: right; float: right; input { &.code { width: 265px; height: 33px; padding: 0 6px; margin: 0; border-color: $border_color; background-color: $color_gray_five; border-radius: 3px 0 0 3px; } } } #copy-shortcode { margin-left: -5px; border-radius: 0 4px 4px 0; svg { fill: $white; margin-bottom: 5px; vertical-align: middle; } } } } /** * Backbone modal dialog */ .ur-backbone-modal { * { box-sizing: border-box; } .ur-backbone-modal-content { position: fixed; background-color: $white; z-index: 100000; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 500px; article { overflow: auto; } } &.ur-backbone-modal-content { width: 75%; min-width: 500px; } .select2-container { width: 100% !important; } } .ur-backbone-modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; min-height: 360px; background-color: $gray_base; opacity: 0.7; z-index: 99900; } .ur-backbone-modal-main { padding-bottom: 55px; header, article { display: block; position: relative; } .ur-backbone-modal-header { height: auto; background-color: $color_gray_five; padding: 1em 1.5em; border-bottom: 1px solid $border_color; h1 { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.5em; } .modal-close-link { cursor: pointer; color: #777; height: 54px; width: 54px; padding: 0; position: absolute; top: 0; right: 0; text-align: center; border: 0; border-left: 1px solid $border_color; background-color: transparent; transition: color 0.1s ease-in-out, background 0.1s ease-in-out; &::before { font: normal 22px/50px 'dashicons' !important; color: $color_gray_two; display: block; content: '\f335'; font-weight: 300; } &:hover, &:focus { background-color: $color_gray_four; border-color: #ccc; color: $gray_base; } &:focus { outline: none; } } } article { padding: 1.5em; p { margin: 1.5em 0; } p:first-child { margin-top: 0; } p:last-child { margin-bottom: 0; } .pagination { padding: 10px 0 0; text-align: center; } } footer { position: absolute; left: 0; right: 0; bottom: 0; z-index: 100; padding: 1em 1.5em; background-color: $color_gray_five; border-top: 1px solid #dfdfdf; box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1); .inner { float: right; line-height: 23px; .button { margin-bottom: 0; } } } } /** * Sweet Alert styling **/ .user-registration_page_add-new-registration { .swal2-container { .swal2-title { color: $gray_base; font-size: 24px; flex-wrap: wrap; margin-bottom: 24px; } .dashicons { color: $red; font-size: 28px; width: 56px; height: 56px; line-height: 56px; margin: 0 auto 20px; border: 2px solid $red; border-radius: 50%; } .ur-swal-title { flex: 100%; } .swal2-content, p { color: $color_gray_one; font-size: 1em; } } } .user-registration { nav.ur-nav-tab-wrapper { margin: 1.5em 0 1em; } // Setting Page Submenu #mainform { > .subsubsub { background: #e5e5e5; float: none; a { display: block; padding: 7px 10px; &.current { color: $white; background: $primary_color; } } } } textarea[disabled="disabled"] { background: #DFDFDF !important; } table.form-table { margin: 0; position: relative; fieldset { margin-top: 4px; img.help_tip, .user-registration-help-tip { margin: -3px 0 0 5px; } p.description { margin-bottom: 8px; } &:first-child { margin-top: 0; } } th { position: relative; padding-right: 24px; img.help_tip, .user-registration-help-tip { margin: 0 -24px 0 0; float: right; } } .select2-container { display: block; max-width: 350px; margin-bottom: 3px; } .forminp-radio ul { margin: 0; li { line-height: 1.4em; } } textarea.input-text { height: 100%; min-width: 150px; display: block; } input.regular-input { width: 25em; } textarea.wide-input { width: 100%; } .help_tip, .user-registration-help-tip { padding: 0; margin: -4px 0 0 5px; vertical-align: middle; cursor: help; line-height: 1; } .wp-list-table .user-registration-help-tip { float: none; } .iris-picker { z-index: 100; display: none; position: absolute; border: 1px solid #ccc; border-radius: 3px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); .ui-slider { border: 0 !important; margin: 0 !important; width: auto !important; height: auto !important; background: none transparent !important; .ui-slider-handle { margin-bottom: 0 !important; } } } .colorpickpreview { padding: 3px; padding-left: 20px; border: 1px solid $border_color; border-right: 0; } .colorpick { border-left: 0; } .image_width_settings { vertical-align: middle; label { margin-left: 10px; } } .dashicons { margin-bottom: 2px; vertical-align: middle; } } } .ur-registered-from { display: flex; background-color: $white; * { box-sizing: border-box; } *:focus { outline: 0; } a { text-decoration: none; } h3 { color: $gray_base; font-weight: 500; } .ur-field { label { font-weight: 400; &:last-child { margin-bottom: 0; } } input { &[type='radio'], &[type='checkbox'] { opacity: 1; box-shadow: none; border-color: $border_color; } } } .select2 { &.select2-container { width: 100% !important; } } .wp-picker-container { .wp-picker-input-wrap { label { display: inline-block; width: auto; input.wp-color-picker { height: auto; padding: 3px 5px; } } } } .ur-no-pointer { pointer-events: none; } .ur-registered-item { cursor: move; padding: 4px; color: $color_gray_two; height: 110px; font-size: 12px; border-radius: 4px; margin: 0 8px 16px; display: flex; align-items: center; flex-direction: column; justify-content: center; text-align: center; width: calc(33.3333% - 16px); background-color: $color_gray_five; .ur-icon { font-size: 32px; margin-bottom: 4px; } &:hover { background-color: $primary_color; color: $white; } &.ui-draggable-dragging { width: 110px !important; // Inherit js styles z-index: 9 !important; } &.ui-draggable-disabled { color: $color_gray_three; &.ur-upgradable-field { cursor: pointer !important; } &:hover { background: $color_gray_five; cursor: not-allowed; } } } .ur-registered-inputs { width: 412px; .ur-tabs { border: 0 none; padding: 0; font-size: 14px; .ur-tab-lists { background-color: $color_gray_five; background-image: none; padding: 0; border-radius: 0; margin: 0; display: flex; justify-content: space-between; border-bottom: none; border-top: 0 none; border-right: 0 none; border-left: 0 none; li { background-color: transparent; background-image: none; border-radius: 0; margin: 0; margin-bottom: -1px; padding: 0px; border: 0; flex: 1; text-align: center; &.active { margin-bottom: 0; padding-bottom: 0; } &.ui-state-disabled { opacity: 1; } a { float: none; text-decoration: none; margin: 0; border: none; display: block; color: $gray_base; background-color: transparent; padding: 12px 15px; font-weight: 500; cursor: pointer; &:focus { box-shadow: 0 0 0 0px transparent, 0 0 0px 0px transparent; } &.active { background-color: $white; color: $primary_color; line-height: 24px; } } } } .ur-tab-contents { height: calc(100vh - 130px); position: relative; overflow-y: auto; } .ur-tab-content { padding: 16px; .ur-search-fields { display: flex; align-items: center; position: relative; input.ur-type-text { height: 40px; padding: 8px 12px; font-size: 14px; background: $color_gray_five; border-color: $color_gray_five; border-radius: 4px; &::placeholder { color: $color_gray_three; } } svg { position: absolute; right: 12px; } } .ur-fields-not-found { text-align: center; margin-top: 2.85em; .ur-fields-not-found-title { font-size: 1.7em; } } &#ur-tab-registered-fields, &#ur-tab-field-options { background-color: $white; } h2 { margin: 16px 0; font-size: 1em; font-weight: 500; color: $gray_base; ~ hr { border-top: 1px solid $border_color; } } .ur-registered-list { display: flex; flex-wrap: wrap; width: calc(100% + 16px); margin-left: -8px; &:last-child { margin-bottom: 0; } } } } .ur-toggle-heading { cursor: pointer; &:before { content: '\f142'; cursor: pointer; display: block; font: 400 20px/1 Dashicons; line-height: .5!important; padding: 4px; position: relative; right: 0; top: 0; float: right; } &.closed { &:before { content: '\f140'; } } } } input[type='text'], input[type='date'], input[type='email'], input[type='file'], input[type='month'], input[type='number'], input[type='phone'], input[type='password'], input[type='tel'], input[type='time'], input[type='url'], input[type='week'], input[type='timepicker'], textarea, .ui-widget select, select { width: 100%; max-width: 100%; height: 32px; line-height: initial; display: block; color: $color_gray_one; font-size: 13px; padding: 4px 8px; border-radius: 3px; border: 1px solid $border_color; box-shadow: 0 0 0 transparent; &:focus { border-color: $primary_color; } &::placeholder { color: $color_gray_three; } &:disabled { color: $color_gray_three; background: $color_gray_five; } } select { padding-right: 0; } label { display: block; width: 100%; margin-bottom: 8px; color: $color_gray_one; font-size: 13px; font-weight: 500; line-height: 1.25; } textarea { padding: 10px; height: 100px; } .ur-builder-wrapper { position: relative; flex: 1; height: calc(100vh - 89px); background: lighten($color_gray_five, 3%); border-left: 1px solid $border_color; overflow-y: auto; input[type='text'], input[type='date'], input[type='email'], input[type='file'], input[type='month'], input[type='number'], input[type='phone'], input[type='password'], input[type='tel'], input[type='time'], input[type='url'], input[type='week'], input[type='timepicker'], textarea, select { &:disabled { background: $white; } } .ur-builder-header { display: flex; align-items: center; justify-content: space-between; } .ur-form-name-wrapper { display: inline-flex; flex-direction: row-reverse; margin: 16px 0; position: relative; .ur-edit-form-name { width: 32px; height: 32px; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 3px; margin-bottom: 0; color: $color_gray_one; background: $color_gray_four; border: 1px solid transparent; &::after { content: ''; border-radius: 3px; position: absolute; left: 32px; right: calc(100% - 32px); height: 30px; border-radius: 0 3px 3px 0; transition: all 0.3s ease 0s; } } input { color: $gray_base; background: none; font-size: 16px; font-weight: 500; width: auto; padding: 4px 8px; border-color: transparent; pointer-events: none; z-index: 1; border: 1px solid transparent; &.ur-editing { border-color: transparent; pointer-events: all; + .ur-edit-form-name { color: $white; background: $primary_color; border-radius: 3px 0 0 3px; border: 1px solid $primary_color; &::after { top: 0; right: 0; border: 1px solid $primary_color; } } } } } &.ur-multipart { .ur-button-quick-links { bottom: 60px; } .ur-builder-wrapper-footer { .button.button-style-customizer { bottom: 124px; } } } } .ur-selected-inputs { box-sizing: border-box; padding: 0 20px; .ur-single-row { border-radius: 3px; position: relative; border: 1px solid transparent; &:last-child { margin-bottom: 0; } .ur-grids { display: flex; position: absolute; right: 0; z-index: 1; opacity: 0; transition: all .2s ease-in; button { display: flex; border-radius: 0; border: 0; background-color: $color_gray_two; color: $white; font-size: 16px; height: auto; width: auto; cursor: pointer; padding: 4px 6px; line-height: 1; transition: all 0.1s ease-in-out; svg { width: 16px; height: 16px; font-size: 16px; fill: $white; } &:before { font-family: 'dashicons'; } &.ur-remove-row { &:hover { background: $red; } } &:hover { background: $primary_color; } &:first-child { border-radius: 3px 0 0 3px; border-right: 1px solid transparentize($white, 0.8) } &:nth-child(2) { border-radius: 0 3px 3px 0; } } .ur-toggle-grid-content { background: $white; padding: 1rem; position: absolute; top: 40px; right: 0; display: flex; flex-wrap: wrap; justify-content: center; white-space: nowrap; border: 1px solid $border_color; border-radius: 4px; box-shadow: 1px 4px 14px 1px transparentize($gray_base, 0.9); small { font-size: 12px; margin-bottom: 0.5rem; color: $color_gray-two; } .ur-grid-selector { cursor: pointer; display: flex; margin-right: 0.5rem; svg { width: 32px; height: 32px; fill: $color_gray_two; } &:last-child { margin-right: 0; } } &::before { content: ''; width: 8px; height: 8px; border: solid $border_color; border-width: 1px; border-left: transparent; border-bottom: transparent; position: absolute; top: -5px; right: 36px; background: $white; transform: rotate(-45deg); } } } .ur-grid-lists { width: 100%; display: flex; text-align: center; box-sizing: border-box; justify-content: center; border: 1px solid transparent; border-radius: 4px; transition: all 0.2s ease-in; .ur-grid-list-item { display: inline-block; text-align: left; border: 0 none; padding: 15px; flex: 1; border: 1px solid transparent; border-radius: 4px; transition: all 0.2s ease-in; .ur-selected-item { margin-bottom: 5px; position: relative; padding: 15px; cursor: move; border: 1px solid transparent; border-radius: 4px; transition: border-color 0.35s; .select2-container { width: 100% !important; .select2-search--inline { .select2-search__field { height: auto; min-width: 10px; background: none; margin: 0; } } } .ur-input-type-signature { canvas { background: transparentize($white, 0.5); border: 1px solid $border_color; } } &:last-child { margin-bottom: 0; } &:hover, &.ur-item-active { background: $white; border: 1px solid $primary_color; } &.ui-sortable-helper { box-shadow: 0 0 10px 5px transparentize($gray_base, 0.9); } &.ui-sortable-placeholder { visibility: visible !important; border: 1px dashed $color_gray_three; background-color: $color_gray_five; } .ur-action-buttons { display: none; position: absolute; right: 10px; width: 50px; text-align: center; padding: 0; font-size: 10px; top: 10px; color: $color_gray_three; span { cursor: pointer; font-size: 16px; height: auto; &:hover { color: $primary_color; } } &:hover { .ur-action-buttons { display: block; } } .ur-trash { &:hover { color: $red; } } } .ur_label_top_left { text-align: left; } .ur_label_center { text-align: center; } .ur_label_top_right { text-align: right; } .ur_label_disabled { display: none; } &:hover { .ur-action-buttons { display: block; } } } > li.ur-item-dragged { list-style: none; width: 100%; text-align: center; height: 60px !important; box-sizing: border-box; .spinner { float: none; } } .user-registration-dragged-me { display: table; width: 100%; height: 100%; .user-registration-dragged-me-text { display: table-cell; vertical-align: middle; text-align: center; p { display: inline-block; position: relative; color: $color_gray_three; padding-left: 26px; padding-top: 8px; &::before { position: absolute; font-family: 'Dashicons'; content: '\f545'; font-size: 22px; left: 0; top: 0; } } } &:empty { padding: 15px; text-align: center; border-radius: 4px; border: 1px dashed $color_gray_three; background-color: $color_gray_five; &::before { content: '\f132'; font-size: 32px; color: $color_gray_three; width: 32px; height: 32px; font-family: dashicons; display: table-cell; vertical-align: middle; } } } &.ur-sortable-active { .ur-registered-item { margin-bottom: 0; } .user-registration-dragged-me { display: none; } } &:first-child { border-radius: 4px 0 0 4px; } &:nth-child(2) { border-radius: 0; } &:nth-child(3){ border-radius: 0 4px 4px 0; } } } &:hover { .ur-grids { opacity: 1; } .ur-grid-lists { background: $white; border: 1px solid $color_gray_three; .ur-grid-list-item { border-left: 1px solid $color_gray_three; &:first-child { border-color: transparent; } } } } } .ur-add-new-row { display: block; margin: 20px auto; width: auto; height: 32px; text-align: center; font-family: inherit; &::before { width: 16px; height: 16px; font-size: 16px; margin-right: 10px; font-family: dashicons; vertical-align: middle; padding: 1px 10px 1px 0; border-right: 1px solid transparentize($white, 0.7); } } li.ur-registered-item { width: 120px !important; &.ui-sortable-placeholder { margin-left: 0; width: 100% !important; visibility: visible !important; border: 1px dashed $color_gray_three; background-color: $color_gray_five; } } } .ur-builder-wrapper-footer { .button.button-style-customizer { height: 48px; width: 48px; bottom: 72px; box-shadow: 1px 2px 8px transparentize($gray_base, 0.85); .dashicons { font-size: 24px; height: 24px; width: 24px; } } .ur-button-quick-links { width: 48px; height: 48px; position: fixed; cursor: pointer; color: $color_gray-one; display: flex; align-items: center; justify-content: center; right: 32px; bottom: 16px; background: $white; border: 1px solid $border_color; border-radius: 24px; box-shadow: 0px 2px 10px transparentize($gray_base, 0.9); z-index: 1; span { font-size: 20px; font-weight: 600; margin: 0 auto; } } .ur-quick-links-content { position: fixed; background: $white; padding: 12px 16px; border-radius: 4px; bottom: 58px; right: 30px; z-index: 2; width: 225px; border: 1px solid $border_color; box-shadow: 2px 4px 12px transparentize($gray_base, 0.9); li { margin-bottom: 8px; } a { color: $color_gray_one; &:hover { color: $primary_color; } } } } .ur-general-setting, .ur-advance-setting { margin: 16px 0; } .ur-advance-setting-block { margin-top: 25px; } .form-row { margin-bottom: 1em; .description { color: $color_gray_two; margin: 4px 0; display: block; } .ur-radio-list, .ur-checkbox-list { label { display: inline; } } } .ur-general-setting-block, .ur-advance-setting-block { display: none; } .add, .remove { background: $white; border: 1px solid $border_color; color: $color_gray_two; cursor: pointer; display: flex; flex: 1 0 32px; align-items: center; justify-content: center; height: 32px; max-width: 32px; border-radius: 4px; position: relative; &:hover { background: $primary_color; border-color: $primary_color; color: $white; } .dashicons { line-height: 22px; } } .add { margin-right: 8px; } .ur-options-list { li { display: flex; align-items: center; .editor-block-mover__control-drag-handle { margin-right: 8px; cursor: grab; svg { fill: $color_gray_two; } } input { margin-right: 8px; } } .ui-sortable-handle { padding: 5px; border-radius: 3px; border: 1px solid transparent; &:active{ padding: 5px; background: $white; border: 1px solid $primary_color; box-shadow: 0 0 20px rgba(0,0,0,.2); } &.ui-sortable-placeholder { background-color: $color_gray_four; visibility: visible !important; } } } .urcl-rules { display: flex; flex-wrap: wrap; margin-bottom: 8px; > div { margin-right: 8px; } .urcl-operator { width: 78px; } .urcl-field, .urcl-value { max-width: 27%; flex: 1 0 27%; } } } /** * Tooltips */ .tips { cursor: help; text-decoration: none; } img.tips { padding: 5px 0 0; } #tiptip_holder { display: none; z-index: 8675309; position: absolute; top: 0; /*rtl:ignore*/ left: 0; &.tip_top { padding-bottom: 5px; #tiptip_arrow_inner { margin-top: -7px; margin-left: -6px; border-top-color: $border_color; } } &.tip_bottom { padding-top: 5px; #tiptip_arrow_inner { margin-top: -5px; margin-left: -6px; border-bottom-color: $color_gray_one; } } &.tip_right { padding-left: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -5px; border-right-color: $border_color; } } &.tip_left { padding-right: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -7px; border-left-color: $border_color; } } } #tiptip_content, .ur_error_tip { color: $white; font-size: 0.9em; max-width: 150px; background: $color_gray_one; text-align: center; border-radius: 3px; padding: 0.618em 1em; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); code { padding: 1px; background: #888; } } #tiptip_arrow, #tiptip_arrow_inner { position: absolute; border-color: transparent; border-style: solid; border-width: 6px; height: 0; width: 0; } /*rtl:raw: #tiptip_arrow { right: 50%; margin-right: -6px; } */ .ur_error_tip { max-width: 20em; line-height: 1.8em; position: absolute; white-space: normal; background: $red; margin: 1.5em 1px 0 -1em; z-index: 9999999; &::after { content: ''; display: block; border: 8px solid $red; border-right-color: transparent; border-left-color: transparent; border-top-color: transparent; position: absolute; top: -3px; left: 50%; margin: -1em 0 0 -3px; } } /** * Help Tip */ .user-registration-help-tip { color: $color_gray_two; display: inline-block; font-size: 16px; font-style: normal; height: 16px; line-height: 16px; position: relative; vertical-align: middle; width: 16px; &::after { @include icon_dashicons('\f223'); cursor: help; } } /** * Select2 elements. */ .select2-results__option .wrap:before{ content:"\2610"; width:25px; height:25px; padding-right: 10px; } .select2-results__option[data-selected=true] .wrap:before{ content:"\2714"; } .select2-drop, .select2-dropdown { z-index: 999999 !important; } .select2-results { line-height: 1.5em; .select2-results__option, .select2-results__group { margin: 0; padding: 8px; } } .select2-dropdown { border-color: $color_gray_four; } .select2-dropdown--below { box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); } .select2-dropdown--above { box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1); } .select2-container { .select2-selection__rendered.ui-sortable li { cursor: move; } .select2-selection { border-color: $color_gray_four; } .select2-search__field { min-width: 20px; } .select2-selection--single { height: 32px; .select2-selection__rendered { line-height: 32px; padding-right: 24px; } .select2-selection__arrow { right: 3px; height: 30px; } } .select2-selection--multiple { min-height: 28px; border-radius: 4px; line-height: 1.5; border: 1px solid #ddd !important; li { margin: 0; } .select2-selection__choice { padding: 2px 6px; } } .select2-selection__clear { color: #999; margin-top: -1px; } .select2-search--inline { .select2-search__field { font-family: inherit; font-size: inherit; font-weight: inherit; padding: 3px 0; margin: 0; line-height: 1; min-height: 26px; } } } #smart-tags { text-align: center; } .form-settings-tab { cursor: pointer; padding: 10px 15px; color: $gray_base; background: $color_gray_four; margin-bottom: 10px; line-height: 1.2; border-radius: 4px; &.active { background: $primary_color; color: $white; } } #profile-page form#your-profile .flatpickr-input[readonly]{ background-color:$white } /** * Fullscreen Mode **/ body { &.ur-full-screen-mode { margin-top: -32px; #wpbody-content { padding-bottom: 45px; } #wpwrap { #wpcontent { margin-left: 0; padding-left: 0; #wpadminbar { display: none; } #wpbody { .ur-tab-content { padding: 20px; } #menu-management-liquid { margin-top: 0; .menu-edit { margin-bottom: 0; box-shadow: none; left: 0!important; } } } } #adminmenumain{ display: none; } } .ur-registered-from { .ur-registered-inputs { .ur-tabs { .ur-tab-contents { height: calc(100vh - 98px); } } } .ur-builder-wrapper { height: calc(100vh - 57px); } } } } /** * User Registration Builder Loading **/ @keyframes ur-circle-loading { 0%, 100% { animation-timing-function: cubic-bezier(0.2, 0, 0.8, 1); } 50% { animation-timing-function: cubic-bezier(0, 0.2, 1, 0.8); } 0% { transform: rotate(0deg) translate(0, -20px) scale(0); } 50% { transform: rotate(180deg) translate(0, -20px) scale(1); } 100% { transform: rotate(360deg) translate(0, -20px) scale(0); } } @-webkit-keyframes ur-circle-loading-keyframe { 0%, 100% { animation-timing-function: cubic-bezier(0.2, 0, 0.8, 1); } 50% { animation-timing-function: cubic-bezier(0, 0.2, 1, 0.8); } 0% { transform: rotate(0deg) translate(0, -20px) scale(0); } 50% { transform: rotate(180deg) translate(0, -20px) scale(1); } 100% { transform: rotate(360deg) translate(0, -20px) scale(0); } } @keyframes open-message { 0% { opacity: 0; transform: translateY(-120%); } 100% { transform: translateY(0px); } } @keyframes close-message { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(0.9); } } .ur-circle-loading { position: relative; width: 100px !important; height: 100px !important; transform: translate(-50px, -50px) scale(0.5) translate(50px, 50px); &::before, &::after { content: ''; position: absolute; top: 70px; left: 70px; animation: ur-circle-loading-keyframe 1.5s linear infinite; width: 60px; height: 60px; border-radius: 50%; background: #475bb2; } &::after { animation-delay: -0.75s; background: #668fe5; } } .ur-builder-message-container { position: fixed; top: 32px; left: 0; right: 0; max-width: 400px; margin: 0 auto; z-index: 9999; .ur-message { display: none; margin: 0 auto; margin-top: 16px; transition: all 240ms cubic-bezier(0, 0, 0.2, 1) 0s; z-index: 99999; height: 0px; .ur-success, .ur-error { background: $white; padding: 8px 16px; border-radius: 3px; border-left: 3px solid; position: relative; box-shadow: 0px 1px 8px 2px transparentize($gray_base, 0.9); p { margin: 8px 0; &::before, &::after { font-family: dashicons; width: 20px; height: 20px; font-size: 20px; margin-right: 8px; margin-top: -4px; line-height: 1; display: inline-block; vertical-align: middle; } } } .ur-success { border-color: $green; p { &::before { content: "\f12a"; color: $green; } } } .ur-error { border-color: $red; p { &::before { content: "\f534"; color: $red; } } } .dashicons { cursor: pointer; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); line-height: 1; } &.entered { display: block; height: 50px; animation: 240ms cubic-bezier(0.175, 0.885, 0.32, 1.175) 0s 1 normal both open-message; } &.exiting { display: block; animation: 120ms cubic-bezier(0.4, 0, 1, 1) 0s 1 normal both close-message; } &:first-child { margin-top: 1.5rem; } } } /** * Media Queries */ @media only screen and (max-width: 1599px) { .ur_addons_wrap { .products { li { width: 32.66%; &:nth-child(3n) { margin: 0 0 1% 0 !important; } &:nth-child(5n) { margin: 0 1% 1% 0 !important; } } } } } @media screen and (max-width: 1400px) { .ur-registered-from { .urcl-rules { .urcl-field { max-width: 61%; flex: 1 0 60%; margin-bottom: 5px; } .urcl-value { order: 4; max-width: 87%; flex: 1 0 86%; } .add { order: 3; margin-right: 0; } .remove { order: 5; } } } } @media only screen and (max-width: 1120px) { .ur_addons_wrap { .products { li { width: 49%; margin: 0 2% 2% 0 !important; &:nth-child(2n) { margin: 0 0 2% 0 !important; } &:nth-child(3n), &:nth-child(5n) { margin: 0 2% 2% 0 !important; } } } } } @media screen and (max-width: 960px) { .ur-registered-from { .ur-registered-inputs { .ur-tabs .ur-tab-content .ur-registered-list .ur-registered-item { float: none; width: 100%; } .ur-single-row .ur-grid-lists, .ur-single-row .ur-grid-lists .ur-grid-list-item, .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item { padding: 10px; } } } } @media only screen and (max-width: 900px) { .ur_addons_wrap { .products { li { width: 49%; } } } } @media screen and (max-width: 782px) { body.user-registration_page_add-new-registration { min-width: 0 !important; } .ur-registered-from { flex-direction: column; .ur-registered-inputs { width: 100%; margin-bottom: 10px; .ur-tabs { .ur-tab-content { .ur-registered-list { .ur-registered-item { float: left; width: 48%; } } } } } .ur-selected-inputs { width: 100%; } } } @media screen and (max-width: 600px) { .user-registration_page_add-new-registration .major-publishing-actions { clear: both; padding: 10px 0 19px; line-height: 28px; .ur-form-name { width: 100%; } .publishing-action { text-align: left; float: none; margin-top: 15px; } } .ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists { flex-direction: column; display: block; .ur-grid-list-item { width: 100% !important; &:nth-child(1n+2) { border-left: 0 none; } } } } @media only screen and (max-width: 480px) { .ur_addons_wrap .products li, .ur_addons_wrap .products li:nth-child(5n), .ur_addons_wrap .products li:nth-child(3n), .ur_addons_wrap .products li:nth-child(2n) { width: 100%; margin: 0 0 3% 0 !important; } } PK\C *assets/css/_button.scssnuW+A.user-registration, .ur-form-container { button, .button { transition: all 0.25s ease 0s; &.button-icon { width: 32px; padding: 0; .dashicons { line-height: 1; vertical-align: middle; } } &.button-icon-round { border-radius: 50%; } .ur-spinner { width: 16px; height: 16px; margin-left: 6px; margin-bottom: 2px; display: inline-block; vertical-align: middle; } } .button-primary { background: $primary_color; border-color: $primary_color; box-shadow: 0 1px 0 $primary_color; text-shadow: none; &:hover, &:active, &:focus { background: $primary_dark; border-color: $primary_dark; box-shadow: 0 1px 0 $primary_dark; } &:disabled { color: lighten($primary_color, 30%) !important; background: lighten($primary_color, 10%) !important; border-color: lighten($primary_color, 10%) !important; } } .button-secondary { color: $gray_base; background: $color_gray_four; border-color: $color_gray_four; box-shadow: 0 1px 0 $color_gray_four; &:hover, &:active, &:focus { color: $gray_base; background: $color_gray_three; border-color: $color_gray_three; box-shadow: 0 1px 0 $color_gray_three; } } .button-danger { color: $white; background: $red; border-color: $red; box-shadow: 0 1px 0 $red; &:hover, &:active, &:focus { color: $white; background: adjust-color($red, $saturation: -15%, $lightness: -8% ); border-color: adjust-color($red, $saturation: -15%, $lightness: -8% ); box-shadow: 0 1px 0 adjust-color($red, $saturation: -15%, $lightness: -8% ); } } .publishing-action { button, input[type='button'], input[type='submit'], .button { margin-right: 5px; } } } .ur-registered-item.ui-draggable-dragging { padding: 10px 10px; line-height: 20px; background: $primary_color; color: $white; text-align: center; margin-bottom: 7px; word-break: break-word; white-space: normal; width: 200px !important; z-index: 9; span { font-size: 14px; line-height: 20px; width: auto; height: auto; margin-right: 3px; } } .select2-container { .ur-select-all-countries-button { margin: 6px 3px 4px 6px; } .ur-unselect-all-countries-button { margin: 6px 3px 4px; } } PK\ ZFFassets/css/dashboard-rtl.cssnuW+A.ur-dashboard-widget .ur-logo-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;margin-bottom:12px}.ur-dashboard-widget .ur-logo-wrap .ur-plugin-info{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;font-size:14px;font-weight:600;margin-right:15px}.ur-dashboard-widget .ur-logo-wrap .ur-plugin-info .ur-version{font-size:12px;font-weight:400}.ur-dashboard-widget .ur-dashboard-widget-forms .components-select-control__input{min-width:250px}.ur-dashboard-widget-statictics{margin-right:-12px;margin-left:-12px;margin-top:12px;border-top:1px solid #eee}.ur-dashboard-widget-statictics ul{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:0}.ur-dashboard-widget-statictics ul li{-webkit-box-flex:1;-webkit-flex:1;flex:1;font-weight:600;text-align:center;border-left:1px solid #eee}.ur-dashboard-widget-statictics ul li:last-child{border-left:none}PK\Ns ΑΑ"assets/css/jquery-ui/jquery-ui.cssnuW+A/*! jQuery UI - v1.12.1 - 2016-09-14 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 * Copyright jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; } .ui-helper-clearfix:after { clear: both; } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); /* support: IE8 */ } .ui-front { z-index: 100; } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; pointer-events: none; } /* Icons ----------------------------------*/ .ui-icon { display: inline-block; vertical-align: middle; margin-top: -.25em; position: relative; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } .ui-widget-icon-block { left: 50%; margin-left: -8px; display: block; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin: 2px 0 0 0; padding: .5em .5em .5em .7em; font-size: 100%; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; } .ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default; } .ui-menu { list-style: none; padding: 0; margin: 0; display: block; outline: 0; } .ui-menu .ui-menu { position: absolute; } .ui-menu .ui-menu-item { margin: 0; cursor: pointer; /* support: IE10, see #8844 */ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); } .ui-menu .ui-menu-item-wrapper { position: relative; padding: 3px 1em 3px .4em; } .ui-menu .ui-menu-divider { margin: 5px 0; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } .ui-menu .ui-state-focus, .ui-menu .ui-state-active { margin: -1px; } /* icon support */ .ui-menu-icons { position: relative; } .ui-menu-icons .ui-menu-item-wrapper { padding-left: 2em; } /* left-aligned */ .ui-menu .ui-icon { position: absolute; top: 0; bottom: 0; left: .2em; margin: auto 0; } /* right-aligned */ .ui-menu .ui-menu-icon { left: auto; right: 0; } .ui-button { padding: .4em 1em; display: inline-block; position: relative; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; /* Support: IE <= 11 */ overflow: visible; } .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { width: 2em; box-sizing: border-box; text-indent: -9999px; white-space: nowrap; } /* no icon support for input elements */ input.ui-button.ui-button-icon-only { text-indent: 0; } /* button icon element(s) */ .ui-button-icon-only .ui-icon { position: absolute; top: 50%; left: 50%; margin-top: -8px; margin-left: -8px; } .ui-button.ui-icon-notext .ui-icon { padding: 0; width: 2.1em; height: 2.1em; text-indent: -9999px; white-space: nowrap; } input.ui-button.ui-icon-notext .ui-icon { width: auto; height: auto; text-indent: 0; white-space: normal; padding: .4em 1em; } /* workarounds */ /* Support: Firefox 5 - 40 */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } .ui-controlgroup { vertical-align: middle; display: inline-block; } .ui-controlgroup > .ui-controlgroup-item { float: left; margin-left: 0; margin-right: 0; } .ui-controlgroup > .ui-controlgroup-item:focus, .ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { z-index: 9999; } .ui-controlgroup-vertical > .ui-controlgroup-item { display: block; float: none; width: 100%; margin-top: 0; margin-bottom: 0; text-align: left; } .ui-controlgroup-vertical .ui-controlgroup-item { box-sizing: border-box; } .ui-controlgroup .ui-controlgroup-label { padding: .4em 1em; } .ui-controlgroup .ui-controlgroup-label span { font-size: 80%; } .ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { border-left: none; } .ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { border-top: none; } .ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { border-right: none; } .ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { border-bottom: none; } /* Spinner specific style fixes */ .ui-controlgroup-vertical .ui-spinner-input { /* Support: IE8 only, Android < 4.4 only */ width: 75%; width: calc( 100% - 2.4em ); } .ui-controlgroup-vertical .ui-spinner .ui-spinner-up { border-top-style: solid; } .ui-checkboxradio-label .ui-icon-background { box-shadow: inset 1px 1px 1px #ccc; border-radius: .12em; border: none; } .ui-checkboxradio-radio-label .ui-icon-background { width: 16px; height: 16px; border-radius: 1em; overflow: visible; border: none; } .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { background-image: none; width: 8px; height: 8px; border-width: 4px; border-style: solid; } .ui-checkboxradio-disabled { pointer-events: none; } .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position: relative; padding: .2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position: absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left: 2px; } .ui-datepicker .ui-datepicker-next { right: 2px; } .ui-datepicker .ui-datepicker-prev-hover { left: 1px; } .ui-datepicker .ui-datepicker-next-hover { right: 1px; } .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; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 45%; } .ui-datepicker table { width: 100%; font-size: .9em; border-collapse: collapse; margin: 0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .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; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width: auto; overflow: visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width: auto; } .ui-datepicker-multi .ui-datepicker-group { float: left; } .ui-datepicker-multi .ui-datepicker-group table { width: 95%; margin: 0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .ui-datepicker-row-break { clear: both; width: 100%; font-size: 0; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group { float: right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } /* Icons */ .ui-datepicker .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; left: .5em; top: .3em; } .ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; outline: 0; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 0; white-space: nowrap; width: 90%; overflow: hidden; text-overflow: ellipsis; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 20px; margin: -10px 0 0 0; padding: 1px; height: 20px; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin-top: .5em; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-n { height: 2px; top: 0; } .ui-dialog .ui-resizable-e { width: 2px; right: 0; } .ui-dialog .ui-resizable-s { height: 2px; bottom: 0; } .ui-dialog .ui-resizable-w { width: 2px; left: 0; } .ui-dialog .ui-resizable-se, .ui-dialog .ui-resizable-sw, .ui-dialog .ui-resizable-ne, .ui-dialog .ui-resizable-nw { width: 7px; height: 7px; } .ui-dialog .ui-resizable-se { right: 0; bottom: 0; } .ui-dialog .ui-resizable-sw { left: 0; bottom: 0; } .ui-dialog .ui-resizable-ne { right: 0; top: 0; } .ui-dialog .ui-resizable-nw { left: 0; top: 0; } .ui-draggable .ui-dialog-titlebar { cursor: move; } .ui-draggable-handle { -ms-touch-action: none; touch-action: none; } .ui-resizable { position: relative; } .ui-resizable-handle { position: absolute; font-size: 0.1px; display: block; -ms-touch-action: none; touch-action: none; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px; } .ui-progressbar { height: 2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value { margin: -1px; height: 100%; } .ui-progressbar .ui-progressbar-overlay { background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); height: 100%; filter: alpha(opacity=25); /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { background-image: none; } .ui-selectable { -ms-touch-action: none; touch-action: none; } .ui-selectable-helper { position: absolute; z-index: 100; border: 1px dotted black; } .ui-selectmenu-menu { padding: 0; margin: 0; position: absolute; top: 0; left: 0; display: none; } .ui-selectmenu-menu .ui-menu { overflow: auto; overflow-x: hidden; padding-bottom: 1px; } .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { font-size: 1em; font-weight: bold; line-height: 1.5; padding: 2px 0.4em; margin: 0.5em 0 0 0; height: auto; border: 0; } .ui-selectmenu-open { display: block; } .ui-selectmenu-text { display: block; margin-right: 20px; overflow: hidden; text-overflow: ellipsis; } .ui-selectmenu-button.ui-button { text-align: left; white-space: nowrap; width: 14em; } .ui-selectmenu-icon.ui-icon { float: right; margin-top: 0; } .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; -ms-touch-action: none; touch-action: none; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } /* support: IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-sortable-handle { -ms-touch-action: none; touch-action: none; } .ui-spinner { position: relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } .ui-spinner-input { border: none; background: none; color: inherit; padding: .222em 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 2em; } .ui-spinner-button { width: 1.6em; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } /* more specificity required here to override default borders */ .ui-spinner a.ui-spinner-button { border-top-style: none; border-bottom-style: none; border-right-style: none; } .ui-spinner-up { top: 0; } .ui-spinner-down { bottom: 0; } .ui-tabs { position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ padding: .2em; } .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom-width: 0; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav .ui-tabs-anchor { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { cursor: text; } .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { cursor: pointer; } .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; } body .ui-tooltip { border-width: 2px; } /* Component containers ----------------------------------*/ .ui-widget { font-family: Arial,Helvetica,sans-serif; font-size: 1em; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,Helvetica,sans-serif; font-size: 1em; } .ui-widget.ui-widget-content { border: 1px solid #c5c5c5; } .ui-widget-content { border: 1px solid #dddddd; background: #ffffff; color: #333333; } .ui-widget-content a { color: #333333; } .ui-widget-header { border: 1px solid #dddddd; background: #e9e9e9; color: #333333; font-weight: bold; } .ui-widget-header a { color: #333333; } /* Interaction states ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default, .ui-button, /* We use html here because we need a greater specificity to make sure disabled works properly when clicked or hovered */ html .ui-button.ui-state-disabled:hover, html .ui-button.ui-state-disabled:active { border: 1px solid #c5c5c5; background: #f6f6f6; font-weight: normal; color: #454545; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited, a.ui-button, a:link.ui-button, a:visited.ui-button, .ui-button { color: #454545; text-decoration: none; } .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, .ui-button:hover, .ui-button:focus { border: 1px solid #cccccc; background: #ededed; font-weight: normal; color: #2b2b2b; } .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited, .ui-state-focus a, .ui-state-focus a:hover, .ui-state-focus a:link, .ui-state-focus a:visited, a.ui-button:hover, a.ui-button:focus { color: #2b2b2b; text-decoration: none; } .ui-visual-focus { box-shadow: 0 0 3px 1px rgb(94, 158, 214); } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { border: 1px solid #003eff; background: #007fff; font-weight: normal; color: #ffffff; } .ui-icon-background, .ui-state-active .ui-icon-background { border: #003eff; background-color: #ffffff; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } /* Interaction Cues ----------------------------------*/ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #dad55e; background: #fffa90; color: #777620; } .ui-state-checked { border: 1px solid #dad55e; background: #fffa90; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { color: #777620; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #f1a899; background: #fddfdf; color: #5f3f3f; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #5f3f3f; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #5f3f3f; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; } .ui-icon, .ui-widget-content .ui-icon { background-image: url("images/ui-icons_444444_256x240.png"); } .ui-widget-header .ui-icon { background-image: url("images/ui-icons_444444_256x240.png"); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon, .ui-button:hover .ui-icon, .ui-button:focus .ui-icon { background-image: url("images/ui-icons_555555_256x240.png"); } .ui-state-active .ui-icon, .ui-button:active .ui-icon { background-image: url("images/ui-icons_ffffff_256x240.png"); } .ui-state-highlight .ui-icon, .ui-button .ui-state-highlight.ui-icon { background-image: url("images/ui-icons_777620_256x240.png"); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url("images/ui-icons_cc0000_256x240.png"); } .ui-button .ui-icon { background-image: url("images/ui-icons_777777_256x240.png"); } /* positioning */ .ui-icon-blank { background-position: 16px 16px; } .ui-icon-caret-1-n { background-position: 0 0; } .ui-icon-caret-1-ne { background-position: -16px 0; } .ui-icon-caret-1-e { background-position: -32px 0; } .ui-icon-caret-1-se { background-position: -48px 0; } .ui-icon-caret-1-s { background-position: -65px 0; } .ui-icon-caret-1-sw { background-position: -80px 0; } .ui-icon-caret-1-w { background-position: -96px 0; } .ui-icon-caret-1-nw { background-position: -112px 0; } .ui-icon-caret-2-n-s { background-position: -128px 0; } .ui-icon-caret-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -65px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -65px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 1px -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-on { background-position: -96px -144px; } .ui-icon-radio-off { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { border-top-left-radius: 3px; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { border-top-right-radius: 3px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { border-bottom-left-radius: 3px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { border-bottom-right-radius: 3px; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa; opacity: .003; filter: Alpha(Opacity=.3); /* support: IE8 */ } .ui-widget-shadow { -webkit-box-shadow: 0px 0px 5px #666666; box-shadow: 0px 0px 5px #666666; } PK\!&assets/css/jquery-ui/jq-smoothness.cssnuW+A/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * 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=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; } .ui-helper-clearfix:after { clear: both; } .ui-helper-clearfix { min-height: 0; /* support: IE7 */ } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); /* support: IE8 */ } .ui-front { z-index: 100; } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin: 2px 0 0 0; padding: .5em .5em .5em .7em; min-height: 0; /* support: IE7 */ font-size: 100%; } .ui-accordion .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; } .ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default; } .ui-button { display: inline-block; position: relative; padding: 0; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; overflow: visible; /* removes extra width in IE */ } .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { width: 2.2em; } /* button elements seem to need a little more width */ button.ui-button-icon-only { width: 2.4em; } .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /* button text element */ .ui-button .ui-button-text { display: block; line-height: normal; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /* button icon element(s) */ .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; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .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; } .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; } /* button sets */ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ /* reset extra padding in Firefox, see h5bp.com/l */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position: relative; padding: .2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position: absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left: 2px; } .ui-datepicker .ui-datepicker-next { right: 2px; } .ui-datepicker .ui-datepicker-prev-hover { left: 1px; } .ui-datepicker .ui-datepicker-next-hover { right: 1px; } .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; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 45%; } .ui-datepicker table { width: 100%; font-size: .9em; border-collapse: collapse; margin: 0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .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; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width: auto; overflow: visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width: auto; } .ui-datepicker-multi .ui-datepicker-group { float: left; } .ui-datepicker-multi .ui-datepicker-group table { width: 95%; margin: 0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .ui-datepicker-row-break { clear: both; width: 100%; font-size: 0; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group { float: right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } .ui-dialog { overflow: hidden; position: absolute; top: 0; left: 0; padding: .2em; outline: 0; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 0; white-space: nowrap; width: 90%; overflow: hidden; text-overflow: ellipsis; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 20px; margin: -10px 0 0 0; padding: 1px; height: 20px; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin-top: .5em; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 12px; height: 12px; right: -5px; bottom: -5px; background-position: 16px 16px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } .ui-draggable-handle { -ms-touch-action: none; touch-action: none; } .ui-menu { list-style: none; padding: 0; margin: 0; display: block; outline: none; } .ui-menu .ui-menu { position: absolute; } .ui-menu .ui-menu-item { position: relative; margin: 0; padding: 3px 1em 3px .4em; cursor: pointer; min-height: 0; /* support: IE7 */ /* support: IE10, see #8844 */ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); } .ui-menu .ui-menu-divider { margin: 5px 0; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } .ui-menu .ui-state-focus, .ui-menu .ui-state-active { margin: -1px; } /* icon support */ .ui-menu-icons { position: relative; } .ui-menu-icons .ui-menu-item { padding-left: 2em; } /* left-aligned */ .ui-menu .ui-icon { position: absolute; top: 0; bottom: 0; left: .2em; margin: auto 0; } /* right-aligned */ .ui-menu .ui-menu-icon { left: auto; right: 0; } .ui-progressbar { height: 2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value { margin: -1px; height: 100%; } .ui-progressbar .ui-progressbar-overlay { background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); height: 100%; filter: alpha(opacity=25); /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { background-image: none; } .ui-resizable { position: relative; } .ui-resizable-handle { position: absolute; font-size: 0.1px; display: block; -ms-touch-action: none; touch-action: none; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px; } .ui-selectable { -ms-touch-action: none; touch-action: none; } .ui-selectable-helper { position: absolute; z-index: 100; border: 1px dotted black; } .ui-selectmenu-menu { padding: 0; margin: 0; position: absolute; top: 0; left: 0; display: none; } .ui-selectmenu-menu .ui-menu { overflow: auto; /* Support: IE7 */ overflow-x: hidden; padding-bottom: 1px; } .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { font-size: 1em; font-weight: bold; line-height: 1.5; padding: 2px 0.4em; margin: 0.5em 0 0 0; height: auto; border: 0; } .ui-selectmenu-open { display: block; } .ui-selectmenu-button { display: inline-block; overflow: hidden; position: relative; text-decoration: none; cursor: pointer; } .ui-selectmenu-button span.ui-icon { right: 0.5em; left: auto; margin-top: -8px; position: absolute; top: 50%; } .ui-selectmenu-button span.ui-selectmenu-text { text-align: left; padding: 0.4em 2.1em 0.4em 1em; display: block; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; -ms-touch-action: none; touch-action: none; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } /* support: IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-sortable-handle { -ms-touch-action: none; touch-action: none; } .ui-spinner { position: relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } .ui-spinner-input { border: none; background: none; color: inherit; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } .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; } /* more specificity required here to override default borders */ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* vertically center icon */ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } .ui-spinner-up { top: 0; } .ui-spinner-down { bottom: 0; } /* TR overrides */ .ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position: -65px -16px; } .ui-tabs { position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ padding: .2em; } .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom-width: 0; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav .ui-tabs-anchor { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { cursor: text; } .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { cursor: pointer; } .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa; } body .ui-tooltip { border-width: 2px; } /* Component containers ----------------------------------*/ .ui-widget { /* font-family: Verdana,Arial,sans-serif; */ font-size: 1.1em; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { /* font-family: Verdana,Arial,sans-serif; */ font-size: 1em; } .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; color: #222222; } .ui-widget-content a { color: #222222; } .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; color: #222222; font-weight: bold; } .ui-widget-header a { color: #222222; } /* Interaction states ----------------------------------*/ .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; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } .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; } .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited, .ui-state-focus a, .ui-state-focus a:hover, .ui-state-focus a:link, .ui-state-focus a:visited { color: #212121; text-decoration: none; } .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; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } /* Interaction Cues ----------------------------------*/ .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; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { color: #363636; } .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; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; } .ui-icon, .ui-widget-content .ui-icon { background-image: url("images/ui-icons_222222_256x240.png"); } .ui-widget-header .ui-icon { background-image: url("images/ui-icons_222222_256x240.png"); } .ui-state-default .ui-icon { background-image: url("images/ui-icons_888888_256x240.png"); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon { background-image: url("images/ui-icons_454545_256x240.png"); } .ui-state-active .ui-icon { background-image: url("images/ui-icons_454545_256x240.png"); } .ui-state-highlight .ui-icon { background-image: url("images/ui-icons_2e83ff_256x240.png"); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url("images/ui-icons_cd0a0a_256x240.png"); } /* positioning */ .ui-icon-blank { background-position: 16px 16px; } .ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-ne { background-position: -16px 0; } .ui-icon-carat-1-e { background-position: -32px 0; } .ui-icon-carat-1-se { background-position: -48px 0; } .ui-icon-carat-1-s { background-position: -64px 0; } .ui-icon-carat-1-sw { background-position: -80px 0; } .ui-icon-carat-1-w { background-position: -96px 0; } .ui-icon-carat-1-nw { background-position: -112px 0; } .ui-icon-carat-2-n-s { background-position: -128px 0; } .ui-icon-carat-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -64px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -64px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-on { background-position: -96px -144px; } .ui-icon-radio-off { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { border-top-left-radius: 4px; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { border-top-right-radius: 4px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { border-bottom-left-radius: 4px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { border-bottom-right-radius: 4px; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3; filter: Alpha(Opacity=30); /* support: IE8 */ } .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); /* support: IE8 */ border-radius: 8px; } PK\6Kee7assets/css/jquery-ui/images/ui-icons_777777_256x240.pngnuW+APNG  IHDREr@gAMA abKGDwdǭtIME 6FtIDATxleGu?wKɆ>CKd*CiCվĎ VynK$T*I.BM REHP"IAQH QPQX;JB^MIQ~IVE᠄q;=z33wfΙ3s̜ >Go.4^dL21L$`l[~&+&щ@G`Vag'alNXb0t(P5RH&<ą-`r22)Kz,$[RpR su8r]aj#zTMS$\Oό3!ZPYo)D N#Yʦ2: )P}_US2L]a?szՙ/lljٛ<2ݎ:+g/  @pxh8z|aQf=ۊ1f¸;{ã)!)fB=&5]ӶߖfO}Ϭ(0oY03(Kdl1U+թLMz{D@>]D-omu ]ZV,ˌMmyhUzfi=@]S؊tTo6g%SB_qw)DPpxh84^/ _G8Ĺ{Ja bR(xhi@IzJҼy tsY@eeC뱅rjm܍C&[LM%m{e^3JM3@ӰX7mkA ".v2MuZfPy -!LUis_hxvv+3  @pxh84Y`>HԀEZn5{Dn{DY l]ysx-[LqmЭq `_XA*fLOtL17:0k SYB> /SA]CgݳX:p:L*YQNT\}="dLM 5-l} 0(TT|sLE4!;K~pm {˷aʜǢ.Jm.718(I : sdbSҞ^:S)!" @pxh84gW@~= &{K'jڻ ,#Vvh=L*}yLʼ=< ,I ?z CU/Ir۴y׵5~FY)bmeLIfnY! ̠â&cmcȱDMB֤'1-tnNjBo0!`*]>aZAqW5ͳ)%_eb//m=_hC0^9NsPI `]U-2߮!!*C.o7l?kI a,D0nHMnTBxF""#rb5͏ meuHEHXSM:A#a2&xVbYQEme%ͦ@~⧣]8ȫԫL eY-U=-½\ | _**ƸJ$JT-l~r)e1~1+owm#%>:[/+EB7̰8fCH` ⶿)]U6шHb چEuv5/g)M dJ?9WfhL+^ޕ(_g ;am_>E,$|BR؟_~?H !(# }ex {Q^/  gL6fri]|˟%fs9jI-ӡSޮ|k,g>!2 )p[< aYa~uLqZ;7~|7JOdOpӓ00/w8]`n}]`8PxvɤVyE5(aU_}h?Gx(󐦂XgMOz!\F_8hsㅙ/8'տ,E~Q9:2 ,tӕkԖ[&8sךtyis[Gmh.ms2PJ%%u\5 jc^68#ͦ1mX֡C];  : a2S-II\q`pPe^b|~.?=-5$~O0!X\%q B<P)p{p^69x=u~uUcLWXU>WsJB ~?57S5VREGV-.(™Nqñ֯a`f\Pےs5r-r)6ɏoX_iwI I]D-NUb+WQV\D׳?y Hz O]`$&=sWدʡʑV$7qp$'QY~,f@\XRalGZ7 "ps ?)O:p#wr r7WW33g kq6X/%Zٳ+zg69ΆbR%zwq6oχe3W'%`6tz9 @ePML:?am~›JSjQ:(Z0Ne ZL2$?Nnd de!tzE DR &%*| ^, *Pj qR2Si.&W $` 8tfnmRz sߪ{t޸eu_~qC~^Bqd젞?wU(̱ɶ[xۢъnN%_C-x2=dx_UџVRl{7 ^=`:%QوW[ T6beE$t g'P|~`FE+;-6q953T{mcǵ\˵MI _D/I푴-oPT@9A,BDUCX/(%VyU(DjVuaxs}.w2gaѢ*8Gk?b8B/N˹yWRH3+KYJe_>Dѡ7x'ҴyYŪ3ћ =Wy ^/ G^fo\jI:gt걋 A\ν|~ؙQ[,'snOٟ}N n_5Hǚ/{ǚ`Mi_(8uRUݝuŒbǕ?g aQEOkjd]IE56.J]c l)6nHIsx,q'Jiշ9EMxɻQ];_:U~yz}Lc|?@m?q|W5@HB2YT`D*MY՜H02y°^E^Q 0:c IjPEֿ]$F\rH@I?~=@m  @v@]<Vj4}6"yu67s|æWF$ |3Vns49h7lz D]@_6uJMD~O:EtO~>wЃ O)g+ץi& 5WJ"*6(验b(_.!Po0 KT?௴ܽg|(}=wX] (Sse=}ԯ _~ 쯟 #j3URmUqmfh7qIb_.`8G.篘B5nJM47qIb4@4FXb)&PqFHGI>*Ql/LVb% ) .(ӿVrDžQ}\VA_U>[w^UH_͕KQ?ܖ˗w> ^%V# Rg>oҎ5سAo Bo l84^/  @!OMG۶2t]ȡcݶ5z-o;3`c6FzAmǸm` cHa\iFlW9$ GGACh%. $H]8sHPh6PUwMU9B/6|dK&tk%Hܭ1$V$*mǭAnr>g ^5=&| *4Ocĸ 0aF$@## pDH 8"G$@̸1|.gLO 6Onwx"I~0 Z|2Ki׾02GËP.w NN_庋υ>øۧ|Nr6h\3Hr|\(yt ~t03;8pā 8"G$@# pvf4Qc[T4s@wcN%?4E4\LZhۯ>}H *~Q{ģ|@' ?QH5 P&9bF_6[]I:x=hP;aj\*E* \&@ӛ@h=P>lxh 䣷m HMGj&U]WEZ+uȶpS-r`C [wv] d!@xEO)6BJ}5Wp~)"&\ o6sp>T T|9sR%jӾ8 (@⠱?H=(_{K4ɹE|ۯzr]OiE|c! pġ 8"G$@Ɯ=V\U>EuwOs8g$(a[X`jGUĹm`[|IP r[lTF{@3 y\k8)-%/I=mҁ쯪. m&-d-=mʾח48˥˥^<0PUa7pABڽx]=ficF6YsIlzuL!O.xZ1{̈KA):lq>߽=j.?B"d]4!Nxo Y;pg&pVYmo4}n"8:3At똙 8Pp# pD#@:[޲EI?_!/-Dcy>3fl'`C~Q$õݲ tȣhwѪSr_u+eCK[MU vuTpۖ i]{al:>}Dp(VK(o1{ol]b3r)a f2a7!>$mJC :]P0B2#^V&(@ʯVj$iv(е%^ w /gV ]D7ofm>a 1{cE$@c/=?hՙFFa^q6[+ﱱq8/X _˥k4rWLyS0v] hH*!rPUCڳcD}M>Ҥ}2o$sn͈fȗhhiI>:!X(|p2R)%+hQ\.dM!X">{Z {Rz`ː񁒻,fX#x` l1ty5|P~/5x0,C}ϛb-ȯh+ 3P` R8_aqKl)$8) 3=uhiFPOWײCFBFAx fB?Cj|s+bN7= 6;@I!>[yOVǁeUv~\=@AX̏˵pax3-)6,Wo32']%hE\vpm&(ƧYEY+@vG`CQԥ?0|Yi~1&b9!<rq>!zvv}~r#5YJK ә֏8 x,/ "G$@Wj:R\ ґѢΣcWk[2?nTۤAS>ڿۖpg# oo=ey G0˽@ȞmbpFɻ ߇Ҥe&jR״nYNDs|41@j|Zlk^{~#:b1amGH 8"GxF2(cMqUZM Rv;j/*ݭQw>OL-fV;_ٞOI>Z|ya~萻B ki#@u"ڥ! *7! f3DckTɰCk.sP;C<}Ra0L;7Lw5@6JCDV#NXFa곮8}Jck!O˝Lb\ʼ!6NLv9& Ca^;YnC(r()5&y]~HC'=}*g\q t%}:mfdW?p9D3)O OMjՌ C"ZA':Չf9K`>3Jghg|IqN[ʥ^c7-Aۚ,Uf</ı/+^OԳZ2˿#ϙ f+<+i ?1|[1k+?,lOԮҐKyX>>o?=#n?oUfvα50FϜhc' 4R6i6h~ P6S=*r3pC۴NB;G~gj!|hc==(#=kr?G?M=7 *|Nf:K@Pmj~$U.9^9\?GGz`CS.ܬOkkyBiZJȮYKհMeawɠ/. 7|?{Zа' ;o]}#Wijߗ)*G vhh| sr`~oJQn6B7UOseoOM9< +}QTjGCt} Lh'k` ֤Wf Jh{`w_:?M{ sJh.E870pDH 8"G$tmtJins`t>a q7R掠 @ȗ7mMSw1<]Ԁ]\|L(@WAg5 `CI*;z"@f.4Kn45]o0xדK]R%q'B ǃEX#{DE9b}vN:@ &sHGG$@# p "@ozg-{gCG-҈DA05.x /0cGؐ9^l_\q*%\ʻ~UQ>@/р@v:GS6*w]ʷS?;ݞ"iBN|[j 88-L7[x n4j>t: #Џ WO\+|e'Vp 8]\^`+ߌr'-! vZ4="~R|Fr}7rT.[Tm vqQq=|CA8/ pDH 8*U~7J \W>W7%-$Ws[!j4(\F y*73߭_ 4~~5Ma&XE]πK7\b*ȭ?a_&@IbDw >R79{r6M|r ǂq_Fn%{o_]C.\׃z([p_3z&5VM_p o %1gP.9D9X}Mm(O)x c fQw&"(ߠ]v) bLZ>M[BGH 8"G$@3t1н#6tWy̡~ f#n-7!BIp$ʗqu N@-}XD.cYaY$A0{(nj%`=[u(!hZYG@88"G$@# p/zq@h }?|Չtӆug?v6:պЫ5*Ef^; {@%aa+TaUQ~RZk ISs/c,Sow43.|{Իpc>!fs7?#:"   APw%tEXtdate:create2016-09-14T13:33:16-04:00! %tEXtdate:modify2016-07-13T05:26:54-04:000LmtEXtSoftwareAdobe ImageReadyqe<IENDB`PK\#*7assets/css/jquery-ui/images/ui-icons_555555_256x240.pngnuW+APNG  IHDREr@gAMA a cHRMz&u0`:pQ<bKGDUItIME 6FIDATx{$G}?m;!>lܮG$,&%|ܢց]]=Β?ptgYG b '8$f;#AG3;=LW^<&=Ll&<DYVD^`Or`: $)=LsL=?a|6I#V+A1L)P!)$q<ąU`r2t )bBzDD'O{5[Y`]azGtwSSl 1z̐!(h~L`VU{ gӜwslgpUf2CPC[mVFyh8J` px4 '@ px4 wdp)cF{S>R$)g3Wimk~[+O}#c P_ OBmz-=)wi'#@]ƪS/c>]Lϟ[ e%PEdR=\')W0ʩk0o2: A '@ px4 '@ p3 _+-sEK% 25UA(<`+Hʢ=l>0b'Gn%p U"YR[RРq_`ɟH5`.@%6b)Z|tQiE LcJxw]K 7 $0txzl\Ywk!uS[LK:(˼f]K(lNźuѶ'vwIdU)nK9(ufc/ӯ<-!LUi{&0lWWOh8<O7&R?~¥\4Fޥ2$\ܽWޡZZՀlk)2+@%jn+\CV{skۥbg%@6[\ܩ۶`6YsKݞs7jAiܶ~@˫: SE * pv]Zwt DCȟyUw{'!`5͔:KU=Œ@mRal{IB%b5}ZƀT7 셲jDe![014]fhX{4 '@ px4Gְ,6yM*I Ѣ)b04(.M3Q#?]᪺0B'ׁL*y;y[tӅR޽HCt5o՜Oy"#LsͿk5& {g/[Sqs8$*3{i>9rV;UO2_ 5LxhDyB(pEw@öy L`~:yD0Hjr~zV(U&v$I>J@PlO$H!`;pdvY$4mZU_a31 2Zp9y J."-G ~:2x]ό%XJ~- @=#):iGy1W唵s_RY;[摒V"Op :-Q{ARC.ŋI|DDiӊٗYSh?xM<MrCLtzO\o/.G\38CH4 Z9`3lwɒ5HvQ~?be[d9uJZ-]j-| Npu~ 1<;g4=.{\Y. ǵTJ'ZmS?-X>Ohզ:as|3|)f0S}i~x1om ʻXjZ?64/KR;Hӏ.*5 ~Ia`'*!$4-|˜lI{U^ʷM˲IP6wʟL~60ȳ9lŒu7+SxT+?UۤyGlQdg(-E͠ 75|^Q1!֔w!fI%dP]y_VnX3ugy؟t'PPv5O&R5j(|5殎< 46}Q@ppI$3&qNw8JHH.al/.uS?¯ Qߍ0~>m՗/[?2Ҋ: R- kLfD<￞OsE=LYhGʘb+;mR.b,n:7)? 1veqQyg\iQbpH[w@vK4F?UShC'~aY? OC~;+ ;qt2\~>"_cH'#$U~<]!rn\u`1^5GFA.Nn~UN'¯pw"qFgBc sQY|RV0ù [մvyFd67NjbI`;)vciF/X/ ۯ(ԓ,z8bB,WwItDG( j:$^  gnL-v$0Ƹ44R؟П(00wJy閄1^90%Ә- n8J` px4 '@Ñ'i"#@p!oڏlH=$G/l9:,GrlCd!82"s\Kt=:-*%[AD]~E#gqboncLp*_;ma[v5<5uJ>z_.j[\ x=Wx+^`?]ޥ%W{#29 xNvrqw"KbKۍ+"<Bp?]nf'أLOo&qcg y@BGa+J$s vT:qfJ[5A:- !@tƏB'd9WhL>c,]~Tl^=l -7 '@ pdPWR[ Z^[ ~F:f~o8ew ^土j-w-h<ۦ^&"/_M] mSG|[m7?-mL7\K]yWjg6W`uwoO_5~zYXw(R`VzCK5,_̼uM+PNQ@l $v|d2&œC&(G)~EU')_XY~껖DDcRS| lk㇆)#WR.uIDk\sUda᭛&w-<4zeB WWsSoy.px4 '@ px4[m 2KlfErQ2鎚uX!7H؞n=k.CXFԼz&=l*+g+Vs=i}F 2L=ir$/\)W.7zar=kP#5[Σ- `5+B~۬5;GMx x}J۶%tEXtdate:create2016-09-14T13:33:16-04:00! %tEXtdate:modify2016-07-13T05:26:54-04:000LmtEXtSoftwareAdobe ImageReadyqe<IENDB`PK\(8DD7assets/css/jquery-ui/images/ui-icons_777620_256x240.pngnuW+APNG  IHDRIJgAMA a cHRMz&u0`:pQ<,PLTEwv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv wv ctRNSXG|"2wfZNz@@efSFccaMhmzs}䁎]bp Ιi8*y㧁Xȓد͐ǫbKGDHtIME 6FIDATx] c޻$,'$h )$uZ7I_B"H 1iRkggdl>ٽ=Y d]زs:w/ f@e,!A$HW O|FMZ ' 1d9 vB:qџC7?xtv*ݹ8P6_dYJ7%߾A,U4IGb(W pB k.b*X&kVfvZ?k yYaRoڨ3DOHnoH6ݩ~ qc2""""""ⲢԎnFb9ͷJ yjJxsjNev'`dU۷ķT_`'yo-/jf>%p} b%gl:`O2Lj-6.`=3 `f7ֽuCl!Q8s0x vIi)C۷#W 3{=`DDDDDDg yURbE:hZ~9јfvv_촸;{%0}z {] p]$y>aW,:tXauO1X\!R&HZ%!r B hO?pjlgkJ{=` z*& -!ddeAz_q~wYp7| 0TG$! &I||@4z_v+OBTĄ1 -"bJ| RC~9`(FHDDI~rmto*ynw5yj=@%c]-+o;yAАE;US@1!;/ ?S&_o?gN$j.E~eo">'O1(C]:7``,!EDDDDlC0\98dy_ha}Aߗ||Ξҿ wnܪ sYbHdz ި4p`b!Le]cmd`I.) nt#6e/YW#]L;zsLrrZg\-TB^7 @7P@>'FꝦb1 xHETj_;S1j7T%W{ڢOPnSL!w@YE@2&|^}|rKM_%08 "1 ;XQj3SxY`aׄA|>7lcXpxH<,sɉx|28 9jPF8zKw/1*:@^&}T# `cpOgi趜L􂕜T3Ə} *(` .ŽV3 +Ifu?oc]D1kT SKzY}`}<~*}0F;l<#""":cOGNM1߽v6/z~+uW‹򉣾k ř;y6+uhUTTm4mm= Tzϼ! _GS׃'rm-R^ksw5I BFf&xc_o/t{-62̶H@^M@ND  ~:?8 =8S#VԲ,W0#Na q?`%6h+a @9`Oޱ@]? """"rEG_?>Dg7rt>'WG ?}qE?h+K$@ɊcY뷓1mBFZ| 5ǷangW2@} zfչ#}SPן $PKJWPX1j^XJ4&RF3pμ`t 7 _.G.Ky^˷#"""":!r!B2=FVn^W9xUdzܶrWZ>Ui%Gi TW:}tu wtu% >=Żá<[t{f FO?$qwzøC,` |R>3,~Q(ؾB|p"JW& <ԧo1!%H~*KNA,Z= INR@ej$it5k~\Ħc]m06tualڕJ#""""""<3{$_XA'@?zoI7L]-)n$Aׄ}>#@IuX\oZ@qr콙vj;^~lϯ]-)hϏ - T&!.%tEXtdate:create2016-09-14T13:33:16-04:00! %tEXtdate:modify2016-07-13T05:26:54-04:000LmtEXtSoftwareAdobe ImageReadyqe<IENDB`PK\"V7assets/css/jquery-ui/images/ui-icons_cc0000_256x240.pngnuW+APNG  IHDRIJgAMA a,PLTExSctRNS3P/"Uq@f`2 !"<BHK Z#'1S,`4j8E|)Q$ 1b8JmߜGc?oh!bKGDHtIME 6FIDATx] c޻$,'$h )$uZ7I_B"H 1iRkggdl>ٽ=Y d]زs:w/ f@e,!A$HW O|FMZ ' 1d9 vB:qџC7?xtv*ݹ8P6_dYJ7%߾A,U4IGb(W pB k.b*X&kVfvZ?k yYaRoڨ3DOHnoH6ݩ~ qc2""""""ⲢԎnFb9ͷJ yjJxsjNev'`dU۷ķT_`'yo-/jf>%p} b%gl:`O2Lj-6.`=3 `f7ֽuCl!Q8s0x vIi)C۷#W 3{=`DDDDDDg yURbE:hZ~9јfvv_촸;{%0}z {] p]$y>aW,:tXauO1X\!R&HZ%!r B hO?pjlgkJ{=` z*& -!ddeAz_q~wYp7| 0TG$! &I||@4z_v+OBTĄ1 -"bJ| RC~9`(FHDDI~rmto*ynw5yj=@%c]-+o;yAАE;US@1!;/ ?S&_o?gN$j.E~eo">'O1(C]:7``,!EDDDDlC0\98dy_ha}Aߗ||Ξҿ wnܪ sYbHdz ި4p`b!Le]cmd`I.) nt#6e/YW#]L;zsLrrZg\-TB^7 @7P@>'FꝦb1 xHETj_;S1j7T%W{ڢOPnSL!w@YE@2&|^}|rKM_%08 "1 ;XQj3SxY`aׄA|>7lcXpxH<,sɉx|28 9jPF8zKw/1*:@^&}T# `cpOgi趜L􂕜T3Ə} *(` .ŽV3 +Ifu?oc]D1kT SKzY}`}<~*}0F;l<#""":cOGNM1߽v6/z~+uW‹򉣾k ř;y6+uhUTTm4mm= Tzϼ! _GS׃'rm-R^ksw5I BFf&xc_o/t{-62̶H@^M@ND  ~:?8 =8S#VԲ,W0#Na q?`%6h+a @9`Oޱ@]? """"rEG_?>Dg7rt>'WG ?}qE?h+K$@ɊcY뷓1mBFZ| 5ǷangW2@} zfչ#}SPן $PKJWPX1j^XJ4&RF3pμ`t 7 _.G.Ky^˷#"""":!r!B2=FVn^W9xUdzܶrWZ>Ui%Gi TW:}tu wtu% >=Żá<[t{f FO?$qwzøC,` |R>3,~Q(ؾB|p"JW& <ԧo1!%H~*KNA,Z= INR@ej$it5k~\Ħc]m06tualڕJ#""""""<3{$_XA'@?zoI7L]-)n$Aׄ}>#@IuX\oZ@qr콙vj;^~lϯ]-)hϏ - T&!.%tEXtdate:create2016-09-14T13:33:16-04:00! %tEXtdate:modify2016-07-13T05:26:54-04:000LmtEXtSoftwareAdobe ImageReadyqe<IENDB`PK\2}^^7assets/css/jquery-ui/images/ui-icons_444444_256x240.pngnuW+APNG  IHDREr@gAMA abKGDD<tIME 6FmIDATx{leG}?gKɆ^CKd*M&6"R庅 T*IdTJyT[$QQЇ%j!YҦPRU%py͜3sνw߼͜&x/MƁAcpx1AĠ  b-`I"k| s D'Iʃc! Y?lG?sІ0Z "o"`Jyt(P5RH&<ąm`r:t bt<"tJ^ߖwX)긏itڇ(w ͩ뛦!HL2WͽFw)fl3  Mž¶gδb#*`1(׎.a{4v+  @pxh84~?@>˿(mG3a`Ξ:#%$YMgФk6R}SI(MOv`*9w{|38s$ P}ae?M/>uA2zE@.y;ޖeƖ6vղE4S {m8lUVύ3Nv[Lm't.%wsHY趃sTC)eXgaNUǯb U5AW2ͽ{K:XI7+ @76ӥ2Y:+'cj2`?HjJ9;n?/305<1U\8SMiUoR.lHlN &n޸rWF g1ıj"d˵5ՑlM`/@ĄƤ?";h4^/  @1Hsv`WT}ߨ_=du/0d1w9X&Qpxx`=jg.)![ 岔[4fvndƷ:shDu@=m:0۫ʦطM}OUlJd  [llyPga꺠[:>>LDkZYֺc h?U!zӋU9ch8d|Km~c=^ sg޻H2(ICTP[ KUat4ڼkMtx1_&>P~Vp2@pxh84^ְ,6ypeL6UEwO^ahP])fFy$B2>^WͫInU@.E< OUsn>@d {/"\1wyU{w7MrW/(ȧ>qHlY=^,Y ;NŲ˟lf#t|$4i&QJsϗAX­4TRF#Mw0bZ =0H jryzV(5nOJ&}[Ǟ @pL+ S}I 6uHf[erJZ,6v eueZq7]v7"0e-z\n 3r):r/+Bl6}>yMٹ%hECBXԸl%T8/KO0׳Kcm y1D:K$_`M 5faISncNX"!RLK"0PqAWNVPU(iJlƟ6 ȗk\=ц8d,s 9IWl"E[e85\e(Y"rq6u- |BRix>9WHDgtKG|2".t VEu>bfa?qh'y'ryԫLMe^-U=-³K\ | _W**ƸJ$JT=l~yyv)e1~97V($uڴ9@;[J5?*pl!x Wa-"T-Vq细6 06}[S]%7QKD3"YOM 6ivQ5Ct/7 8-*"_EUy0x+CxG3D Wl,>OlʣCbYV 6=*ۿM\8hs8'Ϳ,lEb\YeM6܈d9uJZĽjl}&8:sךtyisGmh-mk2PJe%u\j5 n| ;δa[;Хˎp?|yRaC$_a/ NuNeƍȄp~Ú/kn3|(G".s9Jۇl {6)X{SDf†<|0aƅDP ~jgcogs{;'Z9Z.O孁eU~?Ӆ1N3ڶD( WsrWgh0)=c9M! Y;Qd [{.h_5؋nF70QOS5:'/աJr }\#<,W$x՘2Ht!6ɽV\'S366N0G.[PPwB<g}e)HUCxW\~`9V8!ٱb^豨vhMJ–/!6Sjc @mF?aֺkbebKT6UBf*͘yw #q JԄ3(e>B~d{fEP88^:l\ZnLBdC@"zIjo!~ Ħ"?ǝ[EؿfH| %#tYHͪ!lc9^8<˅h:"MFeF5pf覊YnYͣnFhM1w8N<B6W)Oݗ<:XlCxh8J`pxh84y0AdЊ]^u_~ c_"91J&pD\`q$ AgY|yP9B:VgEW߲~=4EMnָD[s;2t4FTbwxC!ou*8\W_ӏhc؋ڜ(67ǘm7G?pM6#xLwE^DPk$3eAY~URAAvX||hz6k)X(ONثK{J Falr;h1 0 GdC6E<}px[@pxh82P~+uߠK742"U>ou6G~@4dcSDwWޝ!5B/| `..B͕ȻU;|Azһ]Wv>` _k/yz/ГCjbldcuȞ~L͕P}y5 'p~~*_U#!GB |V:ĵ>b%=AyՇ*^_b T)}7 bPohhh~rM/d.?,<}TU'_X~u%  .(?6s'Q<}RVA_U?[򗍟w^UH_͕8+Q{]nK{FwMHkpS)\]|7iǿO z7hze ! 6^/  @A'ݣdkXmW.cPnךBNCB^l eHO3`cΗwCc鑇=B&L}CGI ȱ)6( yh=T=*/5^/  @ؿ0zY꯳L2rOdsid [ؿ=bd؊ [!\5@D?5"0a1h-ſrv Hs^ALYS'E!W~?ä<W P ʱBΣ\5^]Ts_v YCk z^yy^j%tEXtdate:create2016-09-14T13:33:16-04:00! %tEXtdate:modify2016-07-13T05:26:54-04:000LmtEXtSoftwareAdobe ImageReadyqe<IENDB`PK\Ҋassets/css/_tables.scssnuW+Atable.user-registration-table { width: 100%; background: $white; border-collapse: collapse; caption, th, td { padding: 1rem; text-align: left; border-bottom: 1px solid $border_color; } caption, th { font-size: 14px; font-weight: 500; } thead { th { background: lighten($color_gray_five, 3%);; } } input, select, textarea { width: 100%; box-shadow: none; border-radius: 4px; } } PK\)66assets/css/menu-rtl.cssnuW+A.ur_plugin_upgrade_notice{font-weight:400;color:#fff;background:#d54d21;padding:1em;margin:9px 0}.ur_plugin_upgrade_notice::before{content:'\f348';display:inline-block;font:400 18px/1 dashicons;speak:none;margin:0 -2px 0 8px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.user-registration-updater-licensed td,.user-registration-updater-licensed th{box-shadow:none!important}.user-registration-deactivation-notice td,.user-registration-deactivation-notice th{box-shadow:none!important}.user-registration-updater-license-key{border:0;font-size:13px;font-weight:400;padding:6px 12px;margin:5px 40px 15px 20px;background-color:rgba(0,0,0,.03);line-height:27px}.user-registration-updater-license-key input{margin:0 4px;vertical-align:middle}.user-registration-updater-license-key::before{color:#32373c;content:'\f160';margin:0 -2px 0 8px;display:inline-block;font:400 20px/27px dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}.wp-list-table.users .ur-user-notification td{padding:0;text-align:center}.wp-list-table.users .ur-user-notification td a{display:none;padding:10px;box-shadow:none;background:#e8ebf6;border:1px solid #a0aad9}.user-registration-progress{display:-webkit-box;display:-webkit-flex;display:flex;height:1rem;overflow:hidden;font-size:.75rem;margin:1rem 0;background-color:#f0f1f5;border-radius:.25rem}.user-registration-progress .user-registration-progress-bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#475bb2;-webkit-transition:width .6s ease;transition:width .6s ease}PK\A& & 2assets/css/perfect-scrollbar/perfect-scrollbar.cssnuW+A/* * Container style */ .ps { overflow: hidden !important; overflow-anchor: none; -ms-overflow-style: none; touch-action: auto; -ms-touch-action: auto; } /* * Scrollbar rail styles */ .ps__rail-x { display: none; opacity: 0; transition: background-color .2s linear, opacity .2s linear; -webkit-transition: background-color .2s linear, opacity .2s linear; height: 15px; /* there must be 'bottom' or 'top' for ps__rail-x */ bottom: 0px; /* please don't change 'position' */ position: absolute; } .ps__rail-y { display: none; opacity: 0; transition: background-color .2s linear, opacity .2s linear; -webkit-transition: background-color .2s linear, opacity .2s linear; width: 15px; /* there must be 'right' or 'left' for ps__rail-y */ right: 0; /* please don't change 'position' */ position: absolute; } .ps--active-x > .ps__rail-x, .ps--active-y > .ps__rail-y { display: block; background-color: transparent; } .ps:hover > .ps__rail-x, .ps:hover > .ps__rail-y, .ps--focus > .ps__rail-x, .ps--focus > .ps__rail-y, .ps--scrolling-x > .ps__rail-x, .ps--scrolling-y > .ps__rail-y { opacity: 0.6; } .ps .ps__rail-x:hover, .ps .ps__rail-y:hover, .ps .ps__rail-x:focus, .ps .ps__rail-y:focus, .ps .ps__rail-x.ps--clicking, .ps .ps__rail-y.ps--clicking { background-color: #eee; opacity: 0.9; } /* * Scrollbar thumb styles */ .ps__thumb-x { background-color: #aaa; border-radius: 6px; transition: background-color .2s linear, height .2s ease-in-out; -webkit-transition: background-color .2s linear, height .2s ease-in-out; height: 6px; /* there must be 'bottom' for ps__thumb-x */ bottom: 2px; /* please don't change 'position' */ position: absolute; } .ps__thumb-y { background-color: #aaa; border-radius: 6px; transition: background-color .2s linear, width .2s ease-in-out; -webkit-transition: background-color .2s linear, width .2s ease-in-out; width: 6px; /* there must be 'right' for ps__thumb-y */ right: 2px; /* please don't change 'position' */ position: absolute; } .ps__rail-x:hover > .ps__thumb-x, .ps__rail-x:focus > .ps__thumb-x, .ps__rail-x.ps--clicking .ps__thumb-x { background-color: #999; height: 11px; } .ps__rail-y:hover > .ps__thumb-y, .ps__rail-y:focus > .ps__thumb-y, .ps__rail-y.ps--clicking .ps__thumb-y { background-color: #999; width: 11px; } /* MS supports */ @supports (-ms-overflow-style: none) { .ps { overflow: auto !important; } } @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .ps { overflow: auto !important; } } PK\rGGassets/css/dashboard.cssnuW+A.ur-dashboard-widget .ur-logo-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;margin-bottom:12px}.ur-dashboard-widget .ur-logo-wrap .ur-plugin-info{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;font-size:14px;font-weight:600;margin-left:15px}.ur-dashboard-widget .ur-logo-wrap .ur-plugin-info .ur-version{font-size:12px;font-weight:400}.ur-dashboard-widget .ur-dashboard-widget-forms .components-select-control__input{min-width:250px}.ur-dashboard-widget-statictics{margin-left:-12px;margin-right:-12px;margin-top:12px;border-top:1px solid #eee}.ur-dashboard-widget-statictics ul{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:0}.ur-dashboard-widget-statictics ul li{-webkit-box-flex:1;-webkit-flex:1;flex:1;font-weight:600;text-align:center;border-right:1px solid #eee}.ur-dashboard-widget-statictics ul li:last-child{border-right:none}PK\1 1 !assets/css/my-account-layout.scssnuW+A@import 'variables'; #user-registration { &.vertical { display: flex; flex-wrap: wrap; .user-registration-error, .user-registration-message { float:none; width: 100%; } .user-registration-MyAccount-navigation { background: $color_gray_five; width: 20%; ul { flex-direction: column; flex-wrap: nowrap; .user-registration-MyAccount-navigation-link { &.is-active { a { background: $color_gray_four; border-left: 4px solid $primary_color; } } } } } .user-registration-MyAccount-content { width: 80%; .user-registration-profile-header { display: flex; flex-wrap: wrap; align-items: center; .user-registration-img-container { margin-right: 20px; } } } } &.horizontal { box-shadow: 0 2px 20px transparentize($gray-base, 0.9); .user-registration-message, .user-registration-error, .user-registration-info { margin-bottom: 0; } .user-registration-MyAccount-navigation { ul { justify-content: center; border-bottom: 1px solid $border_color; .user-registration-MyAccount-navigation-link { a { padding: 15px 20px; } &.is-active { a { background-color: $color_gray_four; } } } } } .user-registration-MyAccount-content { text-align: center; .user-registration-profile-header { .user-registration-img-container { margin: 0 auto; margin-bottom: 15px; img { border-radius: 50%; margin: 0 auto; } } } .edit-profile, .edit-password { text-align: left; } .edit-profile { .user-registration-profile-header, h2 { text-align: center; } } } } } @media screen and (max-width: 980px) { #user-registration { &.vertical { .user-registration-MyAccount-navigation { width: 30%; } .user-registration-MyAccount-content { width: 70%; } } } } @media screen and (max-width: 600px) { #user-registration { &.vertical { .user-registration-MyAccount-navigation { width: 100%; ul { .user-registration-MyAccount-navigation-link { a { padding: 15px 20px; } } } } .user-registration-MyAccount-content { width: 100%; } } .user-registration-MyAccount-content { padding: 15px; } } } PK\dB::&assets/css/flatpickr/flatpickr.min.cssnuW+A.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px);}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;line-height:16px;height:28px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);}.flatpickr-months .flatpickr-prev-month.disabled,.flatpickr-months .flatpickr-next-month.disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/* /*rtl:begin:ignore*/left:0;/* /*rtl:end:ignore*/}/* /*rtl:begin:ignore*/ /* /*rtl:end:ignore*/ .flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/* /*rtl:begin:ignore*/right:0;/* /*rtl:end:ignore*/}/* /*rtl:begin:ignore*/ /* /*rtl:end:ignore*/ .flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9;}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px;}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%;}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box;}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0;}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%;}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto;}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05);}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0 0;line-height:1;height:28px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0;}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block;}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;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;height:28px;}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9;}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{display:inline-block;float:left;}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left;}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;display:inline-block;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#f3f3f3}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}PK\ï>>-assets/css/user-registration-smallscreen.scssnuW+A/** * user-registration-smallscreen.css * Optimises the default User Registration frontend layout when viewed on smaller screens. */ /** * Imports */ @import 'mixins'; @import 'variables'; /** * Style begins **/ @media screen and (max-width: 768px) { .ur-frontend-form { .ur-form-row { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; .ur-form-grid{ width: 100% !important; margin-bottom: 20px; &:nth-child(1n+2) { border-left: 1px solid $border_color; } &:last-child { margin-bottom: 0; border-left: 0 none; } } } } } @media screen and (max-width: 600px) { #user-registration .user-registration-MyAccount-navigation ul { display: block; .user-registration-MyAccount-navigation-link { display: block; } } } PK\̼""""assets/css/admin-rtl.cssnuW+A.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{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{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{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;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%;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{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;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;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} @charset "UTF-8";@font-face{font-family:UserRegistration;src:url(../fonts/UserRegistration.eot?5hlcw0);src:url(../fonts/UserRegistration.eot?5hlcw0#iefix) format("embedded-opentype"),url(../fonts/UserRegistration.ttf?5hlcw0) format("truetype"),url(../fonts/UserRegistration.woff?5hlcw0) format("woff"),url(../fonts/UserRegistration.svg?5hlcw0#UserRegistration) format("svg");font-weight:400;font-style:normal;font-display:block}[class*=' ur-icon-'],[class^=ur-icon-]{font-family:UserRegistration!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ur-icon-input-first-name::before{content:""}.ur-icon-input-last-name::before{content:""}.ur-icon-input-field::before{content:""}.ur-icon-input-password::before{content:""}.ur-icon-input-checkbox::before{content:""}.ur-icon-radio::before{content:""}.ur-icon-number::before{content:""}.ur-icon-phone::before{content:""}.ur-icon-calendar::before{content:""}.ur-icon-drop-down::before{content:""}.ur-icon-textarea::before{content:""}.ur-icon-email::before{content:""}.ur-icon-email-secondary::before{content:""}.ur-icon-email-confirm::before{content:""}.ur-icon-invite-codes::before{content:""}.ur-icon-password::before{content:""}.ur-icon-password-confirm::before{content:""}.ur-icon-user::before{content:""}.ur-icon-user-nickname::before{content:""}.ur-icon-user-display-name::before{content:""}.ur-icon-user-bio::before{content:""}.ur-icon-website::before{content:""}.ur-icon-flag::before{content:""}.ur-icon-map-one::before{content:""}.ur-icon-map-two::before{content:""}.ur-icon-zip-code::before{content:""}.ur-icon-select2::before{content:""}.ur-icon-multi-select::before{content:""}.ur-icon-section-title::before{content:""}.ur-icon-time-picker::before{content:""}.ur-icon-state::before{content:""}.ur-icon-buildings::before{content:""}.ur-icon-text-editor::before{content:""}.ur-icon-bill::before{content:""}.ur-icon-doc::before{content:""}.ur-icon-file-upload::before{content:""}.ur-icon-file-dollar::before{content:""}.ur-icon-code::before{content:""}.ur-icon-mailchimp::before{content:""}.ur-form-container .button,.ur-form-container button,.user-registration .button,.user-registration button{-webkit-transition:all .25s ease 0s;transition:all .25s ease 0s}.ur-form-container .button.button-icon,.ur-form-container button.button-icon,.user-registration .button.button-icon,.user-registration button.button-icon{width:32px;padding:0}.ur-form-container .button.button-icon .dashicons,.ur-form-container button.button-icon .dashicons,.user-registration .button.button-icon .dashicons,.user-registration button.button-icon .dashicons{line-height:1;vertical-align:middle}.ur-form-container .button.button-icon-round,.ur-form-container button.button-icon-round,.user-registration .button.button-icon-round,.user-registration button.button-icon-round{border-radius:50%}.ur-form-container .button .ur-spinner,.ur-form-container button .ur-spinner,.user-registration .button .ur-spinner,.user-registration button .ur-spinner{width:16px;height:16px;margin-right:6px;margin-bottom:2px;display:inline-block;vertical-align:middle}.ur-form-container .button-primary,.user-registration .button-primary{background:#475bb2;border-color:#475bb2;box-shadow:0 1px 0 #475bb2;text-shadow:none}.ur-form-container .button-primary:active,.ur-form-container .button-primary:focus,.ur-form-container .button-primary:hover,.user-registration .button-primary:active,.user-registration .button-primary:focus,.user-registration .button-primary:hover{background:#38488e;border-color:#38488e;box-shadow:0 1px 0 #38488e}.ur-form-container .button-primary:disabled,.user-registration .button-primary:disabled{color:#b2bae0!important;background:#697ac3!important;border-color:#697ac3!important}.ur-form-container .button-secondary,.user-registration .button-secondary{color:#2d3559;background:#dee0e9;border-color:#dee0e9;box-shadow:0 1px 0 #dee0e9}.ur-form-container .button-secondary:active,.ur-form-container .button-secondary:focus,.ur-form-container .button-secondary:hover,.user-registration .button-secondary:active,.user-registration .button-secondary:focus,.user-registration .button-secondary:hover{color:#2d3559;background:#b6bbcf;border-color:#b6bbcf;box-shadow:0 1px 0 #b6bbcf}.ur-form-container .button-danger,.user-registration .button-danger{color:#fff;background:#ff4149;border-color:#ff4149;box-shadow:0 1px 0 #ff4149}.ur-form-container .button-danger:active,.ur-form-container .button-danger:focus,.ur-form-container .button-danger:hover,.user-registration .button-danger:active,.user-registration .button-danger:focus,.user-registration .button-danger:hover{color:#fff;background:#ee2a32;border-color:#ee2a32;box-shadow:0 1px 0 #ee2a32}.ur-form-container .publishing-action .button,.ur-form-container .publishing-action button,.ur-form-container .publishing-action input[type=button],.ur-form-container .publishing-action input[type=submit],.user-registration .publishing-action .button,.user-registration .publishing-action button,.user-registration .publishing-action input[type=button],.user-registration .publishing-action input[type=submit]{margin-left:5px}.ur-registered-item.ui-draggable-dragging{padding:10px 10px;line-height:20px;background:#475bb2;color:#fff;text-align:center;margin-bottom:7px;word-break:break-word;white-space:normal;width:200px!important;z-index:9}.ur-registered-item.ui-draggable-dragging span{font-size:14px;line-height:20px;width:auto;height:auto;margin-left:3px}.select2-container .ur-select-all-countries-button{margin:6px 6px 4px 3px}.select2-container .ur-unselect-all-countries-button{margin:6px 3px 4px}table.user-registration-table{width:100%;background:#fff;border-collapse:collapse}table.user-registration-table caption,table.user-registration-table td,table.user-registration-table th{padding:1rem;text-align:right;border-bottom:1px solid #dee0e9}table.user-registration-table caption,table.user-registration-table th{font-size:14px;font-weight:500}table.user-registration-table thead th{background:#fafafc}table.user-registration-table input,table.user-registration-table select,table.user-registration-table textarea{width:100%;box-shadow:none;border-radius:4px}.blockUI.blockOverlay::before{width:16px;height:16px;position:absolute;display:block;content:'';-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover}.ur-spinner::before{width:16px;height:16px;position:absolute;display:block;content:'';-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover}@-webkit-keyframes spin{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@keyframes spin{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}.ur-export-users-page{margin-top:6px}.ur-export-users-page .nav-tab-content .nav-tab-inside .postbox{width:50%;-webkit-box-flex:1;-webkit-flex:1;flex:1}.ur-export-users-page .nav-tab-content .hndle,.ur-export-users-page .nav-tab-content .stuffbox .hndle{margin:10px;padding-bottom:10px}.ur_addons_wrap .products{overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.ur_addons_wrap .products li{margin:0 0 1% 1%!important;padding:0;vertical-align:top;width:19.2%;float:right}.ur_addons_wrap .products li:nth-child(5n){margin:0 0 1% 0!important}.ur_addons_wrap .products li a{text-decoration:none;color:inherit;border:1px solid #ddd;display:block;min-height:220px;overflow:hidden;background:#f5f5f5;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1)}.ur_addons_wrap .products li a .product-image{display:block;background:#fff}.ur_addons_wrap .products li a .product-image img{max-width:100%;display:block;margin:0}.ur_addons_wrap .products li a img.extension-thumb+h3{display:none}.ur_addons_wrap .products li a .price{display:none}.ur_addons_wrap .products li a h2,.ur_addons_wrap .products li a h3{margin:0!important;padding:20px!important;background:#fff}.ur_addons_wrap .products li a p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.ur_addons_wrap .products li a:focus,.ur_addons_wrap .products li a:hover{background-color:#fff}.clear{clear:both}.wrap.user-registration div.error,.wrap.user-registration div.updated{margin-top:10px}.user-registration_page_add-new-registration #wpfooter{display:none}.user-registration_page_add-new-registration .ur-form-container{margin:0}.user-registration_page_add-new-registration .ur-form-container .ur-loading-container{position:fixed;right:160px;left:0;top:0;bottom:0;background:#fff;display:-webkit-box;display:-webkit-flex;display:flex;z-index:9}.user-registration_page_add-new-registration .ur-form-container .ur-loading-container .ur-circle-loading{margin:auto;right:30px}.user-registration_page_add-new-registration .ur-form-container #menu-management{margin-top:0}.user-registration_page_add-new-registration .ur-form-container #menu-management .menu-edit{position:fixed;right:160px;left:0;border:none;box-shadow:none;margin-bottom:0}.user-registration_page_add-new-registration .ur-form-container #ur-full-screen-mode.closed .ur-fs-close-label{display:none}.user-registration_page_add-new-registration .ur-form-container #ur-full-screen-mode.opened .ur-fs-open-label{display:none}.user-registration_page_add-new-registration #menu-management-liquid{margin-top:0;margin-right:-20px;min-width:calc(100% + 20px)}.user-registration_page_add-new-registration #nav-menu-header{padding:12px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:relative;border-color:#dee0e9;background-color:#fff;z-index:9}.user-registration_page_add-new-registration #nav-menu-header .ur-brand-logo{border-left:1px solid #dee0e9}.user-registration_page_add-new-registration #nav-menu-header .ur-brand-logo img{width:32px;height:32px;padding:0 8px;margin-left:8px;display:-webkit-box;display:-webkit-flex;display:flex}.user-registration_page_add-new-registration #nav-menu-header::after,.user-registration_page_add-new-registration #nav-menu-header::before{content:'';display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;right:0;left:0;bottom:0;background:#fff}.user-registration_page_add-new-registration #nav-menu-header::before{top:0;z-index:-1}.user-registration_page_add-new-registration #nav-menu-header::after{height:10px;box-shadow:0 4px 8px rgba(45,53,89,.08);z-index:-2}.user-registration_page_add-new-registration .major-publishing-actions{clear:both;line-height:28px;margin-right:auto}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action{text-align:left;float:left}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action input.code{width:265px;height:33px;padding:0 6px;margin:0;border-color:#dee0e9;background-color:#f0f1f5;border-radius:0 3px 3px 0}.user-registration_page_add-new-registration .major-publishing-actions #copy-shortcode{margin-right:-5px;border-radius:4px 0 0 4px}.user-registration_page_add-new-registration .major-publishing-actions #copy-shortcode svg{fill:#fff;margin-bottom:5px;vertical-align:middle}.ur-backbone-modal *{box-sizing:border-box}.ur-backbone-modal .ur-backbone-modal-content{position:fixed;background-color:#fff;z-index:100000;right:50%;top:50%;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%);width:500px}.ur-backbone-modal .ur-backbone-modal-content article{overflow:auto}.ur-backbone-modal.ur-backbone-modal-content{width:75%;min-width:500px}.ur-backbone-modal .select2-container{width:100%!important}.ur-backbone-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background-color:#2d3559;opacity:.7;z-index:99900}.ur-backbone-modal-main{padding-bottom:55px}.ur-backbone-modal-main article,.ur-backbone-modal-main header{display:block;position:relative}.ur-backbone-modal-main .ur-backbone-modal-header{height:auto;background-color:#f0f1f5;padding:1em 1.5em;border-bottom:1px solid #dee0e9}.ur-backbone-modal-main .ur-backbone-modal-header h1{margin:0;font-size:18px;font-weight:700;line-height:1.5em}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link{cursor:pointer;color:#777;height:54px;width:54px;padding:0;position:absolute;top:0;left:0;text-align:center;border:0;border-right:1px solid #dee0e9;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link::before{font:normal 22px/50px dashicons!important;color:#676d8a;display:block;content:'\f335';font-weight:300}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:focus,.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:hover{background-color:#dee0e9;border-color:#ccc;color:#2d3559}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:focus{outline:0}.ur-backbone-modal-main article{padding:1.5em}.ur-backbone-modal-main article p{margin:1.5em 0}.ur-backbone-modal-main article p:first-child{margin-top:0}.ur-backbone-modal-main article p:last-child{margin-bottom:0}.ur-backbone-modal-main article .pagination{padding:10px 0 0;text-align:center}.ur-backbone-modal-main footer{position:absolute;right:0;left:0;bottom:0;z-index:100;padding:1em 1.5em;background-color:#f0f1f5;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px rgba(0,0,0,.1)}.ur-backbone-modal-main footer .inner{float:left;line-height:23px}.ur-backbone-modal-main footer .inner .button{margin-bottom:0}.user-registration_page_add-new-registration .swal2-container .swal2-title{color:#2d3559;font-size:24px;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:24px}.user-registration_page_add-new-registration .swal2-container .dashicons{color:#ff4149;font-size:28px;width:56px;height:56px;line-height:56px;margin:0 auto 20px;border:2px solid #ff4149;border-radius:50%}.user-registration_page_add-new-registration .swal2-container .ur-swal-title{-webkit-box-flex:100%;-webkit-flex:100%;flex:100%}.user-registration_page_add-new-registration .swal2-container .swal2-content,.user-registration_page_add-new-registration .swal2-container p{color:#4c5477;font-size:1em}.user-registration nav.ur-nav-tab-wrapper{margin:1.5em 0 1em}.user-registration #mainform>.subsubsub{background:#e5e5e5;float:none}.user-registration #mainform>.subsubsub a{display:block;padding:7px 10px}.user-registration #mainform>.subsubsub a.current{color:#fff;background:#475bb2}.user-registration textarea[disabled=disabled]{background:#dfdfdf!important}.user-registration table.form-table{margin:0;position:relative}.user-registration table.form-table fieldset{margin-top:4px}.user-registration table.form-table fieldset .user-registration-help-tip,.user-registration table.form-table fieldset img.help_tip{margin:-3px 5px 0 0}.user-registration table.form-table fieldset p.description{margin-bottom:8px}.user-registration table.form-table fieldset:first-child{margin-top:0}.user-registration table.form-table th{position:relative;padding-left:24px}.user-registration table.form-table th .user-registration-help-tip,.user-registration table.form-table th img.help_tip{margin:0 0 0 -24px;float:left}.user-registration table.form-table .select2-container{display:block;max-width:350px;margin-bottom:3px}.user-registration table.form-table .forminp-radio ul{margin:0}.user-registration table.form-table .forminp-radio ul li{line-height:1.4em}.user-registration table.form-table textarea.input-text{height:100%;min-width:150px;display:block}.user-registration table.form-table input.regular-input{width:25em}.user-registration table.form-table textarea.wide-input{width:100%}.user-registration table.form-table .help_tip,.user-registration table.form-table .user-registration-help-tip{padding:0;margin:-4px 5px 0 0;vertical-align:middle;cursor:help;line-height:1}.user-registration table.form-table .wp-list-table .user-registration-help-tip{float:none}.user-registration table.form-table .iris-picker{z-index:100;display:none;position:absolute;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.user-registration table.form-table .iris-picker .ui-slider{border:0!important;margin:0!important;width:auto!important;height:auto!important;background:none transparent!important}.user-registration table.form-table .iris-picker .ui-slider .ui-slider-handle{margin-bottom:0!important}.user-registration table.form-table .colorpickpreview{padding:3px;padding-right:20px;border:1px solid #dee0e9;border-left:0}.user-registration table.form-table .colorpick{border-right:0}.user-registration table.form-table .image_width_settings{vertical-align:middle}.user-registration table.form-table .image_width_settings label{margin-right:10px}.user-registration table.form-table .dashicons{margin-bottom:2px;vertical-align:middle}.ur-registered-from{display:-webkit-box;display:-webkit-flex;display:flex;background-color:#fff}.ur-registered-from *{box-sizing:border-box}.ur-registered-from :focus{outline:0}.ur-registered-from a{text-decoration:none}.ur-registered-from h3{color:#2d3559;font-weight:500}.ur-registered-from .ur-field label{font-weight:400}.ur-registered-from .ur-field label:last-child{margin-bottom:0}.ur-registered-from .ur-field input[type=checkbox],.ur-registered-from .ur-field input[type=radio]{opacity:1;box-shadow:none;border-color:#dee0e9}.ur-registered-from .select2.select2-container{width:100%!important}.ur-registered-from .wp-picker-container .wp-picker-input-wrap label{display:inline-block;width:auto}.ur-registered-from .wp-picker-container .wp-picker-input-wrap label input.wp-color-picker{height:auto;padding:3px 5px}.ur-registered-from .ur-no-pointer{pointer-events:none}.ur-registered-from .ur-registered-item{cursor:move;padding:4px;color:#676d8a;height:110px;font-size:12px;border-radius:4px;margin:0 8px 16px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center;width:calc(33.3333% - 16px);background-color:#f0f1f5}.ur-registered-from .ur-registered-item .ur-icon{font-size:32px;margin-bottom:4px}.ur-registered-from .ur-registered-item:hover{background-color:#475bb2;color:#fff}.ur-registered-from .ur-registered-item.ui-draggable-dragging{width:110px!important;z-index:9!important}.ur-registered-from .ur-registered-item.ui-draggable-disabled{color:#b6bbcf}.ur-registered-from .ur-registered-item.ui-draggable-disabled.ur-upgradable-field{cursor:pointer!important}.ur-registered-from .ur-registered-item.ui-draggable-disabled:hover{background:#f0f1f5;cursor:not-allowed}.ur-registered-from .ur-registered-inputs{width:412px}.ur-registered-from .ur-registered-inputs .ur-tabs{border:0 none;padding:0;font-size:14px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists{background-color:#f0f1f5;background-image:none;padding:0;border-radius:0;margin:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border-bottom:none;border-top:0 none;border-left:0 none;border-right:0 none}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li{background-color:transparent;background-image:none;border-radius:0;margin:0;margin-bottom:-1px;padding:0;border:0;-webkit-box-flex:1;-webkit-flex:1;flex:1;text-align:center}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li.active{margin-bottom:0;padding-bottom:0}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li.ui-state-disabled{opacity:1}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a{float:none;text-decoration:none;margin:0;border:none;display:block;color:#2d3559;background-color:transparent;padding:12px 15px;font-weight:500;cursor:pointer}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a:focus{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a.active{background-color:#fff;color:#475bb2;line-height:24px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-contents{height:calc(100vh - 130px);position:relative;overflow-y:auto}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content{padding:16px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:relative}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text{height:40px;padding:8px 12px;font-size:14px;background:#f0f1f5;border-color:#f0f1f5;border-radius:4px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::-webkit-input-placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::-ms-input-placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields svg{position:absolute;left:12px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-fields-not-found{text-align:center;margin-top:2.85em}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-fields-not-found .ur-fields-not-found-title{font-size:1.7em}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content#ur-tab-field-options,.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content#ur-tab-registered-fields{background-color:#fff}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content h2{margin:16px 0;font-size:1em;font-weight:500;color:#2d3559}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content h2~hr{border-top:1px solid #dee0e9}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 16px);margin-right:-8px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list:last-child{margin-bottom:0}.ur-registered-from .ur-registered-inputs .ur-toggle-heading{cursor:pointer}.ur-registered-from .ur-registered-inputs .ur-toggle-heading:before{content:'\f142';cursor:pointer;display:block;font:400 20px/1 Dashicons;line-height:.5!important;padding:4px;position:relative;left:0;top:0;float:left}.ur-registered-from .ur-registered-inputs .ur-toggle-heading.closed:before{content:'\f140'}.ur-registered-from .ui-widget select,.ur-registered-from input[type=date],.ur-registered-from input[type=email],.ur-registered-from input[type=file],.ur-registered-from input[type=month],.ur-registered-from input[type=number],.ur-registered-from input[type=password],.ur-registered-from input[type=phone],.ur-registered-from input[type=tel],.ur-registered-from input[type=text],.ur-registered-from input[type=time],.ur-registered-from input[type=timepicker],.ur-registered-from input[type=url],.ur-registered-from input[type=week],.ur-registered-from select,.ur-registered-from textarea{width:100%;max-width:100%;height:32px;line-height:initial;display:block;color:#4c5477;font-size:13px;padding:4px 8px;border-radius:3px;border:1px solid #dee0e9;box-shadow:0 0 0 transparent}.ur-registered-from .ui-widget select:focus,.ur-registered-from input[type=date]:focus,.ur-registered-from input[type=email]:focus,.ur-registered-from input[type=file]:focus,.ur-registered-from input[type=month]:focus,.ur-registered-from input[type=number]:focus,.ur-registered-from input[type=password]:focus,.ur-registered-from input[type=phone]:focus,.ur-registered-from input[type=tel]:focus,.ur-registered-from input[type=text]:focus,.ur-registered-from input[type=time]:focus,.ur-registered-from input[type=timepicker]:focus,.ur-registered-from input[type=url]:focus,.ur-registered-from input[type=week]:focus,.ur-registered-from select:focus,.ur-registered-from textarea:focus{border-color:#475bb2}.ur-registered-from .ui-widget select::-webkit-input-placeholder,.ur-registered-from input[type=date]::-webkit-input-placeholder,.ur-registered-from input[type=email]::-webkit-input-placeholder,.ur-registered-from input[type=file]::-webkit-input-placeholder,.ur-registered-from input[type=month]::-webkit-input-placeholder,.ur-registered-from input[type=number]::-webkit-input-placeholder,.ur-registered-from input[type=password]::-webkit-input-placeholder,.ur-registered-from input[type=phone]::-webkit-input-placeholder,.ur-registered-from input[type=tel]::-webkit-input-placeholder,.ur-registered-from input[type=text]::-webkit-input-placeholder,.ur-registered-from input[type=time]::-webkit-input-placeholder,.ur-registered-from input[type=timepicker]::-webkit-input-placeholder,.ur-registered-from input[type=url]::-webkit-input-placeholder,.ur-registered-from input[type=week]::-webkit-input-placeholder,.ur-registered-from select::-webkit-input-placeholder,.ur-registered-from textarea::-webkit-input-placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select::-ms-input-placeholder,.ur-registered-from input[type=date]::-ms-input-placeholder,.ur-registered-from input[type=email]::-ms-input-placeholder,.ur-registered-from input[type=file]::-ms-input-placeholder,.ur-registered-from input[type=month]::-ms-input-placeholder,.ur-registered-from input[type=number]::-ms-input-placeholder,.ur-registered-from input[type=password]::-ms-input-placeholder,.ur-registered-from input[type=phone]::-ms-input-placeholder,.ur-registered-from input[type=tel]::-ms-input-placeholder,.ur-registered-from input[type=text]::-ms-input-placeholder,.ur-registered-from input[type=time]::-ms-input-placeholder,.ur-registered-from input[type=timepicker]::-ms-input-placeholder,.ur-registered-from input[type=url]::-ms-input-placeholder,.ur-registered-from input[type=week]::-ms-input-placeholder,.ur-registered-from select::-ms-input-placeholder,.ur-registered-from textarea::-ms-input-placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select::placeholder,.ur-registered-from input[type=date]::placeholder,.ur-registered-from input[type=email]::placeholder,.ur-registered-from input[type=file]::placeholder,.ur-registered-from input[type=month]::placeholder,.ur-registered-from input[type=number]::placeholder,.ur-registered-from input[type=password]::placeholder,.ur-registered-from input[type=phone]::placeholder,.ur-registered-from input[type=tel]::placeholder,.ur-registered-from input[type=text]::placeholder,.ur-registered-from input[type=time]::placeholder,.ur-registered-from input[type=timepicker]::placeholder,.ur-registered-from input[type=url]::placeholder,.ur-registered-from input[type=week]::placeholder,.ur-registered-from select::placeholder,.ur-registered-from textarea::placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select:disabled,.ur-registered-from input[type=date]:disabled,.ur-registered-from input[type=email]:disabled,.ur-registered-from input[type=file]:disabled,.ur-registered-from input[type=month]:disabled,.ur-registered-from input[type=number]:disabled,.ur-registered-from input[type=password]:disabled,.ur-registered-from input[type=phone]:disabled,.ur-registered-from input[type=tel]:disabled,.ur-registered-from input[type=text]:disabled,.ur-registered-from input[type=time]:disabled,.ur-registered-from input[type=timepicker]:disabled,.ur-registered-from input[type=url]:disabled,.ur-registered-from input[type=week]:disabled,.ur-registered-from select:disabled,.ur-registered-from textarea:disabled{color:#b6bbcf;background:#f0f1f5}.ur-registered-from select{padding-left:0}.ur-registered-from label{display:block;width:100%;margin-bottom:8px;color:#4c5477;font-size:13px;font-weight:500;line-height:1.25}.ur-registered-from textarea{padding:10px;height:100px}.ur-registered-from .ur-builder-wrapper{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:calc(100vh - 89px);background:#fafafc;border-right:1px solid #dee0e9;overflow-y:auto}.ur-registered-from .ur-builder-wrapper input[type=date]:disabled,.ur-registered-from .ur-builder-wrapper input[type=email]:disabled,.ur-registered-from .ur-builder-wrapper input[type=file]:disabled,.ur-registered-from .ur-builder-wrapper input[type=month]:disabled,.ur-registered-from .ur-builder-wrapper input[type=number]:disabled,.ur-registered-from .ur-builder-wrapper input[type=password]:disabled,.ur-registered-from .ur-builder-wrapper input[type=phone]:disabled,.ur-registered-from .ur-builder-wrapper input[type=tel]:disabled,.ur-registered-from .ur-builder-wrapper input[type=text]:disabled,.ur-registered-from .ur-builder-wrapper input[type=time]:disabled,.ur-registered-from .ur-builder-wrapper input[type=timepicker]:disabled,.ur-registered-from .ur-builder-wrapper input[type=url]:disabled,.ur-registered-from .ur-builder-wrapper input[type=week]:disabled,.ur-registered-from .ur-builder-wrapper select:disabled,.ur-registered-from .ur-builder-wrapper textarea:disabled{background:#fff}.ur-registered-from .ur-builder-wrapper .ur-builder-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;margin:16px 0;position:relative}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper .ur-edit-form-name{width:32px;height:32px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border-radius:3px;margin-bottom:0;color:#4c5477;background:#dee0e9;border:1px solid transparent}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper .ur-edit-form-name::after{content:'';border-radius:3px;position:absolute;right:32px;left:calc(100% - 32px);height:30px;border-radius:3px 0 0 3px;-webkit-transition:all .3s ease 0s;transition:all .3s ease 0s}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input{color:#2d3559;background:0 0;font-size:16px;font-weight:500;width:auto;padding:4px 8px;border-color:transparent;pointer-events:none;z-index:1;border:1px solid transparent}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing{border-color:transparent;pointer-events:all}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing+.ur-edit-form-name{color:#fff;background:#475bb2;border-radius:0 3px 3px 0;border:1px solid #475bb2}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing+.ur-edit-form-name::after{top:0;left:0;border:1px solid #475bb2}.ur-registered-from .ur-builder-wrapper.ur-multipart .ur-button-quick-links{bottom:60px}.ur-registered-from .ur-builder-wrapper.ur-multipart .ur-builder-wrapper-footer .button.button-style-customizer{bottom:124px}.ur-registered-from .ur-selected-inputs{box-sizing:border-box;padding:0 20px}.ur-registered-from .ur-selected-inputs .ur-single-row{border-radius:3px;position:relative;border:1px solid transparent}.ur-registered-from .ur-selected-inputs .ur-single-row:last-child{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;left:0;z-index:1;opacity:0;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button{display:-webkit-box;display:-webkit-flex;display:flex;border-radius:0;border:0;background-color:#676d8a;color:#fff;font-size:16px;height:auto;width:auto;cursor:pointer;padding:4px 6px;line-height:1;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button svg{width:16px;height:16px;font-size:16px;fill:#fff}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:before{font-family:dashicons}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button.ur-remove-row:hover{background:#ff4149}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:hover{background:#475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:first-child{border-radius:0 3px 3px 0;border-left:1px solid rgba(255,255,255,.2)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:nth-child(2){border-radius:3px 0 0 3px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content{background:#fff;padding:1rem;position:absolute;top:40px;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;border:1px solid #dee0e9;border-radius:4px;box-shadow:-1px 4px 14px 1px rgba(45,53,89,.1)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content small{font-size:12px;margin-bottom:.5rem;color:#676d8a}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector{cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;margin-left:.5rem}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector svg{width:32px;height:32px;fill:#676d8a}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector:last-child{margin-left:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content::before{content:'';width:8px;height:8px;border:solid #dee0e9;border-width:1px;border-right:transparent;border-bottom:transparent;position:absolute;top:-5px;left:36px;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists{width:100%;display:-webkit-box;display:-webkit-flex;display:flex;text-align:center;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border:1px solid transparent;border-radius:4px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item{display:inline-block;text-align:right;border:0 none;padding:15px;-webkit-box-flex:1;-webkit-flex:1;flex:1;border:1px solid transparent;border-radius:4px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item{margin-bottom:5px;position:relative;padding:15px;cursor:move;border:1px solid transparent;border-radius:4px;-webkit-transition:border-color .35s;transition:border-color .35s}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .select2-container{width:100%!important}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .select2-container .select2-search--inline .select2-search__field{height:auto;min-width:10px;background:0 0;margin:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-input-type-signature canvas{background:rgba(255,255,255,.5);border:1px solid #dee0e9}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:last-child{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ur-item-active,.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:hover{background:#fff;border:1px solid #475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ui-sortable-helper{box-shadow:0 0 10px 5px rgba(45,53,89,.1)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ui-sortable-placeholder{visibility:visible!important;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons{display:none;position:absolute;left:10px;width:50px;text-align:center;padding:0;font-size:10px;top:10px;color:#b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons span{cursor:pointer;font-size:16px;height:auto}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons span:hover{color:#475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons:hover .ur-action-buttons{display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons .ur-trash:hover{color:#ff4149}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_top_left{text-align:right}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_center{text-align:center}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_top_right{text-align:left}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_disabled{display:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:hover .ur-action-buttons{display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item>li.ur-item-dragged{list-style:none;width:100%;text-align:center;height:60px!important;box-sizing:border-box}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item>li.ur-item-dragged .spinner{float:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me{display:table;width:100%;height:100%}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text{display:table-cell;vertical-align:middle;text-align:center}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text p{display:inline-block;position:relative;color:#b6bbcf;padding-right:26px;padding-top:8px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text p::before{position:absolute;font-family:Dashicons;content:'\f545';font-size:22px;right:0;top:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me:empty{padding:15px;text-align:center;border-radius:4px;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me:empty::before{content:'\f132';font-size:32px;color:#b6bbcf;width:32px;height:32px;font-family:dashicons;display:table-cell;vertical-align:middle}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item.ur-sortable-active .ur-registered-item{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item.ur-sortable-active .user-registration-dragged-me{display:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:first-child{border-radius:0 4px 4px 0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(2){border-radius:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(3){border-radius:4px 0 0 4px}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grids{opacity:1}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists{background:#fff;border:1px solid #b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists .ur-grid-list-item{border-right:1px solid #b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists .ur-grid-list-item:first-child{border-color:transparent}.ur-registered-from .ur-selected-inputs .ur-add-new-row{display:block;margin:20px auto;width:auto;height:32px;text-align:center;font-family:inherit}.ur-registered-from .ur-selected-inputs .ur-add-new-row::before{width:16px;height:16px;font-size:16px;margin-left:10px;font-family:dashicons;vertical-align:middle;padding:1px 0 1px 10px;border-left:1px solid rgba(255,255,255,.3)}.ur-registered-from .ur-selected-inputs li.ur-registered-item{width:120px!important}.ur-registered-from .ur-selected-inputs li.ur-registered-item.ui-sortable-placeholder{margin-right:0;width:100%!important;visibility:visible!important;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-builder-wrapper-footer .button.button-style-customizer{height:48px;width:48px;bottom:72px;box-shadow:-1px 2px 8px rgba(45,53,89,.15)}.ur-registered-from .ur-builder-wrapper-footer .button.button-style-customizer .dashicons{font-size:24px;height:24px;width:24px}.ur-registered-from .ur-builder-wrapper-footer .ur-button-quick-links{width:48px;height:48px;position:fixed;cursor:pointer;color:#4c5477;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;left:32px;bottom:16px;background:#fff;border:1px solid #dee0e9;border-radius:24px;box-shadow:0 2px 10px rgba(45,53,89,.1);z-index:1}.ur-registered-from .ur-builder-wrapper-footer .ur-button-quick-links span{font-size:20px;font-weight:600;margin:0 auto}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content{position:fixed;background:#fff;padding:12px 16px;border-radius:4px;bottom:58px;left:30px;z-index:2;width:225px;border:1px solid #dee0e9;box-shadow:-2px 4px 12px rgba(45,53,89,.1)}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content li{margin-bottom:8px}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content a{color:#4c5477}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content a:hover{color:#475bb2}.ur-registered-from .ur-advance-setting,.ur-registered-from .ur-general-setting{margin:16px 0}.ur-registered-from .ur-advance-setting-block{margin-top:25px}.ur-registered-from .form-row{margin-bottom:1em}.ur-registered-from .form-row .description{color:#676d8a;margin:4px 0;display:block}.ur-registered-from .form-row .ur-checkbox-list label,.ur-registered-from .form-row .ur-radio-list label{display:inline}.ur-registered-from .ur-advance-setting-block,.ur-registered-from .ur-general-setting-block{display:none}.ur-registered-from .add,.ur-registered-from .remove{background:#fff;border:1px solid #dee0e9;color:#676d8a;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1 0 32px;flex:1 0 32px;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:32px;max-width:32px;border-radius:4px;position:relative}.ur-registered-from .add:hover,.ur-registered-from .remove:hover{background:#475bb2;border-color:#475bb2;color:#fff}.ur-registered-from .add .dashicons,.ur-registered-from .remove .dashicons{line-height:22px}.ur-registered-from .add{margin-left:8px}.ur-registered-from .ur-options-list li{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.ur-registered-from .ur-options-list li .editor-block-mover__control-drag-handle{margin-left:8px;cursor:-webkit-grab;cursor:grab}.ur-registered-from .ur-options-list li .editor-block-mover__control-drag-handle svg{fill:#676d8a}.ur-registered-from .ur-options-list li input{margin-left:8px}.ur-registered-from .ur-options-list .ui-sortable-handle{padding:5px;border-radius:3px;border:1px solid transparent}.ur-registered-from .ur-options-list .ui-sortable-handle:active{padding:5px;background:#fff;border:1px solid #475bb2;box-shadow:0 0 20px rgba(0,0,0,.2)}.ur-registered-from .ur-options-list .ui-sortable-handle.ui-sortable-placeholder{background-color:#dee0e9;visibility:visible!important}.ur-registered-from .urcl-rules{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:8px}.ur-registered-from .urcl-rules>div{margin-left:8px}.ur-registered-from .urcl-rules .urcl-operator{width:78px}.ur-registered-from .urcl-rules .urcl-field,.ur-registered-from .urcl-rules .urcl-value{max-width:27%;-webkit-box-flex:1;-webkit-flex:1 0 27%;flex:1 0 27%}.tips{cursor:help;text-decoration:none}img.tips{padding:5px 0 0}#tiptip_holder{display:none;z-index:8675309;position:absolute;top:0;left:0}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-right:-6px;border-top-color:#dee0e9}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-right:-6px;border-bottom-color:#4c5477}#tiptip_holder.tip_right{padding-right:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-right:-5px;border-left-color:#dee0e9}#tiptip_holder.tip_left{padding-left:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-right:-7px;border-right-color:#dee0e9}#tiptip_content,.ur_error_tip{color:#fff;font-size:.9em;max-width:150px;background:#4c5477;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.ur_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_arrow{right:50%;margin-right:-6px}.ur_error_tip{max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#ff4149;margin:1.5em -1em 0 1px;z-index:9999999}.ur_error_tip::after{content:'';display:block;border:8px solid #ff4149;border-left-color:transparent;border-right-color:transparent;border-top-color:transparent;position:absolute;top:-3px;right:50%;margin:-1em -3px 0 0}.user-registration-help-tip{color:#676d8a;display:inline-block;font-size:16px;font-style:normal;height:16px;line-height:16px;position:relative;vertical-align:middle;width:16px}.user-registration-help-tip::after{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;right:0;width:100%;height:100%;text-align:center;content:"";cursor:help}.select2-results__option .wrap:before{content:"\2610";width:25px;height:25px;padding-left:10px}.select2-results__option[data-selected=true] .wrap:before{content:"\2714"}.select2-drop,.select2-dropdown{z-index:999999!important}.select2-results{line-height:1.5em}.select2-results .select2-results__group,.select2-results .select2-results__option{margin:0;padding:8px}.select2-dropdown{border-color:#dee0e9}.select2-dropdown--below{box-shadow:0 1px 1px rgba(0,0,0,.1)}.select2-dropdown--above{box-shadow:0 -1px 1px rgba(0,0,0,.1)}.select2-container .select2-selection__rendered.ui-sortable li{cursor:move}.select2-container .select2-selection{border-color:#dee0e9}.select2-container .select2-search__field{min-width:20px}.select2-container .select2-selection--single{height:32px}.select2-container .select2-selection--single .select2-selection__rendered{line-height:32px;padding-left:24px}.select2-container .select2-selection--single .select2-selection__arrow{left:3px;height:30px}.select2-container .select2-selection--multiple{min-height:28px;border-radius:4px;line-height:1.5;border:1px solid #ddd!important}.select2-container .select2-selection--multiple li{margin:0}.select2-container .select2-selection--multiple .select2-selection__choice{padding:2px 6px}.select2-container .select2-selection__clear{color:#999;margin-top:-1px}.select2-container .select2-search--inline .select2-search__field{font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 0;margin:0;line-height:1;min-height:26px}#smart-tags{text-align:center}.form-settings-tab{cursor:pointer;padding:10px 15px;color:#2d3559;background:#dee0e9;margin-bottom:10px;line-height:1.2;border-radius:4px}.form-settings-tab.active{background:#475bb2;color:#fff}#profile-page form#your-profile .flatpickr-input[readonly]{background-color:#fff}body.ur-full-screen-mode{margin-top:-32px}body.ur-full-screen-mode #wpbody-content{padding-bottom:45px}body.ur-full-screen-mode #wpwrap #wpcontent{margin-right:0;padding-right:0}body.ur-full-screen-mode #wpwrap #wpcontent #wpadminbar{display:none}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody .ur-tab-content{padding:20px}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody #menu-management-liquid{margin-top:0}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody #menu-management-liquid .menu-edit{margin-bottom:0;box-shadow:none;right:0!important}body.ur-full-screen-mode #wpwrap #adminmenumain{display:none}body.ur-full-screen-mode .ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-contents{height:calc(100vh - 98px)}body.ur-full-screen-mode .ur-registered-from .ur-builder-wrapper{height:calc(100vh - 57px)}@-webkit-keyframes ur-circle-loading{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(-180deg) translate(0,-20px) scale(1);transform:rotate(-180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(-360deg) translate(0,-20px) scale(0);transform:rotate(-360deg) translate(0,-20px) scale(0)}}@keyframes ur-circle-loading{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(-180deg) translate(0,-20px) scale(1);transform:rotate(-180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(-360deg) translate(0,-20px) scale(0);transform:rotate(-360deg) translate(0,-20px) scale(0)}}@-webkit-keyframes ur-circle-loading-keyframe{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(-180deg) translate(0,-20px) scale(1);transform:rotate(-180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(-360deg) translate(0,-20px) scale(0);transform:rotate(-360deg) translate(0,-20px) scale(0)}}@-webkit-keyframes open-message{0%{opacity:0;-webkit-transform:translateY(-120%);transform:translateY(-120%)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes open-message{0%{opacity:0;-webkit-transform:translateY(-120%);transform:translateY(-120%)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes close-message{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes close-message{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.ur-circle-loading{position:relative;width:100px!important;height:100px!important;-webkit-transform:translate(50px,-50px) scale(.5) translate(-50px,50px);-ms-transform:translate(50px,-50px) scale(.5) translate(-50px,50px);transform:translate(50px,-50px) scale(.5) translate(-50px,50px)}.ur-circle-loading::after,.ur-circle-loading::before{content:'';position:absolute;top:70px;right:70px;-webkit-animation:ur-circle-loading-keyframe 1.5s linear infinite;animation:ur-circle-loading-keyframe 1.5s linear infinite;width:60px;height:60px;border-radius:50%;background:#475bb2}.ur-circle-loading::after{-webkit-animation-delay:-.75s;animation-delay:-.75s;background:#668fe5}.ur-builder-message-container{position:fixed;top:32px;right:0;left:0;max-width:400px;margin:0 auto;z-index:9999}.ur-builder-message-container .ur-message{display:none;margin:0 auto;margin-top:16px;-webkit-transition:all 240ms cubic-bezier(0,0,.2,1) 0s;transition:all 240ms cubic-bezier(0,0,.2,1) 0s;z-index:99999;height:0}.ur-builder-message-container .ur-message .ur-error,.ur-builder-message-container .ur-message .ur-success{background:#fff;padding:8px 16px;border-radius:3px;border-right:3px solid;position:relative;box-shadow:0 1px 8px 2px rgba(45,53,89,.1)}.ur-builder-message-container .ur-message .ur-error p,.ur-builder-message-container .ur-message .ur-success p{margin:8px 0}.ur-builder-message-container .ur-message .ur-error p::after,.ur-builder-message-container .ur-message .ur-error p::before,.ur-builder-message-container .ur-message .ur-success p::after,.ur-builder-message-container .ur-message .ur-success p::before{font-family:dashicons;width:20px;height:20px;font-size:20px;margin-left:8px;margin-top:-4px;line-height:1;display:inline-block;vertical-align:middle}.ur-builder-message-container .ur-message .ur-success{border-color:#7ad03a}.ur-builder-message-container .ur-message .ur-success p::before{content:"\f12a";color:#7ad03a}.ur-builder-message-container .ur-message .ur-error{border-color:#ff4149}.ur-builder-message-container .ur-message .ur-error p::before{content:"\f534";color:#ff4149}.ur-builder-message-container .ur-message .dashicons{cursor:pointer;position:absolute;left:16px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);line-height:1}.ur-builder-message-container .ur-message.entered{display:block;height:50px;-webkit-animation:240ms cubic-bezier(.175,.885,.32,1.175) 0s 1 normal both open-message;animation:240ms cubic-bezier(.175,.885,.32,1.175) 0s 1 normal both open-message}.ur-builder-message-container .ur-message.exiting{display:block;-webkit-animation:120ms cubic-bezier(.4,0,1,1) 0s 1 normal both close-message;animation:120ms cubic-bezier(.4,0,1,1) 0s 1 normal both close-message}.ur-builder-message-container .ur-message:first-child{margin-top:1.5rem}@media only screen and (max-width:1599px){.ur_addons_wrap .products li{width:32.66%}.ur_addons_wrap .products li:nth-child(3n){margin:0 0 1% 0!important}.ur_addons_wrap .products li:nth-child(5n){margin:0 0 1% 1%!important}}@media screen and (max-width:1400px){.ur-registered-from .urcl-rules .urcl-field{max-width:61%;-webkit-box-flex:1;-webkit-flex:1 0 60%;flex:1 0 60%;margin-bottom:5px}.ur-registered-from .urcl-rules .urcl-value{-webkit-box-ordinal-group:5;-webkit-order:4;order:4;max-width:87%;-webkit-box-flex:1;-webkit-flex:1 0 86%;flex:1 0 86%}.ur-registered-from .urcl-rules .add{-webkit-box-ordinal-group:4;-webkit-order:3;order:3;margin-left:0}.ur-registered-from .urcl-rules .remove{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}}@media only screen and (max-width:1120px){.ur_addons_wrap .products li{width:49%;margin:0 0 2% 2%!important}.ur_addons_wrap .products li:nth-child(2n){margin:0 0 2% 0!important}.ur_addons_wrap .products li:nth-child(3n),.ur_addons_wrap .products li:nth-child(5n){margin:0 0 2% 2%!important}}@media screen and (max-width:960px){.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list .ur-registered-item{float:none;width:100%}.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists,.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item,.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item{padding:10px}}@media only screen and (max-width:900px){.ur_addons_wrap .products li{width:49%}}@media screen and (max-width:782px){body.user-registration_page_add-new-registration{min-width:0!important}.ur-registered-from{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.ur-registered-from .ur-registered-inputs{width:100%;margin-bottom:10px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list .ur-registered-item{float:right;width:48%}.ur-registered-from .ur-selected-inputs{width:100%}}@media screen and (max-width:600px){.user-registration_page_add-new-registration .major-publishing-actions{clear:both;padding:10px 0 19px;line-height:28px}.user-registration_page_add-new-registration .major-publishing-actions .ur-form-name{width:100%}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action{text-align:right;float:none;margin-top:15px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item{width:100%!important}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(1n+2){border-right:0 none}}@media only screen and (max-width:480px){.ur_addons_wrap .products li,.ur_addons_wrap .products li:nth-child(2n),.ur_addons_wrap .products li:nth-child(3n),.ur_addons_wrap .products li:nth-child(5n){width:100%;margin:0 0 3% 0!important}}PK\y0assets/css/user-registration-smallscreen-rtl.cssnuW+A@media screen and (max-width:768px){.ur-frontend-form .ur-form-row{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.ur-frontend-form .ur-form-row .ur-form-grid{width:100%!important;margin-bottom:20px}.ur-frontend-form .ur-form-row .ur-form-grid:nth-child(1n+2){border-right:1px solid #dee0e9}.ur-frontend-form .ur-form-row .ur-form-grid:last-child{margin-bottom:0;border-right:0 none}}@media screen and (max-width:600px){#user-registration .user-registration-MyAccount-navigation ul{display:block}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link{display:block}}PK\|}jjassets/css/_variables.scssnuW+A/** * Variables */ // Color System // Primary $primary_color: #475BB2; $primary_dark: darken($primary_color, 10% ); // #217dbb $primary_light: lighten($primary_color, 40%); // #e1f0fa // Alerts $green: #7ad03a; $red: #ff4149; $orange: #ffba00; $blue: #2ea2cc; // Gray Shades $white: #ffffff; $gray_base: #2d3559; $color_gray_one: adjust-color($gray_base, $saturation: -11%, $lightness: +12%); // #4c5477 $color_gray_two: adjust-color($gray_base, $saturation: -18%, $lightness: +21%); // #676d8a $color_gray_three: adjust-color($gray_base, $saturation: -13%, $lightness: +50%); // #b6bbcf $color_gray_four: adjust-color($gray_base, $saturation: -14%, $lightness: +63%); // #dee0e9 $color_gray_five: adjust-color($gray_base, $saturation: -12%, $lightness: +69%); // #f0f1f5 $color_sortable_background: #f7f7f7; // Other Color variables $border_color: $color_gray_four; $label_color: $color_gray_two; $border_color_input: darken($border_color, 10%); $input_background_color: $color_gray_five; $flat_background: $color_gray_five; $rounded-color: darken($border_color, 10%); // Social login Color Variable $color_social_default: $primary_color; $color_facebook: #4267b2; // Facebook brand color $color_twitter: #1da1f2; // Twitter brand color $color_google: #4285F4; // Google brand color $color_linkedin: #0077b5; //Linkedin brand color PK\Y:C66assets/css/menu.cssnuW+A.ur_plugin_upgrade_notice{font-weight:400;color:#fff;background:#d54d21;padding:1em;margin:9px 0}.ur_plugin_upgrade_notice::before{content:'\f348';display:inline-block;font:400 18px/1 dashicons;speak:none;margin:0 8px 0 -2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.user-registration-updater-licensed td,.user-registration-updater-licensed th{box-shadow:none!important}.user-registration-deactivation-notice td,.user-registration-deactivation-notice th{box-shadow:none!important}.user-registration-updater-license-key{border:0;font-size:13px;font-weight:400;padding:6px 12px;margin:5px 20px 15px 40px;background-color:rgba(0,0,0,.03);line-height:27px}.user-registration-updater-license-key input{margin:0 4px;vertical-align:middle}.user-registration-updater-license-key::before{color:#32373c;content:'\f160';margin:0 8px 0 -2px;display:inline-block;font:400 20px/27px dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}.wp-list-table.users .ur-user-notification td{padding:0;text-align:center}.wp-list-table.users .ur-user-notification td a{display:none;padding:10px;box-shadow:none;background:#e8ebf6;border:1px solid #a0aad9}.user-registration-progress{display:-webkit-box;display:-webkit-flex;display:flex;height:1rem;overflow:hidden;font-size:.75rem;margin:1rem 0;background-color:#f0f1f5;border-radius:.25rem}.user-registration-progress .user-registration-progress-bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#475bb2;-webkit-transition:width .6s ease;transition:width .6s ease}PK\({;;assets/css/review.cssnuW+A#user-registration-review-notice.user-registration-review-notice{padding:15px 15px 15px 0;background-color:#fff}#user-registration-review-notice .notice-dismiss:before{display:none}#user-registration-review-notice .user-registration-review-thumbnail{float:left;text-align:center;margin:5px 20px}#user-registration-review-notice .user-registration-review-thumbnail img{border-radius:5px;vertical-align:middle}#user-registration-review-notice .user-registration-review-text{overflow:hidden}#user-registration-review-notice .user-registration-review-text h3{font-size:20px;margin:0 0 5px;line-height:1.3}#user-registration-review-notice .user-registration-review-text p{font-size:13px}#user-registration-review-notice .user-registration-review-ul{margin:0;padding:0}#user-registration-review-notice .user-registration-review-ul li{display:inline-block;margin-right:10px}#user-registration-review-notice .user-registration-review-ul li a{display:inline-block;text-decoration:none;position:relative}#user-registration-review-notice .user-registration-review-ul li a span{margin-right:5px}PK\ЩTassets/css/activation.cssnuW+A.user-registration-message{overflow:hidden;position:relative;border-left-color:#2ea2cc!important}.user-registration-message.error{border-left-color:#ff4149!important}.user-registration-message.error p{max-width:1000px}.user-registration-message a.button-primary,.user-registration-message a.button-secondary{text-decoration:none!important}.user-registration-message a.user-registration-message-close{position:absolute;top:0;right:0;padding:10px 15px 10px 21px;font-size:13px;line-height:1.23076923;text-decoration:none}.user-registration-message a.user-registration-message-close:before{position:absolute;top:8px;left:0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}PK\}Ê& & assets/css/my-account-layout.cssnuW+A#user-registration.vertical{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#user-registration.vertical .user-registration-error,#user-registration.vertical .user-registration-message{float:none;width:100%}#user-registration.vertical .user-registration-MyAccount-navigation{background:#f0f1f5;width:20%}#user-registration.vertical .user-registration-MyAccount-navigation ul{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}#user-registration.vertical .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{background:#dee0e9;border-left:4px solid #475bb2}#user-registration.vertical .user-registration-MyAccount-content{width:80%}#user-registration.vertical .user-registration-MyAccount-content .user-registration-profile-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}#user-registration.vertical .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{margin-right:20px}#user-registration.horizontal{box-shadow:0 2px 20px rgba(45,53,89,.1)}#user-registration.horizontal .user-registration-error,#user-registration.horizontal .user-registration-info,#user-registration.horizontal .user-registration-message{margin-bottom:0}#user-registration.horizontal .user-registration-MyAccount-navigation ul{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border-bottom:1px solid #dee0e9}#user-registration.horizontal .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:15px 20px}#user-registration.horizontal .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{background-color:#dee0e9}#user-registration.horizontal .user-registration-MyAccount-content{text-align:center}#user-registration.horizontal .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{margin:0 auto;margin-bottom:15px}#user-registration.horizontal .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container img{border-radius:50%;margin:0 auto}#user-registration.horizontal .user-registration-MyAccount-content .edit-password,#user-registration.horizontal .user-registration-MyAccount-content .edit-profile{text-align:left}#user-registration.horizontal .user-registration-MyAccount-content .edit-profile .user-registration-profile-header,#user-registration.horizontal .user-registration-MyAccount-content .edit-profile h2{text-align:center}@media screen and (max-width:980px){#user-registration.vertical .user-registration-MyAccount-navigation{width:30%}#user-registration.vertical .user-registration-MyAccount-content{width:70%}}@media screen and (max-width:600px){#user-registration.vertical .user-registration-MyAccount-navigation{width:100%}#user-registration.vertical .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:15px 20px}#user-registration.vertical .user-registration-MyAccount-content{width:100%}#user-registration .user-registration-MyAccount-content{padding:15px}}PK\PAӐassets/css/_mixins.scssnuW+A/** * _mixins.scss * User Registration Mixins */ @mixin ir() { display: block; text-indent: -9999px; position: relative; height: 1em; width: 1em; } @mixin clearfix() { *zoom: 1; &::before, &::after { content: ' '; display: table; } &::after { clear: both; } } @mixin icon_dashicons( $glyph: '\f333' ) { font-family: 'Dashicons'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin: 0; text-indent: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; content: $glyph; } @mixin iconbeforedashicons( $glyph: '\f333' ) { font-family: 'Dashicons'; speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; margin-right: 0.618em; content: $glyph; text-decoration: none; } @mixin loader() { &::before { width: 16px; height: 16px; position: absolute; display: block; content: ''; animation: spin 1s ease-in-out infinite; background: url( '../images/icons/loader.svg' ) center center; background-size: cover; } } PK\dp4((assets/css/dashboard.scssnuW+A/** * User Registration Activity on Dashboard */ .ur-dashboard-widget { .ur-logo-wrap { align-items: center; display: flex; margin-bottom: 12px; .ur-plugin-info { display: flex; flex-direction: column; font-size: 14px; font-weight: 600; margin-left: 15px; .ur-version { font-size:12px; font-weight: normal; } } } .ur-dashboard-widget-forms { .components-select-control__input { min-width: 250px; } } } .ur-dashboard-widget-statictics { margin-left: -12px; margin-right: -12px; margin-top: 12px; border-top: 1px solid #eeeeee; ul { display: flex; flex-wrap: wrap; margin-bottom: 0; li { flex: 1; font-weight: 600; text-align: center; border-right: 1px solid #eeeeee; &:last-child { border-right: none; } } } } PK\2j' ' $assets/css/my-account-layout-rtl.cssnuW+A#user-registration.vertical{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#user-registration.vertical .user-registration-error,#user-registration.vertical .user-registration-message{float:none;width:100%}#user-registration.vertical .user-registration-MyAccount-navigation{background:#f0f1f5;width:20%}#user-registration.vertical .user-registration-MyAccount-navigation ul{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}#user-registration.vertical .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{background:#dee0e9;border-right:4px solid #475bb2}#user-registration.vertical .user-registration-MyAccount-content{width:80%}#user-registration.vertical .user-registration-MyAccount-content .user-registration-profile-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}#user-registration.vertical .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{margin-left:20px}#user-registration.horizontal{box-shadow:0 2px 20px rgba(45,53,89,.1)}#user-registration.horizontal .user-registration-error,#user-registration.horizontal .user-registration-info,#user-registration.horizontal .user-registration-message{margin-bottom:0}#user-registration.horizontal .user-registration-MyAccount-navigation ul{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border-bottom:1px solid #dee0e9}#user-registration.horizontal .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:15px 20px}#user-registration.horizontal .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{background-color:#dee0e9}#user-registration.horizontal .user-registration-MyAccount-content{text-align:center}#user-registration.horizontal .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{margin:0 auto;margin-bottom:15px}#user-registration.horizontal .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container img{border-radius:50%;margin:0 auto}#user-registration.horizontal .user-registration-MyAccount-content .edit-password,#user-registration.horizontal .user-registration-MyAccount-content .edit-profile{text-align:right}#user-registration.horizontal .user-registration-MyAccount-content .edit-profile .user-registration-profile-header,#user-registration.horizontal .user-registration-MyAccount-content .edit-profile h2{text-align:center}@media screen and (max-width:980px){#user-registration.vertical .user-registration-MyAccount-navigation{width:30%}#user-registration.vertical .user-registration-MyAccount-content{width:70%}}@media screen and (max-width:600px){#user-registration.vertical .user-registration-MyAccount-navigation{width:100%}#user-registration.vertical .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:15px 20px}#user-registration.vertical .user-registration-MyAccount-content{width:100%}#user-registration .user-registration-MyAccount-content{padding:15px}}PK\z!!assets/css/admin.cssnuW+A.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{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{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{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;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%;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{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;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;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} @charset "UTF-8";@font-face{font-family:UserRegistration;src:url(../fonts/UserRegistration.eot?5hlcw0);src:url(../fonts/UserRegistration.eot?5hlcw0#iefix) format("embedded-opentype"),url(../fonts/UserRegistration.ttf?5hlcw0) format("truetype"),url(../fonts/UserRegistration.woff?5hlcw0) format("woff"),url(../fonts/UserRegistration.svg?5hlcw0#UserRegistration) format("svg");font-weight:400;font-style:normal;font-display:block}[class*=' ur-icon-'],[class^=ur-icon-]{font-family:UserRegistration!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ur-icon-input-first-name::before{content:""}.ur-icon-input-last-name::before{content:""}.ur-icon-input-field::before{content:""}.ur-icon-input-password::before{content:""}.ur-icon-input-checkbox::before{content:""}.ur-icon-radio::before{content:""}.ur-icon-number::before{content:""}.ur-icon-phone::before{content:""}.ur-icon-calendar::before{content:""}.ur-icon-drop-down::before{content:""}.ur-icon-textarea::before{content:""}.ur-icon-email::before{content:""}.ur-icon-email-secondary::before{content:""}.ur-icon-email-confirm::before{content:""}.ur-icon-invite-codes::before{content:""}.ur-icon-password::before{content:""}.ur-icon-password-confirm::before{content:""}.ur-icon-user::before{content:""}.ur-icon-user-nickname::before{content:""}.ur-icon-user-display-name::before{content:""}.ur-icon-user-bio::before{content:""}.ur-icon-website::before{content:""}.ur-icon-flag::before{content:""}.ur-icon-map-one::before{content:""}.ur-icon-map-two::before{content:""}.ur-icon-zip-code::before{content:""}.ur-icon-select2::before{content:""}.ur-icon-multi-select::before{content:""}.ur-icon-section-title::before{content:""}.ur-icon-time-picker::before{content:""}.ur-icon-state::before{content:""}.ur-icon-buildings::before{content:""}.ur-icon-text-editor::before{content:""}.ur-icon-bill::before{content:""}.ur-icon-doc::before{content:""}.ur-icon-file-upload::before{content:""}.ur-icon-file-dollar::before{content:""}.ur-icon-code::before{content:""}.ur-icon-mailchimp::before{content:""}.ur-form-container .button,.ur-form-container button,.user-registration .button,.user-registration button{-webkit-transition:all .25s ease 0s;transition:all .25s ease 0s}.ur-form-container .button.button-icon,.ur-form-container button.button-icon,.user-registration .button.button-icon,.user-registration button.button-icon{width:32px;padding:0}.ur-form-container .button.button-icon .dashicons,.ur-form-container button.button-icon .dashicons,.user-registration .button.button-icon .dashicons,.user-registration button.button-icon .dashicons{line-height:1;vertical-align:middle}.ur-form-container .button.button-icon-round,.ur-form-container button.button-icon-round,.user-registration .button.button-icon-round,.user-registration button.button-icon-round{border-radius:50%}.ur-form-container .button .ur-spinner,.ur-form-container button .ur-spinner,.user-registration .button .ur-spinner,.user-registration button .ur-spinner{width:16px;height:16px;margin-left:6px;margin-bottom:2px;display:inline-block;vertical-align:middle}.ur-form-container .button-primary,.user-registration .button-primary{background:#475bb2;border-color:#475bb2;box-shadow:0 1px 0 #475bb2;text-shadow:none}.ur-form-container .button-primary:active,.ur-form-container .button-primary:focus,.ur-form-container .button-primary:hover,.user-registration .button-primary:active,.user-registration .button-primary:focus,.user-registration .button-primary:hover{background:#38488e;border-color:#38488e;box-shadow:0 1px 0 #38488e}.ur-form-container .button-primary:disabled,.user-registration .button-primary:disabled{color:#b2bae0!important;background:#697ac3!important;border-color:#697ac3!important}.ur-form-container .button-secondary,.user-registration .button-secondary{color:#2d3559;background:#dee0e9;border-color:#dee0e9;box-shadow:0 1px 0 #dee0e9}.ur-form-container .button-secondary:active,.ur-form-container .button-secondary:focus,.ur-form-container .button-secondary:hover,.user-registration .button-secondary:active,.user-registration .button-secondary:focus,.user-registration .button-secondary:hover{color:#2d3559;background:#b6bbcf;border-color:#b6bbcf;box-shadow:0 1px 0 #b6bbcf}.ur-form-container .button-danger,.user-registration .button-danger{color:#fff;background:#ff4149;border-color:#ff4149;box-shadow:0 1px 0 #ff4149}.ur-form-container .button-danger:active,.ur-form-container .button-danger:focus,.ur-form-container .button-danger:hover,.user-registration .button-danger:active,.user-registration .button-danger:focus,.user-registration .button-danger:hover{color:#fff;background:#ee2a32;border-color:#ee2a32;box-shadow:0 1px 0 #ee2a32}.ur-form-container .publishing-action .button,.ur-form-container .publishing-action button,.ur-form-container .publishing-action input[type=button],.ur-form-container .publishing-action input[type=submit],.user-registration .publishing-action .button,.user-registration .publishing-action button,.user-registration .publishing-action input[type=button],.user-registration .publishing-action input[type=submit]{margin-right:5px}.ur-registered-item.ui-draggable-dragging{padding:10px 10px;line-height:20px;background:#475bb2;color:#fff;text-align:center;margin-bottom:7px;word-break:break-word;white-space:normal;width:200px!important;z-index:9}.ur-registered-item.ui-draggable-dragging span{font-size:14px;line-height:20px;width:auto;height:auto;margin-right:3px}.select2-container .ur-select-all-countries-button{margin:6px 3px 4px 6px}.select2-container .ur-unselect-all-countries-button{margin:6px 3px 4px}table.user-registration-table{width:100%;background:#fff;border-collapse:collapse}table.user-registration-table caption,table.user-registration-table td,table.user-registration-table th{padding:1rem;text-align:left;border-bottom:1px solid #dee0e9}table.user-registration-table caption,table.user-registration-table th{font-size:14px;font-weight:500}table.user-registration-table thead th{background:#fafafc}table.user-registration-table input,table.user-registration-table select,table.user-registration-table textarea{width:100%;box-shadow:none;border-radius:4px}.blockUI.blockOverlay::before{width:16px;height:16px;position:absolute;display:block;content:'';-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover}.ur-spinner::before{width:16px;height:16px;position:absolute;display:block;content:'';-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ur-export-users-page{margin-top:6px}.ur-export-users-page .nav-tab-content .nav-tab-inside .postbox{width:50%;-webkit-box-flex:1;-webkit-flex:1;flex:1}.ur-export-users-page .nav-tab-content .hndle,.ur-export-users-page .nav-tab-content .stuffbox .hndle{margin:10px;padding-bottom:10px}.ur_addons_wrap .products{overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.ur_addons_wrap .products li{margin:0 1% 1% 0!important;padding:0;vertical-align:top;width:19.2%;float:left}.ur_addons_wrap .products li:nth-child(5n){margin:0 0 1% 0!important}.ur_addons_wrap .products li a{text-decoration:none;color:inherit;border:1px solid #ddd;display:block;min-height:220px;overflow:hidden;background:#f5f5f5;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1)}.ur_addons_wrap .products li a .product-image{display:block;background:#fff}.ur_addons_wrap .products li a .product-image img{max-width:100%;display:block;margin:0}.ur_addons_wrap .products li a img.extension-thumb+h3{display:none}.ur_addons_wrap .products li a .price{display:none}.ur_addons_wrap .products li a h2,.ur_addons_wrap .products li a h3{margin:0!important;padding:20px!important;background:#fff}.ur_addons_wrap .products li a p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.ur_addons_wrap .products li a:focus,.ur_addons_wrap .products li a:hover{background-color:#fff}.clear{clear:both}.wrap.user-registration div.error,.wrap.user-registration div.updated{margin-top:10px}.user-registration_page_add-new-registration #wpfooter{display:none}.user-registration_page_add-new-registration .ur-form-container{margin:0}.user-registration_page_add-new-registration .ur-form-container .ur-loading-container{position:fixed;left:160px;right:0;top:0;bottom:0;background:#fff;display:-webkit-box;display:-webkit-flex;display:flex;z-index:9}.user-registration_page_add-new-registration .ur-form-container .ur-loading-container .ur-circle-loading{margin:auto;left:30px}.user-registration_page_add-new-registration .ur-form-container #menu-management{margin-top:0}.user-registration_page_add-new-registration .ur-form-container #menu-management .menu-edit{position:fixed;left:160px;right:0;border:none;box-shadow:none;margin-bottom:0}.user-registration_page_add-new-registration .ur-form-container #ur-full-screen-mode.closed .ur-fs-close-label{display:none}.user-registration_page_add-new-registration .ur-form-container #ur-full-screen-mode.opened .ur-fs-open-label{display:none}.user-registration_page_add-new-registration #menu-management-liquid{margin-top:0;margin-left:-20px;min-width:calc(100% + 20px)}.user-registration_page_add-new-registration #nav-menu-header{padding:12px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:relative;border-color:#dee0e9;background-color:#fff;z-index:9}.user-registration_page_add-new-registration #nav-menu-header .ur-brand-logo{border-right:1px solid #dee0e9}.user-registration_page_add-new-registration #nav-menu-header .ur-brand-logo img{width:32px;height:32px;padding:0 8px;margin-right:8px;display:-webkit-box;display:-webkit-flex;display:flex}.user-registration_page_add-new-registration #nav-menu-header::after,.user-registration_page_add-new-registration #nav-menu-header::before{content:'';display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;left:0;right:0;bottom:0;background:#fff}.user-registration_page_add-new-registration #nav-menu-header::before{top:0;z-index:-1}.user-registration_page_add-new-registration #nav-menu-header::after{height:10px;box-shadow:0 4px 8px rgba(45,53,89,.08);z-index:-2}.user-registration_page_add-new-registration .major-publishing-actions{clear:both;line-height:28px;margin-left:auto}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action{text-align:right;float:right}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action input.code{width:265px;height:33px;padding:0 6px;margin:0;border-color:#dee0e9;background-color:#f0f1f5;border-radius:3px 0 0 3px}.user-registration_page_add-new-registration .major-publishing-actions #copy-shortcode{margin-left:-5px;border-radius:0 4px 4px 0}.user-registration_page_add-new-registration .major-publishing-actions #copy-shortcode svg{fill:#fff;margin-bottom:5px;vertical-align:middle}.ur-backbone-modal *{box-sizing:border-box}.ur-backbone-modal .ur-backbone-modal-content{position:fixed;background-color:#fff;z-index:100000;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:500px}.ur-backbone-modal .ur-backbone-modal-content article{overflow:auto}.ur-backbone-modal.ur-backbone-modal-content{width:75%;min-width:500px}.ur-backbone-modal .select2-container{width:100%!important}.ur-backbone-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background-color:#2d3559;opacity:.7;z-index:99900}.ur-backbone-modal-main{padding-bottom:55px}.ur-backbone-modal-main article,.ur-backbone-modal-main header{display:block;position:relative}.ur-backbone-modal-main .ur-backbone-modal-header{height:auto;background-color:#f0f1f5;padding:1em 1.5em;border-bottom:1px solid #dee0e9}.ur-backbone-modal-main .ur-backbone-modal-header h1{margin:0;font-size:18px;font-weight:700;line-height:1.5em}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link{cursor:pointer;color:#777;height:54px;width:54px;padding:0;position:absolute;top:0;right:0;text-align:center;border:0;border-left:1px solid #dee0e9;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link::before{font:normal 22px/50px dashicons!important;color:#676d8a;display:block;content:'\f335';font-weight:300}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:focus,.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:hover{background-color:#dee0e9;border-color:#ccc;color:#2d3559}.ur-backbone-modal-main .ur-backbone-modal-header .modal-close-link:focus{outline:0}.ur-backbone-modal-main article{padding:1.5em}.ur-backbone-modal-main article p{margin:1.5em 0}.ur-backbone-modal-main article p:first-child{margin-top:0}.ur-backbone-modal-main article p:last-child{margin-bottom:0}.ur-backbone-modal-main article .pagination{padding:10px 0 0;text-align:center}.ur-backbone-modal-main footer{position:absolute;left:0;right:0;bottom:0;z-index:100;padding:1em 1.5em;background-color:#f0f1f5;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px rgba(0,0,0,.1)}.ur-backbone-modal-main footer .inner{float:right;line-height:23px}.ur-backbone-modal-main footer .inner .button{margin-bottom:0}.user-registration_page_add-new-registration .swal2-container .swal2-title{color:#2d3559;font-size:24px;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:24px}.user-registration_page_add-new-registration .swal2-container .dashicons{color:#ff4149;font-size:28px;width:56px;height:56px;line-height:56px;margin:0 auto 20px;border:2px solid #ff4149;border-radius:50%}.user-registration_page_add-new-registration .swal2-container .ur-swal-title{-webkit-box-flex:100%;-webkit-flex:100%;flex:100%}.user-registration_page_add-new-registration .swal2-container .swal2-content,.user-registration_page_add-new-registration .swal2-container p{color:#4c5477;font-size:1em}.user-registration nav.ur-nav-tab-wrapper{margin:1.5em 0 1em}.user-registration #mainform>.subsubsub{background:#e5e5e5;float:none}.user-registration #mainform>.subsubsub a{display:block;padding:7px 10px}.user-registration #mainform>.subsubsub a.current{color:#fff;background:#475bb2}.user-registration textarea[disabled=disabled]{background:#dfdfdf!important}.user-registration table.form-table{margin:0;position:relative}.user-registration table.form-table fieldset{margin-top:4px}.user-registration table.form-table fieldset .user-registration-help-tip,.user-registration table.form-table fieldset img.help_tip{margin:-3px 0 0 5px}.user-registration table.form-table fieldset p.description{margin-bottom:8px}.user-registration table.form-table fieldset:first-child{margin-top:0}.user-registration table.form-table th{position:relative;padding-right:24px}.user-registration table.form-table th .user-registration-help-tip,.user-registration table.form-table th img.help_tip{margin:0 -24px 0 0;float:right}.user-registration table.form-table .select2-container{display:block;max-width:350px;margin-bottom:3px}.user-registration table.form-table .forminp-radio ul{margin:0}.user-registration table.form-table .forminp-radio ul li{line-height:1.4em}.user-registration table.form-table textarea.input-text{height:100%;min-width:150px;display:block}.user-registration table.form-table input.regular-input{width:25em}.user-registration table.form-table textarea.wide-input{width:100%}.user-registration table.form-table .help_tip,.user-registration table.form-table .user-registration-help-tip{padding:0;margin:-4px 0 0 5px;vertical-align:middle;cursor:help;line-height:1}.user-registration table.form-table .wp-list-table .user-registration-help-tip{float:none}.user-registration table.form-table .iris-picker{z-index:100;display:none;position:absolute;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.user-registration table.form-table .iris-picker .ui-slider{border:0!important;margin:0!important;width:auto!important;height:auto!important;background:none transparent!important}.user-registration table.form-table .iris-picker .ui-slider .ui-slider-handle{margin-bottom:0!important}.user-registration table.form-table .colorpickpreview{padding:3px;padding-left:20px;border:1px solid #dee0e9;border-right:0}.user-registration table.form-table .colorpick{border-left:0}.user-registration table.form-table .image_width_settings{vertical-align:middle}.user-registration table.form-table .image_width_settings label{margin-left:10px}.user-registration table.form-table .dashicons{margin-bottom:2px;vertical-align:middle}.ur-registered-from{display:-webkit-box;display:-webkit-flex;display:flex;background-color:#fff}.ur-registered-from *{box-sizing:border-box}.ur-registered-from :focus{outline:0}.ur-registered-from a{text-decoration:none}.ur-registered-from h3{color:#2d3559;font-weight:500}.ur-registered-from .ur-field label{font-weight:400}.ur-registered-from .ur-field label:last-child{margin-bottom:0}.ur-registered-from .ur-field input[type=checkbox],.ur-registered-from .ur-field input[type=radio]{opacity:1;box-shadow:none;border-color:#dee0e9}.ur-registered-from .select2.select2-container{width:100%!important}.ur-registered-from .wp-picker-container .wp-picker-input-wrap label{display:inline-block;width:auto}.ur-registered-from .wp-picker-container .wp-picker-input-wrap label input.wp-color-picker{height:auto;padding:3px 5px}.ur-registered-from .ur-no-pointer{pointer-events:none}.ur-registered-from .ur-registered-item{cursor:move;padding:4px;color:#676d8a;height:110px;font-size:12px;border-radius:4px;margin:0 8px 16px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center;width:calc(33.3333% - 16px);background-color:#f0f1f5}.ur-registered-from .ur-registered-item .ur-icon{font-size:32px;margin-bottom:4px}.ur-registered-from .ur-registered-item:hover{background-color:#475bb2;color:#fff}.ur-registered-from .ur-registered-item.ui-draggable-dragging{width:110px!important;z-index:9!important}.ur-registered-from .ur-registered-item.ui-draggable-disabled{color:#b6bbcf}.ur-registered-from .ur-registered-item.ui-draggable-disabled.ur-upgradable-field{cursor:pointer!important}.ur-registered-from .ur-registered-item.ui-draggable-disabled:hover{background:#f0f1f5;cursor:not-allowed}.ur-registered-from .ur-registered-inputs{width:412px}.ur-registered-from .ur-registered-inputs .ur-tabs{border:0 none;padding:0;font-size:14px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists{background-color:#f0f1f5;background-image:none;padding:0;border-radius:0;margin:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border-bottom:none;border-top:0 none;border-right:0 none;border-left:0 none}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li{background-color:transparent;background-image:none;border-radius:0;margin:0;margin-bottom:-1px;padding:0;border:0;-webkit-box-flex:1;-webkit-flex:1;flex:1;text-align:center}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li.active{margin-bottom:0;padding-bottom:0}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li.ui-state-disabled{opacity:1}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a{float:none;text-decoration:none;margin:0;border:none;display:block;color:#2d3559;background-color:transparent;padding:12px 15px;font-weight:500;cursor:pointer}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a:focus{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-lists li a.active{background-color:#fff;color:#475bb2;line-height:24px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-contents{height:calc(100vh - 130px);position:relative;overflow-y:auto}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content{padding:16px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:relative}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text{height:40px;padding:8px 12px;font-size:14px;background:#f0f1f5;border-color:#f0f1f5;border-radius:4px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::-webkit-input-placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::-ms-input-placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields input.ur-type-text::placeholder{color:#b6bbcf}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-search-fields svg{position:absolute;right:12px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-fields-not-found{text-align:center;margin-top:2.85em}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-fields-not-found .ur-fields-not-found-title{font-size:1.7em}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content#ur-tab-field-options,.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content#ur-tab-registered-fields{background-color:#fff}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content h2{margin:16px 0;font-size:1em;font-weight:500;color:#2d3559}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content h2~hr{border-top:1px solid #dee0e9}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 16px);margin-left:-8px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list:last-child{margin-bottom:0}.ur-registered-from .ur-registered-inputs .ur-toggle-heading{cursor:pointer}.ur-registered-from .ur-registered-inputs .ur-toggle-heading:before{content:'\f142';cursor:pointer;display:block;font:400 20px/1 Dashicons;line-height:.5!important;padding:4px;position:relative;right:0;top:0;float:right}.ur-registered-from .ur-registered-inputs .ur-toggle-heading.closed:before{content:'\f140'}.ur-registered-from .ui-widget select,.ur-registered-from input[type=date],.ur-registered-from input[type=email],.ur-registered-from input[type=file],.ur-registered-from input[type=month],.ur-registered-from input[type=number],.ur-registered-from input[type=password],.ur-registered-from input[type=phone],.ur-registered-from input[type=tel],.ur-registered-from input[type=text],.ur-registered-from input[type=time],.ur-registered-from input[type=timepicker],.ur-registered-from input[type=url],.ur-registered-from input[type=week],.ur-registered-from select,.ur-registered-from textarea{width:100%;max-width:100%;height:32px;line-height:initial;display:block;color:#4c5477;font-size:13px;padding:4px 8px;border-radius:3px;border:1px solid #dee0e9;box-shadow:0 0 0 transparent}.ur-registered-from .ui-widget select:focus,.ur-registered-from input[type=date]:focus,.ur-registered-from input[type=email]:focus,.ur-registered-from input[type=file]:focus,.ur-registered-from input[type=month]:focus,.ur-registered-from input[type=number]:focus,.ur-registered-from input[type=password]:focus,.ur-registered-from input[type=phone]:focus,.ur-registered-from input[type=tel]:focus,.ur-registered-from input[type=text]:focus,.ur-registered-from input[type=time]:focus,.ur-registered-from input[type=timepicker]:focus,.ur-registered-from input[type=url]:focus,.ur-registered-from input[type=week]:focus,.ur-registered-from select:focus,.ur-registered-from textarea:focus{border-color:#475bb2}.ur-registered-from .ui-widget select::-webkit-input-placeholder,.ur-registered-from input[type=date]::-webkit-input-placeholder,.ur-registered-from input[type=email]::-webkit-input-placeholder,.ur-registered-from input[type=file]::-webkit-input-placeholder,.ur-registered-from input[type=month]::-webkit-input-placeholder,.ur-registered-from input[type=number]::-webkit-input-placeholder,.ur-registered-from input[type=password]::-webkit-input-placeholder,.ur-registered-from input[type=phone]::-webkit-input-placeholder,.ur-registered-from input[type=tel]::-webkit-input-placeholder,.ur-registered-from input[type=text]::-webkit-input-placeholder,.ur-registered-from input[type=time]::-webkit-input-placeholder,.ur-registered-from input[type=timepicker]::-webkit-input-placeholder,.ur-registered-from input[type=url]::-webkit-input-placeholder,.ur-registered-from input[type=week]::-webkit-input-placeholder,.ur-registered-from select::-webkit-input-placeholder,.ur-registered-from textarea::-webkit-input-placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select::-ms-input-placeholder,.ur-registered-from input[type=date]::-ms-input-placeholder,.ur-registered-from input[type=email]::-ms-input-placeholder,.ur-registered-from input[type=file]::-ms-input-placeholder,.ur-registered-from input[type=month]::-ms-input-placeholder,.ur-registered-from input[type=number]::-ms-input-placeholder,.ur-registered-from input[type=password]::-ms-input-placeholder,.ur-registered-from input[type=phone]::-ms-input-placeholder,.ur-registered-from input[type=tel]::-ms-input-placeholder,.ur-registered-from input[type=text]::-ms-input-placeholder,.ur-registered-from input[type=time]::-ms-input-placeholder,.ur-registered-from input[type=timepicker]::-ms-input-placeholder,.ur-registered-from input[type=url]::-ms-input-placeholder,.ur-registered-from input[type=week]::-ms-input-placeholder,.ur-registered-from select::-ms-input-placeholder,.ur-registered-from textarea::-ms-input-placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select::placeholder,.ur-registered-from input[type=date]::placeholder,.ur-registered-from input[type=email]::placeholder,.ur-registered-from input[type=file]::placeholder,.ur-registered-from input[type=month]::placeholder,.ur-registered-from input[type=number]::placeholder,.ur-registered-from input[type=password]::placeholder,.ur-registered-from input[type=phone]::placeholder,.ur-registered-from input[type=tel]::placeholder,.ur-registered-from input[type=text]::placeholder,.ur-registered-from input[type=time]::placeholder,.ur-registered-from input[type=timepicker]::placeholder,.ur-registered-from input[type=url]::placeholder,.ur-registered-from input[type=week]::placeholder,.ur-registered-from select::placeholder,.ur-registered-from textarea::placeholder{color:#b6bbcf}.ur-registered-from .ui-widget select:disabled,.ur-registered-from input[type=date]:disabled,.ur-registered-from input[type=email]:disabled,.ur-registered-from input[type=file]:disabled,.ur-registered-from input[type=month]:disabled,.ur-registered-from input[type=number]:disabled,.ur-registered-from input[type=password]:disabled,.ur-registered-from input[type=phone]:disabled,.ur-registered-from input[type=tel]:disabled,.ur-registered-from input[type=text]:disabled,.ur-registered-from input[type=time]:disabled,.ur-registered-from input[type=timepicker]:disabled,.ur-registered-from input[type=url]:disabled,.ur-registered-from input[type=week]:disabled,.ur-registered-from select:disabled,.ur-registered-from textarea:disabled{color:#b6bbcf;background:#f0f1f5}.ur-registered-from select{padding-right:0}.ur-registered-from label{display:block;width:100%;margin-bottom:8px;color:#4c5477;font-size:13px;font-weight:500;line-height:1.25}.ur-registered-from textarea{padding:10px;height:100px}.ur-registered-from .ur-builder-wrapper{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:calc(100vh - 89px);background:#fafafc;border-left:1px solid #dee0e9;overflow-y:auto}.ur-registered-from .ur-builder-wrapper input[type=date]:disabled,.ur-registered-from .ur-builder-wrapper input[type=email]:disabled,.ur-registered-from .ur-builder-wrapper input[type=file]:disabled,.ur-registered-from .ur-builder-wrapper input[type=month]:disabled,.ur-registered-from .ur-builder-wrapper input[type=number]:disabled,.ur-registered-from .ur-builder-wrapper input[type=password]:disabled,.ur-registered-from .ur-builder-wrapper input[type=phone]:disabled,.ur-registered-from .ur-builder-wrapper input[type=tel]:disabled,.ur-registered-from .ur-builder-wrapper input[type=text]:disabled,.ur-registered-from .ur-builder-wrapper input[type=time]:disabled,.ur-registered-from .ur-builder-wrapper input[type=timepicker]:disabled,.ur-registered-from .ur-builder-wrapper input[type=url]:disabled,.ur-registered-from .ur-builder-wrapper input[type=week]:disabled,.ur-registered-from .ur-builder-wrapper select:disabled,.ur-registered-from .ur-builder-wrapper textarea:disabled{background:#fff}.ur-registered-from .ur-builder-wrapper .ur-builder-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;margin:16px 0;position:relative}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper .ur-edit-form-name{width:32px;height:32px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border-radius:3px;margin-bottom:0;color:#4c5477;background:#dee0e9;border:1px solid transparent}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper .ur-edit-form-name::after{content:'';border-radius:3px;position:absolute;left:32px;right:calc(100% - 32px);height:30px;border-radius:0 3px 3px 0;-webkit-transition:all .3s ease 0s;transition:all .3s ease 0s}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input{color:#2d3559;background:0 0;font-size:16px;font-weight:500;width:auto;padding:4px 8px;border-color:transparent;pointer-events:none;z-index:1;border:1px solid transparent}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing{border-color:transparent;pointer-events:all}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing+.ur-edit-form-name{color:#fff;background:#475bb2;border-radius:3px 0 0 3px;border:1px solid #475bb2}.ur-registered-from .ur-builder-wrapper .ur-form-name-wrapper input.ur-editing+.ur-edit-form-name::after{top:0;right:0;border:1px solid #475bb2}.ur-registered-from .ur-builder-wrapper.ur-multipart .ur-button-quick-links{bottom:60px}.ur-registered-from .ur-builder-wrapper.ur-multipart .ur-builder-wrapper-footer .button.button-style-customizer{bottom:124px}.ur-registered-from .ur-selected-inputs{box-sizing:border-box;padding:0 20px}.ur-registered-from .ur-selected-inputs .ur-single-row{border-radius:3px;position:relative;border:1px solid transparent}.ur-registered-from .ur-selected-inputs .ur-single-row:last-child{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;right:0;z-index:1;opacity:0;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button{display:-webkit-box;display:-webkit-flex;display:flex;border-radius:0;border:0;background-color:#676d8a;color:#fff;font-size:16px;height:auto;width:auto;cursor:pointer;padding:4px 6px;line-height:1;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button svg{width:16px;height:16px;font-size:16px;fill:#fff}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:before{font-family:dashicons}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button.ur-remove-row:hover{background:#ff4149}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:hover{background:#475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:first-child{border-radius:3px 0 0 3px;border-right:1px solid rgba(255,255,255,.2)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids button:nth-child(2){border-radius:0 3px 3px 0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content{background:#fff;padding:1rem;position:absolute;top:40px;right:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;border:1px solid #dee0e9;border-radius:4px;box-shadow:1px 4px 14px 1px rgba(45,53,89,.1)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content small{font-size:12px;margin-bottom:.5rem;color:#676d8a}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector{cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;margin-right:.5rem}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector svg{width:32px;height:32px;fill:#676d8a}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content .ur-grid-selector:last-child{margin-right:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grids .ur-toggle-grid-content::before{content:'';width:8px;height:8px;border:solid #dee0e9;border-width:1px;border-left:transparent;border-bottom:transparent;position:absolute;top:-5px;right:36px;background:#fff;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists{width:100%;display:-webkit-box;display:-webkit-flex;display:flex;text-align:center;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border:1px solid transparent;border-radius:4px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item{display:inline-block;text-align:left;border:0 none;padding:15px;-webkit-box-flex:1;-webkit-flex:1;flex:1;border:1px solid transparent;border-radius:4px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item{margin-bottom:5px;position:relative;padding:15px;cursor:move;border:1px solid transparent;border-radius:4px;-webkit-transition:border-color .35s;transition:border-color .35s}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .select2-container{width:100%!important}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .select2-container .select2-search--inline .select2-search__field{height:auto;min-width:10px;background:0 0;margin:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-input-type-signature canvas{background:rgba(255,255,255,.5);border:1px solid #dee0e9}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:last-child{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ur-item-active,.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:hover{background:#fff;border:1px solid #475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ui-sortable-helper{box-shadow:0 0 10px 5px rgba(45,53,89,.1)}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item.ui-sortable-placeholder{visibility:visible!important;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons{display:none;position:absolute;right:10px;width:50px;text-align:center;padding:0;font-size:10px;top:10px;color:#b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons span{cursor:pointer;font-size:16px;height:auto}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons span:hover{color:#475bb2}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons:hover .ur-action-buttons{display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur-action-buttons .ur-trash:hover{color:#ff4149}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_top_left{text-align:left}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_center{text-align:center}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_top_right{text-align:right}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item .ur_label_disabled{display:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item:hover .ur-action-buttons{display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item>li.ur-item-dragged{list-style:none;width:100%;text-align:center;height:60px!important;box-sizing:border-box}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item>li.ur-item-dragged .spinner{float:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me{display:table;width:100%;height:100%}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text{display:table-cell;vertical-align:middle;text-align:center}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text p{display:inline-block;position:relative;color:#b6bbcf;padding-left:26px;padding-top:8px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me .user-registration-dragged-me-text p::before{position:absolute;font-family:Dashicons;content:'\f545';font-size:22px;left:0;top:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me:empty{padding:15px;text-align:center;border-radius:4px;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .user-registration-dragged-me:empty::before{content:'\f132';font-size:32px;color:#b6bbcf;width:32px;height:32px;font-family:dashicons;display:table-cell;vertical-align:middle}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item.ur-sortable-active .ur-registered-item{margin-bottom:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item.ur-sortable-active .user-registration-dragged-me{display:none}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:first-child{border-radius:4px 0 0 4px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(2){border-radius:0}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(3){border-radius:0 4px 4px 0}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grids{opacity:1}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists{background:#fff;border:1px solid #b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists .ur-grid-list-item{border-left:1px solid #b6bbcf}.ur-registered-from .ur-selected-inputs .ur-single-row:hover .ur-grid-lists .ur-grid-list-item:first-child{border-color:transparent}.ur-registered-from .ur-selected-inputs .ur-add-new-row{display:block;margin:20px auto;width:auto;height:32px;text-align:center;font-family:inherit}.ur-registered-from .ur-selected-inputs .ur-add-new-row::before{width:16px;height:16px;font-size:16px;margin-right:10px;font-family:dashicons;vertical-align:middle;padding:1px 10px 1px 0;border-right:1px solid rgba(255,255,255,.3)}.ur-registered-from .ur-selected-inputs li.ur-registered-item{width:120px!important}.ur-registered-from .ur-selected-inputs li.ur-registered-item.ui-sortable-placeholder{margin-left:0;width:100%!important;visibility:visible!important;border:1px dashed #b6bbcf;background-color:#f0f1f5}.ur-registered-from .ur-builder-wrapper-footer .button.button-style-customizer{height:48px;width:48px;bottom:72px;box-shadow:1px 2px 8px rgba(45,53,89,.15)}.ur-registered-from .ur-builder-wrapper-footer .button.button-style-customizer .dashicons{font-size:24px;height:24px;width:24px}.ur-registered-from .ur-builder-wrapper-footer .ur-button-quick-links{width:48px;height:48px;position:fixed;cursor:pointer;color:#4c5477;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;right:32px;bottom:16px;background:#fff;border:1px solid #dee0e9;border-radius:24px;box-shadow:0 2px 10px rgba(45,53,89,.1);z-index:1}.ur-registered-from .ur-builder-wrapper-footer .ur-button-quick-links span{font-size:20px;font-weight:600;margin:0 auto}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content{position:fixed;background:#fff;padding:12px 16px;border-radius:4px;bottom:58px;right:30px;z-index:2;width:225px;border:1px solid #dee0e9;box-shadow:2px 4px 12px rgba(45,53,89,.1)}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content li{margin-bottom:8px}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content a{color:#4c5477}.ur-registered-from .ur-builder-wrapper-footer .ur-quick-links-content a:hover{color:#475bb2}.ur-registered-from .ur-advance-setting,.ur-registered-from .ur-general-setting{margin:16px 0}.ur-registered-from .ur-advance-setting-block{margin-top:25px}.ur-registered-from .form-row{margin-bottom:1em}.ur-registered-from .form-row .description{color:#676d8a;margin:4px 0;display:block}.ur-registered-from .form-row .ur-checkbox-list label,.ur-registered-from .form-row .ur-radio-list label{display:inline}.ur-registered-from .ur-advance-setting-block,.ur-registered-from .ur-general-setting-block{display:none}.ur-registered-from .add,.ur-registered-from .remove{background:#fff;border:1px solid #dee0e9;color:#676d8a;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1 0 32px;flex:1 0 32px;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:32px;max-width:32px;border-radius:4px;position:relative}.ur-registered-from .add:hover,.ur-registered-from .remove:hover{background:#475bb2;border-color:#475bb2;color:#fff}.ur-registered-from .add .dashicons,.ur-registered-from .remove .dashicons{line-height:22px}.ur-registered-from .add{margin-right:8px}.ur-registered-from .ur-options-list li{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.ur-registered-from .ur-options-list li .editor-block-mover__control-drag-handle{margin-right:8px;cursor:-webkit-grab;cursor:grab}.ur-registered-from .ur-options-list li .editor-block-mover__control-drag-handle svg{fill:#676d8a}.ur-registered-from .ur-options-list li input{margin-right:8px}.ur-registered-from .ur-options-list .ui-sortable-handle{padding:5px;border-radius:3px;border:1px solid transparent}.ur-registered-from .ur-options-list .ui-sortable-handle:active{padding:5px;background:#fff;border:1px solid #475bb2;box-shadow:0 0 20px rgba(0,0,0,.2)}.ur-registered-from .ur-options-list .ui-sortable-handle.ui-sortable-placeholder{background-color:#dee0e9;visibility:visible!important}.ur-registered-from .urcl-rules{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:8px}.ur-registered-from .urcl-rules>div{margin-right:8px}.ur-registered-from .urcl-rules .urcl-operator{width:78px}.ur-registered-from .urcl-rules .urcl-field,.ur-registered-from .urcl-rules .urcl-value{max-width:27%;-webkit-box-flex:1;-webkit-flex:1 0 27%;flex:1 0 27%}.tips{cursor:help;text-decoration:none}img.tips{padding:5px 0 0}#tiptip_holder{display:none;z-index:8675309;position:absolute;top:0;left:0}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#dee0e9}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#4c5477}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#dee0e9}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#dee0e9}#tiptip_content,.ur_error_tip{color:#fff;font-size:.9em;max-width:150px;background:#4c5477;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.ur_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.ur_error_tip{max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#ff4149;margin:1.5em 1px 0 -1em;z-index:9999999}.ur_error_tip::after{content:'';display:block;border:8px solid #ff4149;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}.user-registration-help-tip{color:#676d8a;display:inline-block;font-size:16px;font-style:normal;height:16px;line-height:16px;position:relative;vertical-align:middle;width:16px}.user-registration-help-tip::after{font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";cursor:help}.select2-results__option .wrap:before{content:"\2610";width:25px;height:25px;padding-right:10px}.select2-results__option[data-selected=true] .wrap:before{content:"\2714"}.select2-drop,.select2-dropdown{z-index:999999!important}.select2-results{line-height:1.5em}.select2-results .select2-results__group,.select2-results .select2-results__option{margin:0;padding:8px}.select2-dropdown{border-color:#dee0e9}.select2-dropdown--below{box-shadow:0 1px 1px rgba(0,0,0,.1)}.select2-dropdown--above{box-shadow:0 -1px 1px rgba(0,0,0,.1)}.select2-container .select2-selection__rendered.ui-sortable li{cursor:move}.select2-container .select2-selection{border-color:#dee0e9}.select2-container .select2-search__field{min-width:20px}.select2-container .select2-selection--single{height:32px}.select2-container .select2-selection--single .select2-selection__rendered{line-height:32px;padding-right:24px}.select2-container .select2-selection--single .select2-selection__arrow{right:3px;height:30px}.select2-container .select2-selection--multiple{min-height:28px;border-radius:4px;line-height:1.5;border:1px solid #ddd!important}.select2-container .select2-selection--multiple li{margin:0}.select2-container .select2-selection--multiple .select2-selection__choice{padding:2px 6px}.select2-container .select2-selection__clear{color:#999;margin-top:-1px}.select2-container .select2-search--inline .select2-search__field{font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 0;margin:0;line-height:1;min-height:26px}#smart-tags{text-align:center}.form-settings-tab{cursor:pointer;padding:10px 15px;color:#2d3559;background:#dee0e9;margin-bottom:10px;line-height:1.2;border-radius:4px}.form-settings-tab.active{background:#475bb2;color:#fff}#profile-page form#your-profile .flatpickr-input[readonly]{background-color:#fff}body.ur-full-screen-mode{margin-top:-32px}body.ur-full-screen-mode #wpbody-content{padding-bottom:45px}body.ur-full-screen-mode #wpwrap #wpcontent{margin-left:0;padding-left:0}body.ur-full-screen-mode #wpwrap #wpcontent #wpadminbar{display:none}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody .ur-tab-content{padding:20px}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody #menu-management-liquid{margin-top:0}body.ur-full-screen-mode #wpwrap #wpcontent #wpbody #menu-management-liquid .menu-edit{margin-bottom:0;box-shadow:none;left:0!important}body.ur-full-screen-mode #wpwrap #adminmenumain{display:none}body.ur-full-screen-mode .ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-contents{height:calc(100vh - 98px)}body.ur-full-screen-mode .ur-registered-from .ur-builder-wrapper{height:calc(100vh - 57px)}@-webkit-keyframes ur-circle-loading{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(180deg) translate(0,-20px) scale(1);transform:rotate(180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(360deg) translate(0,-20px) scale(0);transform:rotate(360deg) translate(0,-20px) scale(0)}}@keyframes ur-circle-loading{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(180deg) translate(0,-20px) scale(1);transform:rotate(180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(360deg) translate(0,-20px) scale(0);transform:rotate(360deg) translate(0,-20px) scale(0)}}@-webkit-keyframes ur-circle-loading-keyframe{0%,100%{-webkit-animation-timing-function:cubic-bezier(.2,0,.8,1);animation-timing-function:cubic-bezier(.2,0,.8,1)}50%{-webkit-animation-timing-function:cubic-bezier(0,.2,1,.8);animation-timing-function:cubic-bezier(0,.2,1,.8)}0%{-webkit-transform:rotate(0) translate(0,-20px) scale(0);transform:rotate(0) translate(0,-20px) scale(0)}50%{-webkit-transform:rotate(180deg) translate(0,-20px) scale(1);transform:rotate(180deg) translate(0,-20px) scale(1)}100%{-webkit-transform:rotate(360deg) translate(0,-20px) scale(0);transform:rotate(360deg) translate(0,-20px) scale(0)}}@-webkit-keyframes open-message{0%{opacity:0;-webkit-transform:translateY(-120%);transform:translateY(-120%)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes open-message{0%{opacity:0;-webkit-transform:translateY(-120%);transform:translateY(-120%)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes close-message{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes close-message{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.ur-circle-loading{position:relative;width:100px!important;height:100px!important;-webkit-transform:translate(-50px,-50px) scale(.5) translate(50px,50px);-ms-transform:translate(-50px,-50px) scale(.5) translate(50px,50px);transform:translate(-50px,-50px) scale(.5) translate(50px,50px)}.ur-circle-loading::after,.ur-circle-loading::before{content:'';position:absolute;top:70px;left:70px;-webkit-animation:ur-circle-loading-keyframe 1.5s linear infinite;animation:ur-circle-loading-keyframe 1.5s linear infinite;width:60px;height:60px;border-radius:50%;background:#475bb2}.ur-circle-loading::after{-webkit-animation-delay:-.75s;animation-delay:-.75s;background:#668fe5}.ur-builder-message-container{position:fixed;top:32px;left:0;right:0;max-width:400px;margin:0 auto;z-index:9999}.ur-builder-message-container .ur-message{display:none;margin:0 auto;margin-top:16px;-webkit-transition:all 240ms cubic-bezier(0,0,.2,1) 0s;transition:all 240ms cubic-bezier(0,0,.2,1) 0s;z-index:99999;height:0}.ur-builder-message-container .ur-message .ur-error,.ur-builder-message-container .ur-message .ur-success{background:#fff;padding:8px 16px;border-radius:3px;border-left:3px solid;position:relative;box-shadow:0 1px 8px 2px rgba(45,53,89,.1)}.ur-builder-message-container .ur-message .ur-error p,.ur-builder-message-container .ur-message .ur-success p{margin:8px 0}.ur-builder-message-container .ur-message .ur-error p::after,.ur-builder-message-container .ur-message .ur-error p::before,.ur-builder-message-container .ur-message .ur-success p::after,.ur-builder-message-container .ur-message .ur-success p::before{font-family:dashicons;width:20px;height:20px;font-size:20px;margin-right:8px;margin-top:-4px;line-height:1;display:inline-block;vertical-align:middle}.ur-builder-message-container .ur-message .ur-success{border-color:#7ad03a}.ur-builder-message-container .ur-message .ur-success p::before{content:"\f12a";color:#7ad03a}.ur-builder-message-container .ur-message .ur-error{border-color:#ff4149}.ur-builder-message-container .ur-message .ur-error p::before{content:"\f534";color:#ff4149}.ur-builder-message-container .ur-message .dashicons{cursor:pointer;position:absolute;right:16px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);line-height:1}.ur-builder-message-container .ur-message.entered{display:block;height:50px;-webkit-animation:240ms cubic-bezier(.175,.885,.32,1.175) 0s 1 normal both open-message;animation:240ms cubic-bezier(.175,.885,.32,1.175) 0s 1 normal both open-message}.ur-builder-message-container .ur-message.exiting{display:block;-webkit-animation:120ms cubic-bezier(.4,0,1,1) 0s 1 normal both close-message;animation:120ms cubic-bezier(.4,0,1,1) 0s 1 normal both close-message}.ur-builder-message-container .ur-message:first-child{margin-top:1.5rem}@media only screen and (max-width:1599px){.ur_addons_wrap .products li{width:32.66%}.ur_addons_wrap .products li:nth-child(3n){margin:0 0 1% 0!important}.ur_addons_wrap .products li:nth-child(5n){margin:0 1% 1% 0!important}}@media screen and (max-width:1400px){.ur-registered-from .urcl-rules .urcl-field{max-width:61%;-webkit-box-flex:1;-webkit-flex:1 0 60%;flex:1 0 60%;margin-bottom:5px}.ur-registered-from .urcl-rules .urcl-value{-webkit-box-ordinal-group:5;-webkit-order:4;order:4;max-width:87%;-webkit-box-flex:1;-webkit-flex:1 0 86%;flex:1 0 86%}.ur-registered-from .urcl-rules .add{-webkit-box-ordinal-group:4;-webkit-order:3;order:3;margin-right:0}.ur-registered-from .urcl-rules .remove{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}}@media only screen and (max-width:1120px){.ur_addons_wrap .products li{width:49%;margin:0 2% 2% 0!important}.ur_addons_wrap .products li:nth-child(2n){margin:0 0 2% 0!important}.ur_addons_wrap .products li:nth-child(3n),.ur_addons_wrap .products li:nth-child(5n){margin:0 2% 2% 0!important}}@media screen and (max-width:960px){.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list .ur-registered-item{float:none;width:100%}.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists,.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item,.ur-registered-from .ur-registered-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item .ur-selected-item{padding:10px}}@media only screen and (max-width:900px){.ur_addons_wrap .products li{width:49%}}@media screen and (max-width:782px){body.user-registration_page_add-new-registration{min-width:0!important}.ur-registered-from{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.ur-registered-from .ur-registered-inputs{width:100%;margin-bottom:10px}.ur-registered-from .ur-registered-inputs .ur-tabs .ur-tab-content .ur-registered-list .ur-registered-item{float:left;width:48%}.ur-registered-from .ur-selected-inputs{width:100%}}@media screen and (max-width:600px){.user-registration_page_add-new-registration .major-publishing-actions{clear:both;padding:10px 0 19px;line-height:28px}.user-registration_page_add-new-registration .major-publishing-actions .ur-form-name{width:100%}.user-registration_page_add-new-registration .major-publishing-actions .publishing-action{text-align:left;float:none;margin-top:15px}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;display:block}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item{width:100%!important}.ur-registered-from .ur-selected-inputs .ur-single-row .ur-grid-lists .ur-grid-list-item:nth-child(1n+2){border-left:0 none}}@media only screen and (max-width:480px){.ur_addons_wrap .products li,.ur_addons_wrap .products li:nth-child(2n),.ur_addons_wrap .products li:nth-child(3n),.ur_addons_wrap .products li:nth-child(5n){width:100%;margin:0 0 3% 0!important}}PK\v3;3;assets/css/select2.cssnuW+A.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{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{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{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;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%;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{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;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;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}PK\ assets/css/review.scssnuW+A#user-registration-review-notice { &.user-registration-review-notice { padding: 15px 15px 15px 0; background-color: #fff; } .notice-dismiss{ &:before{ display: none; } } .user-registration-review-thumbnail { float: left; text-align: center; margin: 5px 20px; img { border-radius: 5px; vertical-align: middle; } } .user-registration-review-text { overflow: hidden; h3 { font-size: 20px; margin: 0 0 5px; line-height: 1.3; } p { font-size: 13px; } } .user-registration-review-ul { margin: 0; padding: 0; li { display: inline-block; margin-right: 10px; a { display: inline-block; text-decoration: none; position: relative; span { margin-right: 5px; } } } } } PK\;assets/css/form-modal.cssnuW+A#ur-modal-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:220px;overflow:hidden;margin-left:-250px;margin-top:-125px;position:fixed;top:50%;left:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#ur-modal-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#ur-modal{position:relative;height:100%}#ur-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;top:0;right:0;left:0}#ur-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#ur-modal-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#ur-modal-close:focus,#ur-modal-close:hover{color:#2ea2cc}#ur-modal-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#ur-modal-inner{padding:0 16px 50px}#ur-modal-search-toggle:after{display:inline-block;font:normal 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}#ur-modal #ur-modal-options{padding:8px 0 12px}#ur-modal-select-form{margin-bottom:1em;max-width:100%}#ur-modal .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;left:0;right:0}#ur-modal-cancel{line-height:25px;float:left}#ur-modal-update{line-height:23px;float:right}#ur-modal-submit{float:right;margin-bottom:0}@media screen and (max-width:782px){#ur-modal-wrap{height:280px;margin-top:-140px}#ur-modal-inner{padding:0 16px 60px}#ur-modal-cancel{line-height:32px}}@media screen and (max-width:520px){#ur-modal-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#ur-modal-wrap{-webkit-transition:none;transition:none}}@media screen and (max-height:290px){#ur-modal-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#ur-modal-inner{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}PK\HV5u5u&assets/css/sweetalert2/sweetalert2.cssnuW+A@charset "UTF-8"; @-webkit-keyframes swal2-show { 0% { transform: scale(0.7); } 45% { transform: scale(1.05); } 80% { transform: scale(0.95); } 100% { transform: scale(1); } } @keyframes swal2-show { 0% { transform: scale(0.7); } 45% { transform: scale(1.05); } 80% { transform: scale(0.95); } 100% { transform: scale(1); } } @-webkit-keyframes swal2-hide { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(0.5); opacity: 0; } } @keyframes swal2-hide { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(0.5); opacity: 0; } } @-webkit-keyframes swal2-animate-success-line-tip { 0% { top: 1.1875em; left: 0.0625em; width: 0; } 54% { top: 1.0625em; left: 0.125em; width: 0; } 70% { top: 2.1875em; left: -0.375em; width: 3.125em; } 84% { top: 3em; left: 1.3125em; width: 1.0625em; } 100% { top: 2.8125em; left: 0.875em; width: 1.5625em; } } @keyframes swal2-animate-success-line-tip { 0% { top: 1.1875em; left: 0.0625em; width: 0; } 54% { top: 1.0625em; left: 0.125em; width: 0; } 70% { top: 2.1875em; left: -0.375em; width: 3.125em; } 84% { top: 3em; left: 1.3125em; width: 1.0625em; } 100% { top: 2.8125em; left: 0.875em; width: 1.5625em; } } @-webkit-keyframes swal2-animate-success-line-long { 0% { top: 3.375em; right: 2.875em; width: 0; } 65% { top: 3.375em; right: 2.875em; width: 0; } 84% { top: 2.1875em; right: 0; width: 3.4375em; } 100% { top: 2.375em; right: 0.5em; width: 2.9375em; } } @keyframes swal2-animate-success-line-long { 0% { top: 3.375em; right: 2.875em; width: 0; } 65% { top: 3.375em; right: 2.875em; width: 0; } 84% { top: 2.1875em; right: 0; width: 3.4375em; } 100% { top: 2.375em; right: 0.5em; width: 2.9375em; } } @-webkit-keyframes swal2-rotate-success-circular-line { 0% { transform: rotate(-45deg); } 5% { transform: rotate(-45deg); } 12% { transform: rotate(-405deg); } 100% { transform: rotate(-405deg); } } @keyframes swal2-rotate-success-circular-line { 0% { transform: rotate(-45deg); } 5% { transform: rotate(-45deg); } 12% { transform: rotate(-405deg); } 100% { transform: rotate(-405deg); } } @-webkit-keyframes swal2-animate-error-x-mark { 0% { margin-top: 1.625em; transform: scale(0.4); opacity: 0; } 50% { margin-top: 1.625em; transform: scale(0.4); opacity: 0; } 80% { margin-top: -0.375em; transform: scale(1.15); } 100% { margin-top: 0; transform: scale(1); opacity: 1; } } @keyframes swal2-animate-error-x-mark { 0% { margin-top: 1.625em; transform: scale(0.4); opacity: 0; } 50% { margin-top: 1.625em; transform: scale(0.4); opacity: 0; } 80% { margin-top: -0.375em; transform: scale(1.15); } 100% { margin-top: 0; transform: scale(1); opacity: 1; } } @-webkit-keyframes swal2-animate-error-icon { 0% { transform: rotateX(100deg); opacity: 0; } 100% { transform: rotateX(0deg); opacity: 1; } } @keyframes swal2-animate-error-icon { 0% { transform: rotateX(100deg); opacity: 0; } 100% { transform: rotateX(0deg); opacity: 1; } } body.swal2-toast-shown .swal2-container { background-color: transparent; } body.swal2-toast-shown .swal2-container.swal2-shown { background-color: transparent; } body.swal2-toast-shown .swal2-container.swal2-top { top: 0; right: auto; bottom: auto; left: 50%; transform: translateX(-50%); } body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { top: 0; right: 0; bottom: auto; left: auto; } body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { top: 0; right: auto; bottom: auto; left: 0; } body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { top: 50%; right: auto; bottom: auto; left: 0; transform: translateY(-50%); } body.swal2-toast-shown .swal2-container.swal2-center { top: 50%; right: auto; bottom: auto; left: 50%; transform: translate(-50%, -50%); } body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { top: 50%; right: 0; bottom: auto; left: auto; transform: translateY(-50%); } body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { top: auto; right: auto; bottom: 0; left: 0; } body.swal2-toast-shown .swal2-container.swal2-bottom { top: auto; right: auto; bottom: 0; left: 50%; transform: translateX(-50%); } body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { top: auto; right: 0; bottom: 0; left: auto; } body.swal2-toast-column .swal2-toast { flex-direction: column; align-items: stretch; } body.swal2-toast-column .swal2-toast .swal2-actions { flex: 1; align-self: stretch; height: 2.2em; margin-top: 0.3125em; } body.swal2-toast-column .swal2-toast .swal2-loading { justify-content: center; } body.swal2-toast-column .swal2-toast .swal2-input { height: 2em; margin: 0.3125em auto; font-size: 1em; } body.swal2-toast-column .swal2-toast .swal2-validation-message { font-size: 1em; } .swal2-popup.swal2-toast { flex-direction: row; align-items: center; width: auto; padding: 0.625em; overflow-y: hidden; box-shadow: 0 0 0.625em #d9d9d9; } .swal2-popup.swal2-toast .swal2-header { flex-direction: row; } .swal2-popup.swal2-toast .swal2-title { flex-grow: 1; justify-content: flex-start; margin: 0 0.6em; font-size: 1em; } .swal2-popup.swal2-toast .swal2-footer { margin: 0.5em 0 0; padding: 0.5em 0 0; font-size: 0.8em; } .swal2-popup.swal2-toast .swal2-close { position: static; width: 0.8em; height: 0.8em; line-height: 0.8; } .swal2-popup.swal2-toast .swal2-content { justify-content: flex-start; font-size: 1em; } .swal2-popup.swal2-toast .swal2-icon { width: 2em; min-width: 2em; height: 2em; margin: 0; } .swal2-popup.swal2-toast .swal2-icon::before { display: flex; align-items: center; font-size: 2em; font-weight: bold; } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .swal2-popup.swal2-toast .swal2-icon::before { font-size: 0.25em; } } .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { width: 2em; height: 2em; } .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] { top: 0.875em; width: 1.375em; } .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { left: 0.3125em; } .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { right: 0.3125em; } .swal2-popup.swal2-toast .swal2-actions { flex-basis: auto !important; width: auto; height: auto; margin: 0 0.3125em; } .swal2-popup.swal2-toast .swal2-styled { margin: 0 0.3125em; padding: 0.3125em 0.625em; font-size: 1em; } .swal2-popup.swal2-toast .swal2-styled:focus { box-shadow: 0 0 0 0.0625em #fff, 0 0 0 0.125em rgba(50, 100, 150, 0.4); } .swal2-popup.swal2-toast .swal2-success { border-color: #a5dc86; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] { position: absolute; width: 1.6em; height: 3em; transform: rotate(45deg); border-radius: 50%; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] { top: -0.8em; left: -0.5em; transform: rotate(-45deg); transform-origin: 2em 2em; border-radius: 4em 0 0 4em; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] { top: -0.25em; left: 0.9375em; transform-origin: 0 1.5em; border-radius: 0 4em 4em 0; } .swal2-popup.swal2-toast .swal2-success .swal2-success-ring { width: 2em; height: 2em; } .swal2-popup.swal2-toast .swal2-success .swal2-success-fix { top: 0; left: 0.4375em; width: 0.4375em; height: 2.6875em; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] { height: 0.3125em; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] { top: 1.125em; left: 0.1875em; width: 0.75em; } .swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] { top: 0.9375em; right: 0.1875em; width: 1.375em; } .swal2-popup.swal2-toast.swal2-show { -webkit-animation: swal2-toast-show 0.5s; animation: swal2-toast-show 0.5s; } .swal2-popup.swal2-toast.swal2-hide { -webkit-animation: swal2-toast-hide 0.1s forwards; animation: swal2-toast-hide 0.1s forwards; } .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip { -webkit-animation: swal2-toast-animate-success-line-tip 0.75s; animation: swal2-toast-animate-success-line-tip 0.75s; } .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long { -webkit-animation: swal2-toast-animate-success-line-long 0.75s; animation: swal2-toast-animate-success-line-long 0.75s; } @-webkit-keyframes swal2-toast-show { 0% { transform: translateY(-0.625em) rotateZ(2deg); } 33% { transform: translateY(0) rotateZ(-2deg); } 66% { transform: translateY(0.3125em) rotateZ(2deg); } 100% { transform: translateY(0) rotateZ(0deg); } } @keyframes swal2-toast-show { 0% { transform: translateY(-0.625em) rotateZ(2deg); } 33% { transform: translateY(0) rotateZ(-2deg); } 66% { transform: translateY(0.3125em) rotateZ(2deg); } 100% { transform: translateY(0) rotateZ(0deg); } } @-webkit-keyframes swal2-toast-hide { 100% { transform: rotateZ(1deg); opacity: 0; } } @keyframes swal2-toast-hide { 100% { transform: rotateZ(1deg); opacity: 0; } } @-webkit-keyframes swal2-toast-animate-success-line-tip { 0% { top: 0.5625em; left: 0.0625em; width: 0; } 54% { top: 0.125em; left: 0.125em; width: 0; } 70% { top: 0.625em; left: -0.25em; width: 1.625em; } 84% { top: 1.0625em; left: 0.75em; width: 0.5em; } 100% { top: 1.125em; left: 0.1875em; width: 0.75em; } } @keyframes swal2-toast-animate-success-line-tip { 0% { top: 0.5625em; left: 0.0625em; width: 0; } 54% { top: 0.125em; left: 0.125em; width: 0; } 70% { top: 0.625em; left: -0.25em; width: 1.625em; } 84% { top: 1.0625em; left: 0.75em; width: 0.5em; } 100% { top: 1.125em; left: 0.1875em; width: 0.75em; } } @-webkit-keyframes swal2-toast-animate-success-line-long { 0% { top: 1.625em; right: 1.375em; width: 0; } 65% { top: 1.25em; right: 0.9375em; width: 0; } 84% { top: 0.9375em; right: 0; width: 1.125em; } 100% { top: 0.9375em; right: 0.1875em; width: 1.375em; } } @keyframes swal2-toast-animate-success-line-long { 0% { top: 1.625em; right: 1.375em; width: 0; } 65% { top: 1.25em; right: 0.9375em; width: 0; } 84% { top: 0.9375em; right: 0; width: 1.125em; } 100% { top: 0.9375em; right: 0.1875em; width: 1.375em; } } body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { overflow: hidden; } body.swal2-height-auto { height: auto !important; } body.swal2-no-backdrop .swal2-shown { top: auto; right: auto; bottom: auto; left: auto; max-width: calc(100% - 0.625em * 2); background-color: transparent; } body.swal2-no-backdrop .swal2-shown > .swal2-modal { box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } body.swal2-no-backdrop .swal2-shown.swal2-top { top: 0; left: 50%; transform: translateX(-50%); } body.swal2-no-backdrop .swal2-shown.swal2-top-start, body.swal2-no-backdrop .swal2-shown.swal2-top-left { top: 0; left: 0; } body.swal2-no-backdrop .swal2-shown.swal2-top-end, body.swal2-no-backdrop .swal2-shown.swal2-top-right { top: 0; right: 0; } body.swal2-no-backdrop .swal2-shown.swal2-center { top: 50%; left: 50%; transform: translate(-50%, -50%); } body.swal2-no-backdrop .swal2-shown.swal2-center-start, body.swal2-no-backdrop .swal2-shown.swal2-center-left { top: 50%; left: 0; transform: translateY(-50%); } body.swal2-no-backdrop .swal2-shown.swal2-center-end, body.swal2-no-backdrop .swal2-shown.swal2-center-right { top: 50%; right: 0; transform: translateY(-50%); } body.swal2-no-backdrop .swal2-shown.swal2-bottom { bottom: 0; left: 50%; transform: translateX(-50%); } body.swal2-no-backdrop .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop .swal2-shown.swal2-bottom-left { bottom: 0; left: 0; } body.swal2-no-backdrop .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop .swal2-shown.swal2-bottom-right { right: 0; bottom: 0; } .swal2-container { display: flex; position: fixed; z-index: 1060; top: 0; right: 0; bottom: 0; left: 0; flex-direction: row; align-items: center; justify-content: center; padding: 0.625em; overflow-x: hidden; background-color: transparent; -webkit-overflow-scrolling: touch; } .swal2-container.swal2-top { align-items: flex-start; } .swal2-container.swal2-top-start, .swal2-container.swal2-top-left { align-items: flex-start; justify-content: flex-start; } .swal2-container.swal2-top-end, .swal2-container.swal2-top-right { align-items: flex-start; justify-content: flex-end; } .swal2-container.swal2-center { align-items: center; } .swal2-container.swal2-center-start, .swal2-container.swal2-center-left { align-items: center; justify-content: flex-start; } .swal2-container.swal2-center-end, .swal2-container.swal2-center-right { align-items: center; justify-content: flex-end; } .swal2-container.swal2-bottom { align-items: flex-end; } .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left { align-items: flex-end; justify-content: flex-start; } .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right { align-items: flex-end; justify-content: flex-end; } .swal2-container.swal2-bottom > :first-child, .swal2-container.swal2-bottom-start > :first-child, .swal2-container.swal2-bottom-left > :first-child, .swal2-container.swal2-bottom-end > :first-child, .swal2-container.swal2-bottom-right > :first-child { margin-top: auto; } .swal2-container.swal2-grow-fullscreen > .swal2-modal { display: flex !important; flex: 1; align-self: stretch; justify-content: center; } .swal2-container.swal2-grow-row > .swal2-modal { display: flex !important; flex: 1; align-content: center; justify-content: center; } .swal2-container.swal2-grow-column { flex: 1; flex-direction: column; } .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom { align-items: center; } .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left { align-items: flex-start; } .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right { align-items: flex-end; } .swal2-container.swal2-grow-column > .swal2-modal { display: flex !important; flex: 1; align-content: center; justify-content: center; } .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal { margin: auto; } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .swal2-container .swal2-modal { margin: 0 !important; } } .swal2-container.swal2-fade { transition: background-color 0.1s; } .swal2-container.swal2-shown { background-color: rgba(0, 0, 0, 0.4); } .swal2-popup { display: none; position: relative; box-sizing: border-box; flex-direction: column; justify-content: center; width: 32em; max-width: 100%; padding: 1.25em; border: none; border-radius: 0.3125em; background: #fff; font-family: inherit; font-size: 1rem; } .swal2-popup:focus { outline: none; } .swal2-popup.swal2-loading { overflow-y: hidden; } .swal2-header { display: flex; flex-direction: column; align-items: center; } .swal2-title { position: relative; max-width: 100%; margin: 0 0 0.4em; padding: 0; color: #595959; font-size: 1.875em; font-weight: 600; text-align: center; text-transform: none; word-wrap: break-word; } .swal2-actions { display: flex; z-index: 1; flex-wrap: wrap; align-items: center; justify-content: center; width: 100%; margin: 1.25em auto 0; } .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { opacity: 0.4; } .swal2-actions:not(.swal2-loading) .swal2-styled:hover { background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); } .swal2-actions:not(.swal2-loading) .swal2-styled:active { background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); } .swal2-actions.swal2-loading .swal2-styled.swal2-confirm { box-sizing: border-box; width: 2.5em; height: 2.5em; margin: 0.46875em; padding: 0; -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; animation: swal2-rotate-loading 1.5s linear 0s infinite normal; border: 0.25em solid transparent; border-radius: 100%; border-color: transparent; background-color: transparent !important; color: transparent; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .swal2-actions.swal2-loading .swal2-styled.swal2-cancel { margin-right: 30px; margin-left: 30px; } .swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after { content: ""; display: inline-block; width: 15px; height: 15px; margin-left: 5px; -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; animation: swal2-rotate-loading 1.5s linear 0s infinite normal; border: 3px solid #999999; border-radius: 50%; border-right-color: transparent; box-shadow: 1px 1px 1px #fff; } .swal2-styled { margin: 0.3125em; padding: 0.625em 2em; box-shadow: none; font-weight: 500; } .swal2-styled:not([disabled]) { cursor: pointer; } .swal2-styled.swal2-confirm { border: 0; border-radius: 0.25em; background: initial; background-color: #3085d6; color: #fff; font-size: 1.0625em; } .swal2-styled.swal2-cancel { border: 0; border-radius: 0.25em; background: initial; background-color: #aaa; color: #fff; font-size: 1.0625em; } .swal2-styled:focus { outline: none; box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); } .swal2-styled::-moz-focus-inner { border: 0; } .swal2-footer { justify-content: center; margin: 1.25em 0 0; padding: 1em 0 0; border-top: 1px solid #eee; color: #545454; font-size: 1em; } .swal2-image { max-width: 100%; margin: 1.25em auto; } .swal2-close { position: absolute; z-index: 2; /* 1617 */ top: 0; right: 0; justify-content: center; width: 1.2em; height: 1.2em; padding: 0; overflow: hidden; transition: color 0.1s ease-out; border: none; border-radius: 0; outline: initial; background: transparent; color: #cccccc; font-family: serif; font-size: 2.5em; line-height: 1.2; cursor: pointer; } .swal2-close:hover { transform: none; background: transparent; color: #f27474; } .swal2-content { z-index: 1; justify-content: center; margin: 0; padding: 0; color: #545454; font-size: 1.125em; font-weight: normal; line-height: normal; text-align: center; word-wrap: break-word; } .swal2-input, .swal2-file, .swal2-textarea, .swal2-select, .swal2-radio, .swal2-checkbox { margin: 1em auto; } .swal2-input, .swal2-file, .swal2-textarea { box-sizing: border-box; width: 100%; transition: border-color 0.3s, box-shadow 0.3s; border: 1px solid #d9d9d9; border-radius: 0.1875em; background: inherit; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); color: inherit; font-size: 1.125em; } .swal2-input.swal2-inputerror, .swal2-file.swal2-inputerror, .swal2-textarea.swal2-inputerror { border-color: #f27474 !important; box-shadow: 0 0 2px #f27474 !important; } .swal2-input:focus, .swal2-file:focus, .swal2-textarea:focus { border: 1px solid #b4dbed; outline: none; box-shadow: 0 0 3px #c4e6f5; } .swal2-input::-webkit-input-placeholder, .swal2-file::-webkit-input-placeholder, .swal2-textarea::-webkit-input-placeholder { color: #cccccc; } .swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder { color: #cccccc; } .swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder { color: #cccccc; } .swal2-input::-ms-input-placeholder, .swal2-file::-ms-input-placeholder, .swal2-textarea::-ms-input-placeholder { color: #cccccc; } .swal2-input::placeholder, .swal2-file::placeholder, .swal2-textarea::placeholder { color: #cccccc; } .swal2-range { margin: 1em auto; background: inherit; } .swal2-range input { width: 80%; } .swal2-range output { width: 20%; color: inherit; font-weight: 600; text-align: center; } .swal2-range input, .swal2-range output { height: 2.625em; padding: 0; font-size: 1.125em; line-height: 2.625em; } .swal2-input { height: 2.625em; padding: 0 0.75em; } .swal2-input[type=number] { max-width: 10em; } .swal2-file { background: inherit; font-size: 1.125em; } .swal2-textarea { height: 6.75em; padding: 0.75em; } .swal2-select { min-width: 50%; max-width: 100%; padding: 0.375em 0.625em; background: inherit; color: inherit; font-size: 1.125em; } .swal2-radio, .swal2-checkbox { align-items: center; justify-content: center; background: inherit; color: inherit; } .swal2-radio label, .swal2-checkbox label { margin: 0 0.6em; font-size: 1.125em; } .swal2-radio input, .swal2-checkbox input { margin: 0 0.4em; } .swal2-validation-message { display: none; align-items: center; justify-content: center; padding: 0.625em; overflow: hidden; background: #f0f0f0; color: #666666; font-size: 1em; font-weight: 300; } .swal2-validation-message::before { content: "!"; display: inline-block; width: 1.5em; min-width: 1.5em; height: 1.5em; margin: 0 0.625em; zoom: normal; border-radius: 50%; background-color: #f27474; color: #fff; font-weight: 600; line-height: 1.5em; text-align: center; } @supports (-ms-accelerator: true) { .swal2-range input { width: 100% !important; } .swal2-range output { display: none; } } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .swal2-range input { width: 100% !important; } .swal2-range output { display: none; } } @-moz-document url-prefix() { .swal2-close:focus { outline: 2px solid rgba(50, 100, 150, 0.4); } } .swal2-icon { position: relative; box-sizing: content-box; justify-content: center; width: 5em; height: 5em; margin: 1.25em auto 1.875em; zoom: normal; border: 0.25em solid transparent; border-radius: 50%; font-family: inherit; line-height: 5em; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .swal2-icon::before { display: flex; align-items: center; height: 92%; font-size: 3.75em; } .swal2-icon.swal2-error { border-color: #f27474; } .swal2-icon.swal2-error .swal2-x-mark { position: relative; flex-grow: 1; } .swal2-icon.swal2-error [class^=swal2-x-mark-line] { display: block; position: absolute; top: 2.3125em; width: 2.9375em; height: 0.3125em; border-radius: 0.125em; background-color: #f27474; } .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { left: 1.0625em; transform: rotate(45deg); } .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { right: 1em; transform: rotate(-45deg); } .swal2-icon.swal2-warning { border-color: #facea8; color: #f8bb86; } .swal2-icon.swal2-warning::before { content: "!"; } .swal2-icon.swal2-info { border-color: #9de0f6; color: #3fc3ee; } .swal2-icon.swal2-info::before { content: "i"; } .swal2-icon.swal2-question { border-color: #c9dae1; color: #87adbd; } .swal2-icon.swal2-question::before { content: "?"; } .swal2-icon.swal2-question.swal2-arabic-question-mark::before { content: "؟"; } .swal2-icon.swal2-success { border-color: #a5dc86; } .swal2-icon.swal2-success [class^=swal2-success-circular-line] { position: absolute; width: 3.75em; height: 7.5em; transform: rotate(45deg); border-radius: 50%; } .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] { top: -0.4375em; left: -2.0635em; transform: rotate(-45deg); transform-origin: 3.75em 3.75em; border-radius: 7.5em 0 0 7.5em; } .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] { top: -0.6875em; left: 1.875em; transform: rotate(-45deg); transform-origin: 0 3.75em; border-radius: 0 7.5em 7.5em 0; } .swal2-icon.swal2-success .swal2-success-ring { position: absolute; z-index: 2; top: -0.25em; left: -0.25em; box-sizing: content-box; width: 100%; height: 100%; border: 0.25em solid rgba(165, 220, 134, 0.3); border-radius: 50%; } .swal2-icon.swal2-success .swal2-success-fix { position: absolute; z-index: 1; top: 0.5em; left: 1.625em; width: 0.4375em; height: 5.625em; transform: rotate(-45deg); } .swal2-icon.swal2-success [class^=swal2-success-line] { display: block; position: absolute; z-index: 2; height: 0.3125em; border-radius: 0.125em; background-color: #a5dc86; } .swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] { top: 2.875em; left: 0.875em; width: 1.5625em; transform: rotate(45deg); } .swal2-icon.swal2-success [class^=swal2-success-line][class$=long] { top: 2.375em; right: 0.5em; width: 2.9375em; transform: rotate(-45deg); } .swal2-progress-steps { align-items: center; margin: 0 0 1.25em; padding: 0; background: inherit; font-weight: 600; } .swal2-progress-steps li { display: inline-block; position: relative; } .swal2-progress-steps .swal2-progress-step { z-index: 20; width: 2em; height: 2em; border-radius: 2em; background: #3085d6; color: #fff; line-height: 2em; text-align: center; } .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { background: #3085d6; } .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step { background: #add8e6; color: #fff; } .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { background: #add8e6; } .swal2-progress-steps .swal2-progress-step-line { z-index: 10; width: 2.5em; height: 0.4em; margin: 0 -1px; background: #3085d6; } [class^=swal2] { -webkit-tap-highlight-color: transparent; } .swal2-show { -webkit-animation: swal2-show 0.3s; animation: swal2-show 0.3s; } .swal2-show.swal2-noanimation { -webkit-animation: none; animation: none; } .swal2-hide { -webkit-animation: swal2-hide 0.15s forwards; animation: swal2-hide 0.15s forwards; } .swal2-hide.swal2-noanimation { -webkit-animation: none; animation: none; } .swal2-rtl .swal2-close { right: auto; left: 0; } .swal2-animate-success-icon .swal2-success-line-tip { -webkit-animation: swal2-animate-success-line-tip 0.75s; animation: swal2-animate-success-line-tip 0.75s; } .swal2-animate-success-icon .swal2-success-line-long { -webkit-animation: swal2-animate-success-line-long 0.75s; animation: swal2-animate-success-line-long 0.75s; } .swal2-animate-success-icon .swal2-success-circular-line-right { -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in; animation: swal2-rotate-success-circular-line 4.25s ease-in; } .swal2-animate-error-icon { -webkit-animation: swal2-animate-error-icon 0.5s; animation: swal2-animate-error-icon 0.5s; } .swal2-animate-error-icon .swal2-x-mark { -webkit-animation: swal2-animate-error-x-mark 0.5s; animation: swal2-animate-error-x-mark 0.5s; } @-webkit-keyframes swal2-rotate-loading { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes swal2-rotate-loading { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @media print { body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { overflow-y: scroll !important; } body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] { display: none; } body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { position: static !important; } }PK\囀4-`-`*assets/css/sweetalert2/sweetalert2.min.cssnuW+A@charset "UTF-8";@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-shown{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon::before{display:flex;align-items:center;font-size:2em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon::before{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 .0625em #fff,0 0 0 .125em rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-shown{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent}body.swal2-no-backdrop .swal2-shown>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-shown.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-top-left,body.swal2-no-backdrop .swal2-shown.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-top-end,body.swal2-no-backdrop .swal2-shown.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-shown.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-left,body.swal2-no-backdrop .swal2-shown.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-end,body.swal2-no-backdrop .swal2-shown.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom-left,body.swal2-no-backdrop .swal2-shown.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-bottom-end,body.swal2-no-backdrop .swal2-shown.swal2-bottom-right{right:0;bottom:0}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;background-color:transparent;-webkit-overflow-scrolling:touch}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:"";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;outline:initial;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:inherit}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:inherit;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;zoom:normal;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;zoom:normal;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon::before{display:flex;align-items:center;height:92%;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning::before{content:"!"}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info::before{content:"i"}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question::before{content:"?"}.swal2-icon.swal2-question.swal2-arabic-question-mark::before{content:"؟"}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.875em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-animate-error-icon{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-animate-error-icon .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}PK\"assets/css/form-modal-rtl.cssnuW+A#ur-modal-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:220px;overflow:hidden;margin-right:-250px;margin-top:-125px;position:fixed;top:50%;right:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#ur-modal-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:100100}#ur-modal{position:relative;height:100%}#ur-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;top:0;left:0;right:0}#ur-modal-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:100% 0;border:none;cursor:pointer}#ur-modal-close:before{font:normal 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#ur-modal-close:focus,#ur-modal-close:hover{color:#2ea2cc}#ur-modal-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#ur-modal-inner{padding:0 16px 50px}#ur-modal-search-toggle:after{display:inline-block;font:normal 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}#ur-modal #ur-modal-options{padding:8px 0 12px}#ur-modal-select-form{margin-bottom:1em;max-width:100%}#ur-modal .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;right:0;left:0}#ur-modal-cancel{line-height:25px;float:right}#ur-modal-update{line-height:23px;float:left}#ur-modal-submit{float:left;margin-bottom:0}@media screen and (max-width:782px){#ur-modal-wrap{height:280px;margin-top:-140px}#ur-modal-inner{padding:0 16px 60px}#ur-modal-cancel{line-height:32px}}@media screen and (max-width:520px){#ur-modal-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#ur-modal-wrap{-webkit-transition:none;transition:none}}@media screen and (max-height:290px){#ur-modal-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#ur-modal-inner{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}}PK\t@w8w8!assets/css/user-registration.scssnuW+A/** * user-registration.scss * Governs the general look and feel of User Registration sections of stores using themes that do not * integrate with User Registration specifically. */ /** * Imports */ @import "variables"; @import "button"; @import "mixins"; /** * Utility classes */ .clear { clear: both; } /** * Main User Registration styles */ .user-registration-message, .user-registration-error, .user-registration-info { display: block; margin: 0 0 10px; padding: 10px 15px; background-color: lighten($primary_color, 47%); color: $color_gray_one; border-top: 3px solid $primary_color; list-style: none outside; @include clearfix(); width: auto; word-wrap: break-word; line-height: 1.25; text-transform: none; font-size: 14px; &::before { content: '\f348'; display: inline-block; vertical-align: middle; font-family: 'Dashicons'; font-size: calc(100% + 10px); margin-right: 0.875rem; } ul { margin: 0 !important; padding: 0 !important; background-color: transparent !important; } .button { float: right; } li { list-style: none outside !important; // Required for default theme compatibility padding-left: 0 !important; // Required for default theme compatibility margin-left: 0 !important; // Required for default theme compatibility } .message{ margin:0; padding:0; } } .user-registration-message { border-top-color: #8fae1b; background: rgba( #8fae1b, 0.1 ); color: darken( #8fae1b, 15%); } .user-registration-info { color: #1e85be; border-top-color: #1e85be; } .user-registration-error { border-top-color: $red; background: rgba( $red, 0.1 ); color: darken( $red, 15%); &::before { content: '\f534'; } } .ur-frontend-form { margin-bottom: 30px; border: 1px solid $border_color; padding: 20px; box-sizing: border-box; &.login { margin: 0; padding: 10px; box-shadow: none; background: none; input[name="rememberme"]#rememberme{ vertical-align:middle; } } &.login-registration { margin: 0; border:none; padding: 0; } .register { #node_recaptcha_register { padding: 0 10px; } } * { box-sizing: border-box; } .description { display: block; font-size: 14px; line-height: 1.5; } .ur-form-row { display: flex; &:last-child { margin-bottom: 0; } .ur-form-grid { flex: 1; padding: 0 10px; &:nth-child(1n+2) { border-left: 0 none; } .ur-field-item { margin-bottom: 20px; &.field-checkbox, &.field-radio { ul { margin: 0; list-style: none; li { margin-left: 0; line-height: 1.3; vertical-align: middle; margin-bottom: 10px; input, label { display: inline-block; vertical-align: inherit; } input { &[type='checkbox'], &[type='radio'] { margin-top: 2px; } } label { display: inline; } } } } &:last-child { margin-bottom: 0; } } input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="date"], input[type="number"], input[type="timepicker"], input[type="phone"], textarea, select { display: block; width: 100%; border-radius: 0; min-height: 36px; margin-bottom: 10px; line-height: 1.5; &::placeholder { color: #ddd; } } input[type="checkbox"], input[type="radio"] { font-size: 12px; display: inline-block; vertical-align: middle; margin-right: 5px; margin-left: 20px; &:first-child { margin-left: 0; } } input[type="radio"]:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, textarea:focus, select:focus, button:focus { outline: 0; } input[readonly], select[readonly], textarea[readonly] { cursor: auto; } select { -webkit-appearance: none; background: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55% } legend, label { display: block; font-size: 14px; margin-bottom: 10px; margin-top: 10px; .required { text-decoration: none; border: none; color: $red; } &.ur-label { font-weight: bold; } } textarea { padding: 10px; height: 100px; resize: none; padding: 5px 20px; } .hide_show_password { input[type="password"] { padding-right: 50px; } .password-input-group { display: block; position: relative; .password_preview { color: $color_gray_two; position: absolute; top: 50%; right: 15px; transform: translateY(-50%); &.dashicons { &.dashicons-hidden { opacity: 0.6; &:hover { opacity: 1; } } } } } } } .select2-container { .select2-selection--multiple { border: 1px solid $color_gray_five; .select2-selection__rendered { display: block; li { &:last-child { margin-left: 0; } } } .select2-selection__choice { margin: 5px; } .select2-search--inline { input[type='text'] { margin: 5px; height: inherit; } } } } } button, input[type="submit"], button[type="submit"] { padding: 10px 20px; line-height: 1.5; text-align: center; word-break: break-word; white-space: normal; border: none; cursor: pointer; transition: 0.35s all ease-out; } input[type="submit"] { float: right; } .ur-button-container { display: flex; margin-top: 10px; padding: 0 10px; .ur-submit-button { margin-left: auto; } } .ur-submit-button { margin-right: 10px; margin-bottom: 0; } label { abbr.required { text-decoration: none; border: none; color: $red; } } &.ur-frontend-form--bordered { form { .ur-form-row { .ur-form-grid { input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="date"], input[type="number"], textarea, select { border: none; border-bottom: 1px solid $border_color_input; outline: none; transition: all 0.35s; padding: 10px 15px; background: $input_background_color; color: $label_color; height: 45px; } legend, label { margin-left: 5px; color: $label_color; } textarea { height: 100px; } .hide_show_password { input[type="password"] { padding-right: 50px; } } } } input[type="submit"], button[type="submit"], button.user-registration-multi-part-nav-prev, button.user-registration-multi-part-nav-next { background: $input_background_color; border: 1px solid $border_color; color: $label_color; border-radius: 0; &:hover { background: $primary_color; color: $white; border-color: $primary_color; } } } } &.ur-frontend-form--flat { background: $color_sortable_background; border: none transparent; form { .ur-form-row { .ur-form-grid { .ur-field-item, .form-row { margin-bottom: 0; } input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="date"], input[type="number"], textarea, select { border: none; outline: none; padding: 10px 15px; background: $white; color: $label_color; margin-bottom: 10px; height: 45px; &:focus { box-shadow: 0 0 10px 5px rgba(0,0,0,.05); } } select { margin-bottom: 10px; } legend, label { color: $label_color; } textarea { height: 100px; } .hide_show_password { input[type="password"] { padding-right: 50px; } } } } } } &.ur-frontend-form--rounded { form { .ur-form-row { .ur-form-grid { input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="date"], input[type="number"], textarea, select { border: 1px solid $rounded-color; border-radius: 25px; outline: none; transition: all 0.35s; padding: 10px 15px; background: $white; color: $label_color; height: 45px; } button[type="button"]{ border-radius: 25px; } legend, label { margin-left: 5px; color: $label_color; } textarea { height: 100px; } .hide_show_password { input[type="password"] { padding-right: 50px; } } } } input[type="submit"], button[type="submit"], button.user-registration-multi-part-nav-prev, button.user-registration-multi-part-nav-next { border: 0 none; color: $white; border-radius:25px; float: none; display: block; padding: 15px 25px; } } &.ur-frontend-form--rounded-edge{ form { .ur-form-row { .ur-form-grid { input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="date"], input[type="number"], textarea, select { border-radius: 2px; } .hide_show_password { input[type="password"] { padding-right: 50px; } } button[type="button"]{ border-radius: 2px; } } } input[type="submit"], button[type="submit"], button.user-registration-multi-part-nav-prev, button.user-registration-multi-part-nav-next { border-radius:2px; } } } } #ur-submit-message-node { margin : 20px 0 0 0; &.ur-error { background: rgba(206, 0, 0, 0.1); } &.ur-message.message { background: rgba(143, 174, 27,0.2); } } } #user-registration { background-color: $white; margin: 30px 0; &.user-registration, * { box-sizing: border-box; } p { color: #333333; } .user-registration-tips { font-size: 12px; color: $color_gray_three; margin-bottom: 0; } .user-registration-MyAccount-navigation { overflow: visible; margin: 0; ul { margin: 0; padding: 0; display: -webkit-flex; display:flex; flex-wrap: wrap; .user-registration-MyAccount-navigation-link { list-style: none; padding: 0; margin:0; display: inline-block; position:relative; box-shadow: 0 0 0 rgba(0,0,0,0); a { padding: 10px 15px; display: block; font-weight: 400; font-size: 14px; font-family: 'sans-serif'; text-decoration: none; box-shadow: 0 0 0 rgba(0,0,0,0); } &.is-active { a { font-weight: 600; } } } } } .user-registration-MyAccount-content { padding: 30px; h2 { margin-bottom: 30px; } .user-registration-profile-fields__field-wrapper{ margin: 0 -10px; } .ur-form-grid{ border: 0 none; background: transparent; } .ur-frontend-form { border: none; } h2, .edit-password legend { font-size: 28px; font-weight: 400; } .user-registration-profile-header { margin-bottom: 25px; .user-registration-img-container { width: 100px; } h3 { font-size: 22px; font-weight: 400; margin-bottom: 5px; } header { p, .button-group { margin-bottom: 10px; } .profile-pic-remove { margin-right: 10px; } } .user-registration-nick-name { color: $color_gray_two; } } .user-registration-EditProfileForm { .user-registration-profile-header { .user-registration-img-container { width: auto; } } } } } /** * Password strength meter */ .user-registration-password-strength { text-align: center; font-weight: 600; padding: 3px 0.5em; font-size: 1em; &.strong { background-color: #c1e1b9; border-color: #83c373; } &.short { background-color: #f1adad; border-color: #e35b5b; } &.bad { background-color: #fbc5a9; border-color: #f78b53; } &.good { background-color: #ffe399; border-color: #ffc733; } } .user-registration-password-hint { margin: 0.5em 0 0; display: block; } .ur-front-spinner { background: url('../images/wpspin_light-2x.gif') no-repeat; background-size: 16px 16px; display: block; opacity: .7; filter: alpha(opacity=70); width: 16px; height: 16px; margin-left: -40px; float: left; } .edit-post-visual-editor { .ur-gutenberg-form-selector-wrap, .user-registration-gutenberg-form-selector-wrap { h2 { width: 100%; margin-bottom: 0.5em; } .components-base-control { width: 100%; text-align: center; } .components-placeholder__fieldset { text-align: center; img { margin: 0 auto; } } } } .ur-frontend-form.ur-gutenberg-editor form button[type=submit] { cursor: not-allowed; } .ur-frontend-form.ur-gutenberg-editor form .ur-form-row .ur-form-grid input { cursor: not-allowed; } /* TipTip CSS - Version 1.2 */ #tiptip_holder { display: none; z-index: 8675309; position: absolute; top: 0; /*rtl:ignore*/ left: 0; &.tip_top { padding-bottom: 5px; #tiptip_arrow_inner { margin-top: -7px; margin-left: -6px; border-top-color: $border_color; } } &.tip_bottom { padding-top: 5px; #tiptip_arrow_inner { margin-top: -5px; margin-left: -6px; border-bottom-color: $border_color; } } &.tip_right { padding-left: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -5px; border-right-color: $border_color; } } &.tip_left { padding-right: 5px; #tiptip_arrow_inner { margin-top: -6px; margin-left: -7px; border-left-color: $border_color; } } } #tiptip_content, .ur_error_tip { color: $white; font-size: 0.8em; max-width: 150px; background: $border_color; text-align: center; border-radius: 3px; padding: 0.618em 1em; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); code { padding: 1px; background: #888; } } #tiptip_arrow, #tiptip_arrow_inner { position: absolute; border-color: transparent; border-style: solid; border-width: 6px; height: 0; width: 0; } .ur-hidden { display:none; } PK\G:w,assets/css/user-registration-smallscreen.cssnuW+A@media screen and (max-width:768px){.ur-frontend-form .ur-form-row{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.ur-frontend-form .ur-form-row .ur-form-grid{width:100%!important;margin-bottom:20px}.ur-frontend-form .ur-form-row .ur-form-grid:nth-child(1n+2){border-left:1px solid #dee0e9}.ur-frontend-form .ur-form-row .ur-form-grid:last-child{margin-bottom:0;border-left:0 none}}@media screen and (max-width:600px){#user-registration .user-registration-MyAccount-navigation ul{display:block}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link{display:block}}PK\߯ q q$assets/css/user-registration-rtl.cssnuW+A.ur-form-container .button,.ur-form-container button,.user-registration .button,.user-registration button{-webkit-transition:all .25s ease 0s;transition:all .25s ease 0s}.ur-form-container .button.button-icon,.ur-form-container button.button-icon,.user-registration .button.button-icon,.user-registration button.button-icon{width:32px;padding:0}.ur-form-container .button.button-icon .dashicons,.ur-form-container button.button-icon .dashicons,.user-registration .button.button-icon .dashicons,.user-registration button.button-icon .dashicons{line-height:1;vertical-align:middle}.ur-form-container .button.button-icon-round,.ur-form-container button.button-icon-round,.user-registration .button.button-icon-round,.user-registration button.button-icon-round{border-radius:50%}.ur-form-container .button .ur-spinner,.ur-form-container button .ur-spinner,.user-registration .button .ur-spinner,.user-registration button .ur-spinner{width:16px;height:16px;margin-right:6px;margin-bottom:2px;display:inline-block;vertical-align:middle}.ur-form-container .button-primary,.user-registration .button-primary{background:#475bb2;border-color:#475bb2;box-shadow:0 1px 0 #475bb2;text-shadow:none}.ur-form-container .button-primary:active,.ur-form-container .button-primary:focus,.ur-form-container .button-primary:hover,.user-registration .button-primary:active,.user-registration .button-primary:focus,.user-registration .button-primary:hover{background:#38488e;border-color:#38488e;box-shadow:0 1px 0 #38488e}.ur-form-container .button-primary:disabled,.user-registration .button-primary:disabled{color:#b2bae0!important;background:#697ac3!important;border-color:#697ac3!important}.ur-form-container .button-secondary,.user-registration .button-secondary{color:#2d3559;background:#dee0e9;border-color:#dee0e9;box-shadow:0 1px 0 #dee0e9}.ur-form-container .button-secondary:active,.ur-form-container .button-secondary:focus,.ur-form-container .button-secondary:hover,.user-registration .button-secondary:active,.user-registration .button-secondary:focus,.user-registration .button-secondary:hover{color:#2d3559;background:#b6bbcf;border-color:#b6bbcf;box-shadow:0 1px 0 #b6bbcf}.ur-form-container .button-danger,.user-registration .button-danger{color:#fff;background:#ff4149;border-color:#ff4149;box-shadow:0 1px 0 #ff4149}.ur-form-container .button-danger:active,.ur-form-container .button-danger:focus,.ur-form-container .button-danger:hover,.user-registration .button-danger:active,.user-registration .button-danger:focus,.user-registration .button-danger:hover{color:#fff;background:#ee2a32;border-color:#ee2a32;box-shadow:0 1px 0 #ee2a32}.ur-form-container .publishing-action .button,.ur-form-container .publishing-action button,.ur-form-container .publishing-action input[type=button],.ur-form-container .publishing-action input[type=submit],.user-registration .publishing-action .button,.user-registration .publishing-action button,.user-registration .publishing-action input[type=button],.user-registration .publishing-action input[type=submit]{margin-left:5px}.ur-registered-item.ui-draggable-dragging{padding:10px 10px;line-height:20px;background:#475bb2;color:#fff;text-align:center;margin-bottom:7px;word-break:break-word;white-space:normal;width:200px!important;z-index:9}.ur-registered-item.ui-draggable-dragging span{font-size:14px;line-height:20px;width:auto;height:auto;margin-left:3px}.select2-container .ur-select-all-countries-button{margin:6px 6px 4px 3px}.select2-container .ur-unselect-all-countries-button{margin:6px 3px 4px}.clear{clear:both}.user-registration-error,.user-registration-info,.user-registration-message{display:block;margin:0 0 10px;padding:10px 15px;background-color:#f0f1f9;color:#4c5477;border-top:3px solid #475bb2;list-style:none outside;width:auto;word-wrap:break-word;line-height:1.25;text-transform:none;font-size:14px}.user-registration-error::after,.user-registration-error::before,.user-registration-info::after,.user-registration-info::before,.user-registration-message::after,.user-registration-message::before{content:' ';display:table}.user-registration-error::after,.user-registration-info::after,.user-registration-message::after{clear:both}.user-registration-error::before,.user-registration-info::before,.user-registration-message::before{content:'\f348';display:inline-block;vertical-align:middle;font-family:Dashicons;font-size:calc(100% + 10px);margin-left:.875rem}.user-registration-error ul,.user-registration-info ul,.user-registration-message ul{margin:0!important;padding:0!important;background-color:transparent!important}.user-registration-error .button,.user-registration-info .button,.user-registration-message .button{float:left}.user-registration-error li,.user-registration-info li,.user-registration-message li{list-style:none outside!important;padding-right:0!important;margin-right:0!important}.user-registration-error .message,.user-registration-info .message,.user-registration-message .message{margin:0;padding:0}.user-registration-message{border-top-color:#8fae1b;background:rgba(143,174,27,.1);color:#596c11}.user-registration-info{color:#1e85be;border-top-color:#1e85be}.user-registration-error{border-top-color:#ff4149;background:rgba(255,65,73,.1);color:#f4000a}.user-registration-error::before{content:'\f534'}.ur-frontend-form{margin-bottom:30px;border:1px solid #dee0e9;padding:20px;box-sizing:border-box}.ur-frontend-form.login{margin:0;padding:10px;box-shadow:none;background:0 0}.ur-frontend-form.login input[name=rememberme]#rememberme{vertical-align:middle}.ur-frontend-form.login-registration{margin:0;border:none;padding:0}.ur-frontend-form .register #node_recaptcha_register{padding:0 10px}.ur-frontend-form *{box-sizing:border-box}.ur-frontend-form .description{display:block;font-size:14px;line-height:1.5}.ur-frontend-form .ur-form-row{display:-webkit-box;display:-webkit-flex;display:flex}.ur-frontend-form .ur-form-row:last-child{margin-bottom:0}.ur-frontend-form .ur-form-row .ur-form-grid{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:0 10px}.ur-frontend-form .ur-form-row .ur-form-grid:nth-child(1n+2){border-right:0 none}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item{margin-bottom:20px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul{margin:0;list-style:none}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li{margin-right:0;line-height:1.3;vertical-align:middle;margin-bottom:10px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li label,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li label{display:inline-block;vertical-align:inherit}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input[type=radio],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input[type=radio]{margin-top:2px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li label,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li label{display:inline}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item:last-child{margin-bottom:0}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone],.ur-frontend-form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker],.ur-frontend-form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form .ur-form-row .ur-form-grid select,.ur-frontend-form .ur-form-row .ur-form-grid textarea{display:block;width:100%;border-radius:0;min-height:36px;margin-bottom:10px;line-height:1.5}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::-webkit-input-placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::-ms-input-placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]{font-size:12px;display:inline-block;vertical-align:middle;margin-left:5px;margin-right:20px}.ur-frontend-form .ur-form-row .ur-form-grid input[type=checkbox]:first-child,.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]:first-child{margin-right:0}.ur-frontend-form .ur-form-row .ur-form-grid button:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]:focus,.ur-frontend-form .ur-form-row .ur-form-grid select:focus,.ur-frontend-form .ur-form-row .ur-form-grid textarea:focus{outline:0}.ur-frontend-form .ur-form-row .ur-form-grid input[readonly],.ur-frontend-form .ur-form-row .ur-form-grid select[readonly],.ur-frontend-form .ur-form-row .ur-form-grid textarea[readonly]{cursor:auto}.ur-frontend-form .ur-form-row .ur-form-grid select{-webkit-appearance:none;background:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E") no-repeat left 5px top 55%}.ur-frontend-form .ur-form-row .ur-form-grid label,.ur-frontend-form .ur-form-row .ur-form-grid legend{display:block;font-size:14px;margin-bottom:10px;margin-top:10px}.ur-frontend-form .ur-form-row .ur-form-grid label .required,.ur-frontend-form .ur-form-row .ur-form-grid legend .required{text-decoration:none;border:none;color:#ff4149}.ur-frontend-form .ur-form-row .ur-form-grid label.ur-label,.ur-frontend-form .ur-form-row .ur-form-grid legend.ur-label{font-weight:700}.ur-frontend-form .ur-form-row .ur-form-grid textarea{padding:10px;height:100px;resize:none;padding:5px 20px}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-left:50px}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group{display:block;position:relative}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview{color:#676d8a;position:absolute;top:50%;left:15px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview.dashicons.dashicons-hidden{opacity:.6}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview.dashicons.dashicons-hidden:hover{opacity:1}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple{border:1px solid #f0f1f5}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__rendered{display:block}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__rendered li:last-child{margin-right:0}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__choice{margin:5px}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-search--inline input[type=text]{margin:5px;height:inherit}.ur-frontend-form button,.ur-frontend-form button[type=submit],.ur-frontend-form input[type=submit]{padding:10px 20px;line-height:1.5;text-align:center;word-break:break-word;white-space:normal;border:none;cursor:pointer;-webkit-transition:.35s all ease-out;transition:.35s all ease-out}.ur-frontend-form input[type=submit]{float:left}.ur-frontend-form .ur-button-container{display:-webkit-box;display:-webkit-flex;display:flex;margin-top:10px;padding:0 10px}.ur-frontend-form .ur-button-container .ur-submit-button{margin-right:auto}.ur-frontend-form .ur-submit-button{margin-left:10px;margin-bottom:0}.ur-frontend-form label abbr.required{text-decoration:none;border:none;color:#ff4149}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid textarea{border:none;border-bottom:1px solid #c0c4d4;outline:0;-webkit-transition:all .35s;transition:all .35s;padding:10px 15px;background:#f0f1f5;color:#676d8a;height:45px}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid legend{margin-right:5px;color:#676d8a}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-left:50px}.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--bordered form button[type=submit],.ur-frontend-form.ur-frontend-form--bordered form input[type=submit]{background:#f0f1f5;border:1px solid #dee0e9;color:#676d8a;border-radius:0}.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-next:hover,.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-prev:hover,.ur-frontend-form.ur-frontend-form--bordered form button[type=submit]:hover,.ur-frontend-form.ur-frontend-form--bordered form input[type=submit]:hover{background:#475bb2;color:#fff;border-color:#475bb2}.ur-frontend-form.ur-frontend-form--flat{background:#f7f7f7;border:none transparent}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .form-row,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .ur-field-item{margin-bottom:0}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea{border:none;outline:0;padding:10px 15px;background:#fff;color:#676d8a;margin-bottom:10px;height:45px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=date]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=email]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=number]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=password]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=text]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=url]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea:focus{box-shadow:0 0 10px 5px rgba(0,0,0,.05)}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select{margin-bottom:10px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid legend{color:#676d8a}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-left:50px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid textarea{border:1px solid #c0c4d4;border-radius:25px;outline:0;-webkit-transition:all .35s;transition:all .35s;padding:10px 15px;background:#fff;color:#676d8a;height:45px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid button[type=button]{border-radius:25px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid legend{margin-right:5px;color:#676d8a}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-left:50px}.ur-frontend-form.ur-frontend-form--rounded form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--rounded form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--rounded form button[type=submit],.ur-frontend-form.ur-frontend-form--rounded form input[type=submit]{border:0 none;color:#fff;border-radius:25px;float:none;display:block;padding:15px 25px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid textarea{border-radius:2px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-left:50px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid button[type=button]{border-radius:2px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button[type=submit],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form input[type=submit]{border-radius:2px}.ur-frontend-form #ur-submit-message-node{margin:20px 0 0 0}.ur-frontend-form #ur-submit-message-node.ur-error{background:rgba(206,0,0,.1)}.ur-frontend-form #ur-submit-message-node.ur-message.message{background:rgba(143,174,27,.2)}#user-registration{background-color:#fff;margin:30px 0}#user-registration *,#user-registration.user-registration{box-sizing:border-box}#user-registration p{color:#333}#user-registration .user-registration-tips{font-size:12px;color:#b6bbcf;margin-bottom:0}#user-registration .user-registration-MyAccount-navigation{overflow:visible;margin:0}#user-registration .user-registration-MyAccount-navigation ul{margin:0;padding:0;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link{list-style:none;padding:0;margin:0;display:inline-block;position:relative;box-shadow:0 0 0 transparent}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:10px 15px;display:block;font-weight:400;font-size:14px;font-family:sans-serif;text-decoration:none;box-shadow:0 0 0 transparent}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{font-weight:600}#user-registration .user-registration-MyAccount-content{padding:30px}#user-registration .user-registration-MyAccount-content h2{margin-bottom:30px}#user-registration .user-registration-MyAccount-content .user-registration-profile-fields__field-wrapper{margin:0 -10px}#user-registration .user-registration-MyAccount-content .ur-form-grid{border:0 none;background:0 0}#user-registration .user-registration-MyAccount-content .ur-frontend-form{border:none}#user-registration .user-registration-MyAccount-content .edit-password legend,#user-registration .user-registration-MyAccount-content h2{font-size:28px;font-weight:400}#user-registration .user-registration-MyAccount-content .user-registration-profile-header{margin-bottom:25px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{width:100px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header h3{font-size:22px;font-weight:400;margin-bottom:5px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header header .button-group,#user-registration .user-registration-MyAccount-content .user-registration-profile-header header p{margin-bottom:10px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header header .profile-pic-remove{margin-left:10px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header .user-registration-nick-name{color:#676d8a}#user-registration .user-registration-MyAccount-content .user-registration-EditProfileForm .user-registration-profile-header .user-registration-img-container{width:auto}.user-registration-password-strength{text-align:center;font-weight:600;padding:3px .5em;font-size:1em}.user-registration-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.user-registration-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.user-registration-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.user-registration-password-strength.good{background-color:#ffe399;border-color:#ffc733}.user-registration-password-hint{margin:.5em 0 0;display:block}.ur-front-spinner{background:url(../images/wpspin_light-2x.gif) no-repeat;background-size:16px 16px;display:block;opacity:.7;width:16px;height:16px;margin-right:-40px;float:right}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap h2,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap h2{width:100%;margin-bottom:.5em}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-base-control,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-base-control{width:100%;text-align:center}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-placeholder__fieldset,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-placeholder__fieldset{text-align:center}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-placeholder__fieldset img,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-placeholder__fieldset img{margin:0 auto}.ur-frontend-form.ur-gutenberg-editor form button[type=submit]{cursor:not-allowed}.ur-frontend-form.ur-gutenberg-editor form .ur-form-row .ur-form-grid input{cursor:not-allowed}#tiptip_holder{display:none;z-index:8675309;position:absolute;top:0;left:0}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-right:-6px;border-top-color:#dee0e9}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-right:-6px;border-bottom-color:#dee0e9}#tiptip_holder.tip_right{padding-right:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-right:-5px;border-left-color:#dee0e9}#tiptip_holder.tip_left{padding-left:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-right:-7px;border-right-color:#dee0e9}#tiptip_content,.ur_error_tip{color:#fff;font-size:.8em;max-width:150px;background:#dee0e9;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.ur_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.ur-hidden{display:none}PK\6oC q q assets/css/user-registration.cssnuW+A.ur-form-container .button,.ur-form-container button,.user-registration .button,.user-registration button{-webkit-transition:all .25s ease 0s;transition:all .25s ease 0s}.ur-form-container .button.button-icon,.ur-form-container button.button-icon,.user-registration .button.button-icon,.user-registration button.button-icon{width:32px;padding:0}.ur-form-container .button.button-icon .dashicons,.ur-form-container button.button-icon .dashicons,.user-registration .button.button-icon .dashicons,.user-registration button.button-icon .dashicons{line-height:1;vertical-align:middle}.ur-form-container .button.button-icon-round,.ur-form-container button.button-icon-round,.user-registration .button.button-icon-round,.user-registration button.button-icon-round{border-radius:50%}.ur-form-container .button .ur-spinner,.ur-form-container button .ur-spinner,.user-registration .button .ur-spinner,.user-registration button .ur-spinner{width:16px;height:16px;margin-left:6px;margin-bottom:2px;display:inline-block;vertical-align:middle}.ur-form-container .button-primary,.user-registration .button-primary{background:#475bb2;border-color:#475bb2;box-shadow:0 1px 0 #475bb2;text-shadow:none}.ur-form-container .button-primary:active,.ur-form-container .button-primary:focus,.ur-form-container .button-primary:hover,.user-registration .button-primary:active,.user-registration .button-primary:focus,.user-registration .button-primary:hover{background:#38488e;border-color:#38488e;box-shadow:0 1px 0 #38488e}.ur-form-container .button-primary:disabled,.user-registration .button-primary:disabled{color:#b2bae0!important;background:#697ac3!important;border-color:#697ac3!important}.ur-form-container .button-secondary,.user-registration .button-secondary{color:#2d3559;background:#dee0e9;border-color:#dee0e9;box-shadow:0 1px 0 #dee0e9}.ur-form-container .button-secondary:active,.ur-form-container .button-secondary:focus,.ur-form-container .button-secondary:hover,.user-registration .button-secondary:active,.user-registration .button-secondary:focus,.user-registration .button-secondary:hover{color:#2d3559;background:#b6bbcf;border-color:#b6bbcf;box-shadow:0 1px 0 #b6bbcf}.ur-form-container .button-danger,.user-registration .button-danger{color:#fff;background:#ff4149;border-color:#ff4149;box-shadow:0 1px 0 #ff4149}.ur-form-container .button-danger:active,.ur-form-container .button-danger:focus,.ur-form-container .button-danger:hover,.user-registration .button-danger:active,.user-registration .button-danger:focus,.user-registration .button-danger:hover{color:#fff;background:#ee2a32;border-color:#ee2a32;box-shadow:0 1px 0 #ee2a32}.ur-form-container .publishing-action .button,.ur-form-container .publishing-action button,.ur-form-container .publishing-action input[type=button],.ur-form-container .publishing-action input[type=submit],.user-registration .publishing-action .button,.user-registration .publishing-action button,.user-registration .publishing-action input[type=button],.user-registration .publishing-action input[type=submit]{margin-right:5px}.ur-registered-item.ui-draggable-dragging{padding:10px 10px;line-height:20px;background:#475bb2;color:#fff;text-align:center;margin-bottom:7px;word-break:break-word;white-space:normal;width:200px!important;z-index:9}.ur-registered-item.ui-draggable-dragging span{font-size:14px;line-height:20px;width:auto;height:auto;margin-right:3px}.select2-container .ur-select-all-countries-button{margin:6px 3px 4px 6px}.select2-container .ur-unselect-all-countries-button{margin:6px 3px 4px}.clear{clear:both}.user-registration-error,.user-registration-info,.user-registration-message{display:block;margin:0 0 10px;padding:10px 15px;background-color:#f0f1f9;color:#4c5477;border-top:3px solid #475bb2;list-style:none outside;width:auto;word-wrap:break-word;line-height:1.25;text-transform:none;font-size:14px}.user-registration-error::after,.user-registration-error::before,.user-registration-info::after,.user-registration-info::before,.user-registration-message::after,.user-registration-message::before{content:' ';display:table}.user-registration-error::after,.user-registration-info::after,.user-registration-message::after{clear:both}.user-registration-error::before,.user-registration-info::before,.user-registration-message::before{content:'\f348';display:inline-block;vertical-align:middle;font-family:Dashicons;font-size:calc(100% + 10px);margin-right:.875rem}.user-registration-error ul,.user-registration-info ul,.user-registration-message ul{margin:0!important;padding:0!important;background-color:transparent!important}.user-registration-error .button,.user-registration-info .button,.user-registration-message .button{float:right}.user-registration-error li,.user-registration-info li,.user-registration-message li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.user-registration-error .message,.user-registration-info .message,.user-registration-message .message{margin:0;padding:0}.user-registration-message{border-top-color:#8fae1b;background:rgba(143,174,27,.1);color:#596c11}.user-registration-info{color:#1e85be;border-top-color:#1e85be}.user-registration-error{border-top-color:#ff4149;background:rgba(255,65,73,.1);color:#f4000a}.user-registration-error::before{content:'\f534'}.ur-frontend-form{margin-bottom:30px;border:1px solid #dee0e9;padding:20px;box-sizing:border-box}.ur-frontend-form.login{margin:0;padding:10px;box-shadow:none;background:0 0}.ur-frontend-form.login input[name=rememberme]#rememberme{vertical-align:middle}.ur-frontend-form.login-registration{margin:0;border:none;padding:0}.ur-frontend-form .register #node_recaptcha_register{padding:0 10px}.ur-frontend-form *{box-sizing:border-box}.ur-frontend-form .description{display:block;font-size:14px;line-height:1.5}.ur-frontend-form .ur-form-row{display:-webkit-box;display:-webkit-flex;display:flex}.ur-frontend-form .ur-form-row:last-child{margin-bottom:0}.ur-frontend-form .ur-form-row .ur-form-grid{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:0 10px}.ur-frontend-form .ur-form-row .ur-form-grid:nth-child(1n+2){border-left:0 none}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item{margin-bottom:20px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul{margin:0;list-style:none}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li{margin-left:0;line-height:1.3;vertical-align:middle;margin-bottom:10px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li label,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li label{display:inline-block;vertical-align:inherit}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li input[type=radio],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li input[type=radio]{margin-top:2px}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-checkbox ul li label,.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item.field-radio ul li label{display:inline}.ur-frontend-form .ur-form-row .ur-form-grid .ur-field-item:last-child{margin-bottom:0}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone],.ur-frontend-form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker],.ur-frontend-form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form .ur-form-row .ur-form-grid select,.ur-frontend-form .ur-form-row .ur-form-grid textarea{display:block;width:100%;border-radius:0;min-height:36px;margin-bottom:10px;line-height:1.5}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::-webkit-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::-webkit-input-placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::-ms-input-placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::-ms-input-placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=date]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=number]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=phone]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=timepicker]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid select::placeholder,.ur-frontend-form .ur-form-row .ur-form-grid textarea::placeholder{color:#ddd}.ur-frontend-form .ur-form-row .ur-form-grid input[type=checkbox],.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]{font-size:12px;display:inline-block;vertical-align:middle;margin-right:5px;margin-left:20px}.ur-frontend-form .ur-form-row .ur-form-grid input[type=checkbox]:first-child,.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]:first-child{margin-left:0}.ur-frontend-form .ur-form-row .ur-form-grid button:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=email]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=password]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=radio]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=text]:focus,.ur-frontend-form .ur-form-row .ur-form-grid input[type=url]:focus,.ur-frontend-form .ur-form-row .ur-form-grid select:focus,.ur-frontend-form .ur-form-row .ur-form-grid textarea:focus{outline:0}.ur-frontend-form .ur-form-row .ur-form-grid input[readonly],.ur-frontend-form .ur-form-row .ur-form-grid select[readonly],.ur-frontend-form .ur-form-row .ur-form-grid textarea[readonly]{cursor:auto}.ur-frontend-form .ur-form-row .ur-form-grid select{-webkit-appearance:none;background:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%}.ur-frontend-form .ur-form-row .ur-form-grid label,.ur-frontend-form .ur-form-row .ur-form-grid legend{display:block;font-size:14px;margin-bottom:10px;margin-top:10px}.ur-frontend-form .ur-form-row .ur-form-grid label .required,.ur-frontend-form .ur-form-row .ur-form-grid legend .required{text-decoration:none;border:none;color:#ff4149}.ur-frontend-form .ur-form-row .ur-form-grid label.ur-label,.ur-frontend-form .ur-form-row .ur-form-grid legend.ur-label{font-weight:700}.ur-frontend-form .ur-form-row .ur-form-grid textarea{padding:10px;height:100px;resize:none;padding:5px 20px}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-right:50px}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group{display:block;position:relative}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview{color:#676d8a;position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview.dashicons.dashicons-hidden{opacity:.6}.ur-frontend-form .ur-form-row .ur-form-grid .hide_show_password .password-input-group .password_preview.dashicons.dashicons-hidden:hover{opacity:1}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple{border:1px solid #f0f1f5}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__rendered{display:block}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__rendered li:last-child{margin-left:0}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-selection__choice{margin:5px}.ur-frontend-form .ur-form-row .select2-container .select2-selection--multiple .select2-search--inline input[type=text]{margin:5px;height:inherit}.ur-frontend-form button,.ur-frontend-form button[type=submit],.ur-frontend-form input[type=submit]{padding:10px 20px;line-height:1.5;text-align:center;word-break:break-word;white-space:normal;border:none;cursor:pointer;-webkit-transition:.35s all ease-out;transition:.35s all ease-out}.ur-frontend-form input[type=submit]{float:right}.ur-frontend-form .ur-button-container{display:-webkit-box;display:-webkit-flex;display:flex;margin-top:10px;padding:0 10px}.ur-frontend-form .ur-button-container .ur-submit-button{margin-left:auto}.ur-frontend-form .ur-submit-button{margin-right:10px;margin-bottom:0}.ur-frontend-form label abbr.required{text-decoration:none;border:none;color:#ff4149}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid textarea{border:none;border-bottom:1px solid #c0c4d4;outline:0;-webkit-transition:all .35s;transition:all .35s;padding:10px 15px;background:#f0f1f5;color:#676d8a;height:45px}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid legend{margin-left:5px;color:#676d8a}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--bordered form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-right:50px}.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--bordered form button[type=submit],.ur-frontend-form.ur-frontend-form--bordered form input[type=submit]{background:#f0f1f5;border:1px solid #dee0e9;color:#676d8a;border-radius:0}.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-next:hover,.ur-frontend-form.ur-frontend-form--bordered form button.user-registration-multi-part-nav-prev:hover,.ur-frontend-form.ur-frontend-form--bordered form button[type=submit]:hover,.ur-frontend-form.ur-frontend-form--bordered form input[type=submit]:hover{background:#475bb2;color:#fff;border-color:#475bb2}.ur-frontend-form.ur-frontend-form--flat{background:#f7f7f7;border:none transparent}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .form-row,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .ur-field-item{margin-bottom:0}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea{border:none;outline:0;padding:10px 15px;background:#fff;color:#676d8a;margin-bottom:10px;height:45px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=date]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=email]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=number]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=password]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=text]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid input[type=url]:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select:focus,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea:focus{box-shadow:0 0 10px 5px rgba(0,0,0,.05)}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid select{margin-bottom:10px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid legend{color:#676d8a}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--flat form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-right:50px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid textarea{border:1px solid #c0c4d4;border-radius:25px;outline:0;-webkit-transition:all .35s;transition:all .35s;padding:10px 15px;background:#fff;color:#676d8a;height:45px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid button[type=button]{border-radius:25px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid label,.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid legend{margin-left:5px;color:#676d8a}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid textarea{height:100px}.ur-frontend-form.ur-frontend-form--rounded form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-right:50px}.ur-frontend-form.ur-frontend-form--rounded form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--rounded form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--rounded form button[type=submit],.ur-frontend-form.ur-frontend-form--rounded form input[type=submit]{border:0 none;color:#fff;border-radius:25px;float:none;display:block;padding:15px 25px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=date],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=email],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=number],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=password],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=text],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid input[type=url],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid select,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid textarea{border-radius:2px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid .hide_show_password input[type=password]{padding-right:50px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form .ur-form-row .ur-form-grid button[type=button]{border-radius:2px}.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button.user-registration-multi-part-nav-next,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button.user-registration-multi-part-nav-prev,.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form button[type=submit],.ur-frontend-form.ur-frontend-form--rounded.ur-frontend-form--rounded-edge form input[type=submit]{border-radius:2px}.ur-frontend-form #ur-submit-message-node{margin:20px 0 0 0}.ur-frontend-form #ur-submit-message-node.ur-error{background:rgba(206,0,0,.1)}.ur-frontend-form #ur-submit-message-node.ur-message.message{background:rgba(143,174,27,.2)}#user-registration{background-color:#fff;margin:30px 0}#user-registration *,#user-registration.user-registration{box-sizing:border-box}#user-registration p{color:#333}#user-registration .user-registration-tips{font-size:12px;color:#b6bbcf;margin-bottom:0}#user-registration .user-registration-MyAccount-navigation{overflow:visible;margin:0}#user-registration .user-registration-MyAccount-navigation ul{margin:0;padding:0;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link{list-style:none;padding:0;margin:0;display:inline-block;position:relative;box-shadow:0 0 0 transparent}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link a{padding:10px 15px;display:block;font-weight:400;font-size:14px;font-family:sans-serif;text-decoration:none;box-shadow:0 0 0 transparent}#user-registration .user-registration-MyAccount-navigation ul .user-registration-MyAccount-navigation-link.is-active a{font-weight:600}#user-registration .user-registration-MyAccount-content{padding:30px}#user-registration .user-registration-MyAccount-content h2{margin-bottom:30px}#user-registration .user-registration-MyAccount-content .user-registration-profile-fields__field-wrapper{margin:0 -10px}#user-registration .user-registration-MyAccount-content .ur-form-grid{border:0 none;background:0 0}#user-registration .user-registration-MyAccount-content .ur-frontend-form{border:none}#user-registration .user-registration-MyAccount-content .edit-password legend,#user-registration .user-registration-MyAccount-content h2{font-size:28px;font-weight:400}#user-registration .user-registration-MyAccount-content .user-registration-profile-header{margin-bottom:25px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header .user-registration-img-container{width:100px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header h3{font-size:22px;font-weight:400;margin-bottom:5px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header header .button-group,#user-registration .user-registration-MyAccount-content .user-registration-profile-header header p{margin-bottom:10px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header header .profile-pic-remove{margin-right:10px}#user-registration .user-registration-MyAccount-content .user-registration-profile-header .user-registration-nick-name{color:#676d8a}#user-registration .user-registration-MyAccount-content .user-registration-EditProfileForm .user-registration-profile-header .user-registration-img-container{width:auto}.user-registration-password-strength{text-align:center;font-weight:600;padding:3px .5em;font-size:1em}.user-registration-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.user-registration-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.user-registration-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.user-registration-password-strength.good{background-color:#ffe399;border-color:#ffc733}.user-registration-password-hint{margin:.5em 0 0;display:block}.ur-front-spinner{background:url(../images/wpspin_light-2x.gif) no-repeat;background-size:16px 16px;display:block;opacity:.7;width:16px;height:16px;margin-left:-40px;float:left}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap h2,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap h2{width:100%;margin-bottom:.5em}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-base-control,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-base-control{width:100%;text-align:center}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-placeholder__fieldset,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-placeholder__fieldset{text-align:center}.edit-post-visual-editor .ur-gutenberg-form-selector-wrap .components-placeholder__fieldset img,.edit-post-visual-editor .user-registration-gutenberg-form-selector-wrap .components-placeholder__fieldset img{margin:0 auto}.ur-frontend-form.ur-gutenberg-editor form button[type=submit]{cursor:not-allowed}.ur-frontend-form.ur-gutenberg-editor form .ur-form-row .ur-form-grid input{cursor:not-allowed}#tiptip_holder{display:none;z-index:8675309;position:absolute;top:0;left:0}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#dee0e9}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#dee0e9}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#dee0e9}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#dee0e9}#tiptip_content,.ur_error_tip{color:#fff;font-size:.8em;max-width:150px;background:#dee0e9;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.ur_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.ur-hidden{display:none}PK\ Kassets/css/activation.scssnuW+A/** * activation.scss * Styles applied to elements displayed on activation */ /** * Imports */ @import "variables"; /** * Styling begins */ .user-registration-message { overflow: hidden; position: relative; border-left-color: #2ea2cc !important; &.error { border-left-color: $red !important; p { max-width: 1000px; } } a.button-primary, a.button-secondary { text-decoration: none !important; } a.user-registration-message-close { position: absolute; top: 0; right: 0; padding: 10px 15px 10px 21px; font-size: 13px; line-height: 1.23076923; text-decoration: none; &:before { position: absolute; top: 8px; left: 0; -webkit-transition: all .1s ease-in-out; transition: all .1s ease-in-out; } } } PK\assets/css/activation-rtl.cssnuW+A.user-registration-message{overflow:hidden;position:relative;border-right-color:#2ea2cc!important}.user-registration-message.error{border-right-color:#ff4149!important}.user-registration-message.error p{max-width:1000px}.user-registration-message a.button-primary,.user-registration-message a.button-secondary{text-decoration:none!important}.user-registration-message a.user-registration-message-close{position:absolute;top:0;left:0;padding:10px 21px 10px 15px;font-size:13px;line-height:1.23076923;text-decoration:none}.user-registration-message a.user-registration-message-close:before{position:absolute;top:8px;right:0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}PK\e|wwassets/css/_fonts.scssnuW+A@font-face { font-family: 'UserRegistration'; src: url('../fonts/UserRegistration.eot?5hlcw0'); src: url('../fonts/UserRegistration.eot?5hlcw0#iefix') format('embedded-opentype'), url('../fonts/UserRegistration.ttf?5hlcw0') format('truetype'), url('../fonts/UserRegistration.woff?5hlcw0') format('woff'), url('../fonts/UserRegistration.svg?5hlcw0#UserRegistration') format('svg'); font-weight: normal; font-style: normal; font-display: block; } [class^='ur-icon-'], [class*=' ur-icon-'] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'UserRegistration' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Define the Map for $field-icons */ $field-icons: ( input-first-name: "\e001", input-last-name: "\e002", input-field: "\e003", input-password: "\e004", input-checkbox: "\e005", radio: "\e006", number: "\e007", phone: "\e008", calendar: "\e009", drop-down: "\e00a", textarea: "\e00b", email: "\e00c", email-secondary: "\e00d", email-confirm: "\e00e", invite-codes: "\e00f", password: "\e010", password-confirm: "\e011", user: "\e012", user-nickname: "\e013", user-display-name: "\e014", user-bio: "\e015", website: "\e016", flag: "\e017", map-one: "\e018", map-two: "\e019", zip-code: "\e01a", select2: "\e01b", multi-select: "\e01c", section-title: "\e01d", time-picker: "\e01e", state: "\e01f", buildings: "\e020", text-editor: "\e021", bill: "\e022", doc: "\e023", file-upload: "\e024", file-dollar: "\e025", code: "\e026", mailchimp: "\e027" ); /* For each key in the map, creating own class */ @each $name, $value in $field-icons { .ur-icon-#{$name}{ &::before{ content: $value; } } } PK\KJKCCassets/css/select2.scssnuW+A.select2-container { box-sizing: border-box; display: inline-block; margin: 0; position: relative; vertical-align: middle; } .select2-container .select2-selection--single { box-sizing: border-box; cursor: pointer; display: block; height: 28px; 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 { box-sizing: border-box; cursor: pointer; display: block; min-height: 32px; 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 { 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: white; border: 1px solid #aaa; border-radius: 4px; 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; user-select: none; -webkit-user-select: none; } .select2-results__option[data-selected], .select2-results__option[aria-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%; 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; filter: alpha(opacity=0); } .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: bold; } .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: white; border: 1px solid #aaa; border-radius: 4px; cursor: text; } .select2-container--default .select2-selection--multiple .select2-selection__rendered { 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: bold; 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: bold; 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-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { 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 black 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--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { border-top-left-radius: 0; border-top-right-radius: 0; } .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { 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: transparent; border: none; outline: 0; 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[data-selected=true], .select2-container--default .select2-results__option[aria-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[data-selected], .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #0073aa; color: white; } .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: linear-gradient(to bottom, white 50%, #eeeeee 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } .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: bold; 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: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } .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: transparent; 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: linear-gradient(to bottom, white 0%, #eeeeee 50%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } .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: linear-gradient(to bottom, #eeeeee 50%, white 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } .select2-container--classic .select2-selection--multiple { background-color: white; 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: bold; 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; box-shadow: none; } .select2-container--classic .select2-dropdown { background-color: white; 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[data-selected], .select2-container--classic .select2-results__option--highlighted[aria-selected] { background-color: #3875d7; color: white; } .select2-container--classic .select2-results__group { cursor: default; display: block; padding: 6px; } .select2-container--classic.select2-container--open .select2-dropdown { border-color: #0073aa; } PK\HEKKassets/js/admin/ur-copy.min.jsnuW+Afunction urSetClipboard(e,t){void 0===t&&(t=jQuery(document));var o=jQuery('\n
\n \n
\n \n \n
\n
\n
\n \n").replace(/(^|\n)\s*/g, ''); var resetOldContainer = function resetOldContainer() { var oldContainer = getContainer(); if (!oldContainer) { return; } oldContainer.parentNode.removeChild(oldContainer); removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]); }; var oldInputVal; // IE11 workaround, see #1109 for details var resetValidationMessage = function resetValidationMessage(e) { if (Swal.isVisible() && oldInputVal !== e.target.value) { Swal.resetValidationMessage(); } oldInputVal = e.target.value; }; var addInputChangeListeners = function addInputChangeListeners() { var content = getContent(); var input = getChildByClass(content, swalClasses.input); var file = getChildByClass(content, swalClasses.file); var range = content.querySelector(".".concat(swalClasses.range, " input")); var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output")); var select = getChildByClass(content, swalClasses.select); var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input")); var textarea = getChildByClass(content, swalClasses.textarea); input.oninput = resetValidationMessage; file.onchange = resetValidationMessage; select.onchange = resetValidationMessage; checkbox.onchange = resetValidationMessage; textarea.oninput = resetValidationMessage; range.oninput = function (e) { resetValidationMessage(e); rangeOutput.value = range.value; }; range.onchange = function (e) { resetValidationMessage(e); range.nextSibling.value = range.value; }; }; var getTarget = function getTarget(target) { return typeof target === 'string' ? document.querySelector(target) : target; }; var setupAccessibility = function setupAccessibility(params) { var popup = getPopup(); popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); if (!params.toast) { popup.setAttribute('aria-modal', 'true'); } }; var setupRTL = function setupRTL(targetElement) { if (window.getComputedStyle(targetElement).direction === 'rtl') { addClass(getContainer(), swalClasses.rtl); } }; /* * Add modal + backdrop to DOM */ var init = function init(params) { // Clean up the old popup container if it exists resetOldContainer(); /* istanbul ignore if */ if (isNodeEnv()) { error('SweetAlert2 requires document to initialize'); return; } var container = document.createElement('div'); container.className = swalClasses.container; container.innerHTML = sweetHTML; var targetElement = getTarget(params.target); targetElement.appendChild(container); setupAccessibility(params); setupRTL(targetElement); addInputChangeListeners(); }; var parseHtmlToContainer = function parseHtmlToContainer(param, target) { // DOM element if (param instanceof HTMLElement) { target.appendChild(param); // JQuery element(s) } else if (_typeof(param) === 'object') { handleJqueryElem(target, param); // Plain string } else if (param) { target.innerHTML = param; } }; var handleJqueryElem = function handleJqueryElem(target, elem) { target.innerHTML = ''; if (0 in elem) { for (var i = 0; i in elem; i++) { target.appendChild(elem[i].cloneNode(true)); } } else { target.appendChild(elem.cloneNode(true)); } }; var animationEndEvent = function () { // Prevent run in Node env /* istanbul ignore if */ if (isNodeEnv()) { return false; } var testEl = document.createElement('div'); var transEndEventNames = { WebkitAnimation: 'webkitAnimationEnd', OAnimation: 'oAnimationEnd oanimationend', animation: 'animationend' }; for (var i in transEndEventNames) { if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') { return transEndEventNames[i]; } } return false; }(); // Measure width of scrollbar // https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286 var measureScrollbar = function measureScrollbar() { var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints; if (supportsTouch) { return 0; } var scrollDiv = document.createElement('div'); scrollDiv.style.width = '50px'; scrollDiv.style.height = '50px'; scrollDiv.style.overflow = 'scroll'; document.body.appendChild(scrollDiv); var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); return scrollbarWidth; }; var renderActions = function renderActions(instance, params) { var actions = getActions(); var confirmButton = getConfirmButton(); var cancelButton = getCancelButton(); // Actions (buttons) wrapper if (!params.showConfirmButton && !params.showCancelButton) { hide(actions); } // Custom class applyCustomClass(actions, params.customClass, 'actions'); // Render confirm button renderButton(confirmButton, 'confirm', params); // render Cancel Button renderButton(cancelButton, 'cancel', params); if (params.buttonsStyling) { handleButtonsStyling(confirmButton, cancelButton, params); } else { removeClass([confirmButton, cancelButton], swalClasses.styled); confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = ''; cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = ''; } if (params.reverseButtons) { confirmButton.parentNode.insertBefore(cancelButton, confirmButton); } }; function handleButtonsStyling(confirmButton, cancelButton, params) { addClass([confirmButton, cancelButton], swalClasses.styled); // Buttons background colors if (params.confirmButtonColor) { confirmButton.style.backgroundColor = params.confirmButtonColor; } if (params.cancelButtonColor) { cancelButton.style.backgroundColor = params.cancelButtonColor; } // Loading state var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color'); confirmButton.style.borderLeftColor = confirmButtonBackgroundColor; confirmButton.style.borderRightColor = confirmButtonBackgroundColor; } function renderButton(button, buttonType, params) { toggle(button, params['showC' + buttonType.substring(1) + 'Button'], 'inline-block'); button.innerHTML = params[buttonType + 'ButtonText']; // Set caption text button.setAttribute('aria-label', params[buttonType + 'ButtonAriaLabel']); // ARIA label // Add buttons custom classes button.className = swalClasses[buttonType]; applyCustomClass(button, params.customClass, buttonType + 'Button'); addClass(button, params[buttonType + 'ButtonClass']); } function handleBackdropParam(container, backdrop) { if (typeof backdrop === 'string') { container.style.background = backdrop; } else if (!backdrop) { addClass([document.documentElement, document.body], swalClasses['no-backdrop']); } } function handlePositionParam(container, position) { if (position in swalClasses) { addClass(container, swalClasses[position]); } else { warn('The "position" parameter is not valid, defaulting to "center"'); addClass(container, swalClasses.center); } } function handleGrowParam(container, grow) { if (grow && typeof grow === 'string') { var growClass = 'grow-' + grow; if (growClass in swalClasses) { addClass(container, swalClasses[growClass]); } } } var renderContainer = function renderContainer(instance, params) { var container = getContainer(); if (!container) { return; } handleBackdropParam(container, params.backdrop); if (!params.backdrop && params.allowOutsideClick) { warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'); } handlePositionParam(container, params.position); handleGrowParam(container, params.grow); // Custom class applyCustomClass(container, params.customClass, 'container'); if (params.customContainerClass) { // @deprecated addClass(container, params.customContainerClass); } }; /** * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` * This is the approach that Babel will probably take to implement private methods/fields * https://github.com/tc39/proposal-private-methods * https://github.com/babel/babel/pull/7555 * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* * then we can use that language feature. */ var privateProps = { promise: new WeakMap(), innerParams: new WeakMap(), domCache: new WeakMap() }; var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; var renderInput = function renderInput(instance, params) { var content = getContent(); var innerParams = privateProps.innerParams.get(instance); var rerender = !innerParams || params.input !== innerParams.input; inputTypes.forEach(function (inputType) { var inputClass = swalClasses[inputType]; var inputContainer = getChildByClass(content, inputClass); // set attributes setAttributes(inputType, params.inputAttributes); // set class setClass(inputContainer, inputClass, params); if (rerender) { hide(inputContainer); } }); if (params.input && rerender) { showInput(params); } }; var showInput = function showInput(params) { if (!renderInputType[params.input]) { return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\"")); } var input = renderInputType[params.input](params); show(input); // input autofocus setTimeout(function () { focusInput(input); }); }; var removeAttributes = function removeAttributes(input) { for (var i = 0; i < input.attributes.length; i++) { var attrName = input.attributes[i].name; if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) { input.removeAttribute(attrName); } } }; var setAttributes = function setAttributes(inputType, inputAttributes) { var input = getInput(getContent(), inputType); if (!input) { return; } removeAttributes(input); for (var attr in inputAttributes) { // Do not set a placeholder for // it'll crash Edge, #1298 if (inputType === 'range' && attr === 'placeholder') { continue; } input.setAttribute(attr, inputAttributes[attr]); } }; var setClass = function setClass(inputContainer, inputClass, params) { inputContainer.className = inputClass; if (params.inputClass) { addClass(inputContainer, params.inputClass); } if (params.customClass) { addClass(inputContainer, params.customClass.input); } }; var setInputPlaceholder = function setInputPlaceholder(input, params) { if (!input.placeholder || params.inputPlaceholder) { input.placeholder = params.inputPlaceholder; } }; var renderInputType = {}; renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (params) { var input = getChildByClass(getContent(), swalClasses.input); if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { input.value = params.inputValue; } else if (!isPromise(params.inputValue)) { warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\"")); } setInputPlaceholder(input, params); input.type = params.input; return input; }; renderInputType.file = function (params) { var input = getChildByClass(getContent(), swalClasses.file); setInputPlaceholder(input, params); input.type = params.input; return input; }; renderInputType.range = function (params) { var range = getChildByClass(getContent(), swalClasses.range); var rangeInput = range.querySelector('input'); var rangeOutput = range.querySelector('output'); rangeInput.value = params.inputValue; rangeInput.type = params.input; rangeOutput.value = params.inputValue; return range; }; renderInputType.select = function (params) { var select = getChildByClass(getContent(), swalClasses.select); select.innerHTML = ''; if (params.inputPlaceholder) { var placeholder = document.createElement('option'); placeholder.innerHTML = params.inputPlaceholder; placeholder.value = ''; placeholder.disabled = true; placeholder.selected = true; select.appendChild(placeholder); } return select; }; renderInputType.radio = function () { var radio = getChildByClass(getContent(), swalClasses.radio); radio.innerHTML = ''; return radio; }; renderInputType.checkbox = function (params) { var checkbox = getChildByClass(getContent(), swalClasses.checkbox); var checkboxInput = getInput(getContent(), 'checkbox'); checkboxInput.type = 'checkbox'; checkboxInput.value = 1; checkboxInput.id = swalClasses.checkbox; checkboxInput.checked = Boolean(params.inputValue); var label = checkbox.querySelector('span'); label.innerHTML = params.inputPlaceholder; return checkbox; }; renderInputType.textarea = function (params) { var textarea = getChildByClass(getContent(), swalClasses.textarea); textarea.value = params.inputValue; setInputPlaceholder(textarea, params); if ('MutationObserver' in window) { // #1699 var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight); var outputsize = function outputsize() { var contentWidth = textarea.offsetWidth + popupPadding; if (contentWidth > initialPopupWidth) { getPopup().style.width = contentWidth + 'px'; } else { getPopup().style.width = null; } }; new MutationObserver(outputsize).observe(textarea, { attributes: true, attributeFilter: ['style'] }); } return textarea; }; var renderContent = function renderContent(instance, params) { var content = getContent().querySelector('#' + swalClasses.content); // Content as HTML if (params.html) { parseHtmlToContainer(params.html, content); show(content, 'block'); // Content as plain text } else if (params.text) { content.textContent = params.text; show(content, 'block'); // No content } else { hide(content); } renderInput(instance, params); // Custom class applyCustomClass(getContent(), params.customClass, 'content'); }; var renderFooter = function renderFooter(instance, params) { var footer = getFooter(); toggle(footer, params.footer); if (params.footer) { parseHtmlToContainer(params.footer, footer); } // Custom class applyCustomClass(footer, params.customClass, 'footer'); }; var renderCloseButton = function renderCloseButton(instance, params) { var closeButton = getCloseButton(); closeButton.innerHTML = params.closeButtonHtml; // Custom class applyCustomClass(closeButton, params.customClass, 'closeButton'); toggle(closeButton, params.showCloseButton); closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); }; var renderIcon = function renderIcon(instance, params) { var innerParams = privateProps.innerParams.get(instance); // if the icon with the given type already rendered, // apply the custom class without re-rendering the icon if (innerParams && params.type === innerParams.type && getIcon()) { applyCustomClass(getIcon(), params.customClass, 'icon'); return; } hideAllIcons(); if (!params.type) { return; } adjustSuccessIconBackgoundColor(); if (Object.keys(iconTypes).indexOf(params.type) !== -1) { var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.type])); show(icon); // Custom class applyCustomClass(icon, params.customClass, 'icon'); // Animate icon toggleClass(icon, "swal2-animate-".concat(params.type, "-icon"), params.animation); } else { error("Unknown type! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.type, "\"")); } }; var hideAllIcons = function hideAllIcons() { var icons = getIcons(); for (var i = 0; i < icons.length; i++) { hide(icons[i]); } }; // Adjust success icon background color to match the popup background color var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() { var popup = getPopup(); var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); for (var i = 0; i < successIconParts.length; i++) { successIconParts[i].style.backgroundColor = popupBackgroundColor; } }; var renderImage = function renderImage(instance, params) { var image = getImage(); if (!params.imageUrl) { return hide(image); } show(image); // Src, alt image.setAttribute('src', params.imageUrl); image.setAttribute('alt', params.imageAlt); // Width, height applyNumericalStyle(image, 'width', params.imageWidth); applyNumericalStyle(image, 'height', params.imageHeight); // Class image.className = swalClasses.image; applyCustomClass(image, params.customClass, 'image'); if (params.imageClass) { addClass(image, params.imageClass); } }; var createStepElement = function createStepElement(step) { var stepEl = document.createElement('li'); addClass(stepEl, swalClasses['progress-step']); stepEl.innerHTML = step; return stepEl; }; var createLineElement = function createLineElement(params) { var lineEl = document.createElement('li'); addClass(lineEl, swalClasses['progress-step-line']); if (params.progressStepsDistance) { lineEl.style.width = params.progressStepsDistance; } return lineEl; }; var renderProgressSteps = function renderProgressSteps(instance, params) { var progressStepsContainer = getProgressSteps(); if (!params.progressSteps || params.progressSteps.length === 0) { return hide(progressStepsContainer); } show(progressStepsContainer); progressStepsContainer.innerHTML = ''; var currentProgressStep = parseInt(params.currentProgressStep === null ? Swal.getQueueStep() : params.currentProgressStep); if (currentProgressStep >= params.progressSteps.length) { warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); } params.progressSteps.forEach(function (step, index) { var stepEl = createStepElement(step); progressStepsContainer.appendChild(stepEl); if (index === currentProgressStep) { addClass(stepEl, swalClasses['active-progress-step']); } if (index !== params.progressSteps.length - 1) { var lineEl = createLineElement(step); progressStepsContainer.appendChild(lineEl); } }); }; var renderTitle = function renderTitle(instance, params) { var title = getTitle(); toggle(title, params.title || params.titleText); if (params.title) { parseHtmlToContainer(params.title, title); } if (params.titleText) { title.innerText = params.titleText; } // Custom class applyCustomClass(title, params.customClass, 'title'); }; var renderHeader = function renderHeader(instance, params) { var header = getHeader(); // Custom class applyCustomClass(header, params.customClass, 'header'); // Progress steps renderProgressSteps(instance, params); // Icon renderIcon(instance, params); // Image renderImage(instance, params); // Title renderTitle(instance, params); // Close button renderCloseButton(instance, params); }; var renderPopup = function renderPopup(instance, params) { var popup = getPopup(); // Width applyNumericalStyle(popup, 'width', params.width); // Padding applyNumericalStyle(popup, 'padding', params.padding); // Background if (params.background) { popup.style.background = params.background; } // Default Class popup.className = swalClasses.popup; if (params.toast) { addClass([document.documentElement, document.body], swalClasses['toast-shown']); addClass(popup, swalClasses.toast); } else { addClass(popup, swalClasses.modal); } // Custom class applyCustomClass(popup, params.customClass, 'popup'); if (typeof params.customClass === 'string') { addClass(popup, params.customClass); } // CSS animation toggleClass(popup, swalClasses.noanimation, !params.animation); }; var render = function render(instance, params) { renderPopup(instance, params); renderContainer(instance, params); renderHeader(instance, params); renderContent(instance, params); renderActions(instance, params); renderFooter(instance, params); if (typeof params.onRender === 'function') { params.onRender(getPopup()); } }; /* * Global function to determine if SweetAlert2 popup is shown */ var isVisible$1 = function isVisible$$1() { return isVisible(getPopup()); }; /* * Global function to click 'Confirm' button */ var clickConfirm = function clickConfirm() { return getConfirmButton() && getConfirmButton().click(); }; /* * Global function to click 'Cancel' button */ var clickCancel = function clickCancel() { return getCancelButton() && getCancelButton().click(); }; function fire() { var Swal = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _construct(Swal, args); } /** * Returns an extended version of `Swal` containing `params` as defaults. * Useful for reusing Swal configuration. * * For example: * * Before: * const textPromptOptions = { input: 'text', showCancelButton: true } * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) * * After: * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) * const {value: firstName} = await TextPrompt('What is your first name?') * const {value: lastName} = await TextPrompt('What is your last name?') * * @param mixinParams */ function mixin(mixinParams) { var MixinSwal = /*#__PURE__*/ function (_this) { _inherits(MixinSwal, _this); function MixinSwal() { _classCallCheck(this, MixinSwal); return _possibleConstructorReturn(this, _getPrototypeOf(MixinSwal).apply(this, arguments)); } _createClass(MixinSwal, [{ key: "_main", value: function _main(params) { return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params)); } }]); return MixinSwal; }(this); return MixinSwal; } // private global state for the queue feature var currentSteps = []; /* * Global function for chaining sweetAlert popups */ var queue = function queue(steps) { var Swal = this; currentSteps = steps; var resetAndResolve = function resetAndResolve(resolve, value) { currentSteps = []; document.body.removeAttribute('data-swal2-queue-step'); resolve(value); }; var queueResult = []; return new Promise(function (resolve) { (function step(i, callback) { if (i < currentSteps.length) { document.body.setAttribute('data-swal2-queue-step', i); Swal.fire(currentSteps[i]).then(function (result) { if (typeof result.value !== 'undefined') { queueResult.push(result.value); step(i + 1, callback); } else { resetAndResolve(resolve, { dismiss: result.dismiss }); } }); } else { resetAndResolve(resolve, { value: queueResult }); } })(0); }); }; /* * Global function for getting the index of current popup in queue */ var getQueueStep = function getQueueStep() { return document.body.getAttribute('data-swal2-queue-step'); }; /* * Global function for inserting a popup to the queue */ var insertQueueStep = function insertQueueStep(step, index) { if (index && index < currentSteps.length) { return currentSteps.splice(index, 0, step); } return currentSteps.push(step); }; /* * Global function for deleting a popup from the queue */ var deleteQueueStep = function deleteQueueStep(index) { if (typeof currentSteps[index] !== 'undefined') { currentSteps.splice(index, 1); } }; /** * Show spinner instead of Confirm button and disable Cancel button */ var showLoading = function showLoading() { var popup = getPopup(); if (!popup) { Swal.fire(''); } popup = getPopup(); var actions = getActions(); var confirmButton = getConfirmButton(); var cancelButton = getCancelButton(); show(actions); show(confirmButton); addClass([popup, actions], swalClasses.loading); confirmButton.disabled = true; cancelButton.disabled = true; popup.setAttribute('data-loading', true); popup.setAttribute('aria-busy', true); popup.focus(); }; var RESTORE_FOCUS_TIMEOUT = 100; var globalState = {}; var focusPreviousActiveElement = function focusPreviousActiveElement() { if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { globalState.previousActiveElement.focus(); globalState.previousActiveElement = null; } else if (document.body) { document.body.focus(); } }; // Restore previous active (focused) element var restoreActiveElement = function restoreActiveElement() { return new Promise(function (resolve) { var x = window.scrollX; var y = window.scrollY; globalState.restoreFocusTimeout = setTimeout(function () { focusPreviousActiveElement(); resolve(); }, RESTORE_FOCUS_TIMEOUT); // issues/900 if (typeof x !== 'undefined' && typeof y !== 'undefined') { // IE doesn't have scrollX/scrollY support window.scrollTo(x, y); } }); }; /** * If `timer` parameter is set, returns number of milliseconds of timer remained. * Otherwise, returns undefined. */ var getTimerLeft = function getTimerLeft() { return globalState.timeout && globalState.timeout.getTimerLeft(); }; /** * Stop timer. Returns number of milliseconds of timer remained. * If `timer` parameter isn't set, returns undefined. */ var stopTimer = function stopTimer() { return globalState.timeout && globalState.timeout.stop(); }; /** * Resume timer. Returns number of milliseconds of timer remained. * If `timer` parameter isn't set, returns undefined. */ var resumeTimer = function resumeTimer() { return globalState.timeout && globalState.timeout.start(); }; /** * Resume timer. Returns number of milliseconds of timer remained. * If `timer` parameter isn't set, returns undefined. */ var toggleTimer = function toggleTimer() { var timer = globalState.timeout; return timer && (timer.running ? timer.stop() : timer.start()); }; /** * Increase timer. Returns number of milliseconds of an updated timer. * If `timer` parameter isn't set, returns undefined. */ var increaseTimer = function increaseTimer(n) { return globalState.timeout && globalState.timeout.increase(n); }; /** * Check if timer is running. Returns true if timer is running * or false if timer is paused or stopped. * If `timer` parameter isn't set, returns undefined */ var isTimerRunning = function isTimerRunning() { return globalState.timeout && globalState.timeout.isRunning(); }; var defaultParams = { title: '', titleText: '', text: '', html: '', footer: '', type: null, toast: false, customClass: '', customContainerClass: '', target: 'body', backdrop: true, animation: true, heightAuto: true, allowOutsideClick: true, allowEscapeKey: true, allowEnterKey: true, stopKeydownPropagation: true, keydownListenerCapture: false, showConfirmButton: true, showCancelButton: false, preConfirm: null, confirmButtonText: 'OK', confirmButtonAriaLabel: '', confirmButtonColor: null, confirmButtonClass: '', cancelButtonText: 'Cancel', cancelButtonAriaLabel: '', cancelButtonColor: null, cancelButtonClass: '', buttonsStyling: true, reverseButtons: false, focusConfirm: true, focusCancel: false, showCloseButton: false, closeButtonHtml: '×', closeButtonAriaLabel: 'Close this dialog', showLoaderOnConfirm: false, imageUrl: null, imageWidth: null, imageHeight: null, imageAlt: '', imageClass: '', timer: null, width: null, padding: null, background: null, input: null, inputPlaceholder: '', inputValue: '', inputOptions: {}, inputAutoTrim: true, inputClass: '', inputAttributes: {}, inputValidator: null, validationMessage: null, grow: false, position: 'center', progressSteps: [], currentProgressStep: null, progressStepsDistance: null, onBeforeOpen: null, onOpen: null, onRender: null, onClose: null, onAfterClose: null, scrollbarPadding: true }; var updatableParams = ['title', 'titleText', 'text', 'html', 'type', 'customClass', 'showConfirmButton', 'showCancelButton', 'confirmButtonText', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonClass', 'cancelButtonText', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonClass', 'buttonsStyling', 'reverseButtons', 'imageUrl', 'imageWidth', 'imageHeigth', 'imageAlt', 'imageClass', 'progressSteps', 'currentProgressStep']; var deprecatedParams = { customContainerClass: 'customClass', confirmButtonClass: 'customClass', cancelButtonClass: 'customClass', imageClass: 'customClass', inputClass: 'customClass' }; var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusCancel', 'heightAuto', 'keydownListenerCapture']; /** * Is valid parameter * @param {String} paramName */ var isValidParameter = function isValidParameter(paramName) { return Object.prototype.hasOwnProperty.call(defaultParams, paramName); }; /** * Is valid parameter for Swal.update() method * @param {String} paramName */ var isUpdatableParameter = function isUpdatableParameter(paramName) { return updatableParams.indexOf(paramName) !== -1; }; /** * Is deprecated parameter * @param {String} paramName */ var isDeprecatedParameter = function isDeprecatedParameter(paramName) { return deprecatedParams[paramName]; }; var checkIfParamIsValid = function checkIfParamIsValid(param) { if (!isValidParameter(param)) { warn("Unknown parameter \"".concat(param, "\"")); } }; var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) { if (toastIncompatibleParams.indexOf(param) !== -1) { warn("The parameter \"".concat(param, "\" is incompatible with toasts")); } }; var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) { if (isDeprecatedParameter(param)) { warnAboutDepreation(param, isDeprecatedParameter(param)); } }; /** * Show relevant warnings for given params * * @param params */ var showWarningsForParams = function showWarningsForParams(params) { for (var param in params) { checkIfParamIsValid(param); if (params.toast) { checkIfToastParamIsValid(param); } checkIfParamIsDeprecated(); } }; var staticMethods = Object.freeze({ isValidParameter: isValidParameter, isUpdatableParameter: isUpdatableParameter, isDeprecatedParameter: isDeprecatedParameter, argsToParams: argsToParams, isVisible: isVisible$1, clickConfirm: clickConfirm, clickCancel: clickCancel, getContainer: getContainer, getPopup: getPopup, getTitle: getTitle, getContent: getContent, getImage: getImage, getIcon: getIcon, getIcons: getIcons, getCloseButton: getCloseButton, getActions: getActions, getConfirmButton: getConfirmButton, getCancelButton: getCancelButton, getHeader: getHeader, getFooter: getFooter, getFocusableElements: getFocusableElements, getValidationMessage: getValidationMessage, isLoading: isLoading, fire: fire, mixin: mixin, queue: queue, getQueueStep: getQueueStep, insertQueueStep: insertQueueStep, deleteQueueStep: deleteQueueStep, showLoading: showLoading, enableLoading: showLoading, getTimerLeft: getTimerLeft, stopTimer: stopTimer, resumeTimer: resumeTimer, toggleTimer: toggleTimer, increaseTimer: increaseTimer, isTimerRunning: isTimerRunning }); /** * Enables buttons and hide loader. */ function hideLoading() { var innerParams = privateProps.innerParams.get(this); var domCache = privateProps.domCache.get(this); if (!innerParams.showConfirmButton) { hide(domCache.confirmButton); if (!innerParams.showCancelButton) { hide(domCache.actions); } } removeClass([domCache.popup, domCache.actions], swalClasses.loading); domCache.popup.removeAttribute('aria-busy'); domCache.popup.removeAttribute('data-loading'); domCache.confirmButton.disabled = false; domCache.cancelButton.disabled = false; } function getInput$1(instance) { var innerParams = privateProps.innerParams.get(instance || this); var domCache = privateProps.domCache.get(instance || this); if (!domCache) { return null; } return getInput(domCache.content, innerParams.input); } var fixScrollbar = function fixScrollbar() { // for queues, do not do this more than once if (states.previousBodyPadding !== null) { return; } // if the body has overflow if (document.body.scrollHeight > window.innerHeight) { // add padding so the content doesn't shift after removal of scrollbar states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right')); document.body.style.paddingRight = states.previousBodyPadding + measureScrollbar() + 'px'; } }; var undoScrollbar = function undoScrollbar() { if (states.previousBodyPadding !== null) { document.body.style.paddingRight = states.previousBodyPadding + 'px'; states.previousBodyPadding = null; } }; /* istanbul ignore next */ var iOSfix = function iOSfix() { var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; if (iOS && !hasClass(document.body, swalClasses.iosfix)) { var offset = document.body.scrollTop; document.body.style.top = offset * -1 + 'px'; addClass(document.body, swalClasses.iosfix); lockBodyScroll(); } }; var lockBodyScroll = function lockBodyScroll() { // #1246 var container = getContainer(); var preventTouchMove; container.ontouchstart = function (e) { preventTouchMove = e.target === container || !isScrollable(container) && e.target.tagName !== 'INPUT' // #1603 ; }; container.ontouchmove = function (e) { if (preventTouchMove) { e.preventDefault(); e.stopPropagation(); } }; }; /* istanbul ignore next */ var undoIOSfix = function undoIOSfix() { if (hasClass(document.body, swalClasses.iosfix)) { var offset = parseInt(document.body.style.top, 10); removeClass(document.body, swalClasses.iosfix); document.body.style.top = ''; document.body.scrollTop = offset * -1; } }; var isIE11 = function isIE11() { return !!window.MSInputMethodContext && !!document.documentMode; }; // Fix IE11 centering sweetalert2/issues/933 /* istanbul ignore next */ var fixVerticalPositionIE = function fixVerticalPositionIE() { var container = getContainer(); var popup = getPopup(); container.style.removeProperty('align-items'); if (popup.offsetTop < 0) { container.style.alignItems = 'flex-start'; } }; /* istanbul ignore next */ var IEfix = function IEfix() { if (typeof window !== 'undefined' && isIE11()) { fixVerticalPositionIE(); window.addEventListener('resize', fixVerticalPositionIE); } }; /* istanbul ignore next */ var undoIEfix = function undoIEfix() { if (typeof window !== 'undefined' && isIE11()) { window.removeEventListener('resize', fixVerticalPositionIE); } }; // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that // elements not within the active modal dialog will not be surfaced if a user opens a screen // reader’s list of elements (headings, form controls, landmarks, etc.) in the document. var setAriaHidden = function setAriaHidden() { var bodyChildren = toArray(document.body.children); bodyChildren.forEach(function (el) { if (el === getContainer() || contains(el, getContainer())) { return; } if (el.hasAttribute('aria-hidden')) { el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden')); } el.setAttribute('aria-hidden', 'true'); }); }; var unsetAriaHidden = function unsetAriaHidden() { var bodyChildren = toArray(document.body.children); bodyChildren.forEach(function (el) { if (el.hasAttribute('data-previous-aria-hidden')) { el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden')); el.removeAttribute('data-previous-aria-hidden'); } else { el.removeAttribute('aria-hidden'); } }); }; /** * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` * This is the approach that Babel will probably take to implement private methods/fields * https://github.com/tc39/proposal-private-methods * https://github.com/babel/babel/pull/7555 * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* * then we can use that language feature. */ var privateMethods = { swalPromiseResolve: new WeakMap() }; /* * Instance method to close sweetAlert */ function removePopupAndResetState(instance, container, isToast, onAfterClose) { if (isToast) { triggerOnAfterCloseAndDispose(instance, onAfterClose); } else { restoreActiveElement().then(function () { return triggerOnAfterCloseAndDispose(instance, onAfterClose); }); globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { capture: globalState.keydownListenerCapture }); globalState.keydownHandlerAdded = false; } if (container.parentNode) { container.parentNode.removeChild(container); } if (isModal()) { undoScrollbar(); undoIOSfix(); undoIEfix(); unsetAriaHidden(); } removeBodyClasses(); } function removeBodyClasses() { removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]); } function disposeSwal(instance) { // Unset this.params so GC will dispose it (#1569) delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) delete globalState.keydownHandler; delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569) unsetWeakMaps(privateProps); unsetWeakMaps(privateMethods); } function close(resolveValue) { var popup = getPopup(); if (!popup || hasClass(popup, swalClasses.hide)) { return; } var innerParams = privateProps.innerParams.get(this); if (!innerParams) { return; } var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this); removeClass(popup, swalClasses.show); addClass(popup, swalClasses.hide); handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise swalPromiseResolve(resolveValue || {}); } var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) { var container = getContainer(); // If animation is supported, animate var animationIsSupported = animationEndEvent && hasCssAnimation(popup); var onClose = innerParams.onClose, onAfterClose = innerParams.onAfterClose; if (onClose !== null && typeof onClose === 'function') { onClose(popup); } if (animationIsSupported) { animatePopup(instance, popup, container, onAfterClose); } else { // Otherwise, remove immediately removePopupAndResetState(instance, container, isToast(), onAfterClose); } }; var animatePopup = function animatePopup(instance, popup, container, onAfterClose) { globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), onAfterClose); popup.addEventListener(animationEndEvent, function (e) { if (e.target === popup) { globalState.swalCloseEventFinishedCallback(); delete globalState.swalCloseEventFinishedCallback; } }); }; var unsetWeakMaps = function unsetWeakMaps(obj) { for (var i in obj) { obj[i] = new WeakMap(); } }; var triggerOnAfterCloseAndDispose = function triggerOnAfterCloseAndDispose(instance, onAfterClose) { setTimeout(function () { if (onAfterClose !== null && typeof onAfterClose === 'function') { onAfterClose(); } if (!getPopup()) { disposeSwal(instance); } }); }; function setButtonsDisabled(instance, buttons, disabled) { var domCache = privateProps.domCache.get(instance); buttons.forEach(function (button) { domCache[button].disabled = disabled; }); } function setInputDisabled(input, disabled) { if (!input) { return false; } if (input.type === 'radio') { var radiosContainer = input.parentNode.parentNode; var radios = radiosContainer.querySelectorAll('input'); for (var i = 0; i < radios.length; i++) { radios[i].disabled = disabled; } } else { input.disabled = disabled; } } function enableButtons() { setButtonsDisabled(this, ['confirmButton', 'cancelButton'], false); } function disableButtons() { setButtonsDisabled(this, ['confirmButton', 'cancelButton'], true); } // @deprecated function enableConfirmButton() { warnAboutDepreation('Swal.enableConfirmButton()', "Swal.getConfirmButton().removeAttribute('disabled')"); setButtonsDisabled(this, ['confirmButton'], false); } // @deprecated function disableConfirmButton() { warnAboutDepreation('Swal.disableConfirmButton()', "Swal.getConfirmButton().setAttribute('disabled', '')"); setButtonsDisabled(this, ['confirmButton'], true); } function enableInput() { return setInputDisabled(this.getInput(), false); } function disableInput() { return setInputDisabled(this.getInput(), true); } function showValidationMessage(error) { var domCache = privateProps.domCache.get(this); domCache.validationMessage.innerHTML = error; var popupComputedStyle = window.getComputedStyle(domCache.popup); domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left')); domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right')); show(domCache.validationMessage); var input = this.getInput(); if (input) { input.setAttribute('aria-invalid', true); input.setAttribute('aria-describedBy', swalClasses['validation-message']); focusInput(input); addClass(input, swalClasses.inputerror); } } // Hide block with validation message function resetValidationMessage$1() { var domCache = privateProps.domCache.get(this); if (domCache.validationMessage) { hide(domCache.validationMessage); } var input = this.getInput(); if (input) { input.removeAttribute('aria-invalid'); input.removeAttribute('aria-describedBy'); removeClass(input, swalClasses.inputerror); } } function getProgressSteps$1() { warnAboutDepreation('Swal.getProgressSteps()', "const swalInstance = Swal.fire({progressSteps: ['1', '2', '3']}); const progressSteps = swalInstance.params.progressSteps"); var innerParams = privateProps.innerParams.get(this); return innerParams.progressSteps; } function setProgressSteps(progressSteps) { warnAboutDepreation('Swal.setProgressSteps()', 'Swal.update()'); var innerParams = privateProps.innerParams.get(this); var updatedParams = _extends({}, innerParams, { progressSteps: progressSteps }); renderProgressSteps(this, updatedParams); privateProps.innerParams.set(this, updatedParams); } function showProgressSteps() { var domCache = privateProps.domCache.get(this); show(domCache.progressSteps); } function hideProgressSteps() { var domCache = privateProps.domCache.get(this); hide(domCache.progressSteps); } var Timer = /*#__PURE__*/ function () { function Timer(callback, delay) { _classCallCheck(this, Timer); this.callback = callback; this.remaining = delay; this.running = false; this.start(); } _createClass(Timer, [{ key: "start", value: function start() { if (!this.running) { this.running = true; this.started = new Date(); this.id = setTimeout(this.callback, this.remaining); } return this.remaining; } }, { key: "stop", value: function stop() { if (this.running) { this.running = false; clearTimeout(this.id); this.remaining -= new Date() - this.started; } return this.remaining; } }, { key: "increase", value: function increase(n) { var running = this.running; if (running) { this.stop(); } this.remaining += n; if (running) { this.start(); } return this.remaining; } }, { key: "getTimerLeft", value: function getTimerLeft() { if (this.running) { this.stop(); this.start(); } return this.remaining; } }, { key: "isRunning", value: function isRunning() { return this.running; } }]); return Timer; }(); var defaultInputValidators = { email: function email(string, validationMessage) { return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); }, url: function url(string, validationMessage) { // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); } }; function setDefaultInputValidators(params) { // Use default `inputValidator` for supported input types if not provided if (!params.inputValidator) { Object.keys(defaultInputValidators).forEach(function (key) { if (params.input === key) { params.inputValidator = defaultInputValidators[key]; } }); } } function validateCustomTargetElement(params) { // Determine if the custom target element is valid if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { warn('Target parameter is not valid, defaulting to "body"'); params.target = 'body'; } } /** * Set type, text and actions on popup * * @param params * @returns {boolean} */ function setParameters(params) { setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm if (params.showLoaderOnConfirm && !params.preConfirm) { warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); } // params.animation will be actually used in renderPopup.js // but in case when params.animation is a function, we need to call that function // before popup (re)initialization, so it'll be possible to check Swal.isVisible() // inside the params.animation function params.animation = callIfFunction(params.animation); validateCustomTargetElement(params); // Replace newlines with
in title if (typeof params.title === 'string') { params.title = params.title.split('\n').join('
'); } init(params); } function swalOpenAnimationFinished(popup, container) { popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished); container.style.overflowY = 'auto'; } /** * Open popup, add necessary classes and styles, fix scrollbar * * @param {Array} params */ var openPopup = function openPopup(params) { var container = getContainer(); var popup = getPopup(); if (typeof params.onBeforeOpen === 'function') { params.onBeforeOpen(popup); } addClasses(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto' setScrollingVisibility(container, popup); if (isModal()) { fixScrollContainer(container, params.scrollbarPadding); } if (!isToast() && !globalState.previousActiveElement) { globalState.previousActiveElement = document.activeElement; } if (typeof params.onOpen === 'function') { setTimeout(function () { return params.onOpen(popup); }); } }; var setScrollingVisibility = function setScrollingVisibility(container, popup) { if (animationEndEvent && hasCssAnimation(popup)) { container.style.overflowY = 'hidden'; popup.addEventListener(animationEndEvent, swalOpenAnimationFinished.bind(null, popup, container)); } else { container.style.overflowY = 'auto'; } }; var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding) { iOSfix(); IEfix(); setAriaHidden(); if (scrollbarPadding) { fixScrollbar(); } // sweetalert2/issues/1247 setTimeout(function () { container.scrollTop = 0; }); }; var addClasses = function addClasses(container, popup, params) { if (params.animation) { addClass(popup, swalClasses.show); addClass(container, swalClasses.fade); } show(popup); addClass([document.documentElement, document.body, container], swalClasses.shown); if (params.heightAuto && params.backdrop && !params.toast) { addClass([document.documentElement, document.body], swalClasses['height-auto']); } }; var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) { if (params.input === 'select' || params.input === 'radio') { handleInputOptions(instance, params); } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && isPromise(params.inputValue)) { handleInputValue(instance, params); } }; var handleInputOptions = function handleInputOptions(instance, params) { var content = getContent(); var processInputOptions = function processInputOptions(inputOptions) { return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params); }; if (isPromise(params.inputOptions)) { showLoading(); params.inputOptions.then(function (inputOptions) { instance.hideLoading(); processInputOptions(inputOptions); }); } else if (_typeof(params.inputOptions) === 'object') { processInputOptions(params.inputOptions); } else { error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions))); } }; var handleInputValue = function handleInputValue(instance, params) { var input = instance.getInput(); hide(input); params.inputValue.then(function (inputValue) { input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : inputValue + ''; show(input); input.focus(); instance.hideLoading(); })["catch"](function (err) { error('Error in inputValue promise: ' + err); input.value = ''; show(input); input.focus(); instance.hideLoading(); }); }; var populateInputOptions = { select: function select(content, inputOptions, params) { var select = getChildByClass(content, swalClasses.select); inputOptions.forEach(function (inputOption) { var optionValue = inputOption[0]; var optionLabel = inputOption[1]; var option = document.createElement('option'); option.value = optionValue; option.innerHTML = optionLabel; if (params.inputValue.toString() === optionValue.toString()) { option.selected = true; } select.appendChild(option); }); select.focus(); }, radio: function radio(content, inputOptions, params) { var radio = getChildByClass(content, swalClasses.radio); inputOptions.forEach(function (inputOption) { var radioValue = inputOption[0]; var radioLabel = inputOption[1]; var radioInput = document.createElement('input'); var radioLabelElement = document.createElement('label'); radioInput.type = 'radio'; radioInput.name = swalClasses.radio; radioInput.value = radioValue; if (params.inputValue.toString() === radioValue.toString()) { radioInput.checked = true; } var label = document.createElement('span'); label.innerHTML = radioLabel; label.className = swalClasses.label; radioLabelElement.appendChild(radioInput); radioLabelElement.appendChild(label); radio.appendChild(radioLabelElement); }); var radios = radio.querySelectorAll('input'); if (radios.length) { radios[0].focus(); } } /** * Converts `inputOptions` into an array of `[value, label]`s * @param inputOptions */ }; var formatInputOptions = function formatInputOptions(inputOptions) { var result = []; if (typeof Map !== 'undefined' && inputOptions instanceof Map) { inputOptions.forEach(function (value, key) { result.push([key, value]); }); } else { Object.keys(inputOptions).forEach(function (key) { result.push([key, inputOptions[key]]); }); } return result; }; var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) { instance.disableButtons(); if (innerParams.input) { handleConfirmWithInput(instance, innerParams); } else { confirm(instance, innerParams, true); } }; var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) { instance.disableButtons(); dismissWith(DismissReason.cancel); }; var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) { var inputValue = getInputValue(instance, innerParams); if (innerParams.inputValidator) { instance.disableInput(); var validationPromise = Promise.resolve().then(function () { return innerParams.inputValidator(inputValue, innerParams.validationMessage); }); validationPromise.then(function (validationMessage) { instance.enableButtons(); instance.enableInput(); if (validationMessage) { instance.showValidationMessage(validationMessage); } else { confirm(instance, innerParams, inputValue); } }); } else if (!instance.getInput().checkValidity()) { instance.enableButtons(); instance.showValidationMessage(innerParams.validationMessage); } else { confirm(instance, innerParams, inputValue); } }; var succeedWith = function succeedWith(instance, value) { instance.closePopup({ value: value }); }; var confirm = function confirm(instance, innerParams, value) { if (innerParams.showLoaderOnConfirm) { showLoading(); // TODO: make showLoading an *instance* method } if (innerParams.preConfirm) { instance.resetValidationMessage(); var preConfirmPromise = Promise.resolve().then(function () { return innerParams.preConfirm(value, innerParams.validationMessage); }); preConfirmPromise.then(function (preConfirmValue) { if (isVisible(getValidationMessage()) || preConfirmValue === false) { instance.hideLoading(); } else { succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); } }); } else { succeedWith(instance, value); } }; var getInputValue = function getInputValue(instance, innerParams) { var input = instance.getInput(); if (!input) { return null; } switch (innerParams.input) { case 'checkbox': return getCheckboxValue(input); case 'radio': return getRadioValue(input); case 'file': return getFileValue(input); default: return innerParams.inputAutoTrim ? input.value.trim() : input.value; } }; var getCheckboxValue = function getCheckboxValue(input) { return input.checked ? 1 : 0; }; var getRadioValue = function getRadioValue(input) { return input.checked ? input.value : null; }; var getFileValue = function getFileValue(input) { return input.files.length ? input.files[0] : null; }; var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) { if (globalState.keydownTarget && globalState.keydownHandlerAdded) { globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { capture: globalState.keydownListenerCapture }); globalState.keydownHandlerAdded = false; } if (!innerParams.toast) { globalState.keydownHandler = function (e) { return keydownHandler(instance, e, innerParams, dismissWith); }; globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup(); globalState.keydownListenerCapture = innerParams.keydownListenerCapture; globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, { capture: globalState.keydownListenerCapture }); globalState.keydownHandlerAdded = true; } }; // Focus handling var setFocus = function setFocus(innerParams, index, increment) { var focusableElements = getFocusableElements(innerParams.focusCancel); // search for visible elements and select the next possible match for (var i = 0; i < focusableElements.length; i++) { index = index + increment; // rollover to first item if (index === focusableElements.length) { index = 0; // go to last item } else if (index === -1) { index = focusableElements.length - 1; } return focusableElements[index].focus(); } // no visible focusable elements, focus the popup getPopup().focus(); }; var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11 ]; var escKeys = ['Escape', 'Esc' // IE11 ]; var keydownHandler = function keydownHandler(instance, e, innerParams, dismissWith) { if (innerParams.stopKeydownPropagation) { e.stopPropagation(); } // ENTER if (e.key === 'Enter') { handleEnter(instance, e, innerParams); // TAB } else if (e.key === 'Tab') { handleTab(e, innerParams); // ARROWS - switch focus between buttons } else if (arrowKeys.indexOf(e.key) !== -1) { handleArrows(); // ESC } else if (escKeys.indexOf(e.key) !== -1) { handleEsc(e, innerParams, dismissWith); } }; var handleEnter = function handleEnter(instance, e, innerParams) { // #720 #721 if (e.isComposing) { return; } if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { if (['textarea', 'file'].indexOf(innerParams.input) !== -1) { return; // do not submit } clickConfirm(); e.preventDefault(); } }; var handleTab = function handleTab(e, innerParams) { var targetElement = e.target; var focusableElements = getFocusableElements(innerParams.focusCancel); var btnIndex = -1; for (var i = 0; i < focusableElements.length; i++) { if (targetElement === focusableElements[i]) { btnIndex = i; break; } } if (!e.shiftKey) { // Cycle to the next button setFocus(innerParams, btnIndex, 1); } else { // Cycle to the prev button setFocus(innerParams, btnIndex, -1); } e.stopPropagation(); e.preventDefault(); }; var handleArrows = function handleArrows() { var confirmButton = getConfirmButton(); var cancelButton = getCancelButton(); // focus Cancel button if Confirm button is currently focused if (document.activeElement === confirmButton && isVisible(cancelButton)) { cancelButton.focus(); // and vice versa } else if (document.activeElement === cancelButton && isVisible(confirmButton)) { confirmButton.focus(); } }; var handleEsc = function handleEsc(e, innerParams, dismissWith) { if (callIfFunction(innerParams.allowEscapeKey)) { e.preventDefault(); dismissWith(DismissReason.esc); } }; var handlePopupClick = function handlePopupClick(domCache, innerParams, dismissWith) { if (innerParams.toast) { handleToastClick(domCache, innerParams, dismissWith); } else { // Ignore click events that had mousedown on the popup but mouseup on the container // This can happen when the user drags a slider handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup handleContainerMousedown(domCache); handleModalClick(domCache, innerParams, dismissWith); } }; var handleToastClick = function handleToastClick(domCache, innerParams, dismissWith) { // Closing toast by internal click domCache.popup.onclick = function () { if (innerParams.showConfirmButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) { return; } dismissWith(DismissReason.close); }; }; var ignoreOutsideClick = false; var handleModalMousedown = function handleModalMousedown(domCache) { domCache.popup.onmousedown = function () { domCache.container.onmouseup = function (e) { domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't // have any other direct children aside of the popup if (e.target === domCache.container) { ignoreOutsideClick = true; } }; }; }; var handleContainerMousedown = function handleContainerMousedown(domCache) { domCache.container.onmousedown = function () { domCache.popup.onmouseup = function (e) { domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup if (e.target === domCache.popup || domCache.popup.contains(e.target)) { ignoreOutsideClick = true; } }; }; }; var handleModalClick = function handleModalClick(domCache, innerParams, dismissWith) { domCache.container.onclick = function (e) { if (ignoreOutsideClick) { ignoreOutsideClick = false; return; } if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { dismissWith(DismissReason.backdrop); } }; }; function _main(userParams) { showWarningsForParams(userParams); // Check if there is another Swal closing if (getPopup() && globalState.swalCloseEventFinishedCallback) { globalState.swalCloseEventFinishedCallback(); delete globalState.swalCloseEventFinishedCallback; } // Check if there is a swal disposal defer timer if (globalState.deferDisposalTimer) { clearTimeout(globalState.deferDisposalTimer); delete globalState.deferDisposalTimer; } var innerParams = _extends({}, defaultParams, userParams); setParameters(innerParams); Object.freeze(innerParams); // clear the previous timer if (globalState.timeout) { globalState.timeout.stop(); delete globalState.timeout; } // clear the restore focus timeout clearTimeout(globalState.restoreFocusTimeout); var domCache = populateDomCache(this); render(this, innerParams); privateProps.innerParams.set(this, innerParams); return swalPromise(this, domCache, innerParams); } var swalPromise = function swalPromise(instance, domCache, innerParams) { return new Promise(function (resolve) { // functions to handle all closings/dismissals var dismissWith = function dismissWith(dismiss) { instance.closePopup({ dismiss: dismiss }); }; privateMethods.swalPromiseResolve.set(instance, resolve); setupTimer(globalState, innerParams, dismissWith); domCache.confirmButton.onclick = function () { return handleConfirmButtonClick(instance, innerParams); }; domCache.cancelButton.onclick = function () { return handleCancelButtonClick(instance, dismissWith); }; domCache.closeButton.onclick = function () { return dismissWith(DismissReason.close); }; handlePopupClick(domCache, innerParams, dismissWith); addKeydownHandler(instance, globalState, innerParams, dismissWith); if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) { addClass(document.body, swalClasses['toast-column']); } else { removeClass(document.body, swalClasses['toast-column']); } handleInputOptionsAndValue(instance, innerParams); openPopup(innerParams); initFocus(domCache, innerParams); // Scroll container to top on open (#1247) domCache.container.scrollTop = 0; }); }; var populateDomCache = function populateDomCache(instance) { var domCache = { popup: getPopup(), container: getContainer(), content: getContent(), actions: getActions(), confirmButton: getConfirmButton(), cancelButton: getCancelButton(), closeButton: getCloseButton(), validationMessage: getValidationMessage(), progressSteps: getProgressSteps() }; privateProps.domCache.set(instance, domCache); return domCache; }; var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) { if (innerParams.timer) { globalState$$1.timeout = new Timer(function () { dismissWith('timer'); delete globalState$$1.timeout; }, innerParams.timer); } }; var initFocus = function initFocus(domCache, innerParams) { if (innerParams.toast) { return; } if (!callIfFunction(innerParams.allowEnterKey)) { return blurActiveElement(); } if (innerParams.focusCancel && isVisible(domCache.cancelButton)) { return domCache.cancelButton.focus(); } if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) { return domCache.confirmButton.focus(); } setFocus(innerParams, -1, 1); }; var blurActiveElement = function blurActiveElement() { if (document.activeElement && typeof document.activeElement.blur === 'function') { document.activeElement.blur(); } }; /** * Updates popup parameters. */ function update(params) { var validUpdatableParams = {}; // assign valid params from `params` to `defaults` Object.keys(params).forEach(function (param) { if (Swal.isUpdatableParameter(param)) { validUpdatableParams[param] = params[param]; } else { warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js")); } }); var innerParams = privateProps.innerParams.get(this); var updatedParams = _extends({}, innerParams, validUpdatableParams); render(this, updatedParams); privateProps.innerParams.set(this, updatedParams); Object.defineProperties(this, { params: { value: _extends({}, this.params, params), writable: false, enumerable: true } }); } var instanceMethods = Object.freeze({ hideLoading: hideLoading, disableLoading: hideLoading, getInput: getInput$1, close: close, closePopup: close, closeModal: close, closeToast: close, enableButtons: enableButtons, disableButtons: disableButtons, enableConfirmButton: enableConfirmButton, disableConfirmButton: disableConfirmButton, enableInput: enableInput, disableInput: disableInput, showValidationMessage: showValidationMessage, resetValidationMessage: resetValidationMessage$1, getProgressSteps: getProgressSteps$1, setProgressSteps: setProgressSteps, showProgressSteps: showProgressSteps, hideProgressSteps: hideProgressSteps, _main: _main, update: update }); var currentInstance; // SweetAlert constructor function SweetAlert() { // Prevent run in Node env /* istanbul ignore if */ if (typeof window === 'undefined') { return; } // Check for the existence of Promise /* istanbul ignore if */ if (typeof Promise === 'undefined') { error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)'); } currentInstance = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var outerParams = Object.freeze(this.constructor.argsToParams(args)); Object.defineProperties(this, { params: { value: outerParams, writable: false, enumerable: true, configurable: true } }); var promise = this._main(this.params); privateProps.promise.set(this, promise); } // `catch` cannot be the name of a module export, so we define our thenable methods here instead SweetAlert.prototype.then = function (onFulfilled) { var promise = privateProps.promise.get(this); return promise.then(onFulfilled); }; SweetAlert.prototype["finally"] = function (onFinally) { var promise = privateProps.promise.get(this); return promise["finally"](onFinally); }; // Assign instance methods from src/instanceMethods/*.js to prototype _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility Object.keys(instanceMethods).forEach(function (key) { SweetAlert[key] = function () { if (currentInstance) { var _currentInstance; return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments); } }; }); SweetAlert.DismissReason = DismissReason; SweetAlert.version = '8.17.1'; var Swal = SweetAlert; Swal["default"] = Swal; return Swal; }))); if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} PK\HM~^PP(assets/js/sweetalert2/sweetalert2.min.jsnuW+A/*! * sweetalert2 v8.17.1 * Released under the MIT License. */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Sweetalert2=e()}(this,function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var n=0;n")),ht(t)}function b(t,e){t.removeEventListener(yt,b),e.style.overflowY="auto"}function y(){if("undefined"!=typeof window){"undefined"==typeof Promise&&S("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),Tt=this;for(var t=arguments.length,e=new Array(t),n=0;n1&&arguments[1]!==undefined?arguments[1]:"flex";t.style.opacity="",t.style.display=e},_=function(t){t.style.opacity="",t.style.display="none"},z=function(t,e,n){e?F(t,n):_(t)},W=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},K=function(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return n>0||o>0},Z=function(){return document.body.querySelector("."+O.container)},Q=function(t){var e=Z();return e?e.querySelector(t):null},Y=function(t){return Q("."+t)},$=function(){return Y(O.popup)},J=function(){var t=$();return k(t.querySelectorAll("."+O.icon))},X=function(){var t=J().filter(function(t){return W(t)});return t.length?t[0]:null},G=function(){return Y(O.title)},tt=function(){return Y(O.content)},et=function(){return Y(O.image)},nt=function(){return Y(O["progress-steps"])},ot=function(){return Y(O["validation-message"])},it=function(){return Q("."+O.actions+" ."+O.confirm)},rt=function(){return Q("."+O.actions+" ."+O.cancel)},at=function(){return Y(O.actions)},st=function(){return Y(O.header)},ut=function(){return Y(O.footer)},ct=function(){return Y(O.close)},lt=function(){var t=k($().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),e=parseInt(e.getAttribute("tabindex")),t>e?1:t\n
\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n

    \n \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n').replace(/(^|\n)\s*/g,""),gt=function(t){Ke.isVisible()&&w!==t.target.value&&Ke.resetValidationMessage(),w=t.target.value},ht=function(t){if(function(){var t=Z();t&&(t.parentNode.removeChild(t),D([document.documentElement,document.body],[O["no-backdrop"],O["toast-shown"],O["has-column"]]))}(),pt())S("SweetAlert2 requires document to initialize");else{var e=document.createElement("div");e.className=O.container,e.innerHTML=mt;var n=function(t){return"string"==typeof t?document.querySelector(t):t}(t.target);n.appendChild(e),function(t){var e=$();e.setAttribute("role",t.toast?"alert":"dialog"),e.setAttribute("aria-live",t.toast?"polite":"assertive"),t.toast||e.setAttribute("aria-modal","true")}(t),function(t){"rtl"===window.getComputedStyle(t).direction&&R(Z(),O.rtl)}(n),function(){var t=tt(),e=N(t,O.input),n=N(t,O.file),o=t.querySelector(".".concat(O.range," input")),i=t.querySelector(".".concat(O.range," output")),r=N(t,O.select),a=t.querySelector(".".concat(O.checkbox," input")),s=N(t,O.textarea);e.oninput=gt,n.onchange=gt,r.onchange=gt,a.onchange=gt,s.oninput=gt,o.oninput=function(t){gt(t),i.value=o.value},o.onchange=function(t){gt(t),o.nextSibling.value=o.value}}()}},vt=function(e,n){e instanceof HTMLElement?n.appendChild(e):"object"===t(e)?bt(n,e):e&&(n.innerHTML=e)},bt=function(t,e){if(t.innerHTML="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},yt=function(){if(pt())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&"undefined"!=typeof t.style[n])return e[n];return!1}(),wt=function(t,e){var n=at(),o=it(),i=rt();e.showConfirmButton||e.showCancelButton||_(n),j(n,e.customClass,"actions"),d(o,"confirm",e),d(i,"cancel",e),e.buttonsStyling?function(t,e,n){R([t,e],O.styled),n.confirmButtonColor&&(t.style.backgroundColor=n.confirmButtonColor),n.cancelButtonColor&&(e.style.backgroundColor=n.cancelButtonColor);var o=window.getComputedStyle(t).getPropertyValue("background-color");t.style.borderLeftColor=o,t.style.borderRightColor=o}(o,i,e):(D([o,i],O.styled),o.style.backgroundColor=o.style.borderLeftColor=o.style.borderRightColor="",i.style.backgroundColor=i.style.borderLeftColor=i.style.borderRightColor=""),e.reverseButtons&&o.parentNode.insertBefore(i,o)},Ct=function(t,e){var n=Z();n&&(!function(t,e){"string"==typeof e?t.style.background=e:e||R([document.documentElement,document.body],O["no-backdrop"])}(n,e.backdrop),!e.backdrop&&e.allowOutsideClick&&x('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),function(t,e){e in O?R(t,O[e]):(x('The "position" parameter is not valid, defaulting to "center"'),R(t,O.center))}(n,e.position),function(t,e){if(e&&"string"==typeof e){var n="grow-"+e;n in O&&R(t,O[n])}}(n,e.grow),j(n,e.customClass,"container"),e.customContainerClass&&R(n,e.customContainerClass))},kt={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},xt=["input","file","range","select","radio","checkbox","textarea"],St=function(t){if(!Et[t.input])return S('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=Et[t.input](t);F(e),setTimeout(function(){I(e)})},Pt=function(t,e){var n=l(tt(),t);if(n){!function(t){for(var e=0;en?t+"px":null}).observe(e,{attributes:!0,attributeFilter:["style"]})}return e};var Tt,Lt=function(t,e){var n=tt().querySelector("#"+O.content);e.html?(vt(e.html,n),F(n,"block")):e.text?(n.textContent=e.text,F(n,"block")):_(n),function(t,e){var n=tt(),o=kt.innerParams.get(t),i=!o||e.input!==o.input;xt.forEach(function(t){var o=O[t],r=N(n,o);Pt(t,e.inputAttributes),Bt(r,o,e),i&&_(r)}),e.input&&i&&St(e)}(t,e),j(tt(),e.customClass,"content")},Ot=function(){for(var t=J(),e=0;e=e.progressSteps.length&&x("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),e.progressSteps.forEach(function(t,i){var r=function(t){var e=document.createElement("li");return R(e,O["progress-step"]),e.innerHTML=t,e}(t);if(n.appendChild(r),i===o&&R(r,O["active-progress-step"]),i!==e.progressSteps.length-1){var a=function(t){var e=document.createElement("li");return R(e,O["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e}(t);n.appendChild(a)}})},Ht=function(t,e){var n=st();j(n,e.customClass,"header"),Vt(t,e),function(t,e){var n=kt.innerParams.get(t);if(n&&e.type===n.type&&X())j(X(),e.customClass,"icon");else if(Ot(),e.type)if(Mt(),-1!==Object.keys(M).indexOf(e.type)){var o=Q(".".concat(O.icon,".").concat(M[e.type]));F(o),j(o,e.customClass,"icon"),q(o,"swal2-animate-".concat(e.type,"-icon"),e.animation)}else S('Unknown type! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.type,'"'))}(t,e),function(t,e){var n=et();if(!e.imageUrl)return _(n);F(n),n.setAttribute("src",e.imageUrl),n.setAttribute("alt",e.imageAlt),U(n,"width",e.imageWidth),U(n,"height",e.imageHeight),n.className=O.image,j(n,e.customClass,"image"),e.imageClass&&R(n,e.imageClass)}(0,e),function(t,e){var n=G();z(n,e.title||e.titleText),e.title&&vt(e.title,n),e.titleText&&(n.innerText=e.titleText),j(n,e.customClass,"title")}(0,e),function(t,e){var n=ct();n.innerHTML=e.closeButtonHtml,j(n,e.customClass,"closeButton"),z(n,e.showCloseButton),n.setAttribute("aria-label",e.closeButtonAriaLabel)}(0,e)},jt=function(t,e){!function(t,e){var n=$();U(n,"width",e.width),U(n,"padding",e.padding),e.background&&(n.style.background=e.background),n.className=O.popup,e.toast?(R([document.documentElement,document.body],O["toast-shown"]),R(n,O.toast)):R(n,O.modal),j(n,e.customClass,"popup"),"string"==typeof e.customClass&&R(n,e.customClass),q(n,O.noanimation,!e.animation)}(0,e),Ct(0,e),Ht(t,e),Lt(t,e),wt(0,e),function(t,e){var n=ut();z(n,e.footer),e.footer&&vt(e.footer,n),j(n,e.customClass,"footer")}(0,e),"function"==typeof e.onRender&&e.onRender($())},It=function(){return it()&&it().click()},qt=[],Rt=function(){var t=$();t||Ke.fire(""),t=$();var e=at(),n=it(),o=rt();F(e),F(n),R([t,e],O.loading),n.disabled=!0,o.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Dt={},Nt=function(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;Dt.restoreFocusTimeout=setTimeout(function(){Dt.previousActiveElement&&Dt.previousActiveElement.focus?(Dt.previousActiveElement.focus(),Dt.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})},Ut={title:"",titleText:"",text:"",html:"",footer:"",type:null,toast:!1,customClass:"",customContainerClass:"",target:"body",backdrop:!0,animation:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:null,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:null,confirmButtonClass:"",cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:null,cancelButtonClass:"",buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:null,imageWidth:null,imageHeight:null,imageAlt:"",imageClass:"",timer:null,width:null,padding:null,background:null,input:null,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputClass:"",inputAttributes:{},inputValidator:null,validationMessage:null,grow:!1,position:"center",progressSteps:[],currentProgressStep:null,progressStepsDistance:null,onBeforeOpen:null,onOpen:null,onRender:null,onClose:null,onAfterClose:null,scrollbarPadding:!0},Ft=["title","titleText","text","html","type","customClass","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","confirmButtonClass","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","cancelButtonClass","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeigth","imageAlt","imageClass","progressSteps","currentProgressStep"],_t={customContainerClass:"customClass",confirmButtonClass:"customClass",cancelButtonClass:"customClass",imageClass:"customClass",inputClass:"customClass"},zt=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],Wt=function(t){return Object.prototype.hasOwnProperty.call(Ut,t)},Kt=function(t){return _t[t]},Zt=function(t){Wt(t)||x('Unknown parameter "'.concat(t,'"'))},Qt=function(t){-1!==zt.indexOf(t)&&x('The parameter "'.concat(t,'" is incompatible with toasts'))},Yt=function(t){Kt(t)&&B(t,Kt(t))},$t=function(t){for(var e in t)Zt(e),t.toast&&Qt(e),Yt()},Jt=Object.freeze({isValidParameter:Wt,isUpdatableParameter:function(t){return-1!==Ft.indexOf(t)},isDeprecatedParameter:Kt,argsToParams:function(e){var n={};switch(t(e[0])){case"object":i(n,e[0]);break;default:["title","html","type"].forEach(function(o,i){switch(t(e[i])){case"string":n[o]=e[i];break;case"undefined":break;default:S("Unexpected type of ".concat(o,'! Expected "string", got ').concat(t(e[i])))}})}return n},isVisible:function(){return W($())},clickConfirm:It,clickCancel:function(){return rt()&&rt().click()},getContainer:Z,getPopup:$,getTitle:G,getContent:tt,getImage:et,getIcon:X,getIcons:J,getCloseButton:ct,getActions:at,getConfirmButton:it,getCancelButton:rt,getHeader:st,getFooter:ut,getFocusableElements:lt,getValidationMessage:ot,isLoading:function(){return $().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;nwindow.innerHeight&&(V.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=V.previousBodyPadding+function(){if("ontouchstart"in window||navigator.msMaxTouchPoints)return 0;var t=document.createElement("div");t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e}()+"px")},Gt=function(){null!==V.previousBodyPadding&&(document.body.style.paddingRight=V.previousBodyPadding+"px",V.previousBodyPadding=null)},te=function(){var t,e=Z();e.ontouchstart=function(n){t=n.target===e||!function(t){return!!(t.scrollHeight>t.clientHeight)}(e)&&"INPUT"!==n.target.tagName},e.ontouchmove=function(e){t&&(e.preventDefault(),e.stopPropagation())}},ee=function(){if(H(document.body,O.iosfix)){var t=parseInt(document.body.style.top,10);D(document.body,O.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}},ne=function(){return!!window.MSInputMethodContext&&!!document.documentMode},oe=function(){var t=Z(),e=$();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")},ie=function(){"undefined"!=typeof window&&ne()&&window.removeEventListener("resize",oe)},re=function(){k(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})},ae={swalPromiseResolve:new WeakMap},se=function(t,e,n){var o=Z(),i=yt&&K(e),r=n.onClose,a=n.onAfterClose;null!==r&&"function"==typeof r&&r(e),i?ue(t,e,o,a):p(t,o,ft(),a)},ue=function(t,e,n,o){Dt.swalCloseEventFinishedCallback=p.bind(null,t,n,ft(),o),e.addEventListener(yt,function(t){t.target===e&&(Dt.swalCloseEventFinishedCallback(),delete Dt.swalCloseEventFinishedCallback)})},ce=function(t){for(var e in t)t[e]=new WeakMap},le=function(t,e){setTimeout(function(){null!==e&&"function"==typeof e&&e(),$()||function(t){delete t.params,delete Dt.keydownHandler,delete Dt.keydownTarget,ce(kt),ce(ae)}(t)})},de=function(){function t(n,o){e(this,t),this.callback=n,this.remaining=o,this.running=!1,this.start()}return o(t,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),t}(),fe={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}},pe=function(t,e){yt&&K(e)?(t.style.overflowY="hidden",e.addEventListener(yt,b.bind(null,e,t))):t.style.overflowY="auto"},me=function(t,e){!function(){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&!H(document.body,O.iosfix)){var t=document.body.scrollTop;document.body.style.top=-1*t+"px",R(document.body,O.iosfix),te()}}(),"undefined"!=typeof window&&ne()&&(oe(),window.addEventListener("resize",oe)),k(document.body.children).forEach(function(t){t===Z()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,Z())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))}),e&&Xt(),setTimeout(function(){t.scrollTop=0})},ge=function(t,e,n){n.animation&&(R(e,O.show),R(t,O.fade)),F(e),R([document.documentElement,document.body,t],O.shown),n.heightAuto&&n.backdrop&&!n.toast&&R([document.documentElement,document.body],O["height-auto"])},he=function(e,n){var o=tt(),i=function(t){return be[n.input](o,ye(t),n)};E(n.inputOptions)?(Rt(),n.inputOptions.then(function(t){e.hideLoading(),i(t)})):"object"===t(n.inputOptions)?i(n.inputOptions):S("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(t(n.inputOptions)))},ve=function(t,e){var n=t.getInput();_(n),e.inputValue.then(function(o){n.value="number"===e.input?parseFloat(o)||0:o+"",F(n),n.focus(),t.hideLoading()})["catch"](function(e){S("Error in inputValue promise: "+e),n.value="",F(n),n.focus(),t.hideLoading()})},be={select:function(t,e,n){var o=N(t,O.select);e.forEach(function(t){var e=t[0],i=t[1],r=document.createElement("option");r.value=e,r.innerHTML=i,n.inputValue.toString()===e.toString()&&(r.selected=!0),o.appendChild(r)}),o.focus()},radio:function(t,e,n){var o=N(t,O.radio);e.forEach(function(t){var e=t[0],i=t[1],r=document.createElement("input"),a=document.createElement("label");r.type="radio",r.name=O.radio,r.value=e,n.inputValue.toString()===e.toString()&&(r.checked=!0);var s=document.createElement("span");s.innerHTML=i,s.className=O.label,a.appendChild(r),a.appendChild(s),o.appendChild(a)});var i=o.querySelectorAll("input");i.length&&i[0].focus()}},ye=function(t){var e=[];return"undefined"!=typeof Map&&t instanceof Map?t.forEach(function(t,n){e.push([n,t])}):Object.keys(t).forEach(function(n){e.push([n,t[n]])}),e},we=function(t,e){var n=xe(t,e);if(e.inputValidator){t.disableInput();Promise.resolve().then(function(){return e.inputValidator(n,e.validationMessage)}).then(function(o){t.enableButtons(),t.enableInput(),o?t.showValidationMessage(o):ke(t,e,n)})}else t.getInput().checkValidity()?ke(t,e,n):(t.enableButtons(),t.showValidationMessage(e.validationMessage))},Ce=function(t,e){t.closePopup({value:e})},ke=function(t,e,n){if(e.showLoaderOnConfirm&&Rt(),e.preConfirm){t.resetValidationMessage();Promise.resolve().then(function(){return e.preConfirm(n,e.validationMessage)}).then(function(e){W(ot())||!1===e?t.hideLoading():Ce(t,void 0===e?n:e)})}else Ce(t,n)},xe=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Se(n);case"radio":return Pe(n);case"file":return Be(n);default:return e.inputAutoTrim?n.value.trim():n.value}},Se=function(t){return t.checked?1:0},Pe=function(t){return t.checked?t.value:null},Be=function(t){return t.files.length?t.files[0]:null},Ae=function(t,e,n){for(var o=lt(t.focusCancel),i=0;i'); if (title) $m.append('

    '+title+'

    '); if (message) $m.append('

    '+message+'

    '); if (timeout === undefined) timeout = 3000; // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications var callBlock = function(opts) { opts = opts || {}; $.blockUI({ message: $m, fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700, fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000, timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout, centerY: false, showOverlay: false, onUnblock: onClose, css: $.blockUI.defaults.growlCSS }); }; callBlock(); var nonmousedOpacity = $m.css('opacity'); $m.mouseover(function() { callBlock({ fadeIn: 0, timeout: 30000 }); var displayBlock = $('.blockMsg'); displayBlock.stop(); // cancel fadeout if it has started displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency }).mouseout(function() { $('.blockMsg').fadeOut(1000); }); // End konapun additions }; // plugin method for blocking element content $.fn.block = function(opts) { if ( this[0] === window ) { $.blockUI( opts ); return this; } var fullOpts = $.extend({}, $.blockUI.defaults, opts || {}); this.each(function() { var $el = $(this); if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked')) return; $el.unblock({ fadeOut: 0 }); }); return this.each(function() { if ($.css(this,'position') == 'static') { this.style.position = 'relative'; $(this).data('blockUI.static', true); } this.style.zoom = 1; // force 'hasLayout' in ie install(this, opts); }); }; // plugin method for unblocking element content $.fn.unblock = function(opts) { if ( this[0] === window ) { $.unblockUI( opts ); return this; } return this.each(function() { remove(this, opts); }); }; $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost! // override these in your code to change the default behavior and style $.blockUI.defaults = { // message displayed when blocking (use null for no message) message: '

    Please wait...

    ', title: null, // title string; only used when theme == true draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded) theme: false, // set to true to use with jQuery UI themes // styles for the message when blocking; if you wish to disable // these and use an external stylesheet then do this in your code: // $.blockUI.defaults.css = {}; css: { padding: 0, margin: 0, width: '30%', top: '40%', left: '35%', textAlign: 'center', color: '#000', border: '3px solid #aaa', backgroundColor:'#fff', cursor: 'wait' }, // minimal style set used when themes are used themedCSS: { width: '30%', top: '40%', left: '35%' }, // styles for the overlay overlayCSS: { backgroundColor: '#000', opacity: 0.6, cursor: 'wait' }, // style to replace wait cursor before unblocking to correct issue // of lingering wait cursor cursorReset: 'default', // styles applied when using $.growlUI growlCSS: { width: '350px', top: '10px', left: '', right: '10px', border: 'none', padding: '5px', opacity: 0.6, cursor: 'default', color: '#fff', backgroundColor: '#000', '-webkit-border-radius':'10px', '-moz-border-radius': '10px', 'border-radius': '10px' }, // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w // (hat tip to Jorge H. N. de Vasconcelos) /*jshint scripturl:true */ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', // force usage of iframe in non-IE browsers (handy for blocking applets) forceIframe: false, // z-index for the blocking overlay baseZ: 1000, // set these to true to have the message automatically centered centerX: true, // <-- only effects element blocking (page block controlled via css above) centerY: true, // allow body element to be stetched in ie6; this makes blocking look better // on "short" pages. disable if you wish to prevent changes to the body height allowBodyStretch: true, // enable if you want key and mouse events to be disabled for content that is blocked bindEvents: true, // be default blockUI will supress tab navigation from leaving blocking content // (if bindEvents is true) constrainTabKey: true, // fadeIn time in millis; set to 0 to disable fadeIn on block fadeIn: 200, // fadeOut time in millis; set to 0 to disable fadeOut on unblock fadeOut: 400, // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock timeout: 0, // disable if you don't want to show the overlay showOverlay: true, // if true, focus will be placed in the first available input field when // page blocking focusInput: true, // elements that can receive focus focusableElements: ':input:enabled:visible', // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity) // no longer needed in 2012 // applyPlatformOpacityRules: true, // callback method invoked when fadeIn has completed and blocking message is visible onBlock: null, // callback method invoked when unblocking has completed; the callback is // passed the element that has been unblocked (which is the window object for page // blocks) and the options that were passed to the unblock call: // onUnblock(element, options) onUnblock: null, // callback method invoked when the overlay area is clicked. // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used. onOverlayClick: null, // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493 quirksmodeOffsetHack: 4, // class name of the message block blockMsgClass: 'blockMsg', // if it is already blocked, then ignore it (don't unblock and reblock) ignoreIfBlocked: false }; // private data and functions follow... var pageBlock = null; var pageBlockEls = []; function install(el, opts) { var css, themedCSS; var full = (el == window); var msg = (opts && opts.message !== undefined ? opts.message : undefined); opts = $.extend({}, $.blockUI.defaults, opts || {}); if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked')) return; opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {}); css = $.extend({}, $.blockUI.defaults.css, opts.css || {}); if (opts.onOverlayClick) opts.overlayCSS.cursor = 'pointer'; themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {}); msg = msg === undefined ? opts.message : msg; // remove the current block (if there is one) if (full && pageBlock) remove(window, {fadeOut:0}); // if an existing element is being used as the blocking content then we capture // its current place in the DOM (and current display style) so we can restore // it when we unblock if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) { var node = msg.jquery ? msg[0] : msg; var data = {}; $(el).data('blockUI.history', data); data.el = node; data.parent = node.parentNode; data.display = node.style.display; data.position = node.style.position; if (data.parent) data.parent.removeChild(node); } $(el).data('blockUI.onUnblock', opts.onUnblock); var z = opts.baseZ; // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform; // layer1 is the iframe layer which is used to supress bleed through of underlying content // layer2 is the overlay layer which has opacity and a wait cursor (by default) // layer3 is the message content that is displayed while blocking var lyr1, lyr2, lyr3, s; if (msie || opts.forceIframe) lyr1 = $(''); else lyr1 = $(''); if (opts.theme) lyr2 = $(''); else lyr2 = $(''); if (opts.theme && full) { s = ''; } else if (opts.theme) { s = ''; } else if (full) { s = ''; } else { s = ''; } lyr3 = $(s); // if we have a message, style it if (msg) { if (opts.theme) { lyr3.css(themedCSS); lyr3.addClass('ui-widget-content'); } else lyr3.css(css); } // style the overlay if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/) lyr2.css(opts.overlayCSS); lyr2.css('position', full ? 'fixed' : 'absolute'); // make iframe layer transparent in IE if (msie || opts.forceIframe) lyr1.css('opacity',0.0); //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el); var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el); $.each(layers, function() { this.appendTo($par); }); if (opts.theme && opts.draggable && $.fn.draggable) { lyr3.draggable({ handle: '.ui-dialog-titlebar', cancel: 'li' }); } // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling) var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0); if (ie6 || expr) { // give body 100% height if (full && opts.allowBodyStretch && $.support.boxModel) $('html,body').css('height','100%'); // fix ie6 issue when blocked element has a border width if ((ie6 || !$.support.boxModel) && !full) { var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth'); var fixT = t ? '(0 - '+t+')' : 0; var fixL = l ? '(0 - '+l+')' : 0; } // simulate fixed position $.each(layers, function(i,o) { var s = o[0].style; s.position = 'absolute'; if (i < 2) { if (full) s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"'); else s.setExpression('height','this.parentNode.offsetHeight + "px"'); if (full) s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'); else s.setExpression('width','this.parentNode.offsetWidth + "px"'); if (fixL) s.setExpression('left', fixL); if (fixT) s.setExpression('top', fixT); } else if (opts.centerY) { 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"'); s.marginTop = 0; } else if (!opts.centerY && full) { var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0; var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"'; s.setExpression('top',expression); } }); } // show the message if (msg) { if (opts.theme) lyr3.find('.ui-widget-content').append(msg); else lyr3.append(msg); if (msg.jquery || msg.nodeType) $(msg).show(); } if ((msie || opts.forceIframe) && opts.showOverlay) lyr1.show(); // opacity is zero if (opts.fadeIn) { var cb = opts.onBlock ? opts.onBlock : noOp; var cb1 = (opts.showOverlay && !msg) ? cb : noOp; var cb2 = msg ? cb : noOp; if (opts.showOverlay) lyr2._fadeIn(opts.fadeIn, cb1); if (msg) lyr3._fadeIn(opts.fadeIn, cb2); } else { if (opts.showOverlay) lyr2.show(); if (msg) lyr3.show(); if (opts.onBlock) opts.onBlock.bind(lyr3)(); } // bind key and mouse events bind(1, el, opts); if (full) { pageBlock = lyr3[0]; pageBlockEls = $(opts.focusableElements,pageBlock); if (opts.focusInput) setTimeout(focus, 20); } else center(lyr3[0], opts.centerX, opts.centerY); if (opts.timeout) { // auto-unblock var to = setTimeout(function() { if (full) $.unblockUI(opts); else $(el).unblock(opts); }, opts.timeout); $(el).data('blockUI.timeout', to); } } // remove the block function remove(el, opts) { var count; var full = (el == window); var $el = $(el); var data = $el.data('blockUI.history'); var to = $el.data('blockUI.timeout'); if (to) { clearTimeout(to); $el.removeData('blockUI.timeout'); } opts = $.extend({}, $.blockUI.defaults, opts || {}); bind(0, el, opts); // unbind events if (opts.onUnblock === null) { opts.onUnblock = $el.data('blockUI.onUnblock'); $el.removeData('blockUI.onUnblock'); } var els; if (full) // crazy selector to handle odd field errors in ie6/7 els = $(document.body).children().filter('.blockUI').add('body > .blockUI'); else els = $el.find('>.blockUI'); // fix cursor issue if ( opts.cursorReset ) { if ( els.length > 1 ) els[1].style.cursor = opts.cursorReset; if ( els.length > 2 ) els[2].style.cursor = opts.cursorReset; } if (full) pageBlock = pageBlockEls = null; if (opts.fadeOut) { count = els.length; els.stop().fadeOut(opts.fadeOut, function() { if ( --count === 0) reset(els,data,opts,el); }); } else reset(els, data, opts, el); } // move blocking element back into the DOM where it started function reset(els,data,opts,el) { var $el = $(el); if ( $el.data('blockUI.isBlocked') ) return; els.each(function(i,o) { // remove via DOM calls so we don't lose event handlers if (this.parentNode) this.parentNode.removeChild(this); }); if (data && data.el) { data.el.style.display = data.display; data.el.style.position = data.position; data.el.style.cursor = 'default'; // #59 if (data.parent) data.parent.appendChild(data.el); $el.removeData('blockUI.history'); } if ($el.data('blockUI.static')) { $el.css('position', 'static'); // #22 } if (typeof opts.onUnblock == 'function') opts.onUnblock(el,opts); // fix issue in Safari 6 where block artifacts remain until reflow var body = $(document.body), w = body.width(), cssW = body[0].style.width; body.width(w-1).width(w); body[0].style.width = cssW; } // bind/unbind the handler function bind(b, el, opts) { var full = el == window, $el = $(el); // don't bother unbinding if there is nothing to unbind if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked'))) return; $el.data('blockUI.isBlocked', b); // don't bind events when overlay is not in use or if bindEvents is false if (!full || !opts.bindEvents || (b && !opts.showOverlay)) return; // bind anchors and inputs for mouse and key events var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove'; if (b) $(document).bind(events, opts, handler); else $(document).unbind(events, handler); // former impl... // var $e = $('a,:input'); // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler); } // event handler to suppress keyboard/mouse events when blocking function handler(e) { // allow tab navigation (conditionally) if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) { if (pageBlock && e.data.constrainTabKey) { var els = pageBlockEls; var fwd = !e.shiftKey && e.target === els[els.length-1]; var back = e.shiftKey && e.target === els[0]; if (fwd || back) { setTimeout(function(){focus(back);},10); return false; } } } var opts = e.data; var target = $(e.target); if (target.hasClass('blockOverlay') && opts.onOverlayClick) opts.onOverlayClick(e); // allow events within the message content if (target.parents('div.' + opts.blockMsgClass).length > 0) return true; // allow events for content that is not being blocked return target.parents().children().filter('div.blockUI').length === 0; } function focus(back) { if (!pageBlockEls) return; var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0]; if (e) e.focus(); } function center(el, x, y) { var p = el.parentNode, s = el.style; var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth'); var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth'); if (x) s.left = l > 0 ? (l+'px') : '0'; if (y) s.top = t > 0 ? (t+'px') : '0'; } function sz(el, p) { return parseInt($.css(el,p),10)||0; } } /*global define:true */ if (typeof define === 'function' && define.amd && define.amd.jQuery) { define(['jquery'], setup); } else { setup(jQuery); } })(); PK\P##.assets/js/jquery-blockui/jquery.blockUI.min.jsnuW+A!function(){"use strict";function a(a){function b(b,d){var f,p,q=b==window,r=d&&void 0!==d.message?d.message:void 0;if(d=a.extend({},a.blockUI.defaults,d||{}),!d.ignoreIfBlocked||!a(b).data("blockUI.isBlocked")){if(d.overlayCSS=a.extend({},a.blockUI.defaults.overlayCSS,d.overlayCSS||{}),f=a.extend({},a.blockUI.defaults.css,d.css||{}),d.onOverlayClick&&(d.overlayCSS.cursor="pointer"),p=a.extend({},a.blockUI.defaults.themedCSS,d.themedCSS||{}),r=void 0===r?d.message:r,q&&n&&c(window,{fadeOut:0}),r&&"string"!=typeof r&&(r.parentNode||r.jquery)){var s=r.jquery?r[0]:r,t={};a(b).data("blockUI.history",t),t.el=s,t.parent=s.parentNode,t.display=s.style.display,t.position=s.style.position,t.parent&&t.parent.removeChild(s)}a(b).data("blockUI.onUnblock",d.onUnblock);var u,v,w,x,y=d.baseZ;u=a(k||d.forceIframe?'':''),v=a(d.theme?'':''),d.theme&&q?(x='"):d.theme?(x='"):x=q?'':'',w=a(x),r&&(d.theme?(w.css(p),w.addClass("ui-widget-content")):w.css(f)),d.theme||v.css(d.overlayCSS),v.css("position",q?"fixed":"absolute"),(k||d.forceIframe)&&u.css("opacity",0);var z=[u,v,w],A=a(q?"body":b);a.each(z,function(){this.appendTo(A)}),d.theme&&d.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var B=m&&(!a.support.boxModel||a("object,embed",q?null:b).length>0);if(l||B){if(q&&d.allowBodyStretch&&a.support.boxModel&&a("html,body").css("height","100%"),(l||!a.support.boxModel)&&!q)var C=i(b,"borderTopWidth"),D=i(b,"borderLeftWidth"),E=C?"(0 - "+C+")":0,F=D?"(0 - "+D+")":0;a.each(z,function(a,b){var c=b[0].style;if(c.position="absolute",2>a)q?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+d.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"'),q?c.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"'),F&&c.setExpression("left",F),E&&c.setExpression("top",E);else if(d.centerY)q&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),c.marginTop=0;else if(!d.centerY&&q){var e=d.css&&d.css.top?parseInt(d.css.top,10):0,f="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+e+') + "px"';c.setExpression("top",f)}})}if(r&&(d.theme?w.find(".ui-widget-content").append(r):w.append(r),(r.jquery||r.nodeType)&&a(r).show()),(k||d.forceIframe)&&d.showOverlay&&u.show(),d.fadeIn){var G=d.onBlock?d.onBlock:j,H=d.showOverlay&&!r?G:j,I=r?G:j;d.showOverlay&&v._fadeIn(d.fadeIn,H),r&&w._fadeIn(d.fadeIn,I)}else d.showOverlay&&v.show(),r&&w.show(),d.onBlock&&d.onBlock.bind(w)();if(e(1,b,d),q?(n=w[0],o=a(d.focusableElements,n),d.focusInput&&setTimeout(g,20)):h(w[0],d.centerX,d.centerY),d.timeout){var J=setTimeout(function(){q?a.unblockUI(d):a(b).unblock(d)},d.timeout);a(b).data("blockUI.timeout",J)}}}function c(b,c){var f,g=b==window,h=a(b),i=h.data("blockUI.history"),j=h.data("blockUI.timeout");j&&(clearTimeout(j),h.removeData("blockUI.timeout")),c=a.extend({},a.blockUI.defaults,c||{}),e(0,b,c),null===c.onUnblock&&(c.onUnblock=h.data("blockUI.onUnblock"),h.removeData("blockUI.onUnblock"));var k;k=g?a(document.body).children().filter(".blockUI").add("body > .blockUI"):h.find(">.blockUI"),c.cursorReset&&(k.length>1&&(k[1].style.cursor=c.cursorReset),k.length>2&&(k[2].style.cursor=c.cursorReset)),g&&(n=o=null),c.fadeOut?(f=k.length,k.stop().fadeOut(c.fadeOut,function(){0===--f&&d(k,i,c,b)})):d(k,i,c,b)}function d(b,c,d,e){var f=a(e);if(!f.data("blockUI.isBlocked")){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)}),c&&c.el&&(c.el.style.display=c.display,c.el.style.position=c.position,c.el.style.cursor="default",c.parent&&c.parent.appendChild(c.el),f.removeData("blockUI.history")),f.data("blockUI.static")&&f.css("position","static"),"function"==typeof d.onUnblock&&d.onUnblock(e,d);var g=a(document.body),h=g.width(),i=g[0].style.width;g.width(h-1).width(h),g[0].style.width=i}}function e(b,c,d){var e=c==window,g=a(c);if((b||(!e||n)&&(e||g.data("blockUI.isBlocked")))&&(g.data("blockUI.isBlocked",b),e&&d.bindEvents&&(!b||d.showOverlay))){var h="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";b?a(document).bind(h,d,f):a(document).unbind(h,f)}}function f(b){if("keydown"===b.type&&b.keyCode&&9==b.keyCode&&n&&b.data.constrainTabKey){var c=o,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e)return setTimeout(function(){g(e)},10),!1}var f=b.data,h=a(b.target);return h.hasClass("blockOverlay")&&f.onOverlayClick&&f.onOverlayClick(b),h.parents("div."+f.blockMsgClass).length>0?!0:0===h.parents().children().filter("div.blockUI").length}function g(a){if(o){var b=o[a===!0?o.length-1:0];b&&b.focus()}}function h(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-i(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-i(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0"),c&&(e.top=g>0?g+"px":"0")}function i(b,c){return parseInt(a.css(b,c),10)||0}a.fn._fadeIn=a.fn.fadeIn;var j=a.noop||function(){},k=/MSIE/.test(navigator.userAgent),l=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),m=(document.documentMode||0,a.isFunction(document.createElement("div").style.setExpression));a.blockUI=function(a){b(window,a)},a.unblockUI=function(a){c(window,a)},a.growlUI=function(b,c,d,e){var f=a('
    ');b&&f.append("

    "+b+"

    "),c&&f.append("

    "+c+"

    "),void 0===d&&(d=3e3);var g=function(b){b=b||{},a.blockUI({message:f,fadeIn:"undefined"!=typeof b.fadeIn?b.fadeIn:700,fadeOut:"undefined"!=typeof b.fadeOut?b.fadeOut:1e3,timeout:"undefined"!=typeof b.timeout?b.timeout:d,centerY:!1,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};g();f.css("opacity");f.mouseover(function(){g({fadeIn:0,timeout:3e4});var b=a(".blockMsg");b.stop(),b.fadeTo(300,1)}).mouseout(function(){a(".blockMsg").fadeOut(1e3)})},a.fn.block=function(c){if(this[0]===window)return a.blockUI(c),this;var d=a.extend({},a.blockUI.defaults,c||{});return this.each(function(){var b=a(this);d.ignoreIfBlocked&&b.data("blockUI.isBlocked")||b.unblock({fadeOut:0})}),this.each(function(){"static"==a.css(this,"position")&&(this.style.position="relative",a(this).data("blockUI.static",!0)),this.style.zoom=1,b(this,c)})},a.fn.unblock=function(b){return this[0]===window?(a.unblockUI(b),this):this.each(function(){c(this,b)})},a.blockUI.version=2.7,a.blockUI.defaults={message:"

    Please wait...

    ",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 n=null,o=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],a):a(jQuery)}(); PK\Ex(assets/js/jquery-tiptip/jquery.tipTip.jsnuW+A /* * TipTip * Copyright 2010 Drew Wilson * www.drewwilson.com * code.drewwilson.com/entry/tiptip-jquery-plugin * * Version 1.3 - Updated: Mar. 23, 2010 * * This Plug-In will create a custom tooltip to replace the default * browser tooltip. It is extremely lightweight and very smart in * that it detects the edges of the browser window and will make sure * the tooltip stays within the current window size. As a result the * tooltip will adjust itself to be displayed above, below, to the left * or to the right depending on what is necessary to stay within the * browser window. It is completely customizable as well via CSS. * * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html */ (function($){ $.fn.tipTip = function(options) { var defaults = { activation: "hover", keepAlive: false, maxWidth: "200px", edgeOffset: 3, defaultPosition: "bottom", delay: 400, fadeIn: 200, fadeOut: 200, attribute: "title", content: false, // HTML or String to fill TipTIp with enter: function(){}, exit: function(){} }; var opts = $.extend(defaults, options); // Setup tip tip elements and render them to the DOM if($("#tiptip_holder").length <= 0){ var tiptip_holder = $('
    '); var tiptip_content = $('
    '); var tiptip_arrow = $('
    '); $("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('
    '))); } else { var tiptip_holder = $("#tiptip_holder"); var tiptip_content = $("#tiptip_content"); var tiptip_arrow = $("#tiptip_arrow"); } return this.each(function(){ var org_elem = $(this); if(opts.content){ var org_title = opts.content; } else { var org_title = org_elem.attr(opts.attribute); } if(org_title != ""){ if(!opts.content){ org_elem.removeAttr(opts.attribute); //remove original Attribute } var timeout = false; if(opts.activation == "hover"){ org_elem.hover(function(){ active_tiptip(); }, function(){ if(!opts.keepAlive){ deactive_tiptip(); } }); if(opts.keepAlive){ tiptip_holder.hover(function(){}, function(){ deactive_tiptip(); }); } } else if(opts.activation == "focus"){ org_elem.focus(function(){ active_tiptip(); }).blur(function(){ deactive_tiptip(); }); } else if(opts.activation == "click"){ org_elem.click(function(){ active_tiptip(); return false; }).hover(function(){},function(){ if(!opts.keepAlive){ deactive_tiptip(); } }); if(opts.keepAlive){ tiptip_holder.hover(function(){}, function(){ deactive_tiptip(); }); } } function active_tiptip(){ opts.enter.call(this); tiptip_content.html(org_title); tiptip_holder.hide().removeAttr("class").css("margin","0"); tiptip_arrow.removeAttr("style"); var top = parseInt(org_elem.offset()['top']); var left = parseInt(org_elem.offset()['left']); var org_width = parseInt(org_elem.outerWidth()); var org_height = parseInt(org_elem.outerHeight()); var tip_w = tiptip_holder.outerWidth(); var tip_h = tiptip_holder.outerHeight(); var w_compare = Math.round((org_width - tip_w) / 2); var h_compare = Math.round((org_height - tip_h) / 2); var marg_left = Math.round(left + w_compare); var marg_top = Math.round(top + org_height + opts.edgeOffset); var t_class = ""; var arrow_top = ""; var arrow_left = Math.round(tip_w - 12) / 2; if(opts.defaultPosition == "bottom"){ t_class = "_bottom"; } else if(opts.defaultPosition == "top"){ t_class = "_top"; } else if(opts.defaultPosition == "left"){ t_class = "_left"; } else if(opts.defaultPosition == "right"){ t_class = "_right"; } var right_compare = (w_compare + left) < parseInt($(window).scrollLeft()); var left_compare = (tip_w + left) > parseInt($(window).width()); if((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))){ t_class = "_right"; arrow_top = Math.round(tip_h - 13) / 2; arrow_left = -12; marg_left = Math.round(left + org_width + opts.edgeOffset); marg_top = Math.round(top + h_compare); } else if((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)){ t_class = "_left"; arrow_top = Math.round(tip_h - 13) / 2; arrow_left = Math.round(tip_w); marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5)); marg_top = Math.round(top + h_compare); } var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop()); var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0; if(top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)){ if(t_class == "_top" || t_class == "_bottom"){ t_class = "_top"; } else { t_class = t_class+"_top"; } arrow_top = tip_h; marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset)); } else if(bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)){ if(t_class == "_top" || t_class == "_bottom"){ t_class = "_bottom"; } else { t_class = t_class+"_bottom"; } arrow_top = -12; marg_top = Math.round(top + org_height + opts.edgeOffset); } if(t_class == "_right_top" || t_class == "_left_top"){ marg_top = marg_top + 5; } else if(t_class == "_right_bottom" || t_class == "_left_bottom"){ marg_top = marg_top - 5; } if(t_class == "_left_top" || t_class == "_left_bottom"){ marg_left = marg_left + 5; } tiptip_arrow.css({"margin-left": arrow_left+"px", "margin-top": arrow_top+"px"}); tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class); if (timeout){ clearTimeout(timeout); } timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay); } function deactive_tiptip(){ opts.exit.call(this); if (timeout){ clearTimeout(timeout); } tiptip_holder.fadeOut(opts.fadeOut); } } }); } })(jQuery); PK\>Ҹ ,assets/js/jquery-tiptip/jquery.tipTip.min.jsnuW+A!function(t){t.fn.tipTip=function(e){var o=t.extend({activation:"hover",keepAlive:!1,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:!1,enter:function(){},exit:function(){}},e);if(t("#tiptip_holder").length<=0){var i=t('
    '),n=t('
    '),r=t('
    ');t("body").append(i.html(n).prepend(r.html('
    ')))}else i=t("#tiptip_holder"),n=t("#tiptip_content"),r=t("#tiptip_arrow");return this.each(function(){function e(){o.enter.call(this),n.html(d),i.hide().removeAttr("class").css("margin","0"),r.removeAttr("style");var e=parseInt(f.offset().top),a=parseInt(f.offset().left),p=parseInt(f.outerWidth()),l=parseInt(f.outerHeight()),h=i.outerWidth(),c=i.outerHeight(),s=Math.round((p-h)/2),_=Math.round((l-c)/2),v=Math.round(a+s),m=Math.round(e+l+o.edgeOffset),g="",b="",M=Math.round(h-12)/2;"bottom"==o.defaultPosition?g="_bottom":"top"==o.defaultPosition?g="_top":"left"==o.defaultPosition?g="_left":"right"==o.defaultPosition&&(g="_right");var w=s+aparseInt(t(window).width());w&&s<0||"_right"==g&&!O||"_left"==g&&aparseInt(t(window).height()+t(window).scrollTop()),I=e+l-(o.edgeOffset+c+8)<0;x||"_bottom"==g&&x||"_top"==g&&!I?("_top"==g||"_bottom"==g?g="_top":g+="_top",b=c,m=Math.round(e-(c+5+o.edgeOffset))):(I|("_top"==g&&I)||"_bottom"==g&&!x)&&("_top"==g||"_bottom"==g?g="_bottom":g+="_bottom",b=-12,m=Math.round(e+l+o.edgeOffset)),"_right_top"==g||"_left_top"==g?m+=5:"_right_bottom"!=g&&"_left_bottom"!=g||(m-=5),"_left_top"!=g&&"_left_bottom"!=g||(v+=5),r.css({"margin-left":M+"px","margin-top":b+"px"}),i.css({"margin-left":v+"px","margin-top":m+"px"}).attr("class","tip"+g),u&&clearTimeout(u),u=setTimeout(function(){i.stop(!0,!0).fadeIn(o.fadeIn)},o.delay)}function a(){o.exit.call(this),u&&clearTimeout(u),i.fadeOut(o.fadeOut)}var f=t(this);if(o.content)var d=o.content;else d=f.attr(o.attribute);if(""!=d){o.content||f.removeAttr(o.attribute);var u=!1;"hover"==o.activation?(f.hover(function(){e()},function(){o.keepAlive||a()}),o.keepAlive&&i.hover(function(){},function(){a()})):"focus"==o.activation?f.focus(function(){e()}).blur(function(){a()}):"click"==o.activation&&(f.click(function(){return e(),!1}).hover(function(){},function(){o.keepAlive||a()}),o.keepAlive&&i.hover(function(){},function(){a()}))}})}}(jQuery);PK\'q 0 || "*" === opts.repeat || "+" === opts.repeat) { var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat; mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + "," + opts.repeat + opts.quantifiermarker[1]; } var masksetDefinition, maskdefKey = regexMask ? "regex_" + opts.regex : opts.numericInput ? mask.split("").reverse().join("") : mask; return Inputmask.prototype.masksCache[maskdefKey] === undefined || !0 === nocache ? (masksetDefinition = { mask: mask, maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts), validPositions: {}, _buffer: undefined, buffer: undefined, tests: {}, excludes: {}, metadata: metadata, maskLength: undefined }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition, masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]), masksetDefinition; } if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) { if (opts.mask.length > 1) { if (null === opts.keepStatic) { opts.keepStatic = "auto"; for (var i = 0; i < opts.mask.length; i++) if (opts.mask[i].charAt(0) !== opts.mask[0].charAt(0)) { opts.keepStatic = !0; break; } } var altMask = opts.groupmarker[0]; return $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function(ndx, msk) { altMask.length > 1 && (altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]), msk.mask === undefined || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask; }), generateMask(altMask += opts.groupmarker[1], opts.mask, opts); } opts.mask = opts.mask.pop(); } return opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts); } function isInputEventSupported(eventName) { var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el; return isSupported || (el.setAttribute(evName, "return;"), isSupported = "function" == typeof el[evName]), el = null, isSupported; } function maskScope(actionObj, maskset, opts) { maskset = maskset || this.maskset, opts = opts || this.opts; var undoValue, $el, maxLength, colorMask, inputmask = this, el = this.el, isRTL = this.isRTL, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !1; function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) { var greedy = opts.greedy; clearOptionalTail && (opts.greedy = !1), minimalPos = minimalPos || 0; var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition(); do { if (!0 === baseOnInput && getMaskSet().validPositions[pos]) test = (testPos = clearOptionalTail && !0 === getMaskSet().validPositions[pos].match.optionality && getMaskSet().validPositions[pos + 1] === undefined && (!0 === getMaskSet().validPositions[pos].generatedInput || getMaskSet().validPositions[pos].input == opts.skipOptionalPartCharacter && pos > 0) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : getMaskSet().validPositions[pos]).match, ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test)); else { test = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).match, ndxIntlzr = testPos.locator.slice(); var jitMasking = !0 !== noJit && (!1 !== opts.jitMasking ? opts.jitMasking : test.jit); (!1 === jitMasking || jitMasking === undefined || pos < lvp || "number" == typeof jitMasking && isFinite(jitMasking) && jitMasking > pos) && maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test)); } "auto" === opts.keepStatic && test.newBlockMarker && null !== test.fn && (opts.keepStatic = pos - 1), pos++; } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || minimalPos > pos); return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), !1 === includeMode && getMaskSet().maskLength !== undefined || (getMaskSet().maskLength = pos - 1), opts.greedy = greedy, maskTemplate; } function getMaskSet() { return maskset; } function resetMaskSet(soft) { var maskset = getMaskSet(); maskset.buffer = undefined, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0); } function getLastValidPosition(closestTo, strict, validPositions) { var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions; for (var posNdx in closestTo === undefined && (closestTo = -1), valids) { var psNdx = parseInt(posNdx); valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx), psNdx >= closestTo && (after = psNdx)); } return -1 === before || before == closestTo ? after : -1 == after ? before : closestTo - before < after - closestTo ? before : after; } function getDecisionTaker(tst) { var decisionTaker = tst.locator[tst.alternation]; return "string" == typeof decisionTaker && decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]), decisionTaker !== undefined ? decisionTaker.toString() : ""; } function getLocator(tst, align) { var locator = (tst.alternation != undefined ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(""); if ("" !== locator) for (;locator.length < align; ) locator += "0"; return locator; } function determineTestTemplate(pos, tests) { for (var tstLocator, closest, bestMatch, targetLocator = getLocator(getTest(pos = pos > 0 ? pos - 1 : 0)), ndx = 0; ndx < tests.length; ndx++) { var tst = tests[ndx]; tstLocator = getLocator(tst, targetLocator.length); var distance = Math.abs(tstLocator - targetLocator); (closest === undefined || "" !== tstLocator && distance < closest || bestMatch && bestMatch.match.optionality && "master" === bestMatch.match.newBlockMarker && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) && (closest = distance, bestMatch = tst); } return bestMatch; } function getTestTemplate(pos, ndxIntlzr, tstPs) { return getMaskSet().validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs)); } function getTest(pos, tests) { return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos] : (tests || getTests(pos))[0]; } function positionCanMatchDefinition(pos, def) { for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) { valid = !0; break; } return valid; } function getTests(pos, ndxIntlzr, tstPs) { var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : ""; function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) { function handleMatch(match, loopNdx, quantifierRecurse) { function isFirstMatch(latestMatch, tokenGroup) { var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches); return firstMatch || $.each(tokenGroup.matches, function(ndx, match) { if (!0 === match.isQuantifier ? firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]) : !0 === match.isOptional ? firstMatch = isFirstMatch(latestMatch, match) : !0 === match.isAlternate && (firstMatch = isFirstMatch(latestMatch, match)), firstMatch) return !1; }), firstMatch; } function resolveNdxInitializer(pos, alternateNdx, targetAlternation) { var bestMatch, indexPos; if ((getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) { if (lmnt.mloc[alternateNdx]) return bestMatch = lmnt, !1; var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1; (indexPos === undefined || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt, indexPos = ndxPos); }), bestMatch) { var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation]; return (bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator).slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1); } return targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined; } function isSubsetOf(source, target) { function expand(pattern) { for (var start, end, expanded = [], i = 0, l = pattern.length; i < l; i++) if ("-" === pattern.charAt(i)) for (end = pattern.charCodeAt(i + 1); ++start < end; ) expanded.push(String.fromCharCode(start)); else start = pattern.charCodeAt(i), expanded.push(pattern.charAt(i)); return expanded.join(""); } return opts.regex && null !== source.match.fn && null !== target.match.fn ? -1 !== expand(target.match.def.replace(/[\[\]]/g, "")).indexOf(expand(source.match.def.replace(/[\[\]]/g, ""))) : source.match.def === target.match.nativeDef; } function setMergeLocators(targetMatch, altMatch) { if (altMatch === undefined || targetMatch.alternation === altMatch.alternation && -1 === targetMatch.locator[targetMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation])) { targetMatch.mloc = targetMatch.mloc || {}; var locNdx = targetMatch.locator[targetMatch.alternation]; if (locNdx !== undefined) { if ("string" == typeof locNdx && (locNdx = locNdx.split(",")[0]), targetMatch.mloc[locNdx] === undefined && (targetMatch.mloc[locNdx] = targetMatch.locator.slice()), altMatch !== undefined) { for (var ndx in altMatch.mloc) "string" == typeof ndx && (ndx = ndx.split(",")[0]), targetMatch.mloc[ndx] === undefined && (targetMatch.mloc[ndx] = altMatch.mloc[ndx]); targetMatch.locator[targetMatch.alternation] = Object.keys(targetMatch.mloc).join(","); } return !0; } targetMatch.alternation = undefined; } return !1; } if (testPos > 5e3) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet().mask; if (testPos === pos && match.matches === undefined) return matches.push({ match: match, locator: loopNdx.reverse(), cd: cacheDependency, mloc: {} }), !0; if (match.matches !== undefined) { if (match.isGroup && quantifierRecurse !== match) { if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse)) return !0; } else if (match.isOptional) { var optionalToken = match; if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) { if ($.each(matches, function(ndx, mtch) { mtch.match.optionality = !0; }), latestMatch = matches[matches.length - 1].match, quantifierRecurse !== undefined || !isFirstMatch(latestMatch, optionalToken)) return !0; insertStop = !0, testPos = pos; } } else if (match.isAlternator) { var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1; if (-1 === altIndex || "string" == typeof altIndex) { var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = []; if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx.toString()); if (getMaskSet().excludes[pos]) { for (var altIndexArrClone = altIndexArr.slice(), i = 0, el = getMaskSet().excludes[pos].length; i < el; i++) altIndexArr.splice(altIndexArr.indexOf(getMaskSet().excludes[pos][i].toString()), 1); 0 === altIndexArr.length && (getMaskSet().excludes[pos] = undefined, altIndexArr = altIndexArrClone); } (!0 === opts.keepStatic || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) && (altIndexArr = altIndexArr.slice(0, 1)); for (var unMatchedAlternation = !1, ndx = 0; ndx < altIndexArr.length; ndx++) { amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = "string" == typeof altIndex && resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(), alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) ? match = !0 : 0 === ndx && (unMatchedAlternation = !0), maltMatches = matches.slice(), testPos = currentPos, matches = []; for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) { var altMatch = maltMatches[ndx1], dropMatch = !1; altMatch.match.jit = altMatch.match.jit || unMatchedAlternation, altMatch.alternation = altMatch.alternation || loopNdxCnt, setMergeLocators(altMatch); for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) { var altMatch2 = malternateMatches[ndx2]; if ("string" != typeof altIndex || altMatch.alternation !== undefined && -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) { if (altMatch.match.nativeDef === altMatch2.match.nativeDef) { dropMatch = !0, setMergeLocators(altMatch2, altMatch); break; } if (isSubsetOf(altMatch, altMatch2)) { setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch)); break; } if (isSubsetOf(altMatch2, altMatch)) { setMergeLocators(altMatch2, altMatch); break; } if (target = altMatch2, null === (source = altMatch).match.fn && null !== target.match.fn && target.match.fn.test(source.match.def, getMaskSet(), pos, !1, opts, !1)) { setMergeLocators(altMatch, altMatch2) && (dropMatch = !0, malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch)); break; } } } dropMatch || malternateMatches.push(altMatch); } } matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0, match = malternateMatches.length > 0, ndxInitializer = ndxInitializerClone.slice(); } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse); if (match) return !0; } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) { var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1]; if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) { if ((latestMatch = matches[matches.length - 1].match).optionalQuantifier = qndx > qt.quantifier.min - 1, latestMatch.jit = qndx + tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit, isFirstMatch(latestMatch, tokenGroup) && qndx > qt.quantifier.min - 1) { insertStop = !0, testPos = pos; break; } if (qt.quantifier.jit !== undefined && isNaN(qt.quantifier.max) && latestMatch.optionalQuantifier && getMaskSet().validPositions[pos - 1] === undefined) { matches.pop(), insertStop = !0, testPos = pos, cacheDependency = undefined; break; } return !0; } } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0; } else testPos++; var source, target; } for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) { var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse); if (match && testPos === pos) return match; if (testPos > pos) break; } } if (pos > -1) { if (ndxIntlzr === undefined) { for (var test, previousPos = pos - 1; (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1; ) previousPos--; test !== undefined && previousPos > -1 && (ndxInitializer = function(pos, tests) { var locator = []; return $.isArray(tests) || (tests = [ tests ]), tests.length > 0 && (tests[0].alternation === undefined ? 0 === (locator = determineTestTemplate(pos, tests.slice()).locator.slice()).length && (locator = tests[0].locator.slice()) : $.each(tests, function(ndx, tst) { if ("" !== tst.def) if (0 === locator.length) locator = tst.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += "," + tst.locator[i]); })), locator; }(previousPos, test), cacheDependency = ndxInitializer.join(""), testPos = previousPos); } if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return getMaskSet().tests[pos]; for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) { if (resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]) && testPos === pos || testPos > pos) break; } } return (0 === matches.length || insertStop) && matches.push({ match: { fn: null, optionality: !1, casing: null, def: "", placeholder: "" }, locator: [], mloc: {}, cd: cacheDependency }), ndxIntlzr !== undefined && getMaskSet().tests[pos] ? $.extend(!0, [], matches) : (getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos]); } function getBufferTemplate() { return getMaskSet()._buffer === undefined && (getMaskSet()._buffer = getMaskTemplate(!1, 1), getMaskSet().buffer === undefined && (getMaskSet().buffer = getMaskSet()._buffer.slice())), getMaskSet()._buffer; } function getBuffer(noCache) { return getMaskSet().buffer !== undefined && !0 !== noCache || (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), getMaskSet().buffer; } function refreshFromBuffer(start, end, buffer) { var i, p; if (!0 === start) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; i < end; i++) delete getMaskSet().validPositions[i]; for (p = start, i = start; i < end; i++) if (resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter) { var valResult = isValid(p, buffer[i], !0, !0); !1 !== valResult && (resetMaskSet(!0), p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1); } } function checkAlternationMatch(altArr1, altArr2, na) { for (var naNdx, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = na !== undefined ? na.split(",") : [], i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1); for (var alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) { isMatch = !0; break; } return isMatch; } function alternate(pos, c, strict, fromSetValid, rAltPos) { var lastAlt, alternation, altPos, prevAltPos, i, validPos, decisionPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), isValidRslt = !1, lAltPos = rAltPos !== undefined ? rAltPos : getLastValidPosition(); if (-1 === lAltPos && rAltPos === undefined) alternation = (prevAltPos = getTest(lastAlt = 0)).alternation; else for (;lAltPos >= 0; lAltPos--) if ((altPos = getMaskSet().validPositions[lAltPos]) && altPos.alternation !== undefined) { if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break; lastAlt = lAltPos, alternation = getMaskSet().validPositions[lastAlt].alternation, prevAltPos = altPos; } if (alternation !== undefined) { decisionPos = parseInt(lastAlt), getMaskSet().excludes[decisionPos] = getMaskSet().excludes[decisionPos] || [], !0 !== pos && getMaskSet().excludes[decisionPos].push(getDecisionTaker(prevAltPos)); var validInputsClone = [], staticInputsBeforePos = 0; for (i = decisionPos; i < getLastValidPosition(undefined, !0) + 1; i++) (validPos = getMaskSet().validPositions[i]) && !0 !== validPos.generatedInput ? validInputsClone.push(validPos.input) : i < pos && staticInputsBeforePos++, delete getMaskSet().validPositions[i]; for (;getMaskSet().excludes[decisionPos] && getMaskSet().excludes[decisionPos].length < 10; ) { var posOffset = -1 * staticInputsBeforePos, validInputs = validInputsClone.slice(); for (getMaskSet().tests[decisionPos] = undefined, resetMaskSet(!0), isValidRslt = !0; validInputs.length > 0; ) { var input = validInputs.shift(); if (!(isValidRslt = isValid(getLastValidPosition(undefined, !0) + 1, input, !1, fromSetValid, !0))) break; } if (isValidRslt && c !== undefined) { var targetLvp = getLastValidPosition(pos) + 1; for (i = decisionPos; i < getLastValidPosition() + 1; i++) ((validPos = getMaskSet().validPositions[i]) === undefined || null == validPos.match.fn) && i < pos + posOffset && posOffset++; isValidRslt = isValid((pos += posOffset) > targetLvp ? targetLvp : pos, c, strict, fromSetValid, !0); } if (isValidRslt) break; if (resetMaskSet(), prevAltPos = getTest(decisionPos), getMaskSet().validPositions = $.extend(!0, {}, validPsClone), !getMaskSet().excludes[decisionPos]) { isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1); break; } var decisionTaker = getDecisionTaker(prevAltPos); if (-1 !== getMaskSet().excludes[decisionPos].indexOf(decisionTaker)) { isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1); break; } for (getMaskSet().excludes[decisionPos].push(decisionTaker), i = decisionPos; i < getLastValidPosition(undefined, !0) + 1; i++) delete getMaskSet().validPositions[i]; } } return getMaskSet().excludes[decisionPos] = undefined, isValidRslt; } function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) { function isSelection(posObj) { return isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1; } strict = !0 === strict; var maskPos = pos; function _isValid(position, c, strict) { var rslt = !1; return $.each(getTests(position), function(ndx, tst) { var test = tst.match; if (getBuffer(!0), !1 !== (rslt = null != test.fn ? test.fn.test(c, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && "" !== test.def && { c: getPlaceholder(position, test, !0) || test.def, pos: position })) { var elem = rslt.c !== undefined ? rslt.c : c, validatedPos = position; return elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? getPlaceholder(position, test, !0) || test.def : elem, rslt.remove !== undefined && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), $.each(rslt.remove.sort(function(a, b) { return b - a; }), function(ndx, lmnt) { revalidateMask({ begin: lmnt, end: lmnt + 1 }); })), rslt.insert !== undefined && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), $.each(rslt.insert.sort(function(a, b) { return a - b; }), function(ndx, lmnt) { isValid(lmnt.pos, lmnt.c, !0, fromSetValid); })), !0 !== rslt && rslt.pos !== undefined && rslt.pos !== position && (validatedPos = rslt.pos), !0 !== rslt && rslt.pos === undefined && rslt.c === undefined ? !1 : (revalidateMask(pos, $.extend({}, tst, { input: function(elem, test, pos) { switch (opts.casing || test.casing) { case "upper": elem = elem.toUpperCase(); break; case "lower": elem = elem.toLowerCase(); break; case "title": var posBefore = getMaskSet().validPositions[pos - 1]; elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase(); break; default: if ($.isFunction(opts.casing)) { var args = Array.prototype.slice.call(arguments); args.push(getMaskSet().validPositions), elem = opts.casing.apply(this, args); } } return elem; }(elem, test, validatedPos) }), fromSetValid, validatedPos) || (rslt = !1), !1); } }), rslt; } pos.begin !== undefined && (maskPos = isRTL ? pos.end : pos.begin); var result = !0, positionsClone = $.extend(!0, {}, getMaskSet().validPositions); if ($.isFunction(opts.preValidation) && !strict && !0 !== fromSetValid && !0 !== validateOnly && (result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts, getMaskSet())), !0 === result) { if (trackbackPositions(undefined, maskPos, !0), (maxLength === undefined || maskPos < maxLength) && (result = _isValid(maskPos, c, strict), (!strict || !0 === fromSetValid) && !1 === result && !0 !== validateOnly)) { var currentPosValid = getMaskSet().validPositions[maskPos]; if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) { if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (!1 !== (result = _isValid(nPos, c, strict))) { result = trackbackPositions(maskPos, result.pos !== undefined ? result.pos : nPos) || result, maskPos = nPos; break; } } else result = { caret: seekNext(maskPos) }; } !1 !== result || !1 === opts.keepStatic || null != opts.regex && !isComplete(getBuffer()) || strict || !0 === fromAlternate || (result = alternate(maskPos, c, strict, fromSetValid)), !0 === result && (result = { pos: maskPos }); } if ($.isFunction(opts.postValidation) && !1 !== result && !strict && !0 !== fromSetValid && !0 !== validateOnly) { var postResult = opts.postValidation(getBuffer(!0), result, opts); if (postResult !== undefined) { if (postResult.refreshFromBuffer && postResult.buffer) { var refresh = postResult.refreshFromBuffer; refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, postResult.buffer); } result = !0 === postResult ? result : postResult; } } return result && result.pos === undefined && (result.pos = maskPos), !1 !== result && !0 !== validateOnly || (resetMaskSet(!0), getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result; } function trackbackPositions(originalPos, newPos, fillOnly) { var result; if (originalPos === undefined) for (originalPos = newPos - 1; originalPos > 0 && !getMaskSet().validPositions[originalPos]; originalPos--) ; for (var ps = originalPos; ps < newPos; ps++) if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, !0)) { var vp = 0 == ps ? getTest(ps) : getMaskSet().validPositions[ps - 1]; if (vp) { var tstLocator, targetLocator = getLocator(vp), tests = getTests(ps).slice(), closest = undefined, bestMatch = getTest(ps); if ("" === tests[tests.length - 1].match.def && tests.pop(), $.each(tests, function(ndx, tst) { tstLocator = getLocator(tst, targetLocator.length); var distance = Math.abs(tstLocator - targetLocator); (closest === undefined || distance < closest) && null === tst.match.fn && !0 !== tst.match.optionality && !0 !== tst.match.optionalQuantifier && (closest = distance, bestMatch = tst); }), (bestMatch = $.extend({}, bestMatch, { input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def })).generatedInput = !0, revalidateMask(ps, bestMatch, !0), !0 !== fillOnly) { var cvpInput = getMaskSet().validPositions[newPos].input; getMaskSet().validPositions[newPos] = undefined, result = isValid(newPos, cvpInput, !0, !0); } } } return result; } function revalidateMask(pos, validTest, fromSetValid, validatedPos) { function IsEnclosedStatic(pos, valids, selection) { var posMatch = valids[pos]; if (posMatch !== undefined && (null === posMatch.match.fn && !0 !== posMatch.match.optionality || posMatch.input === opts.radixPoint)) { var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && null === valids[pos - 1].match.fn && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && null === valids[pos + 1].match.fn && valids[pos + 1] : valids[pos + 1]; return prevMatch && nextMatch; } return !1; } var begin = pos.begin !== undefined ? pos.begin : pos, end = pos.end !== undefined ? pos.end : pos; if (pos.begin > pos.end && (begin = pos.end, end = pos.begin), validatedPos = validatedPos !== undefined ? validatedPos : begin, begin !== end || opts.insertMode && getMaskSet().validPositions[validatedPos] !== undefined && fromSetValid === undefined) { var positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, !0); for (getMaskSet().p = begin, i = lvp; i >= begin; i--) getMaskSet().validPositions[i] && "+" === getMaskSet().validPositions[i].match.nativeDef && (opts.isNegative = !1), delete getMaskSet().validPositions[i]; var valid = !0, j = validatedPos, needsValidation = (getMaskSet().validPositions, !1), posMatch = j, i = j; for (validTest && (getMaskSet().validPositions[validatedPos] = $.extend(!0, {}, validTest), posMatch++, j++, begin < end && i++); i <= lvp; i++) { var t = positionsClone[i]; if (t !== undefined && (i >= end || i >= begin && !0 !== t.generatedInput && IsEnclosedStatic(i, positionsClone, { begin: begin, end: end }))) { for (;"" !== getTest(posMatch).match.def; ) { if (!1 === needsValidation && positionsClone[posMatch] && positionsClone[posMatch].match.nativeDef === t.match.nativeDef) getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]), getMaskSet().validPositions[posMatch].input = t.input, trackbackPositions(undefined, posMatch, !0), j = posMatch + 1, valid = !0; else if (positionCanMatchDefinition(posMatch, t.match.def)) { var result = isValid(posMatch, t.input, !0, !0); valid = !1 !== result, j = result.caret || result.insert ? getLastValidPosition() : posMatch + 1, needsValidation = !0; } else if (!(valid = !0 === t.generatedInput || t.input === opts.radixPoint && !0 === opts.numericInput) && "" === getTest(posMatch).match.def) break; if (valid) break; posMatch++; } "" == getTest(posMatch).match.def && (valid = !1), posMatch = j; } if (!valid) break; } if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), resetMaskSet(!0), !1; } else validTest && (getMaskSet().validPositions[validatedPos] = $.extend(!0, {}, validTest)); return resetMaskSet(!0), !0; } function isMask(pos, strict) { var test = getTestTemplate(pos).match; if ("" === test.def && (test = getTest(pos).match), null != test.fn) return test.fn; if (!0 !== strict && pos > -1) { var tests = getTests(pos); return tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0); } return !1; } function seekNext(pos, newBlock) { for (var position = pos + 1; "" !== getTest(position).match.def && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position)) || !0 !== newBlock && !isMask(position)); ) position++; return position; } function seekPrevious(pos, newBlock) { var tests, position = pos; if (position <= 0) return 0; for (;--position > 0 && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position) && ((tests = getTests(position)).length < 2 || 2 === tests.length && "" === tests[1].match.def)); ) ; return position; } function writeBuffer(input, buffer, caretPos, event, triggerEvents) { if (event && $.isFunction(opts.onBeforeWrite)) { var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts); if (result) { if (result.refreshFromBuffer) { var refresh = result.refreshFromBuffer; refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer), buffer = getBuffer(!0); } caretPos !== undefined && (caretPos = result.caret !== undefined ? result.caret : caretPos); } } if (input !== undefined && (input.inputmask._valueSet(buffer.join("")), caretPos === undefined || event !== undefined && "blur" === event.type ? renderColorMask(input, caretPos, 0 === buffer.length) : caret(input, caretPos), !0 === triggerEvents)) { var $input = $(input), nptVal = input.inputmask._valueGet(); skipInputEvent = !0, $input.trigger("input"), setTimeout(function() { nptVal === getBufferTemplate().join("") ? $input.trigger("cleared") : !0 === isComplete(buffer) && $input.trigger("complete"); }, 0); } } function getPlaceholder(pos, test, returnPL) { if ((test = test || getTest(pos).match).placeholder !== undefined || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder; if (null === test.fn) { if (pos > -1 && getMaskSet().validPositions[pos] === undefined) { var prevTest, tests = getTests(pos), staticAlternations = []; if (tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (!0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (null === tests[i].match.fn || prevTest === undefined || !1 !== tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts)) && (staticAlternations.push(tests[i]), null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1 && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length); } return test.def; } return opts.placeholder.charAt(pos % opts.placeholder.length); } var valueBuffer, EventRuler = { on: function(input, eventName, eventHandler) { var ev = function(e) { var that = this; if (that.inputmask === undefined && "FORM" !== this.nodeName) { var imOpts = $.data(that, "_inputmask_opts"); imOpts ? new Inputmask(imOpts).mask(that) : EventRuler.off(that); } else { if ("setvalue" === e.type || "FORM" === this.nodeName || !(that.disabled || that.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === Inputmask.keyCode.TAB))) { switch (e.type) { case "input": if (!0 === skipInputEvent) return skipInputEvent = !1, e.preventDefault(); if (mobile) { var args = arguments; return setTimeout(function() { eventHandler.apply(that, args), caret(that, that.inputmask.caretPos, undefined, !0); }, 0), !1; } break; case "keydown": skipKeyPressEvent = !1, skipInputEvent = !1; break; case "keypress": if (!0 === skipKeyPressEvent) return e.preventDefault(); skipKeyPressEvent = !0; break; case "click": if (iemobile || iphone) { args = arguments; return setTimeout(function() { eventHandler.apply(that, args); }, 0), !1; } } var returnVal = eventHandler.apply(that, arguments); return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal; } e.preventDefault(); } }; input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev); }, off: function(input, event) { var events; input.inputmask && input.inputmask.events && (event ? (events = [])[event] = input.inputmask.events[event] : events = input.inputmask.events, $.each(events, function(eventName, evArr) { for (;evArr.length > 0; ) { var ev = evArr.pop(); -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev); } delete input.inputmask.events[eventName]; })); } }, EventHandlers = { keydownEvent: function(e) { var input = this, $input = $(input), k = e.keyCode, pos = caret(input); if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !isInputEventSupported("cut")) e.preventDefault(), handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join("")); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) { e.preventDefault(); var caretPos = seekNext(getLastValidPosition()); opts.insertMode || caretPos !== getMaskSet().maskLength || e.shiftKey || caretPos--, caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0); } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, undoValue.split("")), $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB ? (!0 === e.shiftKey ? (null === getTest(pos.begin).match.fn && (pos.begin = seekNext(pos.begin)), pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), pos.end = seekNext(pos.begin, !0), pos.end < getMaskSet().maskLength && pos.end--), pos.begin < getMaskSet().maskLength && (e.preventDefault(), caret(input, pos.begin, pos.end))) : e.shiftKey || !1 === opts.insertMode && (k === Inputmask.keyCode.RIGHT ? setTimeout(function() { var caretPos = caret(input); caret(input, caretPos.begin); }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() { var caretPos = caret(input); caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1); }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskSet().maskLength ? pos.begin : pos.begin - 1)); opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables); }, keypressEvent: function(e, checkval, writeOut, strict, ndx) { var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode; if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""), setTimeout(function() { $input.trigger("change"); }, 0)), !0; if (k) { 46 === k && !1 === e.shiftKey && "" !== opts.radixPoint && (k = opts.radixPoint.charCodeAt(0)); var forwardPosition, pos = checkval ? { begin: ndx, end: ndx } : caret(input), c = String.fromCharCode(k), offset = 0; if (opts._radixDance && opts.numericInput) { var caretPos = getBuffer().indexOf(opts.radixPoint.charAt(0)) + 1; pos.begin <= caretPos && (k === opts.radixPoint.charCodeAt(0) && (offset = 1), pos.begin -= 1, pos.end -= 1); } getMaskSet().writeOutBuffer = !0; var valResult = isValid(pos, c, strict); if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = valResult.caret !== undefined ? valResult.caret : seekNext(valResult.pos.begin ? valResult.pos.begin : valResult.pos), getMaskSet().p = forwardPosition), forwardPosition = (opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition) + offset, !1 !== writeOut && (setTimeout(function() { opts.onKeyValidation.call(input, k, valResult, opts); }, 0), getMaskSet().writeOutBuffer && !1 !== valResult)) { var buffer = getBuffer(); writeBuffer(input, buffer, forwardPosition, e, !0 !== checkval); } if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition), valResult; } }, pasteEvent: function(e) { var tempValue, ev = e.originalEvent || e, inputValue = ($(this), this.inputmask._valueGet(!0)), caretPos = caret(this); isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue); var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length); if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""), valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join("") && (valueAfterCaret = ""), window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret; else { if (!ev.clipboardData || !ev.clipboardData.getData) return !0; inputValue = valueBeforeCaret + ev.clipboardData.getData("text/plain") + valueAfterCaret; } var pasteValue = inputValue; if ($.isFunction(opts.onBeforePaste)) { if (!1 === (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts))) return e.preventDefault(); pasteValue || (pasteValue = inputValue); } return checkVal(this, !1, !1, pasteValue.toString().split("")), writeBuffer(this, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join("")), e.preventDefault(); }, inputFallBackEvent: function(e) { var input = this, inputValue = input.inputmask._valueGet(); if (getBuffer().join("") !== inputValue) { var caretPos = caret(input); if (inputValue = function(input, inputValue, caretPos) { if (iemobile) { var inputChar = inputValue.replace(getBuffer().join(""), ""); if (1 === inputChar.length) { var iv = inputValue.split(""); iv.splice(caretPos.begin, 0, inputChar), inputValue = iv.join(""); } } return inputValue; }(0, inputValue = function(input, inputValue, caretPos) { return "." === inputValue.charAt(caretPos.begin - 1) && "" !== opts.radixPoint && ((inputValue = inputValue.split(""))[caretPos.begin - 1] = opts.radixPoint.charAt(0), inputValue = inputValue.join("")), inputValue; }(0, inputValue, caretPos), caretPos), getBuffer().join("") !== inputValue) { var buffer = getBuffer().join(""), offset = !opts.numericInput && inputValue.length > buffer.length ? -1 : 0, frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin + offset), backBufferPart = buffer.substr(caretPos.begin + offset), selection = caretPos, entries = "", isEntry = !1; if (frontPart !== frontBufferPart) { for (var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) ; isEntry && (0 === offset && (selection.begin = i), entries += frontPart.slice(i, selection.end)); } if (backPart !== backBufferPart && (backPart.length > backBufferPart.length ? entries += backPart.slice(0, 1) : backPart.length < backBufferPart.length && (selection.end += backBufferPart.length - backPart.length, isEntry || "" === opts.radixPoint || "" !== backPart || frontPart.charAt(selection.begin + offset - 1) !== opts.radixPoint || (selection.begin--, entries = opts.radixPoint))), writeBuffer(input, getBuffer(), { begin: selection.begin + offset, end: selection.end + offset }), entries.length > 0) $.each(entries.split(""), function(ndx, entry) { var keypress = new $.Event("keypress"); keypress.which = entry.charCodeAt(0), ignorable = !1, EventHandlers.keypressEvent.call(input, keypress); }); else { selection.begin === selection.end - 1 && (selection.begin = seekPrevious(selection.begin + 1), selection.begin === selection.end - 1 ? caret(input, selection.begin) : caret(input, selection.begin, selection.end)); var keydown = new $.Event("keydown"); keydown.keyCode = opts.numericInput ? Inputmask.keyCode.BACKSPACE : Inputmask.keyCode.DELETE, EventHandlers.keydownEvent.call(input, keydown), !1 === opts.insertMode && caret(input, caret(input).begin - 1); } e.preventDefault(); } } }, beforeInputEvent: function(e) { if (e.cancelable) { var input = this; switch (e.inputType) { case "insertText": return $.each(e.data.split(""), function(ndx, entry) { var keypress = new $.Event("keypress"); keypress.which = entry.charCodeAt(0), ignorable = !1, EventHandlers.keypressEvent.call(input, keypress); }), e.preventDefault(); case "deleteContentBackward": return (keydown = new $.Event("keydown")).keyCode = Inputmask.keyCode.BACKSPACE, EventHandlers.keydownEvent.call(input, keydown), e.preventDefault(); case "deleteContentForward": var keydown; return (keydown = new $.Event("keydown")).keyCode = Inputmask.keyCode.DELETE, EventHandlers.keydownEvent.call(input, keydown), e.preventDefault(); } } }, setValueEvent: function(e) { this.inputmask.refreshValue = !1; var value = (value = e && e.detail ? e.detail[0] : arguments[1]) || this.inputmask._valueGet(!0); $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask.call(inputmask, value, opts) || value), checkVal(this, !0, !1, value = value.split("")), undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && this.inputmask._valueGet() === getBufferTemplate().join("") && this.inputmask._valueSet(""); }, focusEvent: function(e) { var nptValue = this.inputmask._valueGet(); opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && "" === nptValue) && (this.inputmask._valueGet() !== getBuffer().join("") ? writeBuffer(this, getBuffer(), seekNext(getLastValidPosition())) : !1 === mouseEnter && caret(this, seekNext(getLastValidPosition()))), !0 === opts.positionCaretOnTab && !1 === mouseEnter && EventHandlers.clickEvent.apply(this, [ e, !0 ]), undoValue = getBuffer().join(""); }, mouseleaveEvent: function(e) { if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== this) { var buffer = getBuffer().slice(), nptValue = this.inputmask._valueGet(); nptValue !== this.getAttribute("placeholder") && "" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer), writeBuffer(this, buffer)); } }, clickEvent: function(e, tabbed) { var input = this; setTimeout(function() { if (document.activeElement === input) { var selectedCaret = caret(input); if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end), selectedCaret.begin === selectedCaret.end) switch (opts.positionCaretOnClick) { case "none": break; case "select": caret(input, 0, getBuffer().length); break; case "ignore": caret(input, seekNext(getLastValidPosition())); break; case "radixFocus": if (function(clickPos) { if ("" !== opts.radixPoint) { var vps = getMaskSet().validPositions; if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) { if (clickPos < seekNext(-1)) return !0; var radixPos = $.inArray(opts.radixPoint, getBuffer()); if (-1 !== radixPos) { for (var vp in vps) if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1; return !0; } } } return !1; }(selectedCaret.begin)) { var radixPos = getBuffer().join("").indexOf(opts.radixPoint); caret(input, opts.numericInput ? seekNext(radixPos) : radixPos); break; } default: var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition); if (clickPosition < lastPosition) caret(input, isMask(clickPosition, !0) || isMask(clickPosition - 1, !0) ? clickPosition : seekNext(clickPosition)); else { var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match); if ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask(lastPosition, opts.keepStatic) && tt.match.def === placeholder) { var newPos = seekNext(lastPosition); (clickPosition >= newPos || clickPosition === lastPosition) && (lastPosition = newPos); } caret(input, lastPosition); } } } }, 0); }, dblclickEvent: function(e) { var input = this; setTimeout(function() { caret(input, 0, seekNext(getLastValidPosition())); }, 0); }, cutEvent: function(e) { $(this); var pos = caret(this), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end); clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")), document.execCommand && document.execCommand("copy"), handleRemove(this, Inputmask.keyCode.DELETE, pos), writeBuffer(this, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")); }, blurEvent: function(e) { var $input = $(this); if (this.inputmask) { var nptValue = this.inputmask._valueGet(), buffer = getBuffer().slice(); "" === nptValue && colorMask === undefined || (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), !1 === isComplete(buffer) && (setTimeout(function() { $input.trigger("incomplete"); }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), writeBuffer(this, buffer, undefined, e)), undoValue !== getBuffer().join("") && (undoValue = buffer.join(""), $input.trigger("change")); } }, mouseenterEvent: function(e) { mouseEnter = !0, document.activeElement !== this && opts.showMaskOnHover && this.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(this, getBuffer()); }, submitEvent: function(e) { undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""), opts.clearIncomplete && !1 === isComplete(getBuffer()) && el.inputmask._valueSet(""), opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), setTimeout(function() { writeBuffer(el, getBuffer()); }, 0)); }, resetEvent: function(e) { el.inputmask.refreshValue = !0, setTimeout(function() { $el.trigger("setvalue"); }, 0); } }; function checkVal(input, writeOut, strict, nptvl, initiatingEvent) { var inputmask = this || input.inputmask, inputValue = nptvl.slice(), charCodes = "", initialNdx = -1, result = undefined; if (resetMaskSet(), strict || !0 === opts.autoUnmask) initialNdx = seekNext(initialNdx); else { var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g")); matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), initialNdx = seekNext(initialNdx)); } -1 === initialNdx ? (getMaskSet().p = seekNext(initialNdx), initialNdx = 0) : getMaskSet().p = initialNdx, inputmask.caretPos = { begin: initialNdx }, $.each(inputValue, function(ndx, charCode) { if (charCode !== undefined) if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, !0) && !1 === isValid(ndx, inputValue[ndx], !0, undefined, undefined, !0)) getMaskSet().p++; else { var keypress = new $.Event("_checkval"); keypress.which = charCode.charCodeAt(0), charCodes += charCode; var lvp = getLastValidPosition(undefined, !0); !function(ndx, charCodes) { return -1 !== getMaskTemplate(!0, 0, !1).slice(ndx, seekNext(ndx)).join("").replace(/'/g, "").indexOf(charCodes) && !isMask(ndx) && (getTest(ndx).match.nativeDef === charCodes.charAt(0) || null === getTest(ndx).match.fn && getTest(ndx).match.nativeDef === "'" + charCodes.charAt(0) || " " === getTest(ndx).match.nativeDef && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0) || null === getTest(ndx + 1).match.fn && getTest(ndx + 1).match.nativeDef === "'" + charCodes.charAt(0))); }(initialNdx, charCodes) ? (result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, inputmask.caretPos.begin)) && (initialNdx = inputmask.caretPos.begin + 1, charCodes = "") : result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, lvp + 1), result && (writeBuffer(undefined, getBuffer(), result.forwardPosition, keypress, !1), inputmask.caretPos = { begin: result.forwardPosition, end: result.forwardPosition }); } }), writeOut && writeBuffer(input, getBuffer(), result ? result.forwardPosition : undefined, initiatingEvent || new $.Event("checkval"), initiatingEvent && "input" === initiatingEvent.type); } function unmaskedvalue(input) { if (input) { if (input.inputmask === undefined) return input.value; input.inputmask && input.inputmask.refreshValue && EventHandlers.setValueEvent.call(input); } var umValue = [], vps = getMaskSet().validPositions; for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input); var unmaskedValue = 0 === umValue.length ? "" : (isRTL ? umValue.reverse() : umValue).join(""); if ($.isFunction(opts.onUnMask)) { var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(""); unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts); } return unmaskedValue; } function translatePosition(pos) { return !isRTL || "number" != typeof pos || opts.greedy && "" === opts.placeholder || !el || (pos = el.inputmask._valueGet().length - pos), pos; } function caret(input, begin, end, notranslate) { var range; if (begin === undefined) return input.setSelectionRange ? (begin = input.selectionStart, end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset, end = range.endOffset) : document.selection && document.selection.createRange && (end = (begin = 0 - (range = document.selection.createRange()).duplicate().moveStart("character", -input.inputmask._valueGet().length)) + range.text.length), { begin: notranslate ? begin : translatePosition(begin), end: notranslate ? end : translatePosition(end) }; if ($.isArray(begin) && (end = isRTL ? begin[0] : begin[1], begin = isRTL ? begin[1] : begin[0]), begin.begin !== undefined && (end = isRTL ? begin.begin : begin.end, begin = isRTL ? begin.end : begin.begin), "number" == typeof begin) { begin = notranslate ? begin : translatePosition(begin), end = "number" == typeof (end = notranslate ? end : translatePosition(end)) ? end : begin; var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end; if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, iphone || !1 !== opts.insertMode || begin !== end || end++, input.inputmask.caretPos = { begin: begin, end: end }, input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) { if (range = document.createRange(), input.firstChild === undefined || null === input.firstChild) { var textNode = document.createTextNode(""); input.appendChild(textNode); } range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), range.collapse(!0); var sel = window.getSelection(); sel.removeAllRanges(), sel.addRange(range); } else input.createTextRange && ((range = input.createTextRange()).collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), range.select()); renderColorMask(input, { begin: begin, end: end }); } } function determineLastRequiredPosition(returnDefinition) { var pos, testPos, buffer = getMaskTemplate(!0, getLastValidPosition(), !0, !0), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined; for (pos = lvp + 1; pos < buffer.length; pos++) ndxIntlzr = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).locator.slice(), positions[pos] = $.extend(!0, {}, testPos); var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined; for (pos = bl - 1; pos > lvp && (((testPos = positions[pos]).match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && "" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--; return returnDefinition ? { l: bl, def: positions[bl] ? positions[bl].match : undefined } : bl; } function clearOptionalTail(buffer) { buffer.length = 0; for (var lmnt, template = getMaskTemplate(!0, 0, !0, undefined, !0); (lmnt = template.shift()) !== undefined; ) buffer.push(lmnt); return buffer; } function isComplete(buffer) { if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts); if ("*" === opts.repeat) return undefined; var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l); if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) { complete = !0; for (var i = 0; i <= aml; i++) { var test = getTestTemplate(i).match; if (null !== test.fn && getMaskSet().validPositions[i] === undefined && !0 !== test.optionality && !0 !== test.optionalQuantifier || null === test.fn && buffer[i] !== getPlaceholder(i, test)) { complete = !1; break; } } } return complete; } function handleRemove(input, k, pos, strict, fromIsValid) { if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), isRTL)) { var pend = pos.end; pos.end = pos.begin, pos.begin = pend; } if (k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || !1 === opts.insertMode) ? (pos.begin = seekPrevious(pos.begin), getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.begin--, !1 === opts.insertMode && pos.end !== getMaskSet().maskLength && pos.end--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0) && getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint ? pos.end + 1 : seekNext(pos.end) + 1, getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.end++), revalidateMask(pos), !0 !== strict && !1 !== opts.keepStatic || null !== opts.regex) { var result = alternate(!0); if (result) { var newPos = result.caret !== undefined ? result.caret : result.pos ? seekNext(result.pos.begin ? result.pos.begin : result.pos) : getLastValidPosition(-1, !0); (k !== Inputmask.keyCode.DELETE || pos.begin > newPos) && pos.begin; } } var lvp = getLastValidPosition(pos.begin, !0); if (lvp < pos.begin || -1 === pos.begin) getMaskSet().p = seekNext(lvp); else if (!0 !== strict && (getMaskSet().p = pos.begin, !0 !== fromIsValid)) for (;getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined; ) getMaskSet().p++; } function initializeColorMask(input) { var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null); var template = document.createElement("div"); template.style.width = computedStyle.width, template.style.textAlign = computedStyle.textAlign, colorMask = document.createElement("div"), input.inputmask.colorMask = colorMask, colorMask.className = "im-colormask", input.parentNode.insertBefore(colorMask, input), input.parentNode.removeChild(input), colorMask.appendChild(input), colorMask.appendChild(template), input.style.left = template.offsetLeft + "px", $(colorMask).on("mouseleave", function(e) { return EventHandlers.mouseleaveEvent.call(input, [ e ]); }), $(colorMask).on("mouseenter", function(e) { return EventHandlers.mouseenterEvent.call(input, [ e ]); }), $(colorMask).on("click", function(e) { return caret(input, function(clientx) { var caretPos, e = document.createElement("span"); for (var style in computedStyle) isNaN(style) && -1 !== style.indexOf("font") && (e.style[style] = computedStyle[style]); e.style.textTransform = computedStyle.textTransform, e.style.letterSpacing = computedStyle.letterSpacing, e.style.position = "absolute", e.style.height = "auto", e.style.width = "auto", e.style.visibility = "hidden", e.style.whiteSpace = "nowrap", document.body.appendChild(e); var itl, inputText = input.inputmask._valueGet(), previousWidth = 0; for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) { if (e.innerHTML += inputText.charAt(caretPos) || "_", e.offsetWidth >= clientx) { var offset1 = clientx - previousWidth, offset2 = e.offsetWidth - clientx; e.innerHTML = inputText.charAt(caretPos), caretPos = (offset1 -= e.offsetWidth / 3) < offset2 ? caretPos - 1 : caretPos; break; } previousWidth = e.offsetWidth; } return document.body.removeChild(e), caretPos; }(e.clientX)), EventHandlers.clickEvent.call(input, [ e ]); }), $(input).on("keydown", function(e) { e.shiftKey || !1 === opts.insertMode || setTimeout(function() { renderColorMask(input); }, 0); }); } function renderColorMask(input, caretPos, clear) { var test, testPos, ndxIntlzr, maskTemplate = [], isStatic = !1, pos = 0; function setEntry(entry) { if (entry === undefined && (entry = ""), isStatic || null !== test.fn && testPos.input !== undefined) if (isStatic && (null !== test.fn && testPos.input !== undefined || "" === test.def)) { isStatic = !1; var mtl = maskTemplate.length; maskTemplate[mtl - 1] = maskTemplate[mtl - 1] + "", maskTemplate.push(entry); } else maskTemplate.push(entry); else isStatic = !0, maskTemplate.push("" + entry); } if (colorMask !== undefined) { var buffer = getBuffer(); if (caretPos === undefined ? caretPos = caret(input) : caretPos.begin === undefined && (caretPos = { begin: caretPos, end: caretPos }), !0 !== clear) { var lvp = getLastValidPosition(); do { getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos], test = testPos.match, ndxIntlzr = testPos.locator.slice(), setEntry(buffer[pos])) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, ndxIntlzr = testPos.locator.slice(), !1 === opts.jitMasking || pos < lvp || "number" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos ? setEntry(getPlaceholder(pos, test)) : isStatic = !1), pos++; } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || lvp > pos || isStatic); isStatic && setEntry(), document.activeElement === input && (maskTemplate.splice(caretPos.begin, 0, caretPos.begin === caretPos.end || caretPos.end > getMaskSet().maskLength ? '' : ''), maskTemplate.splice(caretPos.end + 1, 0, "")); } var template = colorMask.getElementsByTagName("div")[0]; template.innerHTML = maskTemplate.join(""), input.inputmask.positionColorMask(input, template); } } if (Inputmask.prototype.positionColorMask = function(input, template) { input.style.left = template.offsetLeft + "px"; }, actionObj !== undefined) switch (actionObj.action) { case "isComplete": return el = actionObj.el, isComplete(getBuffer()); case "unmaskedvalue": return el !== undefined && actionObj.value === undefined || (valueBuffer = actionObj.value, valueBuffer = ($.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer).split(""), checkVal.call(this, undefined, !1, !1, valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts)), unmaskedvalue(el); case "mask": !function(elem) { EventRuler.off(elem); var isSupported = function(input, opts) { var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "TEXTAREA" === input.tagName; if (!isSupported) if ("INPUT" === input.tagName) { var el = document.createElement("input"); el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null; } else isSupported = "partial"; return !1 !== isSupported ? function(npt) { var valueGet, valueSet; function getter() { return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this); } function setter(value) { valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue", [ value ]); } if (!npt.inputmask.__valueGet) { if (!0 !== opts.noValuePatching) { if (Object.getOwnPropertyDescriptor) { "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === _typeof("test".__proto__) ? function(object) { return object.__proto__; } : function(object) { return object.constructor.prototype; }); var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : undefined; valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get, valueSet = valueProperty.set, Object.defineProperty(npt, "value", { get: getter, set: setter, configurable: !0 })) : "INPUT" !== npt.tagName && (valueGet = function() { return this.textContent; }, valueSet = function(value) { this.textContent = value; }, Object.defineProperty(npt, "value", { get: getter, set: setter, configurable: !0 })); } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"), valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), npt.__defineSetter__("value", setter)); npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet; } npt.inputmask._valueGet = function(overruleRTL) { return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el); }, npt.inputmask._valueSet = function(value, overruleRTL) { valueSet.call(this.el, null === value || value === undefined ? "" : !0 !== overruleRTL && isRTL ? value.split("").reverse().join("") : value); }, valueGet === undefined && (valueGet = function() { return this.value; }, valueSet = function(value) { this.value = value; }, function(type) { if ($.valHooks && ($.valHooks[type] === undefined || !0 !== $.valHooks[type].inputmaskpatch)) { var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) { return elem.value; }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) { return elem.value = value, elem; }; $.valHooks[type] = { get: function(elem) { if (elem.inputmask) { if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue(); var result = valhookGet(elem); return -1 !== getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : ""; } return valhookGet(elem); }, set: function(elem, value) { var result, $elem = $(elem); return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue", [ value ]), result; }, inputmaskpatch: !0 }; } }(npt.type), function(npt) { EventRuler.on(npt, "mouseenter", function(event) { var $input = $(this); this.inputmask._valueGet() !== getBuffer().join("") && $input.trigger("setvalue"); }); }(npt)); } }(input) : input.inputmask = undefined, isSupported; }(elem, opts); if (!1 !== isSupported && ($el = $(el = elem), -1 === (maxLength = el !== undefined ? el.maxLength : undefined) && (maxLength = undefined), !0 === opts.colorMask && initializeColorMask(el), mobile && ("inputmode" in el && (el.inputmode = opts.inputmode, el.setAttribute("inputmode", opts.inputmode)), !0 === opts.disablePredictiveText && ("autocorrect" in el ? el.autocorrect = !1 : (!0 !== opts.colorMask && initializeColorMask(el), el.type = "password"))), !0 === isSupported && (EventRuler.on(el, "submit", EventHandlers.submitEvent), EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "blur", EventHandlers.blurEvent), EventRuler.on(el, "focus", EventHandlers.focusEvent), !0 !== opts.colorMask && (EventRuler.on(el, "click", EventHandlers.clickEvent), EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent), EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent)), EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent), EventRuler.on(el, "paste", EventHandlers.pasteEvent), EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent), EventRuler.on(el, "drop", EventHandlers.pasteEvent), EventRuler.on(el, "cut", EventHandlers.cutEvent), EventRuler.on(el, "complete", opts.oncomplete), EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared), mobile || !0 === opts.inputEventOnly ? el.removeAttribute("maxLength") : (EventRuler.on(el, "keydown", EventHandlers.keydownEvent), EventRuler.on(el, "keypress", EventHandlers.keypressEvent)), EventRuler.on(el, "compositionstart", $.noop), EventRuler.on(el, "compositionupdate", $.noop), EventRuler.on(el, "compositionend", $.noop), EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent), EventRuler.on(el, "beforeinput", EventHandlers.beforeInputEvent)), EventRuler.on(el, "setvalue", EventHandlers.setValueEvent), undoValue = getBufferTemplate().join(""), "" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || document.activeElement === el)) { var initialValue = $.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(!0), opts) || el.inputmask._valueGet(!0); "" !== initialValue && checkVal(el, !0, !1, initialValue.split("")); var buffer = getBuffer().slice(); undoValue = buffer.join(""), !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(), opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)), (!1 === opts.clearMaskOnLostFocus || opts.showMaskOnFocus && document.activeElement === el || "" !== el.inputmask._valueGet(!0)) && writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition())); } }(el); break; case "format": return valueBuffer = ($.isFunction(opts.onBeforeMask) && opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value).split(""), checkVal.call(this, undefined, !0, !1, valueBuffer), actionObj.metadata ? { value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""), metadata: maskScope.call(this, { action: "getmetadata" }, maskset, opts) } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""); case "isValid": actionObj.value ? (valueBuffer = actionObj.value.split(""), checkVal.call(this, undefined, !0, !0, valueBuffer)) : actionObj.value = getBuffer().join(""); for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ; return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(""); case "getemptymask": return getBufferTemplate().join(""); case "remove": if (el && el.inputmask) $.data(el, "_inputmask_opts", null), $el = $(el), el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)), EventRuler.off(el), el.inputmask.colorMask && ((colorMask = el.inputmask.colorMask).removeChild(el), colorMask.parentNode.insertBefore(el, colorMask), colorMask.parentNode.removeChild(colorMask)), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), "value") && el.inputmask.__valueGet && Object.defineProperty(el, "value", { get: el.inputmask.__valueGet, set: el.inputmask.__valueSet, configurable: !0 }) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet), el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = undefined; return el; case "getmetadata": if ($.isArray(maskset.metadata)) { var maskTarget = getMaskTemplate(!0, 0, !1).join(""); return $.each(maskset.metadata, function(ndx, mtdt) { if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1; }), maskTarget; } return maskset.metadata; } } return Inputmask.prototype = { dataAttribute: "data-inputmask", defaults: { placeholder: "_", optionalmarker: [ "[", "]" ], quantifiermarker: [ "{", "}" ], groupmarker: [ "(", ")" ], alternatormarker: "|", escapeChar: "\\", mask: null, regex: null, oncomplete: $.noop, onincomplete: $.noop, oncleared: $.noop, repeat: 0, greedy: !1, autoUnmask: !1, removeMaskOnSubmit: !1, clearMaskOnLostFocus: !0, insertMode: !0, clearIncomplete: !1, alias: null, onKeyDown: $.noop, onBeforeMask: null, onBeforePaste: function(pastedValue, opts) { return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue; }, onBeforeWrite: null, onUnMask: null, showMaskOnFocus: !0, showMaskOnHover: !0, onKeyValidation: $.noop, skipOptionalPartCharacter: " ", numericInput: !1, rightAlign: !1, undoOnEscape: !0, radixPoint: "", _radixDance: !1, groupSeparator: "", keepStatic: null, positionCaretOnTab: !0, tabThrough: !1, supportsInputType: [ "text", "tel", "password", "search" ], ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ], isComplete: null, preValidation: null, postValidation: null, staticDefinitionSymbol: undefined, jitMasking: !1, nullable: !0, inputEventOnly: !1, noValuePatching: !1, positionCaretOnClick: "lvp", casing: null, inputmode: "verbatim", colorMask: !1, disablePredictiveText: !1, importDataAttributes: !0 }, definitions: { 9: { validator: "[0-91-9]", definitionSymbol: "*" }, a: { validator: "[A-Za-zА-яЁёÀ-ÿµ]", definitionSymbol: "*" }, "*": { validator: "[0-91-9A-Za-zА-яЁёÀ-ÿµ]" } }, aliases: {}, masksCache: {}, mask: function(elems) { var that = this; return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) { var scopedOpts = $.extend(!0, {}, that.opts); if (function(npt, opts, userOptions, dataAttribute) { if (!0 === opts.importDataAttributes) { var option, dataoptions, optionData, p, importOption = function(option, optionData) { null !== (optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + "-" + option)) && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), userOptions[option] = optionData); }, attrOptions = npt.getAttribute(dataAttribute); if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(/'/g, '"'), dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) for (p in optionData = undefined, dataoptions) if ("alias" === p.toLowerCase()) { optionData = dataoptions[p]; break; } for (option in importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts), opts) { if (dataoptions) for (p in optionData = undefined, dataoptions) if (p.toLowerCase() === option.toLowerCase()) { optionData = dataoptions[p]; break; } importOption(option, optionData); } } return $.extend(!0, opts, userOptions), ("rtl" === npt.dir || opts.rightAlign) && (npt.style.textAlign = "right"), ("rtl" === npt.dir || opts.numericInput) && (npt.dir = "ltr", npt.removeAttribute("dir"), opts.isRTL = !0), Object.keys(userOptions).length; }(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute)) { var maskset = generateMaskSet(scopedOpts, that.noMasksCache); maskset !== undefined && (el.inputmask !== undefined && (el.inputmask.opts.autoUnmask = !0, el.inputmask.remove()), el.inputmask = new Inputmask(undefined, undefined, !0), el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput, el.inputmask.el = el, el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", scopedOpts), maskScope.call(el.inputmask, { action: "mask" })); } }), elems && elems[0] && elems[0].inputmask || this; }, option: function(options, noremask) { return "string" == typeof options ? this.opts[options] : "object" === (void 0 === options ? "undefined" : _typeof(options)) ? ($.extend(this.userOptions, options), this.el && !0 !== noremask && this.mask(this.el), this) : void 0; }, unmaskedvalue: function(value) { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "unmaskedvalue", value: value }); }, remove: function() { return maskScope.call(this, { action: "remove" }); }, getemptymask: function() { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "getemptymask" }); }, hasMaskedValue: function() { return !this.opts.autoUnmask; }, isComplete: function() { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "isComplete" }); }, getmetadata: function() { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "getmetadata" }); }, isValid: function(value) { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "isValid", value: value }); }, format: function(value, metadata) { return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache), maskScope.call(this, { action: "format", value: value, metadata: metadata }); }, setValue: function(value) { this.el && $(this.el).trigger("setvalue", [ value ]); }, analyseMask: function(mask, regexMask, opts) { var match, m, openingToken, currentOpeningToken, alternator, lastMatch, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?(?:\|[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, regexTokenizer = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = []; function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) { this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, this.quantifier = { min: 1, max: 1 }; } function insertTestDefinition(mtoken, element, position) { position = position !== undefined ? position : mtoken.matches.length; var prevMatch = mtoken.matches[position - 1]; if (regexMask) 0 === element.indexOf("[") || escaped && /\\d|\\s|\\w]/i.test(element) || "." === element ? mtoken.matches.splice(position++, 0, { fn: new RegExp(element, opts.casing ? "i" : ""), optionality: !1, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== element, casing: null, def: element, placeholder: undefined, nativeDef: element }) : (escaped && (element = element[element.length - 1]), $.each(element.split(""), function(ndx, lmnt) { prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, { fn: null, optionality: !1, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== lmnt && null !== prevMatch.fn, casing: null, def: opts.staticDefinitionSymbol || lmnt, placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined, nativeDef: (escaped ? "'" : "") + lmnt }); })), escaped = !1; else { var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element]; maskdef && !escaped ? mtoken.matches.splice(position++, 0, { fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? "i" : "") : new function() { this.test = maskdef.validator; }() : new RegExp("."), optionality: !1, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== (maskdef.definitionSymbol || element), casing: maskdef.casing, def: maskdef.definitionSymbol || element, placeholder: maskdef.placeholder, nativeDef: element }) : (mtoken.matches.splice(position++, 0, { fn: null, optionality: !1, newBlockMarker: prevMatch === undefined ? "master" : prevMatch.def !== element && null !== prevMatch.fn, casing: null, def: opts.staticDefinitionSymbol || element, placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined, nativeDef: (escaped ? "'" : "") + element }), escaped = !1); } } function defaultCase() { if (openenings.length > 0) { if (insertTestDefinition(currentOpeningToken = openenings[openenings.length - 1], m), currentOpeningToken.isAlternator) { alternator = openenings.pop(); for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup && (alternator.matches[mndx].isGroup = !1); openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator); } } else insertTestDefinition(currentToken, m); } function groupify(matches) { var groupToken = new MaskToken(!0); return groupToken.openGroup = !1, groupToken.matches = matches, groupToken; } for (regexMask && (opts.optionalmarker[0] = undefined, opts.optionalmarker[1] = undefined); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) { if (m = match[0], regexMask) switch (m.charAt(0)) { case "?": m = "{0,1}"; break; case "+": case "*": m = "{" + m + "}"; } if (escaped) defaultCase(); else switch (m.charAt(0)) { case "(?=": case "(?!": case "(?<=": case "(? 0) { if ((currentOpeningToken = openenings[openenings.length - 1]).matches.push(openingToken), currentOpeningToken.isAlternator) { alternator = openenings.pop(); for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1, alternator.matches[mndx].alternatorGroup = !1; openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator); } } else currentToken.matches.push(openingToken); else defaultCase(); break; case opts.optionalmarker[0]: openenings.push(new MaskToken(!1, !0)); break; case opts.groupmarker[0]: openenings.push(new MaskToken(!0)); break; case opts.quantifiermarker[0]: var quantifier = new MaskToken(!1, !1, !0), mqj = (m = m.replace(/[{}]/g, "")).split("|"), mq = mqj[0].split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); "*" !== mq0 && "+" !== mq0 || (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = { min: mq0, max: mq1, jit: mqj[1] }; var matches = openenings.length > 0 ? openenings[openenings.length - 1].matches : currentToken.matches; if ((match = matches.pop()).isAlternator) { matches.push(match), matches = match.matches; var groupToken = new MaskToken(!0), tmpMatch = matches.pop(); matches.push(groupToken), matches = groupToken.matches, match = tmpMatch; } match.isGroup || (match = groupify([ match ])), matches.push(match), matches.push(quantifier); break; case opts.alternatormarker: var groupQuantifier = function(matches) { var lastMatch = matches.pop(); return lastMatch.isQuantifier && (lastMatch = groupify([ matches.pop(), lastMatch ])), lastMatch; }; if (openenings.length > 0) { var subToken = (currentOpeningToken = openenings[openenings.length - 1]).matches[currentOpeningToken.matches.length - 1]; lastMatch = currentOpeningToken.openGroup && (subToken.matches === undefined || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : groupQuantifier(currentOpeningToken.matches); } else lastMatch = groupQuantifier(currentToken.matches); if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(), lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch), openenings.push(alternator), lastMatch.openGroup) { lastMatch.openGroup = !1; var alternatorGroup = new MaskToken(!0); alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup); } break; default: defaultCase(); } } for (;openenings.length > 0; ) openingToken = openenings.pop(), currentToken.matches.push(openingToken); return currentToken.matches.length > 0 && (!function verifyGroupMarker(maskToken) { maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) { var nextToken = maskToken.matches[ndx + 1]; (nextToken === undefined || nextToken.matches === undefined || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1, regexMask || (insertTestDefinition(token, opts.groupmarker[0], 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker[1]))), verifyGroupMarker(token); }); }(currentToken), maskTokens.push(currentToken)), (opts.numericInput || opts.isRTL) && function reverseTokens(maskToken) { for (var match in maskToken.matches = maskToken.matches.reverse(), maskToken.matches) if (maskToken.matches.hasOwnProperty(match)) { var intMatch = parseInt(match); if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) { var qt = maskToken.matches[match]; maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt); } maskToken.matches[match].matches !== undefined ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = ((st = maskToken.matches[match]) === opts.optionalmarker[0] ? st = opts.optionalmarker[1] : st === opts.optionalmarker[1] ? st = opts.optionalmarker[0] : st === opts.groupmarker[0] ? st = opts.groupmarker[1] : st === opts.groupmarker[1] && (st = opts.groupmarker[0]), st); } var st; return maskToken; }(maskTokens[0]), maskTokens; } }, Inputmask.extendDefaults = function(options) { $.extend(!0, Inputmask.prototype.defaults, options); }, Inputmask.extendDefinitions = function(definition) { $.extend(!0, Inputmask.prototype.definitions, definition); }, Inputmask.extendAliases = function(alias) { $.extend(!0, Inputmask.prototype.aliases, alias); }, Inputmask.format = function(value, options, metadata) { return Inputmask(options).format(value, metadata); }, Inputmask.unmask = function(value, options) { return Inputmask(options).unmaskedvalue(value); }, Inputmask.isValid = function(value, options) { return Inputmask(options).isValid(value); }, Inputmask.remove = function(elems) { "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) { el.inputmask && el.inputmask.remove(); }); }, Inputmask.setValue = function(elems, value) { "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) { el.inputmask ? el.inputmask.setValue(value) : $(el).trigger("setvalue", [ value ]); }); }, Inputmask.escapeRegex = function(str) { return str.replace(new RegExp("(\\" + [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ].join("|\\") + ")", "gim"), "\\$1"); }, Inputmask.keyCode = { BACKSPACE: 8, BACKSPACE_SAFARI: 127, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38, X: 88, CONTROL: 17 }, Inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(5), __webpack_require__(6) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports) { module.exports = jQuery; }, function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(4), __webpack_require__(7), __webpack_require__(8), __webpack_require__(9); var _inputmask2 = _interopRequireDefault(__webpack_require__(1)), _inputmask4 = _interopRequireDefault(__webpack_require__(0)), _jquery2 = _interopRequireDefault(__webpack_require__(2)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _inputmask4.default === _jquery2.default && __webpack_require__(10), window.Inputmask = _inputmask2.default; }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, factory; "function" == typeof Symbol && Symbol.iterator; factory = function($, Inputmask) { var formatCode = { d: [ "[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", Date.prototype.getDate ], dd: [ "0[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", function() { return pad(Date.prototype.getDate.call(this), 2); } ], ddd: [ "" ], dddd: [ "" ], m: [ "[1-9]|1[012]", Date.prototype.setMonth, "month", function() { return Date.prototype.getMonth.call(this) + 1; } ], mm: [ "0[1-9]|1[012]", Date.prototype.setMonth, "month", function() { return pad(Date.prototype.getMonth.call(this) + 1, 2); } ], mmm: [ "" ], mmmm: [ "" ], yy: [ "[0-9]{2}", Date.prototype.setFullYear, "year", function() { return pad(Date.prototype.getFullYear.call(this), 2); } ], yyyy: [ "[0-9]{4}", Date.prototype.setFullYear, "year", function() { return pad(Date.prototype.getFullYear.call(this), 4); } ], h: [ "[1-9]|1[0-2]", Date.prototype.setHours, "hours", Date.prototype.getHours ], hh: [ "0[1-9]|1[0-2]", Date.prototype.setHours, "hours", function() { return pad(Date.prototype.getHours.call(this), 2); } ], hhh: [ "[0-9]+", Date.prototype.setHours, "hours", Date.prototype.getHours ], H: [ "1?[0-9]|2[0-3]", Date.prototype.setHours, "hours", Date.prototype.getHours ], HH: [ "[01][0-9]|2[0-3]", Date.prototype.setHours, "hours", function() { return pad(Date.prototype.getHours.call(this), 2); } ], HHH: [ "[0-9]+", Date.prototype.setHours, "hours", Date.prototype.getHours ], M: [ "[1-5]?[0-9]", Date.prototype.setMinutes, "minutes", Date.prototype.getMinutes ], MM: [ "[0-5][0-9]", Date.prototype.setMinutes, "minutes", function() { return pad(Date.prototype.getMinutes.call(this), 2); } ], s: [ "[1-5]?[0-9]", Date.prototype.setSeconds, "seconds", Date.prototype.getSeconds ], ss: [ "[0-5][0-9]", Date.prototype.setSeconds, "seconds", function() { return pad(Date.prototype.getSeconds.call(this), 2); } ], l: [ "[0-9]{3}", Date.prototype.setMilliseconds, "milliseconds", function() { return pad(Date.prototype.getMilliseconds.call(this), 3); } ], L: [ "[0-9]{2}", Date.prototype.setMilliseconds, "milliseconds", function() { return pad(Date.prototype.getMilliseconds.call(this), 2); } ], t: [ "[ap]" ], tt: [ "[ap]m" ], T: [ "[AP]" ], TT: [ "[AP]M" ], Z: [ "" ], o: [ "" ], S: [ "" ] }, formatAlias = { isoDate: "yyyy-mm-dd", isoTime: "HH:MM:ss", isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" }; function getTokenizer(opts) { if (!opts.tokenizer) { var tokens = []; for (var ndx in formatCode) -1 === tokens.indexOf(ndx[0]) && tokens.push(ndx[0]); opts.tokenizer = "(" + tokens.join("+|") + ")+?|.", opts.tokenizer = new RegExp(opts.tokenizer, "g"); } return opts.tokenizer; } function parse(format, dateObjValue, opts) { for (var match, mask = ""; match = getTokenizer(opts).exec(format); ) { if (void 0 === dateObjValue) if (formatCode[match[0]]) mask += "(" + formatCode[match[0]][0] + ")"; else switch (match[0]) { case "[": mask += "("; break; case "]": mask += ")?"; break; default: mask += Inputmask.escapeRegex(match[0]); } else if (formatCode[match[0]]) mask += formatCode[match[0]][3].call(dateObjValue.date); else mask += match[0]; } return mask; } function pad(val, len) { for (val = String(val), len = len || 2; val.length < len; ) val = "0" + val; return val; } function analyseMask(maskString, format, opts) { var targetProp, match, dateOperation, dateObj = { date: new Date(1, 0, 1) }, mask = maskString; function extendYear(year) { var correctedyear = 4 === year.length ? year : new Date().getFullYear().toString().substr(0, 4 - year.length) + year; return opts.min && opts.min.year && opts.max && opts.max.year ? (correctedyear = correctedyear.replace(/[^0-9]/g, ""), correctedyear += opts.min.year == opts.max.year ? opts.min.year.substr(correctedyear.length) : ("" !== correctedyear && 0 == opts.max.year.indexOf(correctedyear) ? parseInt(opts.max.year) - 1 : parseInt(opts.min.year) + 1).toString().substr(correctedyear.length)) : correctedyear = correctedyear.replace(/[^0-9]/g, "0"), correctedyear; } function setValue(dateObj, value, opts) { "year" === targetProp ? (dateObj[targetProp] = extendYear(value), dateObj["raw" + targetProp] = value) : dateObj[targetProp] = opts.min && value.match(/[^0-9]/) ? opts.min[targetProp] : value, void 0 !== dateOperation && dateOperation.call(dateObj.date, "month" == targetProp ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]); } if ("string" == typeof mask) { for (;match = getTokenizer(opts).exec(format); ) { var value = mask.slice(0, match[0].length); formatCode.hasOwnProperty(match[0]) && (targetProp = formatCode[match[0]][2], dateOperation = formatCode[match[0]][1], setValue(dateObj, value, opts)), mask = mask.slice(value.length); } return dateObj; } } return Inputmask.extendAliases({ datetime: { mask: function(opts) { return formatCode.S = opts.i18n.ordinalSuffix.join("|"), opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat, opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat, opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat, opts.placeholder = "" !== opts.placeholder ? opts.placeholder : opts.inputFormat.replace(/[\[\]]/, ""), opts.min = analyseMask(opts.min, opts.inputFormat, opts), opts.max = analyseMask(opts.max, opts.inputFormat, opts), opts.regex = parse(opts.inputFormat, void 0, opts), null; }, placeholder: "", inputFormat: "isoDateTime", displayFormat: void 0, outputFormat: void 0, min: null, max: null, i18n: { dayNames: [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], ordinalSuffix: [ "st", "nd", "rd", "th" ] }, postValidation: function(buffer, currentResult, opts) { var result = currentResult, dateParts = analyseMask(buffer.join(""), opts.inputFormat, opts); return result && dateParts.date.getTime() == dateParts.date.getTime() && (result = (result = function(dateParts, currentResult) { return (!isFinite(dateParts.day) || "29" == dateParts.day && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.month) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day) && currentResult; }(dateParts, result)) && function(dateParts, opts) { var result = !0; return opts.min && opts.min.date.getTime() == opts.min.date.getTime() && (result = opts.min.date.getTime() <= dateParts.date.getTime()), result && opts.max && opts.max.date.getTime() == opts.max.date.getTime() && (result = opts.max.date.getTime() >= dateParts.date.getTime()), result; }(dateParts, opts)), result; }, onKeyDown: function(e, buffer, caretPos, opts) { if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { for (var match, today = new Date(), date = ""; match = getTokenizer(opts).exec(opts.inputFormat); ) "d" === match[0].charAt(0) ? date += pad(today.getDate(), match[0].length) : "m" === match[0].charAt(0) ? date += pad(today.getMonth() + 1, match[0].length) : "yyyy" === match[0] ? date += today.getFullYear().toString() : "y" === match[0].charAt(0) && (date += pad(today.getYear(), match[0].length)); this.inputmask._valueSet(date), $(this).trigger("setvalue"); } }, onUnMask: function(maskedValue, unmaskedValue, opts) { return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts); }, casing: function(elem, test, pos, validPositions) { return 0 == test.nativeDef.indexOf("[ap]") ? elem.toLowerCase() : 0 == test.nativeDef.indexOf("[AP]") ? elem.toUpperCase() : elem; }, insertMode: !1 } }), Inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_RESULT__; "function" == typeof Symbol && Symbol.iterator; void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { return window; }.call(exports, __webpack_require__, exports, module)) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_RESULT__; "function" == typeof Symbol && Symbol.iterator; void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = function() { return document; }.call(exports, __webpack_require__, exports, module)) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, factory; "function" == typeof Symbol && Symbol.iterator; factory = function($, Inputmask) { return Inputmask.extendDefinitions({ A: { validator: "[A-Za-zА-яЁёÀ-ÿµ]", casing: "upper" }, "&": { validator: "[0-9A-Za-zА-яЁёÀ-ÿµ]", casing: "upper" }, "#": { validator: "[0-9A-Fa-f]", casing: "upper" } }), Inputmask.extendAliases({ cssunit: { regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)" }, url: { regex: "(https?|ftp)//.*", autoUnmask: !1 }, ip: { mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]", definitions: { i: { validator: function(chrs, maskset, pos, strict, opts) { return pos - 1 > -1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, chrs = pos - 2 > -1 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs, new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); } } }, onUnMask: function(maskedValue, unmaskedValue, opts) { return maskedValue; }, inputmode: "numeric" }, email: { mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]", greedy: !1, casing: "lower", onBeforePaste: function(pastedValue, opts) { return (pastedValue = pastedValue.toLowerCase()).replace("mailto:", ""); }, definitions: { "*": { validator: "[0-91-9A-Za-zА-яЁёÀ-ÿµ!#$%&'*+/=?^_`{|}~-]" }, "-": { validator: "[0-9A-Za-z-]" } }, onUnMask: function(maskedValue, unmaskedValue, opts) { return maskedValue; }, inputmode: "email" }, mac: { mask: "##:##:##:##:##:##" }, vin: { mask: "V{13}9{4}", definitions: { V: { validator: "[A-HJ-NPR-Za-hj-npr-z\\d]", casing: "upper" } }, clearIncomplete: !0, autoUnmask: !0 } }), Inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, factory; "function" == typeof Symbol && Symbol.iterator; factory = function($, Inputmask, undefined) { function autoEscape(txt, opts) { for (var escapedTxt = "", i = 0; i < txt.length; i++) Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += "\\" + txt.charAt(i) : escapedTxt += txt.charAt(i); return escapedTxt; } return Inputmask.extendAliases({ numeric: { mask: function(opts) { if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat), opts.repeat = 0, opts.groupSeparator === opts.radixPoint && opts.digits && "0" !== opts.digits && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""), " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = undefined), opts.autoGroup = opts.autoGroup && "" !== opts.groupSeparator, opts.autoGroup && ("string" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)), isFinite(opts.integerDigits))) { var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize; opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps), opts.integerDigits < 1 && (opts.integerDigits = "*"); } opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)), "radixFocus" === opts.positionCaretOnClick && "" === opts.placeholder && !1 === opts.integerOptional && (opts.positionCaretOnClick = "lvp"), opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~", !0 === opts.numericInput && (opts.positionCaretOnClick = "radixFocus" === opts.positionCaretOnClick ? "lvp" : opts.positionCaretOnClick, opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts.decimalProtect = !1); var mask = "[+]"; if (mask += autoEscape(opts.prefix, opts), !0 === opts.integerOptional ? mask += "~{1," + opts.integerDigits + "}" : mask += "~{" + opts.integerDigits + "}", opts.digits !== undefined) { var radixDef = opts.decimalProtect ? ":" : opts.radixPoint, dq = opts.digits.toString().split(","); isFinite(dq[0]) && dq[1] && isFinite(dq[1]) ? mask += radixDef + ";{" + opts.digits + "}" : (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (opts.digitsOptional ? mask += "[" + radixDef + ";{1," + opts.digits + "}]" : mask += radixDef + ";{" + opts.digits + "}"); } return mask += autoEscape(opts.suffix, opts), mask += "[-]", opts.greedy = !1, mask; }, placeholder: "", greedy: !1, digits: "*", digitsOptional: !0, enforceDigitsOnBlur: !1, radixPoint: ".", positionCaretOnClick: "radixFocus", groupSize: 3, groupSeparator: "", autoGroup: !1, allowMinus: !0, negationSymbol: { front: "-", back: "" }, integerDigits: "+", integerOptional: !0, prefix: "", suffix: "", rightAlign: !0, decimalProtect: !0, min: null, max: null, step: 1, insertMode: !0, autoUnmask: !1, unmaskAsNumber: !1, inputmode: "numeric", preValidation: function(buffer, pos, c, isSelection, opts, maskset) { if ("-" === c || c === opts.negationSymbol.front) return !0 === opts.allowMinus && (opts.isNegative = opts.isNegative === undefined || !opts.isNegative, "" === buffer.join("") || { caret: pos, dopost: !0 }); if (!1 === isSelection && c === opts.radixPoint && opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0)) { var radixPos = $.inArray(opts.radixPoint, buffer); if (-1 !== radixPos && maskset.validPositions[radixPos] !== undefined) return !0 === opts.numericInput ? pos === radixPos : { caret: radixPos + 1 }; } return !0; }, postValidation: function(buffer, currentResult, opts) { var suffix = opts.suffix.split(""), prefix = opts.prefix.split(""); if (currentResult.pos === undefined && currentResult.caret !== undefined && !0 !== currentResult.dopost) return currentResult; var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos, maskedValue = buffer.slice(); opts.numericInput && (caretPos = maskedValue.length - caretPos - 1, maskedValue = maskedValue.reverse()); var charAtPos = maskedValue[caretPos]; if (charAtPos === opts.groupSeparator && (charAtPos = maskedValue[caretPos += 1]), caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult; charAtPos !== undefined && charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back && (maskedValue[caretPos] = "?", opts.prefix.length > 0 && caretPos >= (!1 === opts.isNegative ? 1 : 0) && caretPos < opts.prefix.length - 1 + (!1 === opts.isNegative ? 1 : 0) ? prefix[caretPos - (!1 === opts.isNegative ? 1 : 0)] = "?" : opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0) && (suffix[caretPos - (maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0))] = "?")), prefix = prefix.join(""), suffix = suffix.join(""); var processValue = maskedValue.join("").replace(prefix, ""); if (processValue = (processValue = (processValue = (processValue = processValue.replace(suffix, "")).replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), "")).replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), "")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""), isNaN(opts.placeholder) && (processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), "g"), "")), processValue.length > 1 && 1 !== processValue.indexOf(opts.radixPoint) && ("0" === charAtPos && (processValue = processValue.replace(/^\?/g, "")), processValue = processValue.replace(/^0/g, "")), processValue.charAt(0) === opts.radixPoint && "" !== opts.radixPoint && !0 !== opts.numericInput && (processValue = "0" + processValue), "" !== processValue) { if (processValue = processValue.split(""), (!opts.digitsOptional || opts.enforceDigitsOnBlur && "blur" === currentResult.event) && isFinite(opts.digits)) { var radixPosition = $.inArray(opts.radixPoint, processValue), rpb = $.inArray(opts.radixPoint, maskedValue); -1 === radixPosition && (processValue.push(opts.radixPoint), radixPosition = processValue.length - 1); for (var i = 1; i <= opts.digits; i++) opts.digitsOptional && (!opts.enforceDigitsOnBlur || "blur" !== currentResult.event) || processValue[radixPosition + i] !== undefined && processValue[radixPosition + i] !== opts.placeholder.charAt(0) ? -1 !== rpb && maskedValue[rpb + i] !== undefined && (processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i]) : processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0); } if (!0 !== opts.autoGroup || "" === opts.groupSeparator || charAtPos === opts.radixPoint && currentResult.pos === undefined && !currentResult.dopost) processValue = processValue.join(""); else { var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint; processValue = Inputmask(function(buffer, opts) { var postMask = ""; if (postMask += "(" + opts.groupSeparator + "*{" + opts.groupSize + "}){*}", "" !== opts.radixPoint) { var radixSplit = buffer.join("").split(opts.radixPoint); radixSplit[1] && (postMask += opts.radixPoint + "*{" + radixSplit[1].match(/^\d*\??\d*/)[0].length + "}"); } return postMask; }(processValue, opts), { numericInput: !0, jitMasking: !0, definitions: { "*": { validator: "[0-9?]", cardinality: 1 } } }).format(processValue.join("")), addRadix && (processValue += opts.radixPoint), processValue.charAt(0) === opts.groupSeparator && processValue.substr(1); } } if (opts.isNegative && "blur" === currentResult.event && (opts.isNegative = "0" !== processValue), processValue = prefix + processValue, processValue += suffix, opts.isNegative && (processValue = opts.negationSymbol.front + processValue, processValue += opts.negationSymbol.back), processValue = processValue.split(""), charAtPos !== undefined) if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) (caretPos = $.inArray("?", processValue)) > -1 ? processValue[caretPos] = charAtPos : caretPos = currentResult.caret || 0; else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) { var newCaretPos = $.inArray(charAtPos, processValue); -1 !== newCaretPos && (caretPos = newCaretPos); } opts.numericInput && (caretPos = processValue.length - caretPos - 1, processValue = processValue.reverse()); var rslt = { caret: charAtPos === undefined || currentResult.pos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos, buffer: processValue, refreshFromBuffer: currentResult.dopost || buffer.join("") !== processValue.join("") }; return rslt.refreshFromBuffer ? rslt : currentResult; }, onBeforeWrite: function(e, buffer, caretPos, opts) { if (e) switch (e.type) { case "keydown": return opts.postValidation(buffer, { caret: caretPos, dopost: !0 }, opts); case "blur": case "checkval": var unmasked; if (function(opts) { opts.parseMinMaxOptions === undefined && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), "," === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, ".")), opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)), null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), "," === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, ".")), opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)), opts.parseMinMaxOptions = "done"); }(opts), null !== opts.min || null !== opts.max) { if (unmasked = opts.onUnMask(buffer.join(""), undefined, $.extend({}, opts, { unmaskAsNumber: !0 })), null !== opts.min && unmasked < opts.min) return opts.isNegative = opts.min < 0, opts.postValidation(opts.min.toString().replace(".", opts.radixPoint).split(""), { caret: caretPos, dopost: !0, placeholder: "0" }, opts); if (null !== opts.max && unmasked > opts.max) return opts.isNegative = opts.max < 0, opts.postValidation(opts.max.toString().replace(".", opts.radixPoint).split(""), { caret: caretPos, dopost: !0, placeholder: "0" }, opts); } return opts.postValidation(buffer, { caret: caretPos, placeholder: "0", event: "blur" }, opts); case "_checkval": return { caret: caretPos }; } }, regex: { integerPart: function(opts, emptyCheck) { return emptyCheck ? new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?") : new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?\\d+"); }, integerNPart: function(opts) { return new RegExp("[\\d" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + "]+"); } }, definitions: { "~": { validator: function(chrs, maskset, pos, strict, opts, isSelection) { var isValid; if ("k" === chrs || "m" === chrs) { isValid = { insert: [], c: 0 }; for (var i = 0, l = "k" === chrs ? 2 : 5; i < l; i++) isValid.insert.push({ pos: pos + i, c: 0 }); return isValid.pos = pos + l, isValid; } if (!0 === (isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs))) { if (!0 !== opts.numericInput && maskset.validPositions[pos] !== undefined && "~" === maskset.validPositions[pos].match.def && !isSelection) { var processValue = maskset.buffer.join(""), pvRadixSplit = (processValue = (processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), "")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "")).split(opts.radixPoint); pvRadixSplit.length > 1 && (pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0))), "0" === pvRadixSplit[0] && (pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0))), processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || ""; var bufferTemplate = maskset._buffer.join(""); for (processValue === opts.radixPoint && (processValue = bufferTemplate); null === processValue.match(Inputmask.escapeRegex(bufferTemplate) + "$"); ) bufferTemplate = bufferTemplate.slice(1); isValid = (processValue = (processValue = processValue.replace(bufferTemplate, "")).split(""))[pos] === undefined ? { pos: pos, remove: pos } : { pos: pos }; } } else strict || chrs !== opts.radixPoint || maskset.validPositions[pos - 1] !== undefined || (isValid = { insert: { pos: pos, c: 0 }, pos: pos + 1 }); return isValid; }, cardinality: 1 }, "+": { validator: function(chrs, maskset, pos, strict, opts) { return opts.allowMinus && ("-" === chrs || chrs === opts.negationSymbol.front); }, cardinality: 1, placeholder: "" }, "-": { validator: function(chrs, maskset, pos, strict, opts) { return opts.allowMinus && chrs === opts.negationSymbol.back; }, cardinality: 1, placeholder: "" }, ":": { validator: function(chrs, maskset, pos, strict, opts) { var radix = "[" + Inputmask.escapeRegex(opts.radixPoint) + "]", isValid = new RegExp(radix).test(chrs); return isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = { caret: pos + 1 }), isValid; }, cardinality: 1, placeholder: function(opts) { return opts.radixPoint; } } }, onUnMask: function(maskedValue, unmaskedValue, opts) { if ("" === unmaskedValue && !0 === opts.nullable) return unmaskedValue; var processValue = maskedValue.replace(opts.prefix, ""); return processValue = (processValue = processValue.replace(opts.suffix, "")).replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), "" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), "g"), "0")), opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")), processValue = (processValue = processValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""), Number(processValue)) : processValue; }, isComplete: function(buffer, opts) { var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(""); return maskedValue = (maskedValue = (maskedValue = (maskedValue = (maskedValue = maskedValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "")).replace(opts.prefix, "")).replace(opts.suffix, "")).replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + "([0-9]{3})", "g"), "$1"), "," === opts.radixPoint && (maskedValue = maskedValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), isFinite(maskedValue); }, onBeforeMask: function(initialValue, opts) { if (opts.isNegative = undefined, "number" == typeof initialValue && "" !== opts.radixPoint && (initialValue = initialValue.toString().replace(".", opts.radixPoint)), initialValue = initialValue.toString().charAt(initialValue.length - 1) === opts.radixPoint ? initialValue.toString().substr(0, initialValue.length - 1) : initialValue.toString(), "" !== opts.radixPoint && isFinite(initialValue)) { var vs = initialValue.split("."), groupSize = "" !== opts.groupSeparator ? parseInt(opts.groupSize) : 0; 2 === vs.length && (vs[0].length > groupSize || vs[1].length > groupSize || vs[0].length <= groupSize && vs[1].length < groupSize) && (initialValue = initialValue.replace(".", opts.radixPoint)); } var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\./g); if (initialValue = dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, "")).replace(",", opts.radixPoint) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, "")).replace(".", opts.radixPoint) : initialValue.indexOf(".") < initialValue.indexOf(",") ? initialValue.replace(/\./g, "") : initialValue.replace(/,/g, "") : initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), 0 === opts.digits && (-1 !== initialValue.indexOf(".") ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : -1 !== initialValue.indexOf(",") && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))), "" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) { var decPart = initialValue.split(opts.radixPoint)[1].match(new RegExp("\\d*"))[0]; if (parseInt(opts.digits) < decPart.toString().length) { var digitsFactor = Math.pow(10, parseInt(opts.digits)); initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."), initialValue = (initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor).toString().replace(".", opts.radixPoint); } } return function(buffer, opts) { var radixPosition = $.inArray(opts.radixPoint, buffer); -1 === radixPosition && (buffer.push(opts.radixPoint), radixPosition = buffer.length - 1); for (var i = 1; i <= opts.digits; i++) buffer[radixPosition + i] = buffer[radixPosition + i] || "0"; return buffer; }(initialValue.toString().split(""), opts).join(""); }, onKeyDown: function(e, buffer, caretPos, opts) { var $input = $(this); if (e.ctrlKey) switch (e.keyCode) { case Inputmask.keyCode.UP: $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue"); break; case Inputmask.keyCode.DOWN: $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue"); } } }, currency: { prefix: "$ ", groupSeparator: ",", alias: "numeric", placeholder: "0", autoGroup: !0, digits: 2, digitsOptional: !1, clearMaskOnLostFocus: !1 }, decimal: { alias: "numeric" }, integer: { alias: "numeric", digits: 0, radixPoint: "" }, percentage: { alias: "numeric", digits: 2, digitsOptional: !0, radixPoint: ".", placeholder: "0", autoGroup: !1, min: 0, max: 100, suffix: " %", allowMinus: !1 } }), Inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, factory; "function" == typeof Symbol && Symbol.iterator; factory = function($, Inputmask) { function maskSort(a, b) { var maska = (a.mask || a).replace(/#/g, "0").replace(/\)/, "0").replace(/[+()#-]/g, ""), maskb = (b.mask || b).replace(/#/g, "0").replace(/\)/, "0").replace(/[+()#-]/g, ""); return maska.localeCompare(maskb); } var analyseMaskBase = Inputmask.prototype.analyseMask; return Inputmask.prototype.analyseMask = function(mask, regexMask, opts) { var maskGroups = {}; return opts.phoneCodes && (opts.phoneCodes && opts.phoneCodes.length > 1e3 && (function reduceVariations(masks, previousVariation, previousmaskGroup) { previousVariation = previousVariation || "", previousmaskGroup = previousmaskGroup || maskGroups, "" !== previousVariation && (previousmaskGroup[previousVariation] = {}); for (var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup, i = masks.length - 1; i >= 0; i--) maskGroup[variation = (mask = masks[i].mask || masks[i]).substr(0, 1)] = maskGroup[variation] || [], maskGroup[variation].unshift(mask.substr(1)), masks.splice(i, 1); for (var ndx in maskGroup) maskGroup[ndx].length > 500 && reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup); }((mask = mask.substr(1, mask.length - 2)).split(opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0])), mask = function rebuild(maskGroup) { var mask = "", submasks = []; for (var ndx in maskGroup) $.isArray(maskGroup[ndx]) ? 1 === maskGroup[ndx].length ? submasks.push(ndx + maskGroup[ndx]) : submasks.push(ndx + opts.groupmarker[0] + maskGroup[ndx].join(opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]) + opts.groupmarker[1]) : submasks.push(ndx + rebuild(maskGroup[ndx])); return 1 === submasks.length ? mask += submasks[0] : mask += opts.groupmarker[0] + submasks.join(opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0]) + opts.groupmarker[1], mask; }(maskGroups)), mask = mask.replace(/9/g, "\\9")), analyseMaskBase.call(this, mask, regexMask, opts); }, Inputmask.extendAliases({ abstractphone: { groupmarker: [ "<", ">" ], countrycode: "", phoneCodes: [], keepStatic: "auto", mask: function(opts) { return opts.definitions = { "#": Inputmask.prototype.definitions[9] }, opts.phoneCodes.sort(maskSort); }, onBeforeMask: function(value, opts) { var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, ""); return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue), processedValue; }, onUnMask: function(maskedValue, unmaskedValue, opts) { return maskedValue.replace(/[()#-]/g, ""); }, inputmode: "tel" } }), Inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); }, function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, factory, _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { return typeof obj; } : function(obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; factory = function($, Inputmask) { return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) { var nptmask, input = this[0]; if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) { case "unmaskedvalue": return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val(); case "remove": return this.each(function() { this.inputmask && this.inputmask.remove(); }); case "getemptymask": return input && input.inputmask ? input.inputmask.getemptymask() : ""; case "hasMaskedValue": return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue(); case "isComplete": return !input || !input.inputmask || input.inputmask.isComplete(); case "getmetadata": return input && input.inputmask ? input.inputmask.getmetadata() : void 0; case "setvalue": Inputmask.setValue(input, options); break; case "option": if ("string" != typeof options) return this.each(function() { if (void 0 !== this.inputmask) return this.inputmask.option(options); }); if (input && void 0 !== input.inputmask) return input.inputmask.option(options); break; default: return options.alias = fn, nptmask = new Inputmask(options), this.each(function() { nptmask.mask(this); }); } else { if ("object" == (void 0 === fn ? "undefined" : _typeof(fn))) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() { if (void 0 !== this.inputmask) return this.inputmask.option(fn); nptmask.mask(this); }) : this.each(function() { nptmask.mask(this); }); if (void 0 === fn) return this.each(function() { (nptmask = new Inputmask(options)).mask(this); }); } }), $.fn.inputmask; }, __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(2), __webpack_require__(1) ], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__); } ]);PK\WQ\2assets/js/inputmask/jquery.inputmask.bundle.min.jsnuW+A/*! * jquery.inputmask.bundle.js * https://github.com/RobinHerbots/Inputmask * Copyright (c) 2010 - 2018 Robin Herbots * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) * Version: 4.0.0-beta.58 */ !function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator,o=function(e){return e},a=[n(2)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};o=function(e,t,n,i){function a(t,n,o){if(!(this instanceof a))return new a(t,n,o);this.el=i,this.events={},this.maskset=i,this.refreshValue=!1,!0!==o&&(e.isPlainObject(t)?n=t:(n=n||{},t&&(n.alias=t)),this.opts=e.extend(!0,{},this.defaults,n),this.noMasksCache=n&&n.definitions!==i,this.userOptions=n||{},this.isRTL=this.opts.numericInput,r(this.opts.alias,n,this.opts))}function r(t,n,o){var s=a.prototype.aliases[t];return s?(s.alias&&r(s.alias,i,o),e.extend(!0,o,s),e.extend(!0,o,n),!0):(null===o.mask&&(o.mask=t),!1)}function o(t,n){function r(t,r,o){var s=!1;if(null!==t&&""!==t||((s=null!==o.regex)?t=(t=o.regex).replace(/^(\^)(.*)(\$)$/,"$2"):(s=!0,t=".*")),1===t.length&&!1===o.greedy&&0!==o.repeat&&(o.placeholder=""),o.repeat>0||"*"===o.repeat||"+"===o.repeat){var l="*"===o.repeat?0:"+"===o.repeat?1:o.repeat;t=o.groupmarker[0]+t+o.groupmarker[1]+o.quantifiermarker[0]+l+","+o.repeat+o.quantifiermarker[1]}var u,c=s?"regex_"+o.regex:o.numericInput?t.split("").reverse().join(""):t;return a.prototype.masksCache[c]===i||!0===n?(u={mask:t,maskToken:a.prototype.analyseMask(t,s,o),validPositions:{},_buffer:i,buffer:i,tests:{},excludes:{},metadata:r,maskLength:i},!0!==n&&(a.prototype.masksCache[c]=u,u=e.extend(!0,{},a.prototype.masksCache[c]))):u=e.extend(!0,{},a.prototype.masksCache[c]),u}if(e.isFunction(t.mask)&&(t.mask=t.mask(t)),e.isArray(t.mask)){if(t.mask.length>1){if(null===t.keepStatic){t.keepStatic="auto";for(var o=0;o1&&(s+=t.groupmarker[1]+t.alternatormarker+t.groupmarker[0]),a.mask===i||e.isFunction(a.mask)?s+=a:s+=a.mask}),r(s+=t.groupmarker[1],t.mask,t)}t.mask=t.mask.pop()}return t.mask&&t.mask.mask!==i&&!e.isFunction(t.mask.mask)?r(t.mask.mask,t.mask,t):r(t.mask,t.mask,t)}function l(e){var t=n.createElement("input"),i="on"+e,a=i in t;return a||(t.setAttribute(i,"return;"),a="function"==typeof t[i]),t=null,a}function u(r,o,c){function d(e,t,n,a,r){var o=c.greedy;r&&(c.greedy=!1),t=t||0;var s,l,u,p=[],f=0,m=v();do{if(!0===e&&h().validPositions[f])l=(u=r&&!0===h().validPositions[f].match.optionality&&h().validPositions[f+1]===i&&(!0===h().validPositions[f].generatedInput||h().validPositions[f].input==c.skipOptionalPartCharacter&&f>0)?b(f,A(f,s,f-1)):h().validPositions[f]).match,s=u.locator.slice(),p.push(!0===n?u.input:!1===n?l.nativeDef:G(f,l));else{l=(u=x(f,s,f-1)).match,s=u.locator.slice();var d=!0!==a&&(!1!==c.jitMasking?c.jitMasking:l.jit);(!1===d||d===i||ff)&&p.push(!1===n?l.nativeDef:G(f,l))}"auto"===c.keepStatic&&l.newBlockMarker&&null!==l.fn&&(c.keepStatic=f-1),f++}while((Z===i||ff);return""===p[p.length-1]&&p.pop(),!1===n&&h().maskLength!==i||(h().maskLength=f-1),c.greedy=o,p}function h(){return o}function g(e){var t=h();t.buffer=i,!0!==e&&(t.validPositions={},t.p=0)}function v(e,t,n){var a=-1,r=-1,o=n||h().validPositions;for(var s in e===i&&(e=-1),o){var l=parseInt(s);o[l]&&(t||!0!==o[l].generatedInput)&&(l<=e&&(a=l),l>=e&&(r=l))}return-1===a||a==e?r:-1==r?a:e-a0&&(t=t.split(",")[0]),t!==i?t.toString():""}function y(e,t){var n=(e.alternation!=i?e.mloc[k(e)]:e.locator).join("");if(""!==n)for(;n.length0?e-1:0)),s=0;s5e3)throw"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. "+h().mask;if(l===t&&s.matches===i)return p.push({match:s,locator:u.reverse(),cd:m,mloc:{}}),!0;if(s.matches!==i){if(s.isGroup&&g!==s){if(s=d(n.matches[e.inArray(s,n.matches)+1],u,g))return!0}else if(s.isOptional){var x=s;if(s=r(s,a,u,g)){if(e.each(p,function(e,t){t.match.optionality=!0}),o=p[p.length-1].match,g!==i||!v(o,x))return!0;f=!0,l=t}}else if(s.isAlternator){var P,S=s,A=[],C=p.slice(),E=u.length,w=a.length>0?a.shift():-1;if(-1===w||"string"==typeof w){var M,D=l,O=a.slice(),_=[];if("string"==typeof w)_=w.split(",");else for(M=0;M=c.keepStatic)&&(_=_.slice(0,1));for(var R=!1,N=0;N<_.length;N++){M=parseInt(_[N]),p=[],a="string"==typeof w&&k(l,M,E)||O.slice(),S.matches[M]&&d(S.matches[M],[M].concat(u),g)?s=!0:0===N&&(R=!0),P=p.slice(),l=D,p=[];for(var G=0;G0,s=A.length>0,a=O.slice()}else s=d(S.matches[w]||n.matches[w],[w].concat(u),g);if(s)return!0}else if(s.isQuantifier&&g!==n.matches[e.inArray(s,n.matches)-1])for(var V=s,K=a.length>0?a.shift():0;K<(isNaN(V.quantifier.max)?K+1:V.quantifier.max)&&l<=t;K++){var U=n.matches[e.inArray(V,n.matches)-1];if(s=d(U,[K].concat(u),U)){if((o=p[p.length-1].match).optionalQuantifier=K>V.quantifier.min-1,o.jit=K+U.matches.indexOf(o)>=V.quantifier.jit,v(o,U)&&K>V.quantifier.min-1){f=!0,l=t;break}if(V.quantifier.jit!==i&&isNaN(V.quantifier.max)&&o.optionalQuantifier&&h().validPositions[t-1]===i){p.pop(),f=!0,l=t,m=i;break}return!0}}else if(s=r(s,a,u,g))return!0}else l++;var z,q}for(var g=a.length>0?a.shift():0;gt)break}}var o,s=h().maskToken,l=n?a:0,u=n?n.slice():[0],p=[],f=!1,m=n?n.join(""):"";if(t>-1){if(n===i){for(var d,g=t-1;(d=h().validPositions[g]||h().tests[g])===i&&g>-1;)g--;d!==i&&g>-1&&(u=function(t,n){var a=[];return e.isArray(n)||(n=[n]),n.length>0&&(n[0].alternation===i?0===(a=b(t,n.slice()).locator.slice()).length&&(a=n[0].locator.slice()):e.each(n,function(e,t){if(""!==t.def)if(0===a.length)a=t.locator.slice();else for(var n=0;nt);v++);}return(0===p.length||f)&&p.push({match:{fn:null,optionality:!1,casing:null,def:"",placeholder:""},locator:[],mloc:{},cd:m}),n!==i&&h().tests[t]?e.extend(!0,[],p):(h().tests[t]=e.extend(!0,[],p),h().tests[t])}function C(){return h()._buffer===i&&(h()._buffer=d(!1,1),h().buffer===i&&(h().buffer=h()._buffer.slice())),h()._buffer}function E(e){return h().buffer!==i&&!0!==e||(h().buffer=d(!0,v(),!0)),h().buffer}function w(e,t,n){var a,r;if(!0===e)g(),e=0,t=n.length;else for(a=e;a=0;b--)if((u=h().validPositions[b])&&u.alternation!==i){if(c&&c.locator[u.alternation]!==u.locator[u.alternation])break;s=b,l=h().validPositions[s].alternation,c=u}if(l!==i){m=parseInt(s),h().excludes[m]=h().excludes[m]||[],!0!==t&&h().excludes[m].push(k(c));var x=[],S=0;for(p=m;p0;){var E=C.shift();if(!(y=O(v(i,!0)+1,E,!1,r,!0)))break}if(y&&n!==i){var w=v(t)+1;for(p=m;pw?w:t,n,a,r,!0)}if(y)break;if(g(),c=P(m),h().validPositions=e.extend(!0,{},d),!h().excludes[m]){y=D(t,n,a,r,m-1);break}var M=k(c);if(-1!==h().excludes[m].indexOf(M)){y=D(t,n,a,r,m-1);break}for(h().excludes[m].push(M),p=m;p1||e.begin-e.end==1:e.end-e.begin>1||e.end-e.begin==1}function p(n,r,s){var l=!1;return e.each(A(n),function(p,f){var m=f.match;if(E(!0),!1!==(l=null!=m.fn?m.fn.test(r,h(),n,s,c,u(t)):(r===m.def||r===c.skipOptionalPartCharacter)&&""!==m.def&&{c:G(n,m,!0)||m.def,pos:n})){var d=l.c!==i?l.c:r,g=n;return d=d===c.skipOptionalPartCharacter&&null===m.fn?G(n,m,!0)||m.def:d,l.remove!==i&&(e.isArray(l.remove)||(l.remove=[l.remove]),e.each(l.remove.sort(function(e,t){return t-e}),function(e,t){j({begin:t,end:t+1})})),l.insert!==i&&(e.isArray(l.insert)||(l.insert=[l.insert]),e.each(l.insert.sort(function(e,t){return e-t}),function(e,t){O(t.pos,t.c,!0,o)})),!0!==l&&l.pos!==i&&l.pos!==n&&(g=l.pos),(!0===l||l.pos!==i||l.c!==i)&&(j(t,e.extend({},f,{input:function(t,n,i){switch(c.casing||n.casing){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break;case"title":var r=h().validPositions[i-1];t=0===i||r&&r.input===String.fromCharCode(a.keyCode.SPACE)?t.toUpperCase():t.toLowerCase();break;default:if(e.isFunction(c.casing)){var o=Array.prototype.slice.call(arguments);o.push(h().validPositions),t=c.casing.apply(this,o)}}return t}(d,m,g)}),o,g)||(l=!1),!1)}}),l}r=!0===r;var f=t;t.begin!==i&&(f=te?t.end:t.begin);var m=!0,d=e.extend(!0,{},h().validPositions);if(e.isFunction(c.preValidation)&&!r&&!0!==o&&!0!==l&&(m=c.preValidation(E(),f,n,u(t),c,h())),!0===m){if(_(i,f,!0),(Z===i||f0&&!h().validPositions[t];t--);for(var o=t;oe+1?t[e+1]&&null===t[e+1].match.fn&&t[e+1]:t[e+1];return r&&o}return!1}var s=t.begin!==i?t.begin:t,l=t.end!==i?t.end:t;if(t.begin>t.end&&(s=t.end,l=t.begin),r=r!==i?r:s,s!==l||c.insertMode&&h().validPositions[r]!==i&&a===i){var u=e.extend(!0,{},h().validPositions),p=v(i,!0);for(h().p=s,y=p;y>=s;y--)h().validPositions[y]&&"+"===h().validPositions[y].match.nativeDef&&(c.isNegative=!1),delete h().validPositions[y];var f=!0,m=r,d=(h().validPositions,!1),k=m,y=m;for(n&&(h().validPositions[r]=e.extend(!0,{},n),k++,m++,s=l||y>=s&&!0!==b.generatedInput&&o(y,u,{begin:s,end:l}))){for(;""!==P(k).match.def;){if(!1===d&&u[k]&&u[k].match.nativeDef===b.match.nativeDef)h().validPositions[k]=e.extend(!0,{},u[k]),h().validPositions[k].input=b.input,_(i,k,!0),m=k+1,f=!0;else if(S(k,b.match.def)){var x=O(k,b.input,!0,!0);f=!1!==x,m=x.caret||x.insert?v():k+1,d=!0}else if(!(f=!0===b.generatedInput||b.input===c.radixPoint&&!0===c.numericInput)&&""===P(k).match.def)break;if(f)break;k++}""==P(k).match.def&&(f=!1),k=m}if(!f)break}if(!f)return h().validPositions=e.extend(!0,{},u),g(!0),!1}else n&&(h().validPositions[r]=e.extend(!0,{},n));return g(!0),!0}function F(e,t){var n=x(e).match;if(""===n.def&&(n=P(e).match),null!=n.fn)return n.fn;if(!0!==t&&e>-1){var i=A(e);return i.length>1+(""===i[i.length-1].match.def?1:0)}return!1}function T(e,t){for(var n=e+1;""!==P(n).match.def&&(!0===t&&(!0!==P(n).match.newBlockMarker||!F(n))||!0!==t&&!F(n));)n++;return n}function R(e,t){var n,i=e;if(i<=0)return 0;for(;--i>0&&(!0===t&&!0!==P(i).match.newBlockMarker||!0!==t&&!F(i)&&((n=A(i)).length<2||2===n.length&&""===n[1].match.def)););return i}function N(t,n,a,r,o){if(r&&e.isFunction(c.onBeforeWrite)){var s=c.onBeforeWrite.call(X,r,n,a,c);if(s){if(s.refreshFromBuffer){var l=s.refreshFromBuffer;w(!0===l?l:l.start,l.end,s.buffer||n),n=E(!0)}a!==i&&(a=s.caret!==i?s.caret:a)}}if(t!==i&&(t.inputmask._valueSet(n.join("")),a===i||r!==i&&"blur"===r.type?Q(t,a,0===n.length):H(t,a),!0===o)){var u=e(t),p=t.inputmask._valueGet();ie=!0,u.trigger("input"),setTimeout(function(){p===C().join("")?u.trigger("cleared"):!0===U(n)&&u.trigger("complete")},0)}}function G(t,n,a){if((n=n||P(t).match).placeholder!==i||!0===a)return e.isFunction(n.placeholder)?n.placeholder(c):n.placeholder;if(null===n.fn){if(t>-1&&h().validPositions[t]===i){var r,o=A(t),s=[];if(o.length>1+(""===o[o.length-1].match.def?1:0))for(var l=0;l1&&/[0-9a-bA-Z]/.test(s[0].match.def)))return c.placeholder.charAt(t%c.placeholder.length)}return n.def}return c.placeholder.charAt(t%c.placeholder.length)}function I(t,n,r,o,s){var l=this||t.inputmask,u=o.slice(),p="",f=-1,m=i;if(g(),r||!0===c.autoUnmask)f=T(f);else{var k=C().slice(0,T(-1)).join(""),y=u.join("").match(new RegExp("^"+a.escapeRegex(k),"g"));y&&y.length>0&&(u.splice(0,y.length*k.length),f=T(f))}-1===f?(h().p=T(f),f=0):h().p=f,l.caretPos={begin:f},e.each(u,function(n,a){if(a!==i)if(h().validPositions[n]===i&&u[n]===G(n)&&F(n,!0)&&!1===O(n,u[n],!0,i,i,!0))h().p++;else{var o=new e.Event("_checkval");o.which=a.charCodeAt(0),p+=a;var s=v(i,!0);!function(e,t){return-1!==d(!0,0,!1).slice(e,T(e)).join("").replace(/'/g,"").indexOf(t)&&!F(e)&&(P(e).match.nativeDef===t.charAt(0)||null===P(e).match.fn&&P(e).match.nativeDef==="'"+t.charAt(0)||" "===P(e).match.nativeDef&&(P(e+1).match.nativeDef===t.charAt(0)||null===P(e+1).match.fn&&P(e+1).match.nativeDef==="'"+t.charAt(0)))}(f,p)?(m=se.keypressEvent.call(t,o,!0,!1,r,l.caretPos.begin))&&(f=l.caretPos.begin+1,p=""):m=se.keypressEvent.call(t,o,!0,!1,r,s+1),m&&(N(i,E(),m.forwardPosition,o,!1),l.caretPos={begin:m.forwardPosition,end:m.forwardPosition})}}),n&&N(t,E(),m?m.forwardPosition:i,s||new e.Event("checkval"),s&&"input"===s.type)}function B(t){if(t){if(t.inputmask===i)return t.value;t.inputmask&&t.inputmask.refreshValue&&se.setValueEvent.call(t)}var n=[],a=h().validPositions;for(var r in a)a[r].match&&null!=a[r].match.fn&&n.push(a[r].input);var o=0===n.length?"":(te?n.reverse():n).join("");if(e.isFunction(c.onUnMask)){var s=(te?E().slice().reverse():E()).join("");o=c.onUnMask.call(X,s,o,c)}return o}function L(e){return!te||"number"!=typeof e||c.greedy&&""===c.placeholder||!ee||(e=ee.inputmask._valueGet().length-e),e}function H(a,r,o,s){var l;if(r===i)return a.setSelectionRange?(r=a.selectionStart,o=a.selectionEnd):t.getSelection?(l=t.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode!==a&&l.commonAncestorContainer!==a||(r=l.startOffset,o=l.endOffset):n.selection&&n.selection.createRange&&(o=(r=0-(l=n.selection.createRange()).duplicate().moveStart("character",-a.inputmask._valueGet().length))+l.text.length),{begin:s?r:L(r),end:s?o:L(o)};if(e.isArray(r)&&(o=te?r[0]:r[1],r=te?r[1]:r[0]),r.begin!==i&&(o=te?r.begin:r.end,r=te?r.end:r.begin),"number"==typeof r){r=s?r:L(r),o="number"==typeof(o=s?o:L(o))?o:r;var u=parseInt(((a.ownerDocument.defaultView||t).getComputedStyle?(a.ownerDocument.defaultView||t).getComputedStyle(a,null):a.currentStyle).fontSize)*o;if(a.scrollLeft=u>a.scrollWidth?u:0,m||!1!==c.insertMode||r!==o||o++,a.inputmask.caretPos={begin:r,end:o},a.setSelectionRange)a.selectionStart=r,a.selectionEnd=o;else if(t.getSelection){if(l=n.createRange(),a.firstChild===i||null===a.firstChild){var p=n.createTextNode("");a.appendChild(p)}l.setStart(a.firstChild,rs&&((a=l[n]).match.optionality||a.match.optionalQuantifier&&a.match.newBlockMarker||p&&(p!==l[n].locator[u.alternation]&&null!=a.match.fn||null===a.match.fn&&a.locator[u.alternation]&&M(a.locator[u.alternation].toString().split(","),p.toString().split(","))&&""!==A(n)[0].def))&&r[n]===G(n,a.match);n--)o--;return t?{l:o,def:l[o]?l[o].match:i}:o}function K(e){e.length=0;for(var t,n=d(!0,0,!0,i,!0);(t=n.shift())!==i;)e.push(t);return e}function U(t){if(e.isFunction(c.isComplete))return c.isComplete(t,c);if("*"===c.repeat)return i;var n=!1,a=V(!0),r=R(a.l);if(a.def===i||a.def.newBlockMarker||a.def.optionality||a.def.optionalQuantifier){n=!0;for(var o=0;o<=r;o++){var s=x(o).match;if(null!==s.fn&&h().validPositions[o]===i&&!0!==s.optionality&&!0!==s.optionalQuantifier||null===s.fn&&t[o]!==G(o,s)){n=!1;break}}}return n}function z(e,t,n,r,o){if((c.numericInput||te)&&(t===a.keyCode.BACKSPACE?t=a.keyCode.DELETE:t===a.keyCode.DELETE&&(t=a.keyCode.BACKSPACE),te)){var s=n.end;n.end=n.begin,n.begin=s}if(t===a.keyCode.BACKSPACE&&(n.end-n.begin<1||!1===c.insertMode)?(n.begin=R(n.begin),h().validPositions[n.begin]!==i&&h().validPositions[n.begin].input===c.groupSeparator&&n.begin--,!1===c.insertMode&&n.end!==h().maskLength&&n.end--):t===a.keyCode.DELETE&&n.begin===n.end&&(n.end=F(n.end,!0)&&h().validPositions[n.end]&&h().validPositions[n.end].input!==c.radixPoint?n.end+1:T(n.end)+1,h().validPositions[n.begin]!==i&&h().validPositions[n.begin].input===c.groupSeparator&&n.end++),j(n),!0!==r&&!1!==c.keepStatic||null!==c.regex){var l=D(!0);if(l){var u=l.caret!==i?l.caret:l.pos?T(l.pos.begin?l.pos.begin:l.pos):v(-1,!0);(t!==a.keyCode.DELETE||n.begin>u)&&n.begin}}var p=v(n.begin,!0);if(p=e){var c=e-u,p=r.offsetWidth-e;r.innerHTML=l.charAt(t),t=(c-=r.offsetWidth/3)",u.push(e)}else u.push(e);else p=!0,u.push(""+e)}var o,s,l,u=[],p=!1,f=0;if(J!==i){var m=E();if(t===i?t=H(e):t.begin===i&&(t={begin:t,end:t}),!0!==a){var d=v();do{h().validPositions[f]?(s=h().validPositions[f],o=s.match,l=s.locator.slice(),r(m[f])):(s=x(f,l,f-1),o=s.match,l=s.locator.slice(),!1===c.jitMasking||ff?r(G(f,o)):p=!1),f++}while((Z===i||ff||p);p&&r(),n.activeElement===e&&(u.splice(t.begin,0,t.begin===t.end||t.end>h().maskLength?'':''),u.splice(t.end+1,0,""))}var g=J.getElementsByTagName("div")[0];g.innerHTML=u.join(""),e.inputmask.positionColorMask(e,g)}}o=o||this.maskset,c=c||this.opts;var W,$,Z,J,Y,X=this,ee=this.el,te=this.isRTL,ne=!1,ie=!1,ae=!1,re=!1,oe={on:function(t,n,r){var o=function(t){var n=this;if(n.inputmask===i&&"FORM"!==this.nodeName){var o=e.data(n,"_inputmask_opts");o?new a(o).mask(n):oe.off(n)}else{if("setvalue"===t.type||"FORM"===this.nodeName||!(n.disabled||n.readOnly&&!("keydown"===t.type&&t.ctrlKey&&67===t.keyCode||!1===c.tabThrough&&t.keyCode===a.keyCode.TAB))){switch(t.type){case"input":if(!0===ie)return ie=!1,t.preventDefault();if(p){var s=arguments;return setTimeout(function(){r.apply(n,s),H(n,n.inputmask.caretPos,i,!0)},0),!1}break;case"keydown":ne=!1,ie=!1;break;case"keypress":if(!0===ne)return t.preventDefault();ne=!0;break;case"click":if(f||m)return s=arguments,setTimeout(function(){r.apply(n,s)},0),!1}var l=r.apply(n,arguments);return!1===l&&(t.preventDefault(),t.stopPropagation()),l}t.preventDefault()}};t.inputmask.events[n]=t.inputmask.events[n]||[],t.inputmask.events[n].push(o),-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).on(n,o):e(t).on(n,o)},off:function(t,n){var i;t.inputmask&&t.inputmask.events&&(n?(i=[])[n]=t.inputmask.events[n]:i=t.inputmask.events,e.each(i,function(n,i){for(;i.length>0;){var a=i.pop();-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).off(n,a):e(t).off(n,a)}delete t.inputmask.events[n]}))}},se={keydownEvent:function(t){var n=this,i=e(n),r=t.keyCode,o=H(n);if(r===a.keyCode.BACKSPACE||r===a.keyCode.DELETE||m&&r===a.keyCode.BACKSPACE_SAFARI||t.ctrlKey&&r===a.keyCode.X&&!l("cut"))t.preventDefault(),z(0,r,o),N(n,E(!0),h().p,t,n.inputmask._valueGet()!==E().join(""));else if(r===a.keyCode.END||r===a.keyCode.PAGE_DOWN){t.preventDefault();var s=T(v());c.insertMode||s!==h().maskLength||t.shiftKey||s--,H(n,t.shiftKey?o.begin:s,s,!0)}else r===a.keyCode.HOME&&!t.shiftKey||r===a.keyCode.PAGE_UP?(t.preventDefault(),H(n,0,t.shiftKey?o.begin:0,!0)):(c.undoOnEscape&&r===a.keyCode.ESCAPE||90===r&&t.ctrlKey)&&!0!==t.altKey?(I(n,!0,!1,W.split("")),i.trigger("click")):r!==a.keyCode.INSERT||t.shiftKey||t.ctrlKey?!0===c.tabThrough&&r===a.keyCode.TAB?(!0===t.shiftKey?(null===P(o.begin).match.fn&&(o.begin=T(o.begin)),o.end=R(o.begin,!0),o.begin=R(o.end,!0)):(o.begin=T(o.begin,!0),o.end=T(o.begin,!0),o.endo.length?-1:0,l=i.substr(0,r.begin),u=i.substr(r.begin),p=o.substr(0,r.begin+s),m=o.substr(r.begin+s),d=r,h="",g=!1;if(l!==p){for(var v=(g=l.length>=p.length)?l.length:p.length,k=0;l.charAt(k)===p.charAt(k)&&km.length?h+=u.slice(0,1):u.length0)e.each(h.split(""),function(t,i){var a=new e.Event("keypress");a.which=i.charCodeAt(0),ae=!1,se.keypressEvent.call(n,a)});else{d.begin===d.end-1&&(d.begin=R(d.begin+1),d.begin===d.end-1?H(n,d.begin):H(n,d.begin,d.end));var y=new e.Event("keydown");y.keyCode=c.numericInput?a.keyCode.BACKSPACE:a.keyCode.DELETE,se.keydownEvent.call(n,y),!1===c.insertMode&&H(n,H(n).begin-1)}t.preventDefault()}}},beforeInputEvent:function(t){if(t.cancelable){var n=this;switch(t.inputType){case"insertText":return e.each(t.data.split(""),function(t,i){var a=new e.Event("keypress");a.which=i.charCodeAt(0),ae=!1,se.keypressEvent.call(n,a)}),t.preventDefault();case"deleteContentBackward":return(i=new e.Event("keydown")).keyCode=a.keyCode.BACKSPACE,se.keydownEvent.call(n,i),t.preventDefault();case"deleteContentForward":var i;return(i=new e.Event("keydown")).keyCode=a.keyCode.DELETE,se.keydownEvent.call(n,i),t.preventDefault()}}},setValueEvent:function(t){this.inputmask.refreshValue=!1;var n=(n=t&&t.detail?t.detail[0]:arguments[1])||this.inputmask._valueGet(!0);e.isFunction(c.onBeforeMask)&&(n=c.onBeforeMask.call(X,n,c)||n),I(this,!0,!1,n=n.split("")),W=E().join(""),(c.clearMaskOnLostFocus||c.clearIncomplete)&&this.inputmask._valueGet()===C().join("")&&this.inputmask._valueSet("")},focusEvent:function(e){var t=this.inputmask._valueGet();c.showMaskOnFocus&&(!c.showMaskOnHover||c.showMaskOnHover&&""===t)&&(this.inputmask._valueGet()!==E().join("")?N(this,E(),T(v())):!1===re&&H(this,T(v()))),!0===c.positionCaretOnTab&&!1===re&&se.clickEvent.apply(this,[e,!0]),W=E().join("")},mouseleaveEvent:function(e){if(re=!1,c.clearMaskOnLostFocus&&n.activeElement!==this){var t=E().slice(),i=this.inputmask._valueGet();i!==this.getAttribute("placeholder")&&""!==i&&(-1===v()&&i===C().join("")?t=[]:K(t),N(this,t))}},clickEvent:function(t,a){var r=this;setTimeout(function(){if(n.activeElement===r){var t=H(r);if(a&&(te?t.end=t.begin:t.begin=t.end),t.begin===t.end)switch(c.positionCaretOnClick){case"none":break;case"select":H(r,0,E().length);break;case"ignore":H(r,T(v()));break;case"radixFocus":if(function(t){if(""!==c.radixPoint){var n=h().validPositions;if(n[t]===i||n[t].input===G(t)){if(t=d||s===u)&&(u=d)}H(r,u)}}}},0)},dblclickEvent:function(e){var t=this;setTimeout(function(){H(t,0,T(v()))},0)},cutEvent:function(i){e(this);var r=H(this),o=i.originalEvent||i,s=t.clipboardData||o.clipboardData,l=te?E().slice(r.end,r.begin):E().slice(r.begin,r.end);s.setData("text",te?l.reverse().join(""):l.join("")),n.execCommand&&n.execCommand("copy"),z(0,a.keyCode.DELETE,r),N(this,E(),h().p,i,W!==E().join(""))},blurEvent:function(t){var n=e(this);if(this.inputmask){var a=this.inputmask._valueGet(),r=E().slice();""===a&&J===i||(c.clearMaskOnLostFocus&&(-1===v()&&a===C().join("")?r=[]:K(r)),!1===U(r)&&(setTimeout(function(){n.trigger("incomplete")},0),c.clearIncomplete&&(g(),r=c.clearMaskOnLostFocus?[]:C().slice())),N(this,r,i,t)),W!==E().join("")&&(W=r.join(""),n.trigger("change"))}},mouseenterEvent:function(e){re=!0,n.activeElement!==this&&c.showMaskOnHover&&this.inputmask._valueGet()!==E().join("")&&N(this,E())},submitEvent:function(e){W!==E().join("")&&$.trigger("change"),c.clearMaskOnLostFocus&&-1===v()&&ee.inputmask._valueGet&&ee.inputmask._valueGet()===C().join("")&&ee.inputmask._valueSet(""),c.clearIncomplete&&!1===U(E())&&ee.inputmask._valueSet(""),c.removeMaskOnSubmit&&(ee.inputmask._valueSet(ee.inputmask.unmaskedvalue(),!0),setTimeout(function(){N(ee,E())},0))},resetEvent:function(e){ee.inputmask.refreshValue=!0,setTimeout(function(){$.trigger("setvalue")},0)}};if(a.prototype.positionColorMask=function(e,t){e.style.left=t.offsetLeft+"px"},r!==i)switch(r.action){case"isComplete":return ee=r.el,U(E());case"unmaskedvalue":return ee!==i&&r.value===i||(Y=r.value,Y=(e.isFunction(c.onBeforeMask)&&c.onBeforeMask.call(X,Y,c)||Y).split(""),I.call(this,i,!1,!1,Y),e.isFunction(c.onBeforeWrite)&&c.onBeforeWrite.call(X,i,E(),0,c)),B(ee);case"mask":!function(t){oe.off(t);var a=function(t,a){var r=t.getAttribute("type"),o="INPUT"===t.tagName&&-1!==e.inArray(r,a.supportsInputType)||t.isContentEditable||"TEXTAREA"===t.tagName;if(!o)if("INPUT"===t.tagName){var l=n.createElement("input");l.setAttribute("type",r),o="text"===l.type,l=null}else o="partial";return!1!==o?function(t){function r(){return this.inputmask?this.inputmask.opts.autoUnmask?this.inputmask.unmaskedvalue():-1!==v()||!0!==a.nullable?n.activeElement===this&&a.clearMaskOnLostFocus?(te?K(E().slice()).reverse():K(E().slice())).join(""):l.call(this):"":l.call(this)}function o(t){u.call(this,t),this.inputmask&&e(this).trigger("setvalue",[t])}var l,u;if(!t.inputmask.__valueGet){if(!0!==a.noValuePatching){if(Object.getOwnPropertyDescriptor){"function"!=typeof Object.getPrototypeOf&&(Object.getPrototypeOf="object"===s("test".__proto__)?function(e){return e.__proto__}:function(e){return e.constructor.prototype});var c=Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value"):i;c&&c.get&&c.set?(l=c.get,u=c.set,Object.defineProperty(t,"value",{get:r,set:o,configurable:!0})):"INPUT"!==t.tagName&&(l=function(){return this.textContent},u=function(e){this.textContent=e},Object.defineProperty(t,"value",{get:r,set:o,configurable:!0}))}else n.__lookupGetter__&&t.__lookupGetter__("value")&&(l=t.__lookupGetter__("value"),u=t.__lookupSetter__("value"),t.__defineGetter__("value",r),t.__defineSetter__("value",o));t.inputmask.__valueGet=l,t.inputmask.__valueSet=u}t.inputmask._valueGet=function(e){return te&&!0!==e?l.call(this.el).split("").reverse().join(""):l.call(this.el)},t.inputmask._valueSet=function(e,t){u.call(this.el,null===e||e===i?"":!0!==t&&te?e.split("").reverse().join(""):e)},l===i&&(l=function(){return this.value},u=function(e){this.value=e},function(t){if(e.valHooks&&(e.valHooks[t]===i||!0!==e.valHooks[t].inputmaskpatch)){var n=e.valHooks[t]&&e.valHooks[t].get?e.valHooks[t].get:function(e){return e.value},r=e.valHooks[t]&&e.valHooks[t].set?e.valHooks[t].set:function(e,t){return e.value=t,e};e.valHooks[t]={get:function(e){if(e.inputmask){if(e.inputmask.opts.autoUnmask)return e.inputmask.unmaskedvalue();var t=n(e);return-1!==v(i,i,e.inputmask.maskset.validPositions)||!0!==a.nullable?t:""}return n(e)},set:function(t,n){var i,a=e(t);return i=r(t,n),t.inputmask&&a.trigger("setvalue",[n]),i},inputmaskpatch:!0}}}(t.type),function(t){oe.on(t,"mouseenter",function(t){var n=e(this);this.inputmask._valueGet()!==E().join("")&&n.trigger("setvalue")})}(t))}}(t):t.inputmask=i,o}(t,c);if(!1!==a&&($=e(ee=t),-1===(Z=ee!==i?ee.maxLength:i)&&(Z=i),!0===c.colorMask&&q(ee),p&&("inputmode"in ee&&(ee.inputmode=c.inputmode,ee.setAttribute("inputmode",c.inputmode)),!0===c.disablePredictiveText&&("autocorrect"in ee?ee.autocorrect=!1:(!0!==c.colorMask&&q(ee),ee.type="password"))),!0===a&&(oe.on(ee,"submit",se.submitEvent),oe.on(ee,"reset",se.resetEvent),oe.on(ee,"blur",se.blurEvent),oe.on(ee,"focus",se.focusEvent),!0!==c.colorMask&&(oe.on(ee,"click",se.clickEvent),oe.on(ee,"mouseleave",se.mouseleaveEvent),oe.on(ee,"mouseenter",se.mouseenterEvent)),oe.on(ee,"dblclick",se.dblclickEvent),oe.on(ee,"paste",se.pasteEvent),oe.on(ee,"dragdrop",se.pasteEvent),oe.on(ee,"drop",se.pasteEvent),oe.on(ee,"cut",se.cutEvent),oe.on(ee,"complete",c.oncomplete),oe.on(ee,"incomplete",c.onincomplete),oe.on(ee,"cleared",c.oncleared),p||!0===c.inputEventOnly?ee.removeAttribute("maxLength"):(oe.on(ee,"keydown",se.keydownEvent),oe.on(ee,"keypress",se.keypressEvent)),oe.on(ee,"compositionstart",e.noop),oe.on(ee,"compositionupdate",e.noop),oe.on(ee,"compositionend",e.noop),oe.on(ee,"keyup",e.noop),oe.on(ee,"input",se.inputFallBackEvent),oe.on(ee,"beforeinput",se.beforeInputEvent)),oe.on(ee,"setvalue",se.setValueEvent),W=C().join(""),""!==ee.inputmask._valueGet(!0)||!1===c.clearMaskOnLostFocus||n.activeElement===ee)){var r=e.isFunction(c.onBeforeMask)&&c.onBeforeMask.call(X,ee.inputmask._valueGet(!0),c)||ee.inputmask._valueGet(!0);""!==r&&I(ee,!0,!1,r.split(""));var o=E().slice();W=o.join(""),!1===U(o)&&c.clearIncomplete&&g(),c.clearMaskOnLostFocus&&n.activeElement!==ee&&(-1===v()?o=[]:K(o)),(!1===c.clearMaskOnLostFocus||c.showMaskOnFocus&&n.activeElement===ee||""!==ee.inputmask._valueGet(!0))&&N(ee,o),n.activeElement===ee&&H(ee,T(v()))}}(ee);break;case"format":return Y=(e.isFunction(c.onBeforeMask)&&c.onBeforeMask.call(X,r.value,c)||r.value).split(""),I.call(this,i,!0,!1,Y),r.metadata?{value:te?E().slice().reverse().join(""):E().join(""),metadata:u.call(this,{action:"getmetadata"},o,c)}:te?E().slice().reverse().join(""):E().join("");case"isValid":r.value?(Y=r.value.split(""),I.call(this,i,!0,!0,Y)):r.value=E().join("");for(var le=E(),ue=V(),ce=le.length-1;ce>ue&&!F(ce);ce--);return le.splice(ue,ce+1-ue),U(le)&&r.value===E().join("");case"getemptymask":return C().join("");case"remove":return ee&&ee.inputmask&&(e.data(ee,"_inputmask_opts",null),$=e(ee),ee.inputmask._valueSet(c.autoUnmask?B(ee):ee.inputmask._valueGet(!0)),oe.off(ee),ee.inputmask.colorMask&&((J=ee.inputmask.colorMask).removeChild(ee),J.parentNode.insertBefore(ee,J),J.parentNode.removeChild(J)),Object.getOwnPropertyDescriptor&&Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ee),"value")&&ee.inputmask.__valueGet&&Object.defineProperty(ee,"value",{get:ee.inputmask.__valueGet,set:ee.inputmask.__valueSet,configurable:!0}):n.__lookupGetter__&&ee.__lookupGetter__("value")&&ee.inputmask.__valueGet&&(ee.__defineGetter__("value",ee.inputmask.__valueGet),ee.__defineSetter__("value",ee.inputmask.__valueSet)),ee.inputmask=i),ee;case"getmetadata":if(e.isArray(o.metadata)){var pe=d(!0,0,!1).join("");return e.each(o.metadata,function(e,t){if(t.mask===pe)return pe=t,!1}),pe}return o.metadata}}var c=navigator.userAgent,p=l("touchstart"),f=/iemobile/i.test(c),m=/iphone/i.test(c)&&!f;return a.prototype={dataAttribute:"data-inputmask",defaults:{placeholder:"_",optionalmarker:["[","]"],quantifiermarker:["{","}"],groupmarker:["(",")"],alternatormarker:"|",escapeChar:"\\",mask:null,regex:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!1,autoUnmask:!1,removeMaskOnSubmit:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,alias:null,onKeyDown:e.noop,onBeforeMask:null,onBeforePaste:function(t,n){return e.isFunction(n.onBeforeMask)?n.onBeforeMask.call(this,t,n):t},onBeforeWrite:null,onUnMask:null,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",numericInput:!1,rightAlign:!1,undoOnEscape:!0,radixPoint:"",_radixDance:!1,groupSeparator:"",keepStatic:null,positionCaretOnTab:!0,tabThrough:!1,supportsInputType:["text","tel","password","search"],ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123,0,229],isComplete:null,preValidation:null,postValidation:null,staticDefinitionSymbol:i,jitMasking:!1,nullable:!0,inputEventOnly:!1,noValuePatching:!1,positionCaretOnClick:"lvp",casing:null,inputmode:"verbatim",colorMask:!1,disablePredictiveText:!1,importDataAttributes:!0},definitions:{9:{validator:"[0-91-9]",definitionSymbol:"*"},a:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",definitionSymbol:"*"},"*":{validator:"[0-91-9A-Za-zА-яЁёÀ-ÿµ]"}},aliases:{},masksCache:{},mask:function(s){var l=this;return"string"==typeof s&&(s=n.getElementById(s)||n.querySelectorAll(s)),s=s.nodeName?[s]:s,e.each(s,function(n,s){var c=e.extend(!0,{},l.opts);if(function(n,a,o,s){if(!0===a.importDataAttributes){var l,u,c,p,f=function(e,a){null!==(a=a!==i?a:n.getAttribute(s+"-"+e))&&("string"==typeof a&&(0===e.indexOf("on")?a=t[a]:"false"===a?a=!1:"true"===a&&(a=!0)),o[e]=a)},m=n.getAttribute(s);if(m&&""!==m&&(m=m.replace(/'/g,'"'),u=JSON.parse("{"+m+"}")),u)for(p in c=i,u)if("alias"===p.toLowerCase()){c=u[p];break}for(l in f("alias",c),o.alias&&r(o.alias,o,a),a){if(u)for(p in c=i,u)if(p.toLowerCase()===l.toLowerCase()){c=u[p];break}f(l,c)}}return e.extend(!0,a,o),("rtl"===n.dir||a.rightAlign)&&(n.style.textAlign="right"),("rtl"===n.dir||a.numericInput)&&(n.dir="ltr",n.removeAttribute("dir"),a.isRTL=!0),Object.keys(o).length}(s,c,e.extend(!0,{},l.userOptions),l.dataAttribute)){var p=o(c,l.noMasksCache);p!==i&&(s.inputmask!==i&&(s.inputmask.opts.autoUnmask=!0,s.inputmask.remove()),s.inputmask=new a(i,i,!0),s.inputmask.opts=c,s.inputmask.noMasksCache=l.noMasksCache,s.inputmask.userOptions=e.extend(!0,{},l.userOptions),s.inputmask.isRTL=c.isRTL||c.numericInput,s.inputmask.el=s,s.inputmask.maskset=p,e.data(s,"_inputmask_opts",c),u.call(s.inputmask,{action:"mask"}))}}),s&&s[0]&&s[0].inputmask||this},option:function(t,n){return"string"==typeof t?this.opts[t]:"object"===(void 0===t?"undefined":s(t))?(e.extend(this.userOptions,t),this.el&&!0!==n&&this.mask(this.el),this):void 0},unmaskedvalue:function(e){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"unmaskedvalue",value:e})},remove:function(){return u.call(this,{action:"remove"})},getemptymask:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"getemptymask"})},hasMaskedValue:function(){return!this.opts.autoUnmask},isComplete:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"isComplete"})},getmetadata:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"getmetadata"})},isValid:function(e){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"isValid",value:e})},format:function(e,t){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),u.call(this,{action:"format",value:e,metadata:t})},setValue:function(t){this.el&&e(this.el).trigger("setvalue",[t])},analyseMask:function(t,n,r){function o(e,t,n,i){this.matches=[],this.openGroup=e||!1,this.alternatorGroup=!1,this.isGroup=e||!1,this.isOptional=t||!1,this.isQuantifier=n||!1,this.isAlternator=i||!1,this.quantifier={min:1,max:1}}function s(t,o,s){s=s!==i?s:t.matches.length;var l=t.matches[s-1];if(n)0===o.indexOf("[")||k&&/\\d|\\s|\\w]/i.test(o)||"."===o?t.matches.splice(s++,0,{fn:new RegExp(o,r.casing?"i":""),optionality:!1,newBlockMarker:l===i?"master":l.def!==o,casing:null,def:o,placeholder:i,nativeDef:o}):(k&&(o=o[o.length-1]),e.each(o.split(""),function(e,n){l=t.matches[s-1],t.matches.splice(s++,0,{fn:null,optionality:!1,newBlockMarker:l===i?"master":l.def!==n&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||n,placeholder:r.staticDefinitionSymbol!==i?n:i,nativeDef:(k?"'":"")+n})})),k=!1;else{var u=(r.definitions?r.definitions[o]:i)||a.prototype.definitions[o];u&&!k?t.matches.splice(s++,0,{fn:u.validator?"string"==typeof u.validator?new RegExp(u.validator,r.casing?"i":""):new function(){this.test=u.validator}:new RegExp("."),optionality:!1,newBlockMarker:l===i?"master":l.def!==(u.definitionSymbol||o),casing:u.casing,def:u.definitionSymbol||o,placeholder:u.placeholder,nativeDef:o}):(t.matches.splice(s++,0,{fn:null,optionality:!1,newBlockMarker:l===i?"master":l.def!==o&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||o,placeholder:r.staticDefinitionSymbol!==i?o:i,nativeDef:(k?"'":"")+o}),k=!1)}}function l(){if(b.length>0){if(s(m=b[b.length-1],p),m.isAlternator){d=b.pop();for(var e=0;e0?(m=b[b.length-1]).matches.push(d):y.matches.push(d)}}else s(y,p)}function u(e){var t=new o(!0);return t.openGroup=!1,t.matches=e,t}var c,p,f,m,d,h,g=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?(?:\|[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,v=/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,k=!1,y=new o,b=[],x=[];for(n&&(r.optionalmarker[0]=i,r.optionalmarker[1]=i);c=n?v.exec(t):g.exec(t);){if(p=c[0],n)switch(p.charAt(0)){case"?":p="{0,1}";break;case"+":case"*":p="{"+p+"}"}if(k)l();else switch(p.charAt(0)){case"(?=":case"(?!":case"(?<=":case"(?0){if((m=b[b.length-1]).matches.push(f),m.isAlternator){d=b.pop();for(var P=0;P0?(m=b[b.length-1]).matches.push(d):y.matches.push(d)}}else y.matches.push(f);else l();break;case r.optionalmarker[0]:b.push(new o(!1,!0));break;case r.groupmarker[0]:b.push(new o(!0));break;case r.quantifiermarker[0]:var S=new o(!1,!1,!0),A=(p=p.replace(/[{}]/g,"")).split("|"),C=A[0].split(","),E=isNaN(C[0])?C[0]:parseInt(C[0]),w=1===C.length?E:isNaN(C[1])?C[1]:parseInt(C[1]);"*"!==E&&"+"!==E||(E="*"===w?0:1),S.quantifier={min:E,max:w,jit:A[1]};var M=b.length>0?b[b.length-1].matches:y.matches;if((c=M.pop()).isAlternator){M.push(c),M=c.matches;var D=new o(!0),O=M.pop();M.push(D),M=D.matches,c=O}c.isGroup||(c=u([c])),M.push(c),M.push(S);break;case r.alternatormarker:var _=function(e){var t=e.pop();return t.isQuantifier&&(t=u([e.pop(),t])),t};if(b.length>0){var j=(m=b[b.length-1]).matches[m.matches.length-1];h=m.openGroup&&(j.matches===i||!1===j.isGroup&&!1===j.isAlternator)?b.pop():_(m.matches)}else h=_(y.matches);if(h.isAlternator)b.push(h);else if(h.alternatorGroup?(d=b.pop(),h.alternatorGroup=!1):d=new o(!1,!1,!1,!0),d.matches.push(h),b.push(d),h.openGroup){h.openGroup=!1;var F=new o(!0);F.alternatorGroup=!0,b.push(F)}break;default:l()}}for(;b.length>0;)f=b.pop(),y.matches.push(f);return y.matches.length>0&&(function T(t){t&&t.matches&&e.each(t.matches,function(e,a){var o=t.matches[e+1];(o===i||o.matches===i||!1===o.isQuantifier)&&a&&a.isGroup&&(a.isGroup=!1,n||(s(a,r.groupmarker[0],0),!0!==a.openGroup&&s(a,r.groupmarker[1]))),T(a)})}(y),x.push(y)),(r.numericInput||r.isRTL)&&function R(e){for(var t in e.matches=e.matches.reverse(),e.matches)if(e.matches.hasOwnProperty(t)){var n=parseInt(t);if(e.matches[t].isQuantifier&&e.matches[n+1]&&e.matches[n+1].isGroup){var a=e.matches[t];e.matches.splice(t,1),e.matches.splice(n+1,0,a)}e.matches[t].matches!==i?e.matches[t]=R(e.matches[t]):e.matches[t]=((o=e.matches[t])===r.optionalmarker[0]?o=r.optionalmarker[1]:o===r.optionalmarker[1]?o=r.optionalmarker[0]:o===r.groupmarker[0]?o=r.groupmarker[1]:o===r.groupmarker[1]&&(o=r.groupmarker[0]),o)}var o;return e}(x[0]),x}},a.extendDefaults=function(t){e.extend(!0,a.prototype.defaults,t)},a.extendDefinitions=function(t){e.extend(!0,a.prototype.definitions,t)},a.extendAliases=function(t){e.extend(!0,a.prototype.aliases,t)},a.format=function(e,t,n){return a(t).format(e,n)},a.unmask=function(e,t){return a(t).unmaskedvalue(e)},a.isValid=function(e,t){return a(t).isValid(e)},a.remove=function(t){"string"==typeof t&&(t=n.getElementById(t)||n.querySelectorAll(t)),t=t.nodeName?[t]:t,e.each(t,function(e,t){t.inputmask&&t.inputmask.remove()})},a.setValue=function(t,i){"string"==typeof t&&(t=n.getElementById(t)||n.querySelectorAll(t)),t=t.nodeName?[t]:t,e.each(t,function(t,n){n.inputmask?n.inputmask.setValue(i):e(n).trigger("setvalue",[i])})},a.escapeRegex=function(e){return e.replace(new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"].join("|\\")+")","gim"),"\\$1")},a.keyCode={BACKSPACE:8,BACKSPACE_SAFARI:127,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,RIGHT:39,SPACE:32,TAB:9,UP:38,X:88,CONTROL:17},a},a=[n(0),n(5),n(6)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t){e.exports=jQuery},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}n(4),n(7),n(8),n(9);var a=i(n(1)),r=i(n(0)),o=i(n(2));r["default"]===o["default"]&&n(10),window.Inputmask=a["default"]},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator,o=function(e,t){function n(e){if(!e.tokenizer){var t=[];for(var n in o)-1===t.indexOf(n[0])&&t.push(n[0]);e.tokenizer="("+t.join("+|")+")+?|.",e.tokenizer=new RegExp(e.tokenizer,"g")}return e.tokenizer}function i(e,i,a){for(var r,s="";r=n(a).exec(e);)if(void 0===i)if(o[r[0]])s+="("+o[r[0]][0]+")";else switch(r[0]){case"[":s+="(";break;case"]":s+=")?";break;default:s+=t.escapeRegex(r[0])}else o[r[0]]?s+=o[r[0]][3].call(i.date):s+=r[0];return s}function a(e,t){for(e=String(e),t=t||2;e.length=e.day)&&t}(a,i))&&function(e,t){var n=!0;return t.min&&t.min.date.getTime()==t.min.date.getTime()&&(n=t.min.date.getTime()<=e.date.getTime()),n&&t.max&&t.max.date.getTime()==t.max.date.getTime()&&(n=t.max.date.getTime()>=e.date.getTime()),n}(a,n)),i},onKeyDown:function(i,r,o,s){if(i.ctrlKey&&i.keyCode===t.keyCode.RIGHT){for(var l,u=new Date,c="";l=n(s).exec(s.inputFormat);)"d"===l[0].charAt(0)?c+=a(u.getDate(),l[0].length):"m"===l[0].charAt(0)?c+=a(u.getMonth()+1,l[0].length):"yyyy"===l[0]?c+=u.getFullYear().toString():"y"===l[0].charAt(0)&&(c+=a(u.getYear(),l[0].length));this.inputmask._valueSet(c),e(this).trigger("setvalue")}},onUnMask:function(e,t,n){return i(n.outputFormat,r(e,n.inputFormat,n),n)},casing:function(e,t,n,i){return 0==t.nativeDef.indexOf("[ap]")?e.toLowerCase():0==t.nativeDef.indexOf("[AP]")?e.toUpperCase():e},insertMode:!1}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i;"function"==typeof Symbol&&Symbol.iterator,void 0===(i=function(){return window}.call(t,n,t,e))||(e.exports=i)},function(e,t,n){"use strict";var i;"function"==typeof Symbol&&Symbol.iterator,void 0===(i=function(){return document}.call(t,n,t,e))||(e.exports=i)},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator,o=function(e,t){return t.extendDefinitions({A:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",casing:"upper"},"&":{validator:"[0-9A-Za-zА-яЁёÀ-ÿµ]",casing:"upper"},"#":{validator:"[0-9A-Fa-f]",casing:"upper"}}),t.extendAliases({cssunit:{regex:"[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)"},url:{regex:"(https?|ftp)//.*",autoUnmask:!1},ip:{mask:"i[i[i]].i[i[i]].i[i[i]].i[i[i]]",definitions:{i:{validator:function(e,t,n,i,a){return n-1>-1&&"."!==t.buffer[n-1]?(e=t.buffer[n-1]+e,e=n-2>-1&&"."!==t.buffer[n-2]?t.buffer[n-2]+e:"0"+e):e="00"+e,new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(e)}}},onUnMask:function(e,t,n){return e},inputmode:"numeric"},email:{mask:"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",greedy:!1,casing:"lower",onBeforePaste:function(e,t){return(e=e.toLowerCase()).replace("mailto:","")},definitions:{"*":{validator:"[0-91-9A-Za-zА-яЁёÀ-ÿµ!#$%&'*+/=?^_`{|}~-]"},"-":{validator:"[0-9A-Za-z-]"}},onUnMask:function(e,t,n){return e},inputmode:"email"},mac:{mask:"##:##:##:##:##:##"},vin:{mask:"V{13}9{4}",definitions:{V:{validator:"[A-HJ-NPR-Za-hj-npr-z\\d]",casing:"upper"}},clearIncomplete:!0,autoUnmask:!0}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o;"function"==typeof Symbol&&Symbol.iterator,o=function(e,t,n){function i(e,n){for(var i="",a=0;a1&&(e.placeholder=e.placeholder.charAt(0)),"radixFocus"===e.positionCaretOnClick&&""===e.placeholder&&!1===e.integerOptional&&(e.positionCaretOnClick="lvp"),e.definitions[";"]=e.definitions["~"],e.definitions[";"].definitionSymbol="~",!0===e.numericInput&&(e.positionCaretOnClick="radixFocus"===e.positionCaretOnClick?"lvp":e.positionCaretOnClick,e.digitsOptional=!1,isNaN(e.digits)&&(e.digits=2),e.decimalProtect=!1);var r="[+]";if(r+=i(e.prefix,e),!0===e.integerOptional?r+="~{1,"+e.integerDigits+"}":r+="~{"+e.integerDigits+"}",e.digits!==n){var o=e.decimalProtect?":":e.radixPoint,s=e.digits.toString().split(",");isFinite(s[0])&&s[1]&&isFinite(s[1])?r+=o+";{"+e.digits+"}":(isNaN(e.digits)||parseInt(e.digits)>0)&&(e.digitsOptional?r+="["+o+";{1,"+e.digits+"}]":r+=o+";{"+e.digits+"}")}return r+=i(e.suffix,e),r+="[-]",e.greedy=!1,r},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,enforceDigitsOnBlur:!1,radixPoint:".",positionCaretOnClick:"radixFocus",groupSize:3,groupSeparator:"",autoGroup:!1,allowMinus:!0,negationSymbol:{front:"-",back:""},integerDigits:"+",integerOptional:!0,prefix:"",suffix:"",rightAlign:!0,decimalProtect:!0,min:null,max:null,step:1,insertMode:!0,autoUnmask:!1,unmaskAsNumber:!1,inputmode:"numeric",preValidation:function(t,i,a,r,o,s){if("-"===a||a===o.negationSymbol.front)return!0===o.allowMinus&&(o.isNegative=o.isNegative===n||!o.isNegative,""===t.join("")||{caret:i,dopost:!0});if(!1===r&&a===o.radixPoint&&o.digits!==n&&(isNaN(o.digits)||parseInt(o.digits)>0)){var l=e.inArray(o.radixPoint,t);if(-1!==l&&s.validPositions[l]!==n)return!0===o.numericInput?i===l:{caret:l+1}}return!0},postValidation:function(i,a,r){var o=r.suffix.split(""),s=r.prefix.split("");if(a.pos===n&&a.caret!==n&&!0!==a.dopost)return a;var l=a.caret!==n?a.caret:a.pos,u=i.slice();r.numericInput&&(l=u.length-l-1,u=u.reverse());var c=u[l];if(c===r.groupSeparator&&(c=u[l+=1]),l===u.length-r.suffix.length-1&&c===r.radixPoint)return a;c!==n&&c!==r.radixPoint&&c!==r.negationSymbol.front&&c!==r.negationSymbol.back&&(u[l]="?",r.prefix.length>0&&l>=(!1===r.isNegative?1:0)&&l0&&l>=u.length-r.suffix.length-(!1===r.isNegative?1:0)&&(o[l-(u.length-r.suffix.length-(!1===r.isNegative?1:0))]="?")),s=s.join(""),o=o.join("");var p=u.join("").replace(s,"");if(p=(p=(p=(p=p.replace(o,"")).replace(new RegExp(t.escapeRegex(r.groupSeparator),"g"),"")).replace(new RegExp("[-"+t.escapeRegex(r.negationSymbol.front)+"]","g"),"")).replace(new RegExp(t.escapeRegex(r.negationSymbol.back)+"$"),""),isNaN(r.placeholder)&&(p=p.replace(new RegExp(t.escapeRegex(r.placeholder),"g"),"")),p.length>1&&1!==p.indexOf(r.radixPoint)&&("0"===c&&(p=p.replace(/^\?/g,"")),p=p.replace(/^0/g,"")),p.charAt(0)===r.radixPoint&&""!==r.radixPoint&&!0!==r.numericInput&&(p="0"+p),""!==p){if(p=p.split(""),(!r.digitsOptional||r.enforceDigitsOnBlur&&"blur"===a.event)&&isFinite(r.digits)){var f=e.inArray(r.radixPoint,p),m=e.inArray(r.radixPoint,u);-1===f&&(p.push(r.radixPoint),f=p.length-1);for(var d=1;d<=r.digits;d++)r.digitsOptional&&(!r.enforceDigitsOnBlur||"blur"!==a.event)||p[f+d]!==n&&p[f+d]!==r.placeholder.charAt(0)?-1!==m&&u[m+d]!==n&&(p[f+d]=p[f+d]||u[m+d]):p[f+d]=a.placeholder||r.placeholder.charAt(0)}if(!0!==r.autoGroup||""===r.groupSeparator||c===r.radixPoint&&a.pos===n&&!a.dopost)p=p.join("");else{var h=p[p.length-1]===r.radixPoint&&a.c===r.radixPoint;p=t(function(e,t){var n="";if(n+="("+t.groupSeparator+"*{"+t.groupSize+"}){*}",""!==t.radixPoint){var i=e.join("").split(t.radixPoint);i[1]&&(n+=t.radixPoint+"*{"+i[1].match(/^\d*\??\d*/)[0].length+"}")}return n}(p,r),{numericInput:!0,jitMasking:!0,definitions:{"*":{validator:"[0-9?]",cardinality:1}}}).format(p.join("")),h&&(p+=r.radixPoint),p.charAt(0)===r.groupSeparator&&p.substr(1)}}if(r.isNegative&&"blur"===a.event&&(r.isNegative="0"!==p),p=s+p,p+=o,r.isNegative&&(p=r.negationSymbol.front+p,p+=r.negationSymbol.back),p=p.split(""),c!==n)if(c!==r.radixPoint&&c!==r.negationSymbol.front&&c!==r.negationSymbol.back)(l=e.inArray("?",p))>-1?p[l]=c:l=a.caret||0;else if(c===r.radixPoint||c===r.negationSymbol.front||c===r.negationSymbol.back){var g=e.inArray(c,p);-1!==g&&(l=g)}r.numericInput&&(l=p.length-l-1,p=p.reverse());var v={caret:c===n||a.pos!==n?l+(r.numericInput?-1:1):l,buffer:p,refreshFromBuffer:a.dopost||i.join("")!==p.join("")};return v.refreshFromBuffer?v:a},onBeforeWrite:function(i,a,r,o){if(i)switch(i.type){case"keydown":return o.postValidation(a,{caret:r,dopost:!0},o);case"blur":case"checkval":var s;if(function(e){e.parseMinMaxOptions===n&&(null!==e.min&&(e.min=e.min.toString().replace(new RegExp(t.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.min=e.min.replace(e.radixPoint,".")),e.min=isFinite(e.min)?parseFloat(e.min):NaN,isNaN(e.min)&&(e.min=Number.MIN_VALUE)),null!==e.max&&(e.max=e.max.toString().replace(new RegExp(t.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.max=e.max.replace(e.radixPoint,".")),e.max=isFinite(e.max)?parseFloat(e.max):NaN,isNaN(e.max)&&(e.max=Number.MAX_VALUE)),e.parseMinMaxOptions="done")}(o),null!==o.min||null!==o.max){if(s=o.onUnMask(a.join(""),n,e.extend({},o,{unmaskAsNumber:!0})),null!==o.min&&so.max)return o.isNegative=o.max<0,o.postValidation(o.max.toString().replace(".",o.radixPoint).split(""),{caret:r,dopost:!0,placeholder:"0"},o)}return o.postValidation(a,{caret:r,placeholder:"0",event:"blur"},o);case"_checkval":return{caret:r}}},regex:{integerPart:function(e,n){return n?new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?"):new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?\\d+")},integerNPart:function(e){return new RegExp("[\\d"+t.escapeRegex(e.groupSeparator)+t.escapeRegex(e.placeholder.charAt(0))+"]+")}},definitions:{"~":{validator:function(e,i,a,r,o,s){var l;if("k"===e||"m"===e){l={insert:[],c:0};for(var u=0,c="k"===e?2:5;u1&&(f[1]=f[1].replace(/0/g,o.placeholder.charAt(0))),"0"===f[0]&&(f[0]=f[0].replace(/0/g,o.placeholder.charAt(0))),p=f[0]+o.radixPoint+f[1]||"";var m=i._buffer.join("");for(p===o.radixPoint&&(p=m);null===p.match(t.escapeRegex(m)+"$");)m=m.slice(1);l=(p=(p=p.replace(m,"")).split(""))[a]===n?{pos:a,remove:a}:{pos:a}}}else r||e!==o.radixPoint||i.validPositions[a-1]!==n||(l={insert:{pos:a,c:0},pos:a+1});return l},cardinality:1},"+":{validator:function(e,t,n,i,a){return a.allowMinus&&("-"===e||e===a.negationSymbol.front)},cardinality:1,placeholder:""},"-":{validator:function(e,t,n,i,a){return a.allowMinus&&e===a.negationSymbol.back},cardinality:1,placeholder:""},":":{validator:function(e,n,i,a,r){var o="["+t.escapeRegex(r.radixPoint)+"]",s=new RegExp(o).test(e);return s&&n.validPositions[i]&&n.validPositions[i].match.placeholder===r.radixPoint&&(s={caret:i+1}),s},cardinality:1,placeholder:function(e){return e.radixPoint}}},onUnMask:function(e,n,i){if(""===n&&!0===i.nullable)return n;var a=e.replace(i.prefix,"");return a=(a=a.replace(i.suffix,"")).replace(new RegExp(t.escapeRegex(i.groupSeparator),"g"),""),""!==i.placeholder.charAt(0)&&(a=a.replace(new RegExp(i.placeholder.charAt(0),"g"),"0")),i.unmaskAsNumber?(""!==i.radixPoint&&-1!==a.indexOf(i.radixPoint)&&(a=a.replace(t.escapeRegex.call(this,i.radixPoint),".")),a=(a=a.replace(new RegExp("^"+t.escapeRegex(i.negationSymbol.front)),"-")).replace(new RegExp(t.escapeRegex(i.negationSymbol.back)+"$"),""),Number(a)):a},isComplete:function(e,n){var i=(n.numericInput?e.slice().reverse():e).join("");return i=(i=(i=(i=(i=i.replace(new RegExp("^"+t.escapeRegex(n.negationSymbol.front)),"-")).replace(new RegExp(t.escapeRegex(n.negationSymbol.back)+"$"),"")).replace(n.prefix,"")).replace(n.suffix,"")).replace(new RegExp(t.escapeRegex(n.groupSeparator)+"([0-9]{3})","g"),"$1"),","===n.radixPoint&&(i=i.replace(t.escapeRegex(n.radixPoint),".")),isFinite(i)},onBeforeMask:function(i,a){if(a.isNegative=n,"number"==typeof i&&""!==a.radixPoint&&(i=i.toString().replace(".",a.radixPoint)),i=i.toString().charAt(i.length-1)===a.radixPoint?i.toString().substr(0,i.length-1):i.toString(),""!==a.radixPoint&&isFinite(i)){var r=i.split("."),o=""!==a.groupSeparator?parseInt(a.groupSize):0;2===r.length&&(r[0].length>o||r[1].length>o||r[0].length<=o&&r[1].lengths.length?(i=i.replace(/\./g,"")).replace(",",a.radixPoint):s.length>l.length?(i=i.replace(/,/g,"")).replace(".",a.radixPoint):i.indexOf(".")1e3&&(function o(e,n,i){n=n||"",i=i||r,""!==n&&(i[n]={});for(var a="",s=i[n]||i,l=e.length-1;l>=0;l--)s[a=(t=e[l].mask||e[l]).substr(0,1)]=s[a]||[],s[a].unshift(t.substr(1)),e.splice(l,1);for(var u in s)s[u].length>500&&o(s[u].slice(),u,s)}((t=t.substr(1,t.length-2)).split(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])),t=function s(t){var n="",i=[];for(var r in t)e.isArray(t[r])?1===t[r].length?i.push(r+t[r]):i.push(r+a.groupmarker[0]+t[r].join(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])+a.groupmarker[1]):i.push(r+s(t[r]));return 1===i.length?n+=i[0]:n+=a.groupmarker[0]+i.join(a.groupmarker[1]+a.alternatormarker+a.groupmarker[0])+a.groupmarker[1],n}(r)),t=t.replace(/9/g,"\\9")),i.call(this,t,n,a)},t.extendAliases({abstractphone:{groupmarker:["<",">"],countrycode:"",phoneCodes:[],keepStatic:"auto",mask:function(e){return e.definitions={"#":t.prototype.definitions[9]},e.phoneCodes.sort(n)},onBeforeMask:function(e,t){var n=e.replace(/^0{1,2}/,"").replace(/[\s]/g,"");return(n.indexOf(t.countrycode)>1||-1===n.indexOf(t.countrycode))&&(n="+"+t.countrycode+n),n},onUnMask:function(e,t,n){return e.replace(/[()#-]/g,"")},inputmode:"tel"}}),t},a=[n(0),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)},function(e,t,n){"use strict";var i,a,r,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};o=function(e,t){return void 0===e.fn.inputmask&&(e.fn.inputmask=function(n,i){var a,r=this[0];if(void 0===i&&(i={}),"string"==typeof n)switch(n){case"unmaskedvalue":return r&&r.inputmask?r.inputmask.unmaskedvalue():e(r).val();case"remove":return this.each(function(){this.inputmask&&this.inputmask.remove()});case"getemptymask":return r&&r.inputmask?r.inputmask.getemptymask():"";case"hasMaskedValue":return!(!r||!r.inputmask)&&r.inputmask.hasMaskedValue();case"isComplete":return!r||!r.inputmask||r.inputmask.isComplete();case"getmetadata":return r&&r.inputmask?r.inputmask.getmetadata():void 0;case"setvalue":t.setValue(r,i);break;case"option":if("string"!=typeof i)return this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(i)});if(r&&void 0!==r.inputmask)return r.inputmask.option(i);break;default:return i.alias=n,a=new t(i),this.each(function(){a.mask(this)})}else{if("object"==(void 0===n?"undefined":s(n)))return a=new t(n),void 0===n.mask&&void 0===n.alias?this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(n);a.mask(this)}):this.each(function(){a.mask(this)});if(void 0===n)return this.each(function(){(a=new t(i)).mask(this)})}}),e.fn.inputmask},a=[n(2),n(1)],void 0===(r="function"==typeof(i=o)?i.apply(t,a):i)||(e.exports=r)}]);PK\Wa@G@G4assets/js/perfect-scrollbar/perfect-scrollbar.min.jsnuW+A/*! * perfect-scrollbar v1.4.0 * (c) 2018 Hyunje Jun * @license MIT */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.PerfectScrollbar=e()}(this,function(){"use strict";function t(t){return getComputedStyle(t)}function e(t,e){for(var i in e){var r=e[i];"number"==typeof r&&(r+="px"),t.style[i]=r}return t}function i(t){var e=document.createElement("div");return e.className=t,e}function r(t,e){if(!f)throw new Error("No element matching method supported");return f.call(t,e)}function l(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function n(t,e){return Array.prototype.filter.call(t.children,function(t){return r(t,e)})}function o(t,e){var i=t.element.classList,r=p.state.scrolling(e);i.contains(r)?clearTimeout(b[e]):i.add(r)}function s(t,e){b[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(p.state.scrolling(e))},t.settings.scrollingThreshold)}function a(t){if("function"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent("CustomEvent");return e.initCustomEvent(t,!1,!1,undefined),e}function c(t,e,i,r,l){var n=i[0],c=i[1],h=i[2],u=i[3],d=i[4],f=i[5];void 0===r&&(r=!0),void 0===l&&(l=!1);var p=t.element;t.reach[u]=null,p[h]<1&&(t.reach[u]="start"),p[h]>t[n]-t[c]-1&&(t.reach[u]="end"),e&&(p.dispatchEvent(a("ps-scroll-"+u)),e<0?p.dispatchEvent(a("ps-scroll-"+d)):e>0&&p.dispatchEvent(a("ps-scroll-"+f)),r&&function(t,e){o(t,e),s(t,e)}(t,u)),t.reach[u]&&(e||l)&&p.dispatchEvent(a("ps-"+u+"-reach-"+t.reach[u]))}function h(t){return parseInt(t,10)||0}function u(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function d(t,e){function i(e){g[d]=v+Y*(e[a]-m),o(t,f),w(t),e.stopPropagation(),e.preventDefault()}function r(){s(t,f),t[b].classList.remove(p.state.clicking),t.event.unbind(t.ownerDocument,"mousemove",i)}var l=e[0],n=e[1],a=e[2],c=e[3],h=e[4],u=e[5],d=e[6],f=e[7],b=e[8],g=t.element,v=null,m=null,Y=null;t.event.bind(t[h],"mousedown",function(e){v=g[d],m=e[a],Y=(t[n]-t[l])/(t[c]-t[u]),t.event.bind(t.ownerDocument,"mousemove",i),t.event.once(t.ownerDocument,"mouseup",r),t[b].classList.add(p.state.clicking),e.stopPropagation(),e.preventDefault()})}var f="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector),p={main:"ps",element:{thumb:function(t){return"ps__thumb-"+t},rail:function(t){return"ps__rail-"+t},consuming:"ps__child--consume"},state:{focus:"ps--focus",clicking:"ps--clicking",active:function(t){return"ps--active-"+t},scrolling:function(t){return"ps--scrolling-"+t}}},b={x:null,y:null},g=function(t){this.element=t,this.handlers={}},v={isEmpty:{configurable:!0}};g.prototype.bind=function(t,e){"undefined"==typeof this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},g.prototype.unbind=function(t,e){var i=this;this.handlers[t]=this.handlers[t].filter(function(r){return!(!e||r===e)||(i.element.removeEventListener(t,r,!1),!1)})},g.prototype.unbindAll=function(){for(var t in this.handlers)this.unbind(t)},v.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(g.prototype,v);var m=function(){this.eventElements=[]};m.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new g(t),this.eventElements.push(e)),e},m.prototype.bind=function(t,e,i){this.eventElement(t).bind(e,i)},m.prototype.unbind=function(t,e,i){var r=this.eventElement(t);r.unbind(e,i),r.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(r),1)},m.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},m.prototype.once=function(t,e,i){var r=this.eventElement(t),l=function(t){r.unbind(e,l),i(t)};r.bind(e,l)};var Y=function(t,e,i,r,l){void 0===r&&(r=!0),void 0===l&&(l=!1);var n;if("top"===e)n=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==e)throw new Error("A proper axis should be provided");n=["contentWidth","containerWidth","scrollLeft","x","left","right"]}c(t,i,n,r,l)},X={isWebKit:"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style,supportsTouch:"undefined"!=typeof window&&("ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:"undefined"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:"undefined"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)},w=function(t){var i=t.element,r=Math.floor(i.scrollTop);t.containerWidth=i.clientWidth,t.containerHeight=i.clientHeight,t.contentWidth=i.scrollWidth,t.contentHeight=i.scrollHeight,i.contains(t.scrollbarXRail)||(n(i,p.element.rail("x")).forEach(function(t){return l(t)}),i.appendChild(t.scrollbarXRail)),i.contains(t.scrollbarYRail)||(n(i,p.element.rail("y")).forEach(function(t){return l(t)}),i.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),function(t,i){var r={width:i.railXWidth},l=Math.floor(t.scrollTop);i.isRtl?r.left=i.negativeScrollAdjustment+t.scrollLeft+i.containerWidth-i.contentWidth:r.left=t.scrollLeft,i.isScrollbarXUsingBottom?r.bottom=i.scrollbarXBottom-l:r.top=i.scrollbarXTop+l,e(i.scrollbarXRail,r);var n={top:l,height:i.railYHeight};i.isScrollbarYUsingRight?i.isRtl?n.right=i.contentWidth-(i.negativeScrollAdjustment+t.scrollLeft)-i.scrollbarYRight-i.scrollbarYOuterWidth:n.right=i.scrollbarYRight-t.scrollLeft:i.isRtl?n.left=i.negativeScrollAdjustment+t.scrollLeft+2*i.containerWidth-i.contentWidth-i.scrollbarYLeft-i.scrollbarYOuterWidth:n.left=i.scrollbarYLeft+t.scrollLeft,e(i.scrollbarYRail,n),e(i.scrollbarX,{left:i.scrollbarXLeft,width:i.scrollbarXWidth-i.railBorderXWidth}),e(i.scrollbarY,{top:i.scrollbarYTop,height:i.scrollbarYHeight-i.railBorderYWidth})}(i,t),t.scrollbarXActive?i.classList.add(p.state.active("x")):(i.classList.remove(p.state.active("x")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,i.scrollLeft=0),t.scrollbarYActive?i.classList.add(p.state.active("y")):(i.classList.remove(p.state.active("y")),t.scrollbarYHeight=0,t.scrollbarYTop=0,i.scrollTop=0)},y={"click-rail":function(t){t.event.bind(t.scrollbarY,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,"mousedown",function(e){var i=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top>t.scrollbarYTop?1:-1;t.element.scrollTop+=i*t.containerHeight,w(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,"mousedown",function(e){var i=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=i*t.containerWidth,w(t),e.stopPropagation()})},"drag-thumb":function(t){d(t,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),d(t,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function(t){var e=t.element;t.event.bind(t.ownerDocument,"keydown",function(i){if(!(i.isDefaultPrevented&&i.isDefaultPrevented()||i.defaultPrevented)&&(r(e,":hover")||r(t.scrollbarX,":focus")||r(t.scrollbarY,":focus"))){var l=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(l){if("IFRAME"===l.tagName)l=l.contentDocument.activeElement;else for(;l.shadowRoot;)l=l.shadowRoot.activeElement;if(function(t){return r(t,"input,[contenteditable]")||r(t,"select,[contenteditable]")||r(t,"textarea,[contenteditable]")||r(t,"button,[contenteditable]")}(l))return}var n=0,o=0;switch(i.which){case 37:n=i.metaKey?-t.contentWidth:i.altKey?-t.containerWidth:-30;break;case 38:o=i.metaKey?t.contentHeight:i.altKey?t.containerHeight:30;break;case 39:n=i.metaKey?t.contentWidth:i.altKey?t.containerWidth:30;break;case 40:o=i.metaKey?-t.contentHeight:i.altKey?-t.containerHeight:-30;break;case 32:o=i.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:o=t.containerHeight;break;case 34:o=-t.containerHeight;break;case 36:o=t.contentHeight;break;case 35:o=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==n||t.settings.suppressScrollY&&0!==o||(e.scrollTop-=o,e.scrollLeft+=n,w(t),function(i,r){var l=Math.floor(e.scrollTop);if(0===i){if(!t.scrollbarYActive)return!1;if(0===l&&r>0||l>=t.contentHeight-t.containerHeight&&r<0)return!t.settings.wheelPropagation}var n=e.scrollLeft;if(0===r){if(!t.scrollbarXActive)return!1;if(0===n&&i<0||n>=t.contentWidth-t.containerWidth&&i>0)return!t.settings.wheelPropagation}return!0}(n,o)&&i.preventDefault())}})},wheel:function(e){function i(i){var l=function(t){var e=t.deltaX,i=-1*t.deltaY;return void 0!==e&&void 0!==i||(e=-1*t.wheelDeltaX/6,i=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,i*=10),e!=e&&i!=i&&(e=0,i=t.wheelDelta),t.shiftKey?[-i,-e]:[e,i]}(i),n=l[0],o=l[1];if(!function(e,i,l){if(!X.isWebKit&&r.querySelector("select:focus"))return!0;if(!r.contains(e))return!1;for(var n=e;n&&n!==r;){if(n.classList.contains(p.element.consuming))return!0;var o=t(n);if([o.overflow,o.overflowX,o.overflowY].join("").match(/(scroll|auto)/)){var s=n.scrollHeight-n.clientHeight;if(s>0&&!(0===n.scrollTop&&l>0||n.scrollTop===s&&l<0))return!0;var a=n.scrollWidth-n.clientWidth;if(a>0&&!(0===n.scrollLeft&&i<0||n.scrollLeft===a&&i>0))return!0}n=n.parentNode}return!1}(i.target,n,o)){var s=!1;e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(o?r.scrollTop-=o*e.settings.wheelSpeed:r.scrollTop+=n*e.settings.wheelSpeed,s=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(n?r.scrollLeft+=n*e.settings.wheelSpeed:r.scrollLeft-=o*e.settings.wheelSpeed,s=!0):(r.scrollTop-=o*e.settings.wheelSpeed,r.scrollLeft+=n*e.settings.wheelSpeed),w(e),(s=s||function(t,i){var l=Math.floor(r.scrollTop),n=0===r.scrollTop,o=l+r.offsetHeight===r.scrollHeight,s=0===r.scrollLeft,a=r.scrollLeft+r.offsetWidth===r.scrollWidth;return!(Math.abs(i)>Math.abs(t)?n||o:s||a)||!e.settings.wheelPropagation}(n,o))&&!i.ctrlKey&&(i.stopPropagation(),i.preventDefault())}}var r=e.element;"undefined"!=typeof window.onwheel?e.event.bind(r,"wheel",i):"undefined"!=typeof window.onmousewheel&&e.event.bind(r,"mousewheel",i)},touch:function(e){function i(t,i){a.scrollTop-=i,a.scrollLeft-=t,w(e)}function r(t){return t.targetTouches?t.targetTouches[0]:t}function l(t){return!(t.pointerType&&"pen"===t.pointerType&&0===t.buttons||(!t.targetTouches||1!==t.targetTouches.length)&&(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function n(t){if(l(t)){var e=r(t);c.pageX=e.pageX,c.pageY=e.pageY,h=(new Date).getTime(),null!==d&&clearInterval(d)}}function o(n){if(l(n)){var o=r(n),s={pageX:o.pageX,pageY:o.pageY},d=s.pageX-c.pageX,f=s.pageY-c.pageY;if(function(e,i,r){if(!a.contains(e))return!1;for(var l=e;l&&l!==a;){if(l.classList.contains(p.element.consuming))return!0;var n=t(l);if([n.overflow,n.overflowX,n.overflowY].join("").match(/(scroll|auto)/)){var o=l.scrollHeight-l.clientHeight;if(o>0&&!(0===l.scrollTop&&r>0||l.scrollTop===o&&r<0))return!0;var s=l.scrollLeft-l.clientWidth;if(s>0&&!(0===l.scrollLeft&&i<0||l.scrollLeft===s&&i>0))return!0}l=l.parentNode}return!1}(n.target,d,f))return;i(d,f),c=s;var b=(new Date).getTime(),g=b-h;g>0&&(u.x=d/g,u.y=f/g,h=b),function(t,i){var r=Math.floor(a.scrollTop),l=a.scrollLeft,n=Math.abs(t),o=Math.abs(i);if(o>n){if(i<0&&r===e.contentHeight-e.containerHeight||i>0&&0===r)return 0===window.scrollY&&i>0&&X.isChrome}else if(n>o&&(t<0&&l===e.contentWidth-e.containerWidth||t>0&&0===l))return!0;return!0}(d,f)&&n.preventDefault()}}function s(){e.settings.swipeEasing&&(clearInterval(d),d=setInterval(function(){e.isInitialized?clearInterval(d):u.x||u.y?Math.abs(u.x)<.01&&Math.abs(u.y)<.01?clearInterval(d):(i(30*u.x,30*u.y),u.x*=.8,u.y*=.8):clearInterval(d)},10))}if(X.supportsTouch||X.supportsIePointer){var a=e.element,c={},h=0,u={},d=null;X.supportsTouch?(e.event.bind(a,"touchstart",n),e.event.bind(a,"touchmove",o),e.event.bind(a,"touchend",s)):X.supportsIePointer&&(window.PointerEvent?(e.event.bind(a,"pointerdown",n),e.event.bind(a,"pointermove",o),e.event.bind(a,"pointerup",s)):window.MSPointerEvent&&(e.event.bind(a,"MSPointerDown",n),e.event.bind(a,"MSPointerMove",o),e.event.bind(a,"MSPointerUp",s)))}}},W=function(r,l){var n=this;if(void 0===l&&(l={}),"string"==typeof r&&(r=document.querySelector(r)),!r||!r.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");this.element=r,r.classList.add(p.main),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1};for(var o in l)n.settings[o]=l[o];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var s=function(){return r.classList.add(p.state.focus)},a=function(){return r.classList.remove(p.state.focus)};this.isRtl="rtl"===t(r).direction,this.isNegativeScroll=function(){var t=r.scrollLeft,e=null;return r.scrollLeft=-1,e=r.scrollLeft<0,r.scrollLeft=t,e}(),this.negativeScrollAdjustment=this.isNegativeScroll?r.scrollWidth-r.clientWidth:0,this.event=new m,this.ownerDocument=r.ownerDocument||document,this.scrollbarXRail=i(p.element.rail("x")),r.appendChild(this.scrollbarXRail),this.scrollbarX=i(p.element.thumb("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",s),this.event.bind(this.scrollbarX,"blur",a),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var c=t(this.scrollbarXRail);this.scrollbarXBottom=parseInt(c.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=h(c.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=h(c.borderLeftWidth)+h(c.borderRightWidth),e(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=h(c.marginLeft)+h(c.marginRight),e(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=i(p.element.rail("y")),r.appendChild(this.scrollbarYRail),this.scrollbarY=i(p.element.thumb("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",s),this.event.bind(this.scrollbarY,"blur",a),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var u=t(this.scrollbarYRail);this.scrollbarYRight=parseInt(u.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=h(u.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?function(e){var i=t(e);return h(i.width)+h(i.paddingLeft)+h(i.paddingRight)+h(i.borderLeftWidth)+h(i.borderRightWidth)}(this.scrollbarY):null,this.railBorderYWidth=h(u.borderTopWidth)+h(u.borderBottomWidth),e(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=h(u.marginTop)+h(u.marginBottom),e(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:r.scrollLeft<=0?"start":r.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:r.scrollTop<=0?"start":r.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return y[t](n)}),this.lastScrollTop=Math.floor(r.scrollTop),this.lastScrollLeft=r.scrollLeft,this.event.bind(this.element,"scroll",function(t){return n.onScroll(t)}),w(this)};return W.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,e(this.scrollbarXRail,{display:"block"}),e(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=h(t(this.scrollbarXRail).marginLeft)+h(t(this.scrollbarXRail).marginRight),this.railYMarginHeight=h(t(this.scrollbarYRail).marginTop)+h(t(this.scrollbarYRail).marginBottom),e(this.scrollbarXRail,{display:"none"}),e(this.scrollbarYRail,{display:"none"}),w(this),Y(this,"top",0,!1,!0),Y(this,"left",0,!1,!0),e(this.scrollbarXRail,{display:""}),e(this.scrollbarYRail,{display:""}))},W.prototype.onScroll=function(t){this.isAlive&&(w(this),Y(this,"top",this.element.scrollTop-this.lastScrollTop),Y(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},W.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),l(this.scrollbarX),l(this.scrollbarY),l(this.scrollbarXRail),l(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},W.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(" ")},W});PK\؁0assets/js/perfect-scrollbar/perfect-scrollbar.jsnuW+A/*! * perfect-scrollbar v1.4.0 * (c) 2018 Hyunje Jun * @license MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.PerfectScrollbar = factory()); }(this, (function () { 'use strict'; function get(element) { return getComputedStyle(element); } function set(element, obj) { for (var key in obj) { var val = obj[key]; if (typeof val === 'number') { val = val + "px"; } element.style[key] = val; } return element; } function div(className) { var div = document.createElement('div'); div.className = className; return div; } var elMatches = typeof Element !== 'undefined' && (Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector); function matches(element, query) { if (!elMatches) { throw new Error('No element matching method supported'); } return elMatches.call(element, query); } function remove(element) { if (element.remove) { element.remove(); } else { if (element.parentNode) { element.parentNode.removeChild(element); } } } function queryChildren(element, selector) { return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); } ); } var cls = { main: 'ps', element: { thumb: function (x) { return ("ps__thumb-" + x); }, rail: function (x) { return ("ps__rail-" + x); }, consuming: 'ps__child--consume', }, state: { focus: 'ps--focus', clicking: 'ps--clicking', active: function (x) { return ("ps--active-" + x); }, scrolling: function (x) { return ("ps--scrolling-" + x); }, }, }; /* * Helper methods */ var scrollingClassTimeout = { x: null, y: null }; function addScrollingClass(i, x) { var classList = i.element.classList; var className = cls.state.scrolling(x); if (classList.contains(className)) { clearTimeout(scrollingClassTimeout[x]); } else { classList.add(className); } } function removeScrollingClass(i, x) { scrollingClassTimeout[x] = setTimeout( function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); }, i.settings.scrollingThreshold ); } function setScrollingClassInstantly(i, x) { addScrollingClass(i, x); removeScrollingClass(i, x); } var EventElement = function EventElement(element) { this.element = element; this.handlers = {}; }; var prototypeAccessors = { isEmpty: { configurable: true } }; EventElement.prototype.bind = function bind (eventName, handler) { if (typeof this.handlers[eventName] === 'undefined') { this.handlers[eventName] = []; } this.handlers[eventName].push(handler); this.element.addEventListener(eventName, handler, false); }; EventElement.prototype.unbind = function unbind (eventName, target) { var this$1 = this; this.handlers[eventName] = this.handlers[eventName].filter(function (handler) { if (target && handler !== target) { return true; } this$1.element.removeEventListener(eventName, handler, false); return false; }); }; EventElement.prototype.unbindAll = function unbindAll () { var this$1 = this; for (var name in this$1.handlers) { this$1.unbind(name); } }; prototypeAccessors.isEmpty.get = function () { var this$1 = this; return Object.keys(this.handlers).every( function (key) { return this$1.handlers[key].length === 0; } ); }; Object.defineProperties( EventElement.prototype, prototypeAccessors ); var EventManager = function EventManager() { this.eventElements = []; }; EventManager.prototype.eventElement = function eventElement (element) { var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0]; if (!ee) { ee = new EventElement(element); this.eventElements.push(ee); } return ee; }; EventManager.prototype.bind = function bind (element, eventName, handler) { this.eventElement(element).bind(eventName, handler); }; EventManager.prototype.unbind = function unbind (element, eventName, handler) { var ee = this.eventElement(element); ee.unbind(eventName, handler); if (ee.isEmpty) { // remove this.eventElements.splice(this.eventElements.indexOf(ee), 1); } }; EventManager.prototype.unbindAll = function unbindAll () { this.eventElements.forEach(function (e) { return e.unbindAll(); }); this.eventElements = []; }; EventManager.prototype.once = function once (element, eventName, handler) { var ee = this.eventElement(element); var onceHandler = function (evt) { ee.unbind(eventName, onceHandler); handler(evt); }; ee.bind(eventName, onceHandler); }; function createEvent(name) { if (typeof window.CustomEvent === 'function') { return new CustomEvent(name); } else { var evt = document.createEvent('CustomEvent'); evt.initCustomEvent(name, false, false, undefined); return evt; } } var processScrollDiff = function( i, axis, diff, useScrollingClass, forceFireReachEvent ) { if ( useScrollingClass === void 0 ) useScrollingClass = true; if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; var fields; if (axis === 'top') { fields = [ 'contentHeight', 'containerHeight', 'scrollTop', 'y', 'up', 'down' ]; } else if (axis === 'left') { fields = [ 'contentWidth', 'containerWidth', 'scrollLeft', 'x', 'left', 'right' ]; } else { throw new Error('A proper axis should be provided'); } processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent); }; function processScrollDiff$1( i, diff, ref, useScrollingClass, forceFireReachEvent ) { var contentHeight = ref[0]; var containerHeight = ref[1]; var scrollTop = ref[2]; var y = ref[3]; var up = ref[4]; var down = ref[5]; if ( useScrollingClass === void 0 ) useScrollingClass = true; if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; var element = i.element; // reset reach i.reach[y] = null; // 1 for subpixel rounding if (element[scrollTop] < 1) { i.reach[y] = 'start'; } // 1 for subpixel rounding if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) { i.reach[y] = 'end'; } if (diff) { element.dispatchEvent(createEvent(("ps-scroll-" + y))); if (diff < 0) { element.dispatchEvent(createEvent(("ps-scroll-" + up))); } else if (diff > 0) { element.dispatchEvent(createEvent(("ps-scroll-" + down))); } if (useScrollingClass) { setScrollingClassInstantly(i, y); } } if (i.reach[y] && (diff || forceFireReachEvent)) { element.dispatchEvent(createEvent(("ps-" + y + "-reach-" + (i.reach[y])))); } } function toInt(x) { return parseInt(x, 10) || 0; } function isEditable(el) { return ( matches(el, 'input,[contenteditable]') || matches(el, 'select,[contenteditable]') || matches(el, 'textarea,[contenteditable]') || matches(el, 'button,[contenteditable]') ); } function outerWidth(element) { var styles = get(element); return ( toInt(styles.width) + toInt(styles.paddingLeft) + toInt(styles.paddingRight) + toInt(styles.borderLeftWidth) + toInt(styles.borderRightWidth) ); } var env = { isWebKit: typeof document !== 'undefined' && 'WebkitAppearance' in document.documentElement.style, supportsTouch: typeof window !== 'undefined' && ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)), supportsIePointer: typeof navigator !== 'undefined' && navigator.msMaxTouchPoints, isChrome: typeof navigator !== 'undefined' && /Chrome/i.test(navigator && navigator.userAgent), }; var updateGeometry = function(i) { var element = i.element; var roundedScrollTop = Math.floor(element.scrollTop); i.containerWidth = element.clientWidth; i.containerHeight = element.clientHeight; i.contentWidth = element.scrollWidth; i.contentHeight = element.scrollHeight; if (!element.contains(i.scrollbarXRail)) { // clean up and append queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); } ); element.appendChild(i.scrollbarXRail); } if (!element.contains(i.scrollbarYRail)) { // clean up and append queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); } ); element.appendChild(i.scrollbarYRail); } if ( !i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth ) { i.scrollbarXActive = true; i.railXWidth = i.containerWidth - i.railXMarginWidth; i.railXRatio = i.containerWidth / i.railXWidth; i.scrollbarXWidth = getThumbSize( i, toInt(i.railXWidth * i.containerWidth / i.contentWidth) ); i.scrollbarXLeft = toInt( (i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth) ); } else { i.scrollbarXActive = false; } if ( !i.settings.suppressScrollY && i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight ) { i.scrollbarYActive = true; i.railYHeight = i.containerHeight - i.railYMarginHeight; i.railYRatio = i.containerHeight / i.railYHeight; i.scrollbarYHeight = getThumbSize( i, toInt(i.railYHeight * i.containerHeight / i.contentHeight) ); i.scrollbarYTop = toInt( roundedScrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight) ); } else { i.scrollbarYActive = false; } if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) { i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth; } if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) { i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight; } updateCss(element, i); if (i.scrollbarXActive) { element.classList.add(cls.state.active('x')); } else { element.classList.remove(cls.state.active('x')); i.scrollbarXWidth = 0; i.scrollbarXLeft = 0; element.scrollLeft = 0; } if (i.scrollbarYActive) { element.classList.add(cls.state.active('y')); } else { element.classList.remove(cls.state.active('y')); i.scrollbarYHeight = 0; i.scrollbarYTop = 0; element.scrollTop = 0; } }; function getThumbSize(i, thumbSize) { if (i.settings.minScrollbarLength) { thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength); } if (i.settings.maxScrollbarLength) { thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength); } return thumbSize; } function updateCss(element, i) { var xRailOffset = { width: i.railXWidth }; var roundedScrollTop = Math.floor(element.scrollTop); if (i.isRtl) { xRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth; } else { xRailOffset.left = element.scrollLeft; } if (i.isScrollbarXUsingBottom) { xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop; } else { xRailOffset.top = i.scrollbarXTop + roundedScrollTop; } set(i.scrollbarXRail, xRailOffset); var yRailOffset = { top: roundedScrollTop, height: i.railYHeight }; if (i.isScrollbarYUsingRight) { if (i.isRtl) { yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth; } else { yRailOffset.right = i.scrollbarYRight - element.scrollLeft; } } else { if (i.isRtl) { yRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth * 2 - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth; } else { yRailOffset.left = i.scrollbarYLeft + element.scrollLeft; } } set(i.scrollbarYRail, yRailOffset); set(i.scrollbarX, { left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth, }); set(i.scrollbarY, { top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth, }); } var clickRail = function(i) { i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); }); i.event.bind(i.scrollbarYRail, 'mousedown', function (e) { var positionTop = e.pageY - window.pageYOffset - i.scrollbarYRail.getBoundingClientRect().top; var direction = positionTop > i.scrollbarYTop ? 1 : -1; i.element.scrollTop += direction * i.containerHeight; updateGeometry(i); e.stopPropagation(); }); i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); }); i.event.bind(i.scrollbarXRail, 'mousedown', function (e) { var positionLeft = e.pageX - window.pageXOffset - i.scrollbarXRail.getBoundingClientRect().left; var direction = positionLeft > i.scrollbarXLeft ? 1 : -1; i.element.scrollLeft += direction * i.containerWidth; updateGeometry(i); e.stopPropagation(); }); }; var dragThumb = function(i) { bindMouseScrollHandler(i, [ 'containerWidth', 'contentWidth', 'pageX', 'railXWidth', 'scrollbarX', 'scrollbarXWidth', 'scrollLeft', 'x', 'scrollbarXRail' ]); bindMouseScrollHandler(i, [ 'containerHeight', 'contentHeight', 'pageY', 'railYHeight', 'scrollbarY', 'scrollbarYHeight', 'scrollTop', 'y', 'scrollbarYRail' ]); }; function bindMouseScrollHandler( i, ref ) { var containerHeight = ref[0]; var contentHeight = ref[1]; var pageY = ref[2]; var railYHeight = ref[3]; var scrollbarY = ref[4]; var scrollbarYHeight = ref[5]; var scrollTop = ref[6]; var y = ref[7]; var scrollbarYRail = ref[8]; var element = i.element; var startingScrollTop = null; var startingMousePageY = null; var scrollBy = null; function mouseMoveHandler(e) { element[scrollTop] = startingScrollTop + scrollBy * (e[pageY] - startingMousePageY); addScrollingClass(i, y); updateGeometry(i); e.stopPropagation(); e.preventDefault(); } function mouseUpHandler() { removeScrollingClass(i, y); i[scrollbarYRail].classList.remove(cls.state.clicking); i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler); } i.event.bind(i[scrollbarY], 'mousedown', function (e) { startingScrollTop = element[scrollTop]; startingMousePageY = e[pageY]; scrollBy = (i[contentHeight] - i[containerHeight]) / (i[railYHeight] - i[scrollbarYHeight]); i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler); i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler); i[scrollbarYRail].classList.add(cls.state.clicking); e.stopPropagation(); e.preventDefault(); }); } var keyboard = function(i) { var element = i.element; var elementHovered = function () { return matches(element, ':hover'); }; var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); }; function shouldPreventDefault(deltaX, deltaY) { var scrollTop = Math.floor(element.scrollTop); if (deltaX === 0) { if (!i.scrollbarYActive) { return false; } if ( (scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0) ) { return !i.settings.wheelPropagation; } } var scrollLeft = element.scrollLeft; if (deltaY === 0) { if (!i.scrollbarXActive) { return false; } if ( (scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0) ) { return !i.settings.wheelPropagation; } } return true; } i.event.bind(i.ownerDocument, 'keydown', function (e) { if ( (e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented ) { return; } if (!elementHovered() && !scrollbarFocused()) { return; } var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement; if (activeElement) { if (activeElement.tagName === 'IFRAME') { activeElement = activeElement.contentDocument.activeElement; } else { // go deeper if element is a webcomponent while (activeElement.shadowRoot) { activeElement = activeElement.shadowRoot.activeElement; } } if (isEditable(activeElement)) { return; } } var deltaX = 0; var deltaY = 0; switch (e.which) { case 37: // left if (e.metaKey) { deltaX = -i.contentWidth; } else if (e.altKey) { deltaX = -i.containerWidth; } else { deltaX = -30; } break; case 38: // up if (e.metaKey) { deltaY = i.contentHeight; } else if (e.altKey) { deltaY = i.containerHeight; } else { deltaY = 30; } break; case 39: // right if (e.metaKey) { deltaX = i.contentWidth; } else if (e.altKey) { deltaX = i.containerWidth; } else { deltaX = 30; } break; case 40: // down if (e.metaKey) { deltaY = -i.contentHeight; } else if (e.altKey) { deltaY = -i.containerHeight; } else { deltaY = -30; } break; case 32: // space bar if (e.shiftKey) { deltaY = i.containerHeight; } else { deltaY = -i.containerHeight; } break; case 33: // page up deltaY = i.containerHeight; break; case 34: // page down deltaY = -i.containerHeight; break; case 36: // home deltaY = i.contentHeight; break; case 35: // end deltaY = -i.contentHeight; break; default: return; } if (i.settings.suppressScrollX && deltaX !== 0) { return; } if (i.settings.suppressScrollY && deltaY !== 0) { return; } element.scrollTop -= deltaY; element.scrollLeft += deltaX; updateGeometry(i); if (shouldPreventDefault(deltaX, deltaY)) { e.preventDefault(); } }); }; var wheel = function(i) { var element = i.element; function shouldPreventDefault(deltaX, deltaY) { var roundedScrollTop = Math.floor(element.scrollTop); var isTop = element.scrollTop === 0; var isBottom = roundedScrollTop + element.offsetHeight === element.scrollHeight; var isLeft = element.scrollLeft === 0; var isRight = element.scrollLeft + element.offsetWidth === element.scrollWidth; var hitsBound; // pick axis with primary direction if (Math.abs(deltaY) > Math.abs(deltaX)) { hitsBound = isTop || isBottom; } else { hitsBound = isLeft || isRight; } return hitsBound ? !i.settings.wheelPropagation : true; } function getDeltaFromEvent(e) { var deltaX = e.deltaX; var deltaY = -1 * e.deltaY; if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') { // OS X Safari deltaX = -1 * e.wheelDeltaX / 6; deltaY = e.wheelDeltaY / 6; } if (e.deltaMode && e.deltaMode === 1) { // Firefox in deltaMode 1: Line scrolling deltaX *= 10; deltaY *= 10; } if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) { // IE in some mouse drivers deltaX = 0; deltaY = e.wheelDelta; } if (e.shiftKey) { // reverse axis with shift key return [-deltaY, -deltaX]; } return [deltaX, deltaY]; } function shouldBeConsumedByChild(target, deltaX, deltaY) { // FIXME: this is a workaround for ' + '' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); container.on('open', function () { self.$search.attr('aria-owns', resultsId); self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = $previousChoice.data('data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { this.$search.focus(); } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting' ]; var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = ''; if (container != null) { id += container.id } else { id += Utils.generateChars(4); } id += '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 $.removeData(this, 'data'); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data $.data(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = $.data($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; $.data($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (!$.isPlainObject(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ($request.status && $request.status === '0') { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '' + '' + '' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '' + '' + '' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.attr('aria-owns', resultsId); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.val(''); }); container.on('focus', function () { if (container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '
  • ' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $(''); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { $(this).data('select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = $(this).data('select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ ], function () { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = $highlightedResults.data('data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if ($e.data('select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } $e.data('data', $e.data('select2Tags')); $e.data('tags', true); } if ($e.data('ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', $e.data('ajaxUrl')); $e.data('ajax--url', $e.data('ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, $e.data()); } else { dataset = $e.data(); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if ($element.data('select2') != null) { $element.data('select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; $element.data('old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('open', function(){ // Focus on the active element when opening dropdown. // Needs 1 ms delay because of other 1 ms setTimeouts when rendering. setTimeout(function(){ self.focusOnActiveElement(); },1); }); $(document).on('keydown', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } // Move the focus to the selected element on keyboard navigation. // Required for screen readers to work properly. if (key === KEYS.DOWN || key === KEYS.UP) { self.focusOnActiveElement(); } else { // Focus on the search if user starts typing. var $searchField = self.$dropdown.find('.select2-search__field'); if (! $searchField.length) { $searchField = self.$container.find('.select2-search__field'); } $searchField.focus(); // Focus back to active selection when finished typing. // Small delay so typed character can be read by screen reader. setTimeout(function(){ self.focusOnActiveElement(); }, 1000); } } else if (self.hasFocus()) { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype.focusOnActiveElement = function () { // Don't mess with the focus on touchscreens because it causes havoc with on-screen keyboards. if (! Utils.isTouchscreen()) { this.$results.find('li.select2-results__option--highlighted').focus(); } }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', this.$element.data('old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '' + '' + '' + '' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); $container.data('element', this.$element); return $container; }; return Select2; }); S2.define('jquery-mousewheel',[ 'jquery' ], function ($) { // Used to shim jQuery.mousewheel for non-full builds. return $; }); S2.define('jquery.select2',[ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults' ], function ($, _, Select2, Defaults) { if ($.fn.selectWoo == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.selectWoo = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = $(this).data('select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2 != null && $.fn.select2.defaults != null) { $.fn.selectWoo.defaults = $.fn.select2.defaults; } if ($.fn.selectWoo.defaults == null) { $.fn.selectWoo.defaults = Defaults; } // Also register selectWoo under select2 if select2 is not already present. $.fn.select2 = $.fn.select2 || $.fn.selectWoo; return Select2; }); // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; jQuery.fn.selectWoo.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; })); PK\D~~%assets/js/selectWoo/selectWoo.full.jsnuW+A/*! * SelectWoo 5.0.0 * https://github.com/woocommerce/selectWoo * * Released under the MIT license * https://github.com/woocommerce/selectWoo/blob/master/LICENSE.md */ (function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS module.exports = function (root, jQuery) { if (jQuery === undefined) { // require('jQuery') returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } } factory(jQuery); return jQuery; }; } else { // Browser globals factory(jQuery); } } (function (jQuery) { // This is needed so we can catch the AMD loader configuration and use it // The inner file should be wrapped (by `banner.start.js`) in a function that // returns the AMD loader references. var S2 =(function () { // Restore the Select2 AMD loader so it can be used // Needed mostly in the language files, where the loader is not inserted if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { var S2 = jQuery.fn.select2.amd; } var S2;(function () { if (!S2 || !S2.requirejs) { if (!S2) { S2 = {}; } else { require = S2; } /** * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. * Released under MIT license, http://github.com/requirejs/almond/LICENSE */ //Going sloppy to avoid 'use strict' string cost, but strict practices should //be followed. /*global setTimeout: false */ var requirejs, require, define; (function (undef) { var main, req, makeMap, handlers, defined = {}, waiting = {}, config = {}, defining = {}, hasOwn = Object.prototype.hasOwnProperty, aps = [].slice, jsSuffixRegExp = /\.js$/; function hasProp(obj, prop) { return hasOwn.call(obj, prop); } /** * Given a relative module name, like ./something, normalize it to * a real name that can be mapped to a path. * @param {String} name the relative name * @param {String} baseName a real name that the name arg is relative * to. * @returns {String} normalized name */ function normalize(name, baseName) { var nameParts, nameSegment, mapValue, foundMap, lastIndex, foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, baseParts = baseName && baseName.split("/"), map = config.map, starMap = (map && map['*']) || {}; //Adjust any relative paths. if (name) { name = name.split('/'); lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end // of IDs. Have to do this here, and not in nameToUrl // because node allows either .js or non .js to map // to same file. if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); } // Starts with a '.' so need the baseName if (name[0].charAt(0) === '.' && baseParts) { //Convert baseName to array, and lop off the last part, //so that . matches that 'directory' and not name of the baseName's //module. For instance, baseName of 'one/two/three', maps to //'one/two/three.js', but we want the directory, 'one/two' for //this normalization. normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); name = normalizedBaseParts.concat(name); } //start trimDots for (i = 0; i < name.length; i++) { part = name[i]; if (part === '.') { name.splice(i, 1); i -= 1; } else if (part === '..') { // If at the start, or previous value is still .., // keep them so that when converted to a path it may // still work when converted to a path, even though // as an ID it is less than ideal. In larger point // releases, may be better to just kick out an error. if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { continue; } else if (i > 0) { name.splice(i - 1, 2); i -= 2; } } } //end trimDots name = name.join('/'); } //Apply map config if available. if ((baseParts || starMap) && map) { nameParts = name.split('/'); for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join("/"); if (baseParts) { //Find the longest baseName segment match in the config. //So, do joins on the biggest to smallest lengths of baseParts. for (j = baseParts.length; j > 0; j -= 1) { mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for //this name. if (mapValue) { mapValue = mapValue[nameSegment]; if (mapValue) { //Match, update name to the new value. foundMap = mapValue; foundI = i; break; } } } } if (foundMap) { break; } //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. if (!foundStarMap && starMap && starMap[nameSegment]) { foundStarMap = starMap[nameSegment]; starI = i; } } if (!foundMap && foundStarMap) { foundMap = foundStarMap; foundI = starI; } if (foundMap) { nameParts.splice(0, foundI, foundMap); name = nameParts.join('/'); } } return name; } function makeRequire(relName, forceSync) { return function () { //A version of a require function that passes a moduleName //value for items that may need to //look up paths relative to the moduleName var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only //one arg, it is the array form without a callback. Insert //a null so that the following concat is correct. if (typeof args[0] !== 'string' && args.length === 1) { args.push(null); } return req.apply(undef, args.concat([relName, forceSync])); }; } function makeNormalize(relName) { return function (name) { return normalize(name, relName); }; } function makeLoad(depName) { return function (value) { defined[depName] = value; }; } function callDep(name) { if (hasProp(waiting, name)) { var args = waiting[name]; delete waiting[name]; defining[name] = true; main.apply(undef, args); } if (!hasProp(defined, name) && !hasProp(defining, name)) { throw new Error('No ' + name); } return defined[name]; } //Turns a plugin!resource to [plugin, resource] //with the plugin being undefined if the name //did not have a plugin prefix. function splitPrefix(name) { var prefix, index = name ? name.indexOf('!') : -1; if (index > -1) { prefix = name.substring(0, index); name = name.substring(index + 1, name.length); } return [prefix, name]; } //Creates a parts array for a relName where first part is plugin ID, //second part is resource ID. Assumes relName has already been normalized. function makeRelParts(relName) { return relName ? splitPrefix(relName) : []; } /** * Makes a name map, normalizing the name, and using a plugin * for normalization if necessary. Grabs a ref to plugin * too, as an optimization. */ makeMap = function (name, relParts) { var plugin, parts = splitPrefix(name), prefix = parts[0], relResourceName = relParts[1]; name = parts[1]; if (prefix) { prefix = normalize(prefix, relResourceName); plugin = callDep(prefix); } //Normalize according if (prefix) { if (plugin && plugin.normalize) { name = plugin.normalize(name, makeNormalize(relResourceName)); } else { name = normalize(name, relResourceName); } } else { name = normalize(name, relResourceName); parts = splitPrefix(name); prefix = parts[0]; name = parts[1]; if (prefix) { plugin = callDep(prefix); } } //Using ridiculous property names for space reasons return { f: prefix ? prefix + '!' + name : name, //fullName n: name, pr: prefix, p: plugin }; }; function makeConfig(name) { return function () { return (config && config.config && config.config[name]) || {}; }; } handlers = { require: function (name) { return makeRequire(name); }, exports: function (name) { var e = defined[name]; if (typeof e !== 'undefined') { return e; } else { return (defined[name] = {}); } }, module: function (name) { return { id: name, uri: '', exports: defined[name], config: makeConfig(name) }; } }; main = function (name, deps, callback, relName) { var cjsModule, depName, ret, map, i, relParts, args = [], callbackType = typeof callback, usingExports; //Use name if no relName relName = relName || name; relParts = makeRelParts(relName); //Call the callback to define the module, if necessary. if (callbackType === 'undefined' || callbackType === 'function') { //Pull out the defined dependencies and pass the ordered //values to the callback. //Default to [require, exports, module] if no deps deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; for (i = 0; i < deps.length; i += 1) { map = makeMap(deps[i], relParts); depName = map.f; //Fast path CommonJS standard dependencies. if (depName === "require") { args[i] = handlers.require(name); } else if (depName === "exports") { //CommonJS module spec 1.1 args[i] = handlers.exports(name); usingExports = true; } else if (depName === "module") { //CommonJS module spec 1.1 cjsModule = args[i] = handlers.module(name); } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) { args[i] = callDep(depName); } else if (map.p) { map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); args[i] = defined[depName]; } else { throw new Error(name + ' missing ' + depName); } } ret = callback ? callback.apply(defined[name], args) : undefined; if (name) { //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) { defined[name] = cjsModule.exports; } else if (ret !== undef || !usingExports) { //Use the return value from the function. defined[name] = ret; } } } else if (name) { //May just be an object definition for the module. Only //worry about defining if have a module name. defined[name] = callback; } }; requirejs = require = req = function (deps, callback, relName, forceSync, alt) { if (typeof deps === "string") { if (handlers[deps]) { //callback in this case is really relName return handlers[deps](callback); } //Just return the module wanted. In this scenario, the //deps arg is the module name, and second arg (if passed) //is just the relName. //Normalize module name, if it contains . or .. return callDep(makeMap(deps, makeRelParts(callback)).f); } else if (!deps.splice) { //deps is a config object, not an array. config = deps; if (config.deps) { req(config.deps, config.callback); } if (!callback) { return; } if (callback.splice) { //callback is an array, which means it is a dependency list. //Adjust args if there are dependencies deps = callback; callback = relName; relName = null; } else { deps = undef; } } //Support require(['a']) callback = callback || function () {}; //If relName is a function, it is an errback handler, //so remove it. if (typeof relName === 'function') { relName = forceSync; forceSync = alt; } //Simulate async callback; if (forceSync) { main(undef, deps, callback, relName); } else { //Using a non-zero value because of concern for what old browsers //do, and latest browsers "upgrade" to 4 if lower value is used: //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: //If want a value immediately, use require('id') instead -- something //that works in almond on the global level, but not guaranteed and //unlikely to work in other AMD implementations. setTimeout(function () { main(undef, deps, callback, relName); }, 4); } return req; }; /** * Just drops the config on the floor, but returns req in case * the config return value is used. */ req.config = function (cfg) { return req(cfg); }; /** * Expose module registry for debugging and tooling */ requirejs._defined = defined; define = function (name, deps, callback) { if (typeof name !== 'string') { throw new Error('See almond README: incorrect module build, no module name'); } //This module may not have dependencies if (!deps.splice) { //deps is not an array, so probably means //an object literal or factory function for //the value. Adjust args. callback = deps; deps = []; } if (!hasProp(defined, name) && !hasProp(waiting, name)) { waiting[name] = [name, deps, callback]; } }; define.amd = { jQuery: true }; }()); S2.requirejs = requirejs;S2.require = require;S2.define = define; } }()); S2.define("almond", function(){}); /* global jQuery:false, $:false */ S2.define('jquery',[],function () { var _$ = jQuery || $; if (_$ == null && console && console.error) { console.error( 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.' ); } return _$; }); S2.define('select2/utils',[ 'jquery' ], function ($) { var Utils = {}; Utils.Extend = function (ChildClass, SuperClass) { var __hasProp = {}.hasOwnProperty; function BaseConstructor () { this.constructor = ChildClass; } for (var key in SuperClass) { if (__hasProp.call(SuperClass, key)) { ChildClass[key] = SuperClass[key]; } } BaseConstructor.prototype = SuperClass.prototype; ChildClass.prototype = new BaseConstructor(); ChildClass.__super__ = SuperClass.prototype; return ChildClass; }; function getMethods (theClass) { var proto = theClass.prototype; var methods = []; for (var methodName in proto) { var m = proto[methodName]; if (typeof m !== 'function') { continue; } if (methodName === 'constructor') { continue; } methods.push(methodName); } return methods; } Utils.Decorate = function (SuperClass, DecoratorClass) { var decoratedMethods = getMethods(DecoratorClass); var superMethods = getMethods(SuperClass); function DecoratedClass () { var unshift = Array.prototype.unshift; var argCount = DecoratorClass.prototype.constructor.length; var calledConstructor = SuperClass.prototype.constructor; if (argCount > 0) { unshift.call(arguments, SuperClass.prototype.constructor); calledConstructor = DecoratorClass.prototype.constructor; } calledConstructor.apply(this, arguments); } DecoratorClass.displayName = SuperClass.displayName; function ctr () { this.constructor = DecoratedClass; } DecoratedClass.prototype = new ctr(); for (var m = 0; m < superMethods.length; m++) { var superMethod = superMethods[m]; DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod]; } var calledMethod = function (methodName) { // Stub out the original method if it's not decorating an actual method var originalMethod = function () {}; if (methodName in DecoratedClass.prototype) { originalMethod = DecoratedClass.prototype[methodName]; } var decoratedMethod = DecoratorClass.prototype[methodName]; return function () { var unshift = Array.prototype.unshift; unshift.call(arguments, originalMethod); return decoratedMethod.apply(this, arguments); }; }; for (var d = 0; d < decoratedMethods.length; d++) { var decoratedMethod = decoratedMethods[d]; DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); } return DecoratedClass; }; var Observable = function () { this.listeners = {}; }; Observable.prototype.on = function (event, callback) { this.listeners = this.listeners || {}; if (event in this.listeners) { this.listeners[event].push(callback); } else { this.listeners[event] = [callback]; } }; Observable.prototype.trigger = function (event) { var slice = Array.prototype.slice; var params = slice.call(arguments, 1); this.listeners = this.listeners || {}; // Params should always come in as an array if (params == null) { params = []; } // If there are no arguments to the event, use a temporary object if (params.length === 0) { params.push({}); } // Set the `_type` of the first object to the event params[0]._type = event; if (event in this.listeners) { this.invoke(this.listeners[event], slice.call(arguments, 1)); } if ('*' in this.listeners) { this.invoke(this.listeners['*'], arguments); } }; Observable.prototype.invoke = function (listeners, params) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, params); } }; Utils.Observable = Observable; Utils.generateChars = function (length) { var chars = ''; for (var i = 0; i < length; i++) { var randomChar = Math.floor(Math.random() * 36); chars += randomChar.toString(36); } return chars; }; Utils.bind = function (func, context) { return function () { func.apply(context, arguments); }; }; Utils._convertData = function (data) { for (var originalKey in data) { var keys = originalKey.split('-'); var dataLevel = data; if (keys.length === 1) { continue; } for (var k = 0; k < keys.length; k++) { var key = keys[k]; // Lowercase the first letter // By default, dash-separated becomes camelCase key = key.substring(0, 1).toLowerCase() + key.substring(1); if (!(key in dataLevel)) { dataLevel[key] = {}; } if (k == keys.length - 1) { dataLevel[key] = data[originalKey]; } dataLevel = dataLevel[key]; } delete data[originalKey]; } return data; }; Utils.hasScroll = function (index, el) { // Adapted from the function created by @ShadowScripter // and adapted by @BillBarry on the Stack Exchange Code Review website. // The original code can be found at // http://codereview.stackexchange.com/q/13338 // and was designed to be used with the Sizzle selector engine. var $el = $(el); var overflowX = el.style.overflowX; var overflowY = el.style.overflowY; //Check both x and y declarations if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) { return false; } if (overflowX === 'scroll' || overflowY === 'scroll') { return true; } return ($el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth); }; Utils.escapeMarkup = function (markup) { var replaceMap = { '\\': '\', '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; // Do not try to escape the markup if it's not a string if (typeof markup !== 'string') { return markup; } return String(markup).replace(/[&<>"'\/\\]/g, function (match) { return replaceMap[match]; }); }; // Append an array of jQuery nodes to a given element. Utils.appendMany = function ($element, $nodes) { // jQuery 1.7.x does not support $.fn.append() with an array // Fall back to a jQuery object collection using $.fn.add() if ($.fn.jquery.substr(0, 3) === '1.7') { var $jqNodes = $(); $.map($nodes, function (node) { $jqNodes = $jqNodes.add(node); }); $nodes = $jqNodes; } $element.append($nodes); }; // Determine whether the browser is on a touchscreen device. Utils.isTouchscreen = function() { if ('undefined' === typeof Utils._isTouchscreenCache) { Utils._isTouchscreenCache = 'ontouchstart' in document.documentElement; } return Utils._isTouchscreenCache; } return Utils; }); S2.define('select2/results',[ 'jquery', './utils' ], function ($, Utils) { function Results ($element, options, dataAdapter) { this.$element = $element; this.data = dataAdapter; this.options = options; Results.__super__.constructor.call(this); } Utils.Extend(Results, Utils.Observable); Results.prototype.render = function () { var $results = $( '
      ' ); if (this.options.get('multiple')) { $results.attr('aria-multiselectable', 'true'); } this.$results = $results; return $results; }; Results.prototype.clear = function () { this.$results.empty(); }; Results.prototype.displayMessage = function (params) { var escapeMarkup = this.options.get('escapeMarkup'); this.clear(); this.hideLoading(); var $message = $( '' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[data-selected]'); var $selected = $options.filter('[data-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[data-selected]'); $options.each(function () { var $option = $(this); var item = $.data(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('data-selected', 'true'); } else { $option.attr('data-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'option', 'data-selected': 'false', 'tabindex': -1 }; if (data.disabled) { delete attrs['data-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['data-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs['aria-label'] = data.text; delete attrs['data-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); $label.attr('role', 'presentation'); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('
        ', { 'class': 'select2-results__options select2-results__options--nested', 'role': 'listbox' }); $childrenContainer.append($children); $option.attr('role', 'list'); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } $.data(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = $highlighted.data('data'); if ($highlighted.attr('data-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further if (currentIndex === 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted').attr('aria-selected', 'true'); self.$results.attr('aria-activedescendant', params.element.attr('id')); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[data-selected]', function (evt) { var $this = $(this); var data = $this.data('data'); if ($this.attr('data-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[data-selected]', function (evt) { var data = $(this).data('data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted') .attr('aria-selected', 'false'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[data-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); S2.define('select2/keys',[ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); S2.define('select2/selection/base',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '' ); this._tabindex = 0; if (this.$element.data('old-tabindex') != null) { this._tabindex = this.$element.data('old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; var searchHidden = this.options.get('minimumResultsForSearch') === Infinity; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); // This needs to be delayed as the active element is the body when the // key is pressed. window.setTimeout(function () { self.$selection.focus(); }, 1); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = $this.data('element'); $element.select2('close'); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); S2.define('select2/selection/single',[ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '' + '' + '' + '' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered') .attr('id', id) .attr('role', 'textbox') .attr('aria-readonly', 'true'); this.$selection.attr('aria-labelledby', id); // This makes single non-search selects work in screen readers. If it causes problems elsewhere, remove. this.$selection.attr('role', 'combobox'); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('keydown', function (evt) { // If user starts typing an alphanumeric key on the keyboard, open if not opened. if (!container.isOpen() && evt.which >= 48 && evt.which <= 90) { container.open(); } }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); container.on('selection:update', function (params) { self.update(params.data); }); }; SingleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $(''); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().append(formatted); $rendered.prop('title', selection.title || selection.text); }; return SingleSelection; }); S2.define('select2/selection/multiple',[ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '
          ' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = $selection.data('data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); }; MultipleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '
        • ' + '' + '
        • ' ); return $container; }; MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); $selection.append(formatted); $selection.prop('title', selection.title || selection.text); $selection.data('data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); S2.define('select2/selection/placeholder',[ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); S2.define('select2/selection/allowClear',[ 'jquery', '../keys' ], function ($, KEYS) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = $clear.data('data'); for (var d = 0; d < data.length; d++) { var unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { return; } } this.$element.val(this.placeholder.id).trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '' + '×' + '' ); $remove.data('data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); S2.define('select2/selection/search',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); container.on('open', function () { self.$search.attr('aria-owns', resultsId); self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = $previousChoice.data('data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { this.$search.focus(); } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting' ]; var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = ''; if (container != null) { id += container.id } else { id += Utils.generateChars(4); } id += '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 $.removeData(this, 'data'); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data $.data(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = $.data($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; $.data($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (!$.isPlainObject(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ($request.status && $request.status === '0') { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '' + '' + '' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '' + '' + '' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; var resultsId = container.id + '-results'; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.attr('aria-owns', resultsId); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.removeAttr('aria-activedescendant'); self.$search.removeAttr('aria-owns'); self.$search.val(''); }); container.on('focus', function () { if (container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.data._resultId); }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '
        • ' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $(''); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { $(this).data('select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = $(this).data('select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ ], function () { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = $highlightedResults.data('data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if ($e.data('select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } $e.data('data', $e.data('select2Tags')); $e.data('tags', true); } if ($e.data('ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', $e.data('ajaxUrl')); $e.data('ajax--url', $e.data('ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, $e.data()); } else { dataset = $e.data(); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if ($element.data('select2') != null) { $element.data('select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; $element.data('old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('open', function(){ // Focus on the active element when opening dropdown. // Needs 1 ms delay because of other 1 ms setTimeouts when rendering. setTimeout(function(){ self.focusOnActiveElement(); },1); }); $(document).on('keydown', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } // Move the focus to the selected element on keyboard navigation. // Required for screen readers to work properly. if (key === KEYS.DOWN || key === KEYS.UP) { self.focusOnActiveElement(); } else { // Focus on the search if user starts typing. var $searchField = self.$dropdown.find('.select2-search__field'); if (! $searchField.length) { $searchField = self.$container.find('.select2-search__field'); } $searchField.focus(); // Focus back to active selection when finished typing. // Small delay so typed character can be read by screen reader. setTimeout(function(){ self.focusOnActiveElement(); }, 1000); } } else if (self.hasFocus()) { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype.focusOnActiveElement = function () { // Don't mess with the focus on touchscreens because it causes havoc with on-screen keyboards. if (! Utils.isTouchscreen()) { this.$results.find('li.select2-results__option--highlighted').focus(); } }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', this.$element.data('old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '' + '' + '' + '' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); $container.data('element', this.$element); return $container; }; return Select2; }); S2.define('select2/compat/utils',[ 'jquery' ], function ($) { function syncCssClasses ($dest, $src, adapter) { var classes, replacements = [], adapted; classes = $.trim($dest.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Save all Select2 classes if (this.indexOf('select2-') === 0) { replacements.push(this); } }); } classes = $.trim($src.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Only adapt non-Select2 classes if (this.indexOf('select2-') !== 0) { adapted = adapter(this); if (adapted != null) { replacements.push(adapted); } } }); } $dest.attr('class', replacements.join(' ')); } return { syncCssClasses: syncCssClasses }; }); S2.define('select2/compat/containerCss',[ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _containerAdapter (clazz) { return null; } function ContainerCSS () { } ContainerCSS.prototype.render = function (decorated) { var $container = decorated.call(this); var containerCssClass = this.options.get('containerCssClass') || ''; if ($.isFunction(containerCssClass)) { containerCssClass = containerCssClass(this.$element); } var containerCssAdapter = this.options.get('adaptContainerCssClass'); containerCssAdapter = containerCssAdapter || _containerAdapter; if (containerCssClass.indexOf(':all:') !== -1) { containerCssClass = containerCssClass.replace(':all:', ''); var _cssAdapter = containerCssAdapter; containerCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var containerCss = this.options.get('containerCss') || {}; if ($.isFunction(containerCss)) { containerCss = containerCss(this.$element); } CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); $container.css(containerCss); $container.addClass(containerCssClass); return $container; }; return ContainerCSS; }); S2.define('select2/compat/dropdownCss',[ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _dropdownAdapter (clazz) { return null; } function DropdownCSS () { } DropdownCSS.prototype.render = function (decorated) { var $dropdown = decorated.call(this); var dropdownCssClass = this.options.get('dropdownCssClass') || ''; if ($.isFunction(dropdownCssClass)) { dropdownCssClass = dropdownCssClass(this.$element); } var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; if (dropdownCssClass.indexOf(':all:') !== -1) { dropdownCssClass = dropdownCssClass.replace(':all:', ''); var _cssAdapter = dropdownCssAdapter; dropdownCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var dropdownCss = this.options.get('dropdownCss') || {}; if ($.isFunction(dropdownCss)) { dropdownCss = dropdownCss(this.$element); } CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); $dropdown.css(dropdownCss); $dropdown.addClass(dropdownCssClass); return $dropdown; }; return DropdownCSS; }); S2.define('select2/compat/initSelection',[ 'jquery' ], function ($) { function InitSelection (decorated, $element, options) { if (options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `initSelection` option has been deprecated in favor' + ' of a custom data adapter that overrides the `current` method. ' + 'This method is now called multiple times instead of a single ' + 'time when the instance is initialized. Support will be removed ' + 'for the `initSelection` option in future versions of Select2' ); } this.initSelection = options.get('initSelection'); this._isInitialized = false; decorated.call(this, $element, options); } InitSelection.prototype.current = function (decorated, callback) { var self = this; if (this._isInitialized) { decorated.call(this, callback); return; } this.initSelection.call(null, this.$element, function (data) { self._isInitialized = true; if (!$.isArray(data)) { data = [data]; } callback(data); }); }; return InitSelection; }); S2.define('select2/compat/inputData',[ 'jquery' ], function ($) { function InputData (decorated, $element, options) { this._currentData = []; this._valueSeparator = options.get('valueSeparator') || ','; if ($element.prop('type') === 'hidden') { if (options.get('debug') && console && console.warn) { console.warn( 'Select2: Using a hidden input with Select2 is no longer ' + 'supported and may stop working in the future. It is recommended ' + 'to use a `');this.$searchContainer=n,this.$search=n.find("input");var i=t.call(this);return this._transferTabIndex(),i},i.prototype.bind=function(e,t,i){var r=this,o=t.id+"-results";e.call(this,t,i),t.on("open",function(){r.$search.attr("aria-owns",o),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-activedescendant"),r.$search.removeAttr("aria-owns"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){r.$search.attr("aria-activedescendant",e.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented();if(e.which===n.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(t.length>0){var i=t.data("data");r.searchRemoveChoice(i),e.preventDefault()}}});var s=document.documentMode,a=s&&s<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){a?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(a&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=n.SHIFT&&t!=n.CTRL&&t!=n.ALT&&t!=n.TAB&&r.handleSearch(e)}})},i.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},i.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},i.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.focus()},i.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},i.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},i.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";if(""!==this.$search.attr("placeholder"))e=this.$selection.find(".select2-selection__rendered").innerWidth();else{e=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",e)},i}),t.define("select2/selection/eventRelay",["jquery"],function(e){function t(){}return t.prototype.bind=function(t,n,i){var r=this,o=["open","opening","close","closing","select","selecting","unselect","unselecting"],s=["opening","closing","selecting","unselecting"];t.call(this,n,i),n.on("*",function(t,n){if(-1!==e.inArray(t,o)){n=n||{};var i=e.Event("select2:"+t,{params:n});r.$element.trigger(i),-1!==e.inArray(t,s)&&(n.prevented=i.isDefaultPrevented())}})},t}),t.define("select2/translation",["jquery","require"],function(e,t){function n(e){this.dict=e||{}}return n.prototype.all=function(){return this.dict},n.prototype.get=function(e){return this.dict[e]},n.prototype.extend=function(t){this.dict=e.extend({},t.all(),this.dict)},n._cache={},n.loadPath=function(e){if(!(e in n._cache)){var i=t(e);n._cache[e]=i}return new n(n._cache[e])},n}),t.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),t.define("select2/data/base",["../utils"],function(e){function t(e,n){t.__super__.constructor.call(this)}return e.Extend(t,e.Observable),t.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},t.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},t.prototype.bind=function(e,t){},t.prototype.destroy=function(){},t.prototype.generateResultId=function(t,n){var i="";return i+=null!=t?t.id:e.generateChars(4),i+="-result-",i+=e.generateChars(4),null!=n.id?i+="-"+n.id.toString():i+="-"+e.generateChars(4),i},t}),t.define("select2/data/select",["./base","../utils","jquery"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,e),i.prototype.current=function(e){var t=[],i=this;this.$element.find(":selected").each(function(){var e=n(this),r=i.item(e);t.push(r)}),e(t)},i.prototype.select=function(e){var t=this;if(e.selected=!0,n(e.element).is("option"))return e.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(i){var r=[];(e=[e]).push.apply(e,i);for(var o=0;o=0){var u=o.filter(i(c)),d=this.item(u),p=n.extend(!0,{},c,d),h=this.option(p);u.replaceWith(h)}else{var f=this.option(c);if(c.children){var g=this.convertToOptions(c.children);t.appendMany(f,g)}a.push(f)}}return a},i}),t.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,n){function i(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype._applyDefaults=function(e){var t={data:function(e){return n.extend({},e,{q:e.term})},transport:function(e,t,i){var r=n.ajax(e);return r.then(t),r.fail(i),r}};return n.extend({},t,e,!0)},i.prototype.processResults=function(e){return e},i.prototype.query=function(e,t){function i(){var i=o.transport(o,function(i){var o=r.processResults(i,e);r.options.get("debug")&&window.console&&console.error&&(o&&o.results&&n.isArray(o.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),t(o)},function(){i.status&&"0"===i.status||r.trigger("results:message",{message:"errorLoading"})});r._request=i}var r=this;null!=this._request&&(n.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var o=n.extend({type:"GET"},this.ajaxOptions);"function"==typeof o.url&&(o.url=o.url.call(this.$element,e)),"function"==typeof o.data&&(o.data=o.data.call(this.$element,e)),this.ajaxOptions.delay&&null!=e.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(i,this.ajaxOptions.delay)):i()},i}),t.define("select2/data/tags",["jquery"],function(e){function t(t,n,i){var r=i.get("tags"),o=i.get("createTag");o!==undefined&&(this.createTag=o);var s=i.get("insertTag");if(s!==undefined&&(this.insertTag=s),t.call(this,n,i),e.isArray(r))for(var a=0;a0&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){var i=this;this.current(function(r){var o=null!=r?r.length:0;i.maximumSelectionLength>0&&o>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):e.call(i,t,n)})},e}),t.define("select2/dropdown",["jquery","./utils"],function(e,t){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('');return t.attr("dir",this.options.get("dir")),this.$dropdown=t,t},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),t.define("select2/dropdown/search",["jquery","../utils"],function(e,t){function n(){}return n.prototype.render=function(t){var n=t.call(this),i=e('');return this.$searchContainer=i,this.$search=i.find("input"),n.prepend(i),n},n.prototype.bind=function(t,n,i){var r=this,o=n.id+"-results";t.call(this,n,i),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(t){e(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),n.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-owns",o),r.$search.focus(),window.setTimeout(function(){r.$search.focus()},0)}),n.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-activedescendant"),r.$search.removeAttr("aria-owns"),r.$search.val("")}),n.on("focus",function(){n.isOpen()&&r.$search.focus()}),n.on("results:all",function(e){if(null==e.query.term||""===e.query.term){r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide")}}),n.on("results:focus",function(e){r.$search.attr("aria-activedescendant",e.data._resultId)})},n.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},n.prototype.showSearch=function(e,t){return!0},n}),t.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;i>=0;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),t.define("select2/dropdown/infiniteScroll",["jquery"],function(e){function t(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return t.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},t.prototype.bind=function(t,n,i){var r=this;t.call(this,n,i),n.on("query",function(e){r.lastParams=e,r.loading=!0}),n.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",function(){var t=e.contains(document.documentElement,r.$loadingMore[0]);if(!r.loading&&t){r.$results.offset().top+r.$results.outerHeight(!1)+50>=r.$loadingMore.offset().top+r.$loadingMore.outerHeight(!1)&&r.loadMore()}})},t.prototype.loadMore=function(){this.loading=!0;var t=e.extend({},{page:1},this.lastParams);t.page++,this.trigger("query:append",t)},t.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},t.prototype.createLoadingMore=function(){var t=e('
        • '),n=this.options.get("translations").get("loadingMore");return t.html(n(this.lastParams)),t},t}),t.define("select2/dropdown/attachBody",["jquery","../utils"],function(e,t){function n(t,n,i){this.$dropdownParent=i.get("dropdownParent")||e(document.body),t.call(this,n,i)}return n.prototype.bind=function(e,t,n){var i=this,r=!1;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),r||(r=!0,t.on("results:all",function(){i._positionDropdown(),i._resizeDropdown()}),t.on("results:append",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},n.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},n.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},n.prototype.render=function(t){var n=e(""),i=t.call(this);return n.append(i),this.$dropdownContainer=n,n},n.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},n.prototype._attachPositioningHandler=function(n,i){var r=this,o="scroll.select2."+i.id,s="resize.select2."+i.id,a="orientationchange.select2."+i.id,l=this.$container.parents().filter(t.hasScroll);l.each(function(){e(this).data("select2-scroll-position",{x:e(this).scrollLeft(),y:e(this).scrollTop()})}),l.on(o,function(t){var n=e(this).data("select2-scroll-position");e(this).scrollTop(n.y)}),e(window).on(o+" "+s+" "+a,function(e){r._positionDropdown(),r._resizeDropdown()})},n.prototype._detachPositioningHandler=function(n,i){var r="scroll.select2."+i.id,o="resize.select2."+i.id,s="orientationchange.select2."+i.id;this.$container.parents().filter(t.hasScroll).off(r),e(window).off(r+" "+o+" "+s)},n.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),i=this.$dropdown.hasClass("select2-dropdown--below"),r=null,o=this.$container.offset();o.bottom=o.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=o.top,s.bottom=o.top+s.height;var a=this.$dropdown.outerHeight(!1),l=t.scrollTop(),c=t.scrollTop()+t.height(),u=lo.bottom+a,p={left:o.left,top:s.bottom},h=this.$dropdownParent;"static"===h.css("position")&&(h=h.offsetParent());var f=h.offset();p.top-=f.top,p.left-=f.left,n||i||(r="below"),d||!u||n?!u&&d&&n&&(r="below"):r="above",("above"==r||n&&"below"!==r)&&(p.top=s.top-f.top-a),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(p)},n.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},n.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},n}),t.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(t){for(var n=0,i=0;i0&&(d.dataAdapter=c.Decorate(d.dataAdapter,v)),d.maximumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,y)),d.maximumSelectionLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,_)),d.tags&&(d.dataAdapter=c.Decorate(d.dataAdapter,g)),null==d.tokenSeparators&&null==d.tokenizer||(d.dataAdapter=c.Decorate(d.dataAdapter,m)),null!=d.query){var S=t(d.amdBase+"compat/query");d.dataAdapter=c.Decorate(d.dataAdapter,S)}if(null!=d.initSelection){var T=t(d.amdBase+"compat/initSelection");d.dataAdapter=c.Decorate(d.dataAdapter,T)}}if(null==d.resultsAdapter&&(d.resultsAdapter=n,null!=d.ajax&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,A)),null!=d.placeholder&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,b)),d.selectOnClose&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,E))),null==d.dropdownAdapter){if(d.multiple)d.dropdownAdapter=$;else{var D=c.Decorate($,w);d.dropdownAdapter=D}if(0!==d.minimumResultsForSearch&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,C)),d.closeOnSelect&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,O)),null!=d.dropdownCssClass||null!=d.dropdownCss||null!=d.adaptDropdownCssClass){var q=t(d.amdBase+"compat/dropdownCss");d.dropdownAdapter=c.Decorate(d.dropdownAdapter,q)}d.dropdownAdapter=c.Decorate(d.dropdownAdapter,x)}if(null==d.selectionAdapter){if(d.multiple?d.selectionAdapter=r:d.selectionAdapter=i,null!=d.placeholder&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,o)),d.allowClear&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,s)),d.multiple&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,a)),null!=d.containerCssClass||null!=d.containerCss||null!=d.adaptContainerCssClass){var L=t(d.amdBase+"compat/containerCss");d.selectionAdapter=c.Decorate(d.selectionAdapter,L)}d.selectionAdapter=c.Decorate(d.selectionAdapter,l)}if("string"==typeof d.language)if(d.language.indexOf("-")>0){var j=d.language.split("-")[0];d.language=[d.language,j]}else d.language=[d.language];if(e.isArray(d.language)){var P=new u;d.language.push("en");for(var I=d.language,k=0;k0){for(var o=e.extend(!0,{},r),s=r.children.length-1;s>=0;s--){null==n(i,r.children[s])&&o.children.splice(s,1)}return o.children.length>0?o:n(i,o)}var a=t(r.text).toUpperCase(),l=t(i.term).toUpperCase();return a.indexOf(l)>-1?r:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:c.escapeMarkup,language:S,matcher:n,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},T.prototype.set=function(t,n){var i={};i[e.camelCase(t)]=n;var r=c._convertData(i);e.extend(this.defaults,r)};return new T}),t.define("select2/options",["require","jquery","./defaults","./utils"],function(e,t,n,i){function r(t,r){if(this.options=t,null!=r&&this.fromElement(r),this.options=n.apply(this.options),r&&r.is("input")){var o=e(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=i.Decorate(this.options.dataAdapter,o)}}return r.prototype.fromElement=function(e){var n=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var r={};r=t.fn.jquery&&"1."==t.fn.jquery.substr(0,2)&&e[0].dataset?t.extend(!0,{},e[0].dataset,e.data()):e.data();var o=t.extend(!0,{},r);o=i._convertData(o);for(var s in o)t.inArray(s,n)>-1||(t.isPlainObject(this.options[s])?t.extend(this.options[s],o[s]):this.options[s]=o[s]);return this},r.prototype.get=function(e){return this.options[e]},r.prototype.set=function(e,t){this.options[e]=t},r}),t.define("select2/core",["jquery","./options","./utils","./keys"],function(e,t,n,i){var r=function(e,n){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),n=n||{},this.options=new t(n,e),r.__super__.constructor.call(this);var i=e.attr("tabindex")||0;e.data("old-tabindex",i),e.attr("tabindex","-1");var o=this.options.get("dataAdapter");this.dataAdapter=new o(e,this.options);var s=this.render();this._placeContainer(s);var a=this.options.get("selectionAdapter");this.selection=new a(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,s);var l=this.options.get("dropdownAdapter");this.dropdown=new l(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,s);var c=this.options.get("resultsAdapter");this.results=new c(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var u=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){u.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(r,n.Observable),r.prototype._generateId=function(e){var t="";return t=null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4),t=t.replace(/(:|\.|\[|\]|,)/g,""),t="select2-"+t},r.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},r.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"==t){var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a=1)return c[1]}return null}return t},r.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},r.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var i=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=i?(this._observer=new i(function(n){e.each(n,t._syncA),e.each(n,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},r.prototype._registerDataEvents=function(){var e=this;this.dataAdapter.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerSelectionEvents=function(){var t=this,n=["toggle","focus"];this.selection.on("toggle",function(){t.toggleDropdown()}),this.selection.on("focus",function(e){t.focus(e)}),this.selection.on("*",function(i,r){-1===e.inArray(i,n)&&t.trigger(i,r)})},r.prototype._registerDropdownEvents=function(){var e=this;this.dropdown.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerResultsEvents=function(){var e=this;this.results.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerEvents=function(){var t=this;this.on("open",function(){t.$container.addClass("select2-container--open")}),this.on("close",function(){t.$container.removeClass("select2-container--open")}),this.on("enable",function(){t.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){t.$container.addClass("select2-container--disabled")}),this.on("blur",function(){t.$container.removeClass("select2-container--focus")}),this.on("query",function(e){t.isOpen()||t.trigger("open",{}),this.dataAdapter.query(e,function(n){t.trigger("results:all",{data:n,query:e})})}),this.on("query:append",function(e){this.dataAdapter.query(e,function(n){t.trigger("results:append",{data:n,query:e})})}),this.on("open",function(){setTimeout(function(){t.focusOnActiveElement()},1)}),e(document).on("keydown",function(e){var n=e.which;if(t.isOpen())if(n===i.ESC||n===i.TAB||n===i.UP&&e.altKey?(t.close(),e.preventDefault()):n===i.ENTER?(t.trigger("results:select",{}),e.preventDefault()):n===i.SPACE&&e.ctrlKey?(t.trigger("results:toggle",{}),e.preventDefault()):n===i.UP?(t.trigger("results:previous",{}),e.preventDefault()):n===i.DOWN&&(t.trigger("results:next",{}),e.preventDefault()),n===i.DOWN||n===i.UP)t.focusOnActiveElement();else{var r=t.$dropdown.find(".select2-search__field");r.length||(r=t.$container.find(".select2-search__field")),r.focus(),setTimeout(function(){t.focusOnActiveElement()},1e3)}else t.hasFocus()&&(n===i.ENTER||n===i.SPACE||n===i.DOWN&&e.altKey)&&(t.open(),e.preventDefault())})},r.prototype.focusOnActiveElement=function(){n.isTouchscreen()||this.$results.find("li.select2-results__option--highlighted").focus()},r.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},r.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&t.addedNodes.length>0)for(var r=0;r0&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})}},r.prototype.trigger=function(e,t){var n=r.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(t===undefined&&(t={}),e in i){var o=i[e],s={prevented:!1,name:e,args:t};if(n.call(this,o,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},r.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},r.prototype.open=function(){this.isOpen()||this.trigger("query",{})},r.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},r.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},r.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},r.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},r.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},r.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var e=[];return this.dataAdapter.current(function(t){e=t}),e},r.prototype.val=function(t){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==t||0===t.length)return this.$element.val();var n=t[0];e.isArray(n)&&(n=e.map(n,function(e){return e.toString()})),this.$element.val(n).trigger("change")},r.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},r.prototype.render=function(){var t=e('');return t.attr("dir",this.options.get("dir")),this.$container=t,this.$container.addClass("select2-container--"+this.options.get("theme")),t.data("element",this.$element),t},r}),t.define("jquery-mousewheel",["jquery"],function(e){return e}),t.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(e,t,n,i){if(null==e.fn.selectWoo){var r=["open","close","destroy"];e.fn.selectWoo=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var i=e.extend(!0,{},t);new n(e(this),i)}),this;if("string"==typeof t){var i,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=e(this).data("select2");null==n&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),i=n[t].apply(n,o)}),e.inArray(t,r)>-1?this:i}throw new Error("Invalid arguments for Select2: "+t)}}return null!=e.fn.select2&&null!=e.fn.select2.defaults&&(e.fn.selectWoo.defaults=e.fn.select2.defaults),null==e.fn.selectWoo.defaults&&(e.fn.selectWoo.defaults=i),e.fn.select2=e.fn.select2||e.fn.selectWoo,n}),{define:t.define,require:t.require}}(),n=t.require("jquery.select2");return e.fn.select2.amd=t,e.fn.selectWoo.amd=t,n});PK\=DqH+H+)assets/js/selectWoo/selectWoo.full.min.jsnuW+A/*! Select2 5.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.isTouchscreen=function(){return void 0===c._isTouchscreenCache&&(c._isTouchscreenCache="ontouchstart"in document.documentElement),c._isTouchscreenCache},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
            ');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a(''),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()});b.$results.find(".select2-results__option[data-selected]").each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("data-selected","true"):b.attr("data-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"option","data-selected":"false",tabindex:-1};b.disabled&&(delete d["data-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["data-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d["aria-label"]=b.text,delete d["data-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";var i=a(h);this.template(b,h),i.attr("role","presentation");for(var j=[],k=0;k",{class:"select2-results__options select2-results__options--nested",role:"listbox"});n.append(j),g.attr("role","list"),g.append(h),g.append(n)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("unselect",function(){b.isOpen()&&(d.setClasses(),d.highlightFirstItem())}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("data-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[data-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):h-g<0&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[data-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),d.$results.attr("aria-activedescendant",a.element.attr("id"))}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(b){var c=a(this),e=c.data("data");if("true"===c.attr("data-selected"))return void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{}));d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[data-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.options.get("minimumResultsForSearch");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),window.setTimeout(function(){d.$selection.focus()},1),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2");a(".select2.select2-container--open").each(function(){var b=a(this);this!=d[0]&&b.data("element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html(''),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("keydown",function(b){!a.isOpen()&&b.which>=48&&b.which<=90&&a.open()}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('
              '),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('
            • ')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e0||0===c.length)){var d=a('×');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this,f=b.id+"-results";a.call(this,b,d),b.on("open",function(){e.$search.attr("aria-owns",f),e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.removeAttr("aria-owns"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===e.$search.val()){var b=e.$searchContainer.prev(".select2-selection__choice");if(b.length>0){var d=b.data("data");e.searchRemoveChoice(d),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void e.$selection.off("input.search input.searchcheck");e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d="";return d+=null!=b?b.id:a.generateChars(4),d+="-result-",d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){d.status&&"0"===d.status||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this,f=c.id+"-results";b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.attr("aria-owns",f),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.removeAttr("aria-activedescendant"),e.$search.removeAttr("aria-owns"),e.$search.val("")}),c.on("focus",function(){c.isOpen()&&e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}}),c.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.data._resultId)})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
            • '),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(""),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var b=this;this.on("open",function(){b.$container.addClass("select2-container--open")}),this.on("close",function(){b.$container.removeClass("select2-container--open")}),this.on("enable",function(){b.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){b.$container.addClass("select2-container--disabled")}),this.on("blur",function(){b.$container.removeClass("select2-container--focus")}),this.on("query",function(a){b.isOpen()||b.trigger("open",{}),this.dataAdapter.query(a,function(c){b.trigger("results:all",{data:c,query:a})})}),this.on("query:append",function(a){this.dataAdapter.query(a,function(c){b.trigger("results:append",{data:c,query:a})})}),this.on("open",function(){setTimeout(function(){b.focusOnActiveElement()},1)}),a(document).on("keydown",function(a){var c=a.which;if(b.isOpen())if(c===d.ESC||c===d.TAB||c===d.UP&&a.altKey?(b.close(),a.preventDefault()):c===d.ENTER?(b.trigger("results:select",{}),a.preventDefault()):c===d.SPACE&&a.ctrlKey?(b.trigger("results:toggle",{}),a.preventDefault()):c===d.UP?(b.trigger("results:previous",{}),a.preventDefault()):c===d.DOWN&&(b.trigger("results:next",{}),a.preventDefault()),c===d.DOWN||c===d.UP)b.focusOnActiveElement();else{var e=b.$dropdown.find(".select2-search__field");e.length||(e=b.$container.find(".select2-search__field")),e.focus(),setTimeout(function(){b.focusOnActiveElement()},1e3)}else b.hasFocus()&&(c===d.ENTER||c===d.SPACE||c===d.DOWN&&a.altKey)&&(b.open(),a.preventDefault())})},e.prototype.focusOnActiveElement=function(){c.isTouchscreen()||this.$results.find("li.select2-results__option--highlighted").focus()},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a ` PK\\AA*includes/form/views/admin/admin-select.phpnuW+Afield_defaults['default_options'] ) ? $this->field_defaults['default_options'] : array(); $old_options = isset( $this->admin_data->advance_setting->options ) ? explode( ',', trim( $this->admin_data->advance_setting->options, ',' ) ) : $default_options; $options = isset( $this->admin_data->general_setting->options ) ? $this->admin_data->general_setting->options : $old_options; $default_value = isset( $this->admin_data->general_setting->default_value ) ? $this->admin_data->general_setting->default_value : ''; $options = array_map( 'trim', $options ); ?>
              PK\7  .includes/form/views/admin/admin-first-name.phpnuW+A
              PK\,includes/form/views/admin/admin-nickname.phpnuW+A
              PK\Ǿ;+includes/form/views/admin/admin-country.phpnuW+A
              PK\,includes/form/views/admin/admin-user-url.phpnuW+A
              PK\1.includes/form/views/admin/admin-user-login.phpnuW+A PK\b  -includes/form/views/admin/admin-last-name.phpnuW+A
              PK\c"q*includes/form/views/admin/admin-number.phpnuW+A
              PK\ t)includes/form/views/admin/admin-email.phpnuW+A
              PK\W)includes/form/views/admin/admin-radio.phpnuW+Afield_defaults['default_options'] ) ? $this->field_defaults['default_options'] : array(); $old_options = isset( $this->admin_data->advance_setting->options ) ? explode( ',', trim( $this->admin_data->advance_setting->options, ',' ) ) : $default_options; $options = isset( $this->admin_data->general_setting->options ) ? $this->admin_data->general_setting->options : $old_options; $default_value = isset( $this->admin_data->general_setting->default_value ) ? $this->admin_data->general_setting->default_value : ''; $options = array_map( 'trim', $options ); ?>
              "; } foreach ( $options as $option ) { echo "'; } ?>
              PK\t112includes/form/views/admin/admin-privacy-policy.phpnuW+A
              PK\k.2,includes/form/views/admin/admin-textarea.phpnuW+A
              PK\-2++.includes/form/views/admin/admin-user-email.phpnuW+A
              PK\NR>(includes/form/views/admin/admin-text.phpnuW+A
              PK\0}##6includes/form/views/admin/admin-user-confirm-email.phpnuW+A
              PK\?,includes/form/views/admin/admin-password.phpnuW+A
              PK\&~229includes/form/views/admin/admin-user-confirm-password.phpnuW+A
              PK\Rɺ  0includes/form/views/admin/admin-display-name.phpnuW+A
              PK\9ID}(includes/form/views/admin/admin-date.phpnuW+A
              PK\:NX**-includes/form/views/admin/admin-user-pass.phpnuW+A
              PK\NK,includes/form/views/admin/admin-checkbox.phpnuW+Afield_defaults['default_options'] ) ? $this->field_defaults['default_options'] : array(); $old_options = isset( $this->admin_data->advance_setting->choices ) ? explode( ',', trim( $this->admin_data->advance_setting->choices, ',' ) ) : $default_options; $options = isset( $this->admin_data->general_setting->options ) ? $this->admin_data->general_setting->options : $old_options; $default_values = isset( $this->admin_data->general_setting->default_value ) ? $this->admin_data->general_setting->default_value : array(); $options = array_map( 'trim', $options ); ?>
              "; } foreach ( $options as $option ) { $checked = in_array( $option, $default_values ) ? 'checked' : ''; echo "'; } ?>
              PK\;includes/form/class-ur-form-field-user-confirm-password.phpnuW+Aid = 'user_registration_user_confirm_password'; $this->form_id = 1; $this->registered_fields_config = array( 'label' => __( 'Confirm Password ', 'user-registration' ), 'icon' => 'ur-icon ur-icon-password-confirm', ); $this->field_defaults = array( 'default_label' => __( 'Confirm Password', 'user-registration' ), ); } public function get_registered_admin_fields() { return '
            • ' . $this->registered_fields_config['label'] . '
            • '; } public function validation( $single_form_field, $form_data, $filter_hook, $form_id ) {} } return UR_Form_Field_User_Confirm_Password::get_instance(); PK\Uc  0includes/form/class-ur-form-field-user-login.phpnuW+Aid = 'user_registration_user_login'; $this->form_id = 1; $this->registered_fields_config = array( 'label' => __( 'Username', 'user-registration' ), 'icon' => 'ur-icon ur-icon-user', ); $this->field_defaults = array( 'default_label' => __( 'Username', 'user-registration' ), ); } public function get_registered_admin_fields() { return '
            • ' . $this->registered_fields_config['label'] . '
            • '; } public function validation( $single_form_field, $form_data, $filter_hook, $form_id ) { $username = isset( $form_data->value ) ? $form_data->value : ''; if ( username_exists( $username ) ) { add_filter( $filter_hook, function ( $msg ) { return __( 'Username already exists.', 'user-registration' ); } ); } $status = validate_username( $username ); if ( ! $status ) { add_filter( $filter_hook, function ( $msg ) { return __( 'Invalid username ! ', 'user-registration' ); } ); } } } return UR_Form_Field_User_Login::get_instance(); PK\zhUUincludes/class-ur-emailer.phpnuW+A\r\n"; $header .= 'Reply-To: ' . self::ur_sender_email() . "\r\n"; $header .= "Content-Type: text/html; charset=UTF-8\r\n"; return $header; } /** * Email sending process after registration hook. * * @param array $valid_form_data Form filled data. * @param int $form_id Form ID. * @param int $user_id User ID. * @return void */ public static function ur_after_register_mail( $valid_form_data, $form_id, $user_id ) { $attachments = apply_filters( 'user_registration_email_attachment', array(), $valid_form_data, $form_id, $user_id ); $valid_form_data = isset( $valid_form_data ) ? $valid_form_data : array(); $name_value = array(); $data_html = ''; // Generate $data_html string to replace for {{all_fields}} smart tag. foreach ( $valid_form_data as $field_meta => $form_data ) { if ( 'user_confirm_password' === $field_meta ) { continue; } // Donot include privacy policy value. if ( isset( $form_data->extra_params['field_key'] ) && 'privacy_policy' === $form_data->extra_params['field_key'] ) { continue; } // Process for file upload. if ( isset( $form_data->extra_params['field_key'] ) && 'file' === $form_data->extra_params['field_key'] ) { $form_data->value = isset( $form_data->value ) ? wp_get_attachment_url( $form_data->value ) : ''; } $label = isset( $form_data->extra_params['label'] ) ? $form_data->extra_params['label'] : ''; $field_name = isset( $form_data->field_name ) ? $form_data->field_name : ''; $value = isset( $form_data->value ) ? $form_data->value : ''; if ( 'user_pass' === $field_meta ) { $value = __( 'Chosen Password', 'user-registration' ); } // Check if value contains array. if ( is_array( $value ) ) { $value = implode( ',', $value ); } $data_html .= $label . ' : ' . $value . '
              '; $name_value[ $field_name ] = $value; } // Smart tag process for extra fields. $name_value = apply_filters( 'user_registration_process_smart_tag', $name_value, $form_data, $form_id, $user_id ); $email_object = isset( $valid_form_data['user_email'] ) ? $valid_form_data['user_email'] : array(); $user_login_object = isset( $valid_form_data['user_login'] ) ? $valid_form_data['user_login'] : array(); $email = isset( $email_object->value ) && ! empty( $email_object->value ) ? $email_object->value : ''; $username = isset( $user_login_object->value ) && ! empty( $user_login_object->value ) ? $user_login_object->value : ''; if ( ! empty( $email ) && ! empty( $user_id ) ) { do_action( 'user_registration_email_send_before' ); self::send_mail_to_user( $email, $username, $user_id, $data_html, $name_value, $attachments ); self::send_mail_to_admin( $email, $username, $user_id, $data_html, $name_value, $attachments ); do_action( 'user_registration_email_send_after' ); } } /** * Email sending process after profile details changed by user. * * @param int $user_id User ID. * @param int $form_id Form ID. * @return void * @since 1.6.3 */ public static function ur_profile_details_changed_mail( $user_id, $form_id ) { $profile = user_registration_form_data( $user_id, $form_id ); $name_value = array(); $data_html = ''; $smart_data = array(); $email = ''; $user_data = get_userdata( $user_id ); $username = $user_data->user_login; // Generate $data_html string to replace for {{all_fields}} smart tag. foreach ( $profile as $key => $form_data ) { $field_name = str_replace( 'user_registration_', '', $key ); // Check if value contains array. // @codingStandardsIgnoreStart $value = ur_clean( $_POST[ $key ] ); if ( is_array( $_POST[ $key ] ) ) { $value = implode( ',', $_POST[ $key ] ); } // @codingStandardsIgnoreEnd $data_html .= $form_data['label'] . ' : ' . $value . '
              '; $field_key = isset( $form_data['field_key'] ) ? $form_data['field_key'] : ''; $name_value[ $field_name ] = $value; if ( 'user_email' === $field_name ) { $email = $value; } $tmp_data['value'] = $value; $tmp_data['field_type'] = $form_data['type']; $tmp_data['label'] = $form_data['label']; $tmp_data['field_name'] = $field_name; $tmp_data['extra_params'] = array( 'field_key' => $field_key, 'label' => $form_data['label'], ); array_push( $smart_data, $tmp_data ); } // Smart tag process for extra fields. $attachments = apply_filters( 'user_registration_email_attachment', array(), $smart_data, $form_id, $user_id ); $name_value = apply_filters( 'user_registration_process_smart_tag', $name_value, $smart_data, $form_id, $user_id ); if ( ! empty( $email ) && ! empty( $user_id ) ) { do_action( 'user_registration_email_send_before' ); self::send_profile_changed_email_to_admin( $email, $username, $user_id, $data_html, $name_value, $attachments ); do_action( 'user_registration_email_send_after' ); } } /** * Trigger the user email. * * @param string $email Email of the user. * @param string $username Username of the user. * @param int $user_id User id. * @param string $data_html String replaced with {{all_fields}} smart tag. * @param array $name_value Array to replace with extra fields smart tag. * @param array $attachments Email Attachment. * @return void */ public static function send_mail_to_user( $email, $username, $user_id, $data_html, $name_value, $attachments ) { $form_id = ur_get_form_id_by_userid( $user_id ); $login_option = ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ); $attachment = isset( $attachments['user'] ) ? $attachments['user'] : ''; $status = ur_get_user_approval_status( $user_id ); $email_status = get_user_meta( $user_id, 'ur_confirm_email', true ); $email_token = get_user_meta( $user_id, 'ur_confirm_email_token', true ); $values = array( 'username' => $username, 'email' => $email, 'all_fields' => $data_html, 'email_token' => $email_token, ); if ( '0' === $email_status ) { $subject = get_option( 'user_registration_email_confirmation_subject', __( 'Please confirm your registration on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Email_Confirmation(); $message = $message->ur_get_email_confirmation(); $message = get_option( 'user_registration_email_confirmation', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); wp_mail( $email, $subject, $message, self::ur_get_header(), $attachment ); } elseif ( 0 === intval( $status ) ) { $subject = get_option( 'user_registration_awaiting_admin_approval_email_subject', __( 'Thank you for registration on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Awaiting_Admin_Approval_Email(); $message = $message->ur_get_awaiting_admin_approval_email(); $message = get_option( 'user_registration_awaiting_admin_approval_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_awaiting_admin_approval_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header(), $attachment ); } } elseif ( -1 === intval( $status ) ) { $subject = get_option( 'user_registration_registration_denied_email_subject', __( 'Sorry! Registration denied on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Registration_Denied_Email(); $message = $message->ur_get_registration_denied_email(); $message = get_option( 'user_registration_registration_denied_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_registration_denied_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header(), $attachment ); } } elseif ( 'default' === $login_option || 'auto_login' === $login_option ) { $subject = get_option( 'user_registration_successfully_registered_email_subject', __( 'Congratulations! Registration Complete on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Successfully_Registered_Email(); $message = $message->ur_get_successfully_registered_email(); $message = get_option( 'user_registration_successfully_registered_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_successfully_registered_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header(), $attachment ); } } } /** * Trigger the admin email. * * @param string $user_email Email of the user. * @param string $username Username of the user. * @param int $user_id User id. * @param string $data_html String replaced with {{all_fields}} smart tag. * @param array $name_value Array to replace with extra fields smart tag. * @param array $attachments Email Attachement. * @return void */ public static function send_mail_to_admin( $user_email, $username, $user_id, $data_html, $name_value, $attachments ) { $header = "Reply-To: {{email}} \r\n"; $header .= 'Content-Type: text/html; charset=UTF-8'; $attachment = isset( $attachments['admin'] ) ? $attachments['admin'] : ''; $admin_email = get_option( 'user_registration_admin_email_receipents', get_option( 'admin_email' ) ); $admin_email = explode( ',', $admin_email ); $admin_email = array_map( 'trim', $admin_email ); $subject = get_option( 'user_registration_admin_email_subject', __( 'A New User Registered', 'user-registration' ) ); $message = new UR_Settings_Admin_Email(); $message = $message->ur_get_admin_email(); $message = get_option( 'user_registration_admin_email', $message ); $values = array( 'username' => $username, 'email' => $user_email, 'all_fields' => $data_html, ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); $header = self::parse_smart_tags( $header, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_admin_email', 'yes' ) ) { foreach ( $admin_email as $email ) { wp_mail( $email, $subject, $message, $header, $attachment ); } } } /** * Trigger status change email while admin changes users status on admin approval. * * @param string $email Email address of the user. * @param string $username Username of the user. * @param int $status Stautus of the user. * @return void */ public static function status_change_email( $email, $username, $status ) { // Get name value pair to replace smart tag. $name_value = self::user_data_smart_tags( $email ); $values = array( 'username' => $username, 'email' => $email, ); $headers = array( 'Content-Type: text/html; charset=UTF-8' ); if ( 0 === intval( $status ) ) { $subject = get_option( 'user_registration_registration_pending_email_subject', __( 'Sorry! Registration changed to pending on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Registration_Pending_Email(); $message = $message->ur_get_registration_pending_email(); $message = get_option( 'user_registration_registration_pending_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_registration_pending_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header() ); } } elseif ( -1 === intval( $status ) ) { $subject = get_option( 'user_registration_registration_denied_email_subject', __( 'Sorry! Registration denied on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Registration_Denied_Email(); $message = $message->ur_get_registration_denied_email(); $message = get_option( 'user_registration_registration_denied_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_registration_denied_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header() ); } } else { $subject = get_option( 'user_registration_registration_approved_email_subject', __( 'Congratulations! Registration approved on {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Registration_Approved_Email(); $message = $message->ur_get_registration_approved_email(); $message = get_option( 'user_registration_registration_approved_email', $message ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_registration_approved_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header() ); } } } /** * Lost Password Email Trigger * * @param string $user_login username. * @param obj $user_data user object. * @param string $key password reset key. * @return bool */ public static function lost_password_email( $user_login, $user_data, $key ) { $user = get_user_by( 'login', $user_login ); $email = isset( $user->data->user_email ) ? $user->data->user_email : ''; $username = isset( $user->data->user_login ) ? $user->data->user_login : ''; if ( empty( $email ) || empty( $username ) ) { return false; } $subject = get_option( 'user_registration_reset_password_email_subject', __( 'Password Reset Email: {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Reset_Password_Email(); $message = $message->ur_get_reset_password_email(); $message = get_option( 'user_registration_reset_password_email', $message ); $values = array( 'username' => $username, 'email' => $email, 'key' => $key, ); $message = self::parse_smart_tags( $message, $values ); $subject = self::parse_smart_tags( $subject, $values ); if ( 'yes' === get_option( 'user_registration_enable_reset_password_email', 'yes' ) ) { wp_mail( $email, $subject, $message, self::ur_get_header() ); return true; } return false; } /** * Trigger the admin email after profile details changed by user. * * @param string $user_email Email of the user. * @param string $username Username of the user. * @param int $user_id User id. * @param string $data_html String replaced with {{all_fields}} smart tag. * @param array $name_value Array to replace with extra fields smart tag. * @param array $attachments Email Attachement. * @return void * @since 1.6.3 */ public static function send_profile_changed_email_to_admin( $user_email, $username, $user_id, $data_html, $name_value, $attachments ) { $header = "Reply-To: {{email}} \r\n"; $header .= 'Content-Type: text/html; charset=UTF-8'; $attachment = isset( $attachments['admin'] ) ? $attachments['admin'] : ''; $admin_email = get_option( 'user_registration_edit_profile_email_receipents', get_option( 'admin_email' ) ); $admin_email = explode( ',', $admin_email ); $admin_email = array_map( 'trim', $admin_email ); $subject = get_option( 'user_registration_profile_details_changed_email_subject', __( 'Profile Details Changed Email: {{blog_info}}', 'user-registration' ) ); $message = new UR_Settings_Profile_Details_Changed_Email(); $message = $message->ur_get_profile_details_changed_email(); $message = get_option( 'user_registration_profile_details_changed_email', $message ); $values = array( 'username' => $username, 'email' => $user_email, 'all_fields' => $data_html, ); $message = self::parse_smart_tags( $message, $values, $name_value ); $subject = self::parse_smart_tags( $subject, $values, $name_value ); $header = self::parse_smart_tags( $header, $values, $name_value ); if ( 'yes' === get_option( 'user_registration_enable_profile_details_changed_email', 'yes' ) ) { foreach ( $admin_email as $email ) { wp_mail( $email, $subject, $message, $header, $attachment ); } } } /** * Process smart tags for status change emails. * * @param string $email User Email. * @since 1.5.0 * @return array smart tag key value pair. */ public static function user_data_smart_tags( $email ) { $name_value = array(); $user = get_user_by( 'email', $email ); $user_id = isset( $user->ID ) ? absint( $user->ID ) : 0; $user_fields = ur_get_user_table_fields(); foreach ( $user_fields as $field ) { $name_value[ $field ] = isset( $user->data->$field ) ? $user->data->$field : ''; } $user_meta_fields = ur_get_registered_user_meta_fields(); // Use name_value for smart tag to replace. foreach ( $user_meta_fields as $field ) { $name_value[ $field ] = get_user_meta( $user_id, $field, true ); } $user_extra_fields = ur_get_user_extra_fields( $user_id ); $name_value = array_merge( $name_value, $user_extra_fields ); return apply_filters( 'user_registration_process_smart_tag_for_status_change_emails', $name_value, $email ); } /** * Parse Smart tags for emails. * * @param string $content Contents. * @param array $values Data values. * @param array $name_value Extra values. */ private static function parse_smart_tags( $content = '', $values = array(), $name_value = array() ) { $smart_tags = array( '{{username}}', '{{email}}', '{{email_token}}', '{{blog_info}}', '{{home_url}}', '{{ur_login}}', '{{key}}', '{{all_fields}}', ); $ur_login = ( ur_get_page_permalink( 'myaccount' ) !== get_home_url() ) ? ur_get_page_permalink( 'myaccount' ) : wp_login_url(); $ur_login = str_replace( get_home_url() . '/', '', $ur_login ); $default_values = array( 'username' => '', 'email' => '', 'email_token' => '', 'blog_info' => get_bloginfo(), 'home_url' => get_home_url(), 'ur_login' => $ur_login, 'key' => '', 'all_fields' => '', ); $values = wp_parse_args( $values, $default_values ); if ( ! empty( $values['email'] ) ) { $user_data = self::user_data_smart_tags( $values['email'] ); if ( is_array( $name_value ) && ! empty( $name_value ) ) { $user_data = array_merge( $user_data, $name_value ); } $values = array_merge( $values, $user_data ); array_walk( $values, function( &$value, $key ) { if ( 'user_pass' === $key ) { $value = esc_html__( 'Chosen Password', 'user-registration' ); } } ); $user_smart_tags = array_keys( $user_data ); array_walk( $user_smart_tags, function( &$value ) { $value = '{{' . trim( $value, '{}' ) . '}}'; } ); $smart_tags = array_merge( $smart_tags, $user_smart_tags ); } $smart_tags = apply_filters( 'user_registration_smart_tags', $smart_tags ); $content = str_replace( $smart_tags, array_values( $values ), $content ); return $content; } } UR_Emailer::init(); PK\n7ll.includes/abstracts/abstract-ur-log-handler.phpnuW+A $timestamp, 'level' => $level, 'message' => $message, 'context' => $context, ) ); } } PK\HXQQ-includes/abstracts/abstract-ur-form-field.phpnuW+Aadmin_data->general_setting->$key ) ) { return $this->admin_data->general_setting->$key; } if ( isset( $this->field_defaults[ 'default_' . $key ] ) ) { return $this->field_defaults[ 'default_' . $key ]; } return ''; } /** * Get advance setting values. * * @param string $key Atrribute of fields. */ public function get_advance_setting_data( $key ) { if ( isset( $this->admin_data->advance_setting->$key ) ) { return $this->admin_data->advance_setting->$key; } if ( isset( $this->field_defaults[ 'default_' . $key ] ) ) { return $this->field_defaults[ 'default_' . $key ]; } return ''; } /** * Include admin template for each form fields * * @param array $admin_data Admin Data. */ public function get_admin_template( $admin_data = array() ) { $this->admin_data = $admin_data; ob_start(); $template_path = str_replace( '_', '-', str_replace( 'user_registration_', 'admin-', $this->id ) ); $admin_template_path = apply_filters( $this->id . '_admin_template', UR_FORM_PATH . 'views' . UR_DS . 'admin' . UR_DS . $template_path . '.php' ); include $admin_template_path; $template = ob_get_clean(); $settings = $this->get_setting(); $this->admin_data = array(); return array( 'template' => $template . $settings, 'settings' => $settings, ); } /** * Includes any classes we need within frontend. */ public function frontend_includes( $data = array(), $form_id, $field_type, $field_key ) { $this->form_id = $form_id; $form_data = (array) $data['general_setting']; $form_data['type'] = $field_type; if ( isset( $form_data['hide_label'] ) && 'yes' === $form_data['hide_label'] ) { unset( $form_data['label'] ); } if ( isset( $data['general_setting']->required ) ) { if ( in_array( $field_key, ur_get_required_fields() ) || 'yes' === $data['general_setting']->required ) { $form_data['required'] = true; $form_data['custom_attributes']['required'] = 'required'; } } if ( isset( $data['advance_setting']->size ) ) { $form_data['size'] = $data['advance_setting']->size; } if ( isset( $data['advance_setting']->min ) ) { $form_data['min'] = $data['advance_setting']->min; } if ( isset( $data['advance_setting']->max ) ) { $form_data['max'] = $data['advance_setting']->max; } if ( isset( $data['advance_setting']->default_value ) ) { $form_data['default'] = $data['advance_setting']->default_value; } $form_data['input_class'] = array( 'ur-frontend-field ' ); if ( isset( $data['advance_setting']->custom_class ) ) { array_push( $form_data['input_class'], $data['advance_setting']->custom_class ); } if ( isset( $data['advance_setting']->date_format ) ) { update_option( 'user_registration_' . $data['general_setting']->field_name . '_date_format', $data['advance_setting']->date_format ); $form_data['custom_attributes']['data-date-format'] = $data['advance_setting']->date_format; } if ( isset( $data['advance_setting']->enable_min_max ) && 'true' === $data['advance_setting']->enable_min_max ) { if ( isset( $data['advance_setting']->min_date ) ) { $min_date = str_replace( '/', '-', $data['advance_setting']->min_date ); $form_data['custom_attributes']['data-min-date'] = '' !== $min_date ? date( $data['advance_setting']->date_format, strtotime( $min_date ) ) : ''; } if ( isset( $data['advance_setting']->max_date ) ) { $max_date = str_replace( '/', '-', $data['advance_setting']->max_date ); $form_data['custom_attributes']['data-max-date'] = '' !== $max_date ? date( $data['advance_setting']->date_format, strtotime( $max_date ) ) : ''; } } if ( isset( $data['advance_setting']->set_current_date ) ) { $form_data['custom_attributes']['data-default-date'] = $data['advance_setting']->set_current_date; } if ( isset( $data['advance_setting']->enable_date_range ) ) { $form_data['custom_attributes']['data-mode'] = $data['advance_setting']->enable_date_range; } $form_data['custom_attributes']['data-label'] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_label', $data['general_setting']->label ); if ( isset( $form_data['label'] ) ) { $form_data['label'] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_label', $form_data['label'] ); } if ( isset( $form_data['placeholder'] ) ) { $form_data['placeholder'] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_placeholder', $form_data['placeholder'] ); } if ( isset( $form_data['description'] ) ) { $form_data['description'] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_description', $form_data['description'] ); } // Filter only selected countries for `Country` fields. if ( 'country' === $field_key || 'billing_country' === $field_key || 'shipping_country' === $field_key ) { $form_data['options'] = UR_Form_Field_Country::get_instance()->get_country(); $filtered_options = array(); $selected_countries = $data['advance_setting']->selected_countries; if ( is_array( $selected_countries ) ) { foreach ( $form_data['options'] as $iso => $country_name ) { if ( in_array( $iso, $selected_countries, true ) ) { $filtered_options[ $iso ] = $country_name; } } $form_data['options'] = $filtered_options; } } /** Redundant codes. */ if ( 'select' === $field_key || 'select2' === $field_key || 'multi_select2' === $field_key ) { $option_data = isset( $data['advance_setting']->options ) ? explode( ',', $data['advance_setting']->options ) : array(); // Backward compatibility. Modified since 1.5.7. $option_data = isset( $data['general_setting']->options ) ? $data['general_setting']->options : $option_data; $options = array(); if ( is_array( $option_data ) ) { foreach ( $option_data as $index_data => $option ) { $options[ $option ] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_option_' . ( ++$index_data ), $option ); } $form_data['options'] = $options; } } if ( 'radio' === $field_key ) { $option_data = isset( $data['advance_setting']->options ) ? explode( ',', $data['advance_setting']->options ) : array(); // Backward compatibility. Modified since 1.5.7. $option_data = isset( $data['general_setting']->options ) ? $data['general_setting']->options : $option_data; $options = array(); if ( is_array( $option_data ) ) { foreach ( $option_data as $index_data => $option ) { $options[ $option ] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_option_' . ( ++$index_data ), $option ); } $form_data['options'] = $options; } } if ( 'checkbox' === $field_key ) { $choices = isset( $data['advance_setting']->choices ) ? explode( ',', $data['advance_setting']->choices ) : array(); // Backward compatibility. Modified since 1.5.7. $option_data = isset( $data['general_setting']->options ) ? $data['general_setting']->options : $choices; $options = array(); if ( is_array( $option_data ) ) { foreach ( $option_data as $index_data => $option ) { $options[ $option ] = ur_string_translation( $form_id, 'user_registration_' . $data['general_setting']->field_name . '_option_' . ( ++$index_data ), $option ); } $form_data['options'] = $options; } } /** Redundant Codes End. */ $filter_data = array( 'form_data' => $form_data, 'data' => $data, ); $form_data_array = apply_filters( 'user_registration_' . $field_key . '_frontend_form_data', $filter_data ); $form_data = isset( $form_data_array['form_data'] ) ? $form_data_array['form_data'] : $form_data; if ( isset( $data['general_setting']->field_name ) ) { user_registration_form_field( $data['general_setting']->field_name, $form_data ); } } /** * Inlcude advance settings file if exists */ public function get_field_advance_settings() { $file_name = str_replace( 'user_registration_', '', $this->id ); $file_path = UR_FORM_PATH . 'settings' . UR_DS . 'class-ur-setting-' . strtolower( $file_name ) . '.php'; $class_name = 'UR_Setting_' . ucwords( $file_name ); if ( ! class_exists( $class_name ) ) { $file_path_array = apply_filters( 'user_registration_' . strtolower( $file_name ) . '_advance_class', array( 'file_name' => strtolower( $file_name ), 'file_path' => $file_path, ) ); $file_path = isset( $file_path_array['file_path'] ) ? $file_path_array['file_path'] : $file_path; if ( file_exists( $file_path ) ) { $advance_setting_instance = include_once $file_path; return $advance_setting_instance->output( $this->admin_data ); } } else { $instance = new $class_name(); return $instance->output( $this->admin_data ); } return ''; } /** * @return string * @param string $id Form field name */ public function get_field_general_settings() { $general_settings = ur_get_general_settings( $this->id ); $general_setting_html = ''; foreach ( $general_settings as $setting_key => $setting_value ) { $general_setting_wrapper = '
              'ur_user_status', 'value' => $status, 'compare' => '=', ), ); if ( $status == UR_Admin_User_Manager::APPROVED ) { $meta_query = array( 'relation' => 'OR', array( 'key' => 'ur_user_status', 'compare' => 'NOT EXISTS', // works! 'value' => '', // This is ignored, but is necessary... ), array( 'key' => 'ur_user_status', 'value' => UR_Admin_User_Manager::APPROVED, ), ); } $query->set( 'meta_query', $meta_query ); } /** * Seems that doesn't exists a properaction or filter that allow to add custom bulk actions, so this function add them * in the select form at runtime, using javascript */ public function add_bulk_actions() { if ( ! UR_Admin_User_Manager::is_user_allowed_to_change_status() ) { return;} ?> current_action(); $redirect = 'users.php'; // Check if the action is under the scope of this unction if ( $action != 'approve' && $action != 'deny' ) { return;} // Check if the current user has permissions to change approvation statuses if ( ! UR_Admin_User_Manager::is_user_allowed_to_change_status() ) { throw new Exception( 'You have not enough permissions to perform a bulk action on users approval status' );} if ( empty( $_REQUEST['users'] ) ) { wp_redirect( $redirect ); exit(); } if ( $action == 'approve' ) { $status = UR_Admin_User_Manager::APPROVED; $query_arg = 'approved'; } else { $status = UR_Admin_User_Manager::DENIED; $query_arg = 'denied'; } $userids = $_REQUEST['users']; $c = 0; foreach ( $userids as $id ) { $id = (int) $id; $user_manager = new UR_Admin_User_Manager( $id ); // For each user, check if the current user can change him status if ( ! $user_manager->can_status_be_changed_by( get_current_user_id() ) ) { continue;} $user_manager->save_status( $status ); $c++; } wp_redirect( add_query_arg( $query_arg, $c, $redirect ) ); exit(); } /** * Render the field Status in the user profile, in backend * * @param $user */ public function render_profile_field( $user ) { $user_manager = new UR_Admin_User_Manager( $user ); // If the current user can't change status of the user displayed, then return if ( ! $user_manager->can_status_be_changed_by( get_current_user_id() ) ) { return;} $user_status = $user_manager->get_user_status(); ?>
              can_status_be_changed_by( get_current_user_id() ) ) { return false; } if ( empty( $_POST['ur_user_user_status'] ) && ! UR_Admin_User_Manager::validate_status( $_POST['ur_user_user_status'] ) ) { return false; } $new_status = $_POST['ur_user_user_status']; $user_manager->save_status( $new_status ); } } return new UR_Admin_User_List_Manager(); PK\%\C+ (includes/admin/class-ur-admin-addons.phpnuW+A 'UserRegistration Addons Page' ) ); if ( ! is_wp_error( $raw_sections ) ) { $sections = json_decode( wp_remote_retrieve_body( $raw_sections ) ); if ( $sections ) { set_transient( 'ur_addons_sections', $sections, WEEK_IN_SECONDS ); } } } $addon_sections = array(); if ( $sections ) { foreach ( $sections as $sections_id => $section ) { if ( empty( $sections_id ) ) { continue; } $addon_sections[ $sections_id ] = new stdClass(); $addon_sections[ $sections_id ]->title = ur_clean( $section->title ); $addon_sections[ $sections_id ]->endpoint = ur_clean( $section->endpoint ); } } return apply_filters( 'user_registration_addons_sections', $addon_sections ); } /** * Get section for the addons screen. * * @param string $section_id * * @return object|bool */ public static function get_section( $section_id ) { $sections = self::get_sections(); if ( isset( $sections[ $section_id ] ) ) { return $sections[ $section_id ]; } return false; } /** * Get section content for the addons screen. * * @param string $section_id * * @return array */ public static function get_section_data( $section_id ) { $section = self::get_section( $section_id ); $section_data = ''; if ( ! empty( $section->endpoint ) ) { if ( false === ( $section_data = get_transient( 'ur_addons_section_' . $section_id ) ) ) { $raw_section = wp_safe_remote_get( esc_url_raw( $section->endpoint ), array( 'user-agent' => 'UserRegistration Addons Page' ) ); if ( ! is_wp_error( $raw_section ) ) { $section_data = json_decode( wp_remote_retrieve_body( $raw_section ) ); if ( ! empty( $section_data->products ) ) { set_transient( 'ur_addons_section_' . $section_id, $section_data, WEEK_IN_SECONDS ); } } } } return apply_filters( 'user_registration_addons_section_data', $section_data->products, $section_id ); } /** * Handles output of the addons page in admin. */ public static function output() { $sections = self::get_sections(); $theme = wp_get_theme(); $section_keys = array_keys( $sections ); $current_section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : current( $section_keys ); include_once dirname( __FILE__ ) . '/views/html-admin-page-addons.php'; } } PK\ff2includes/admin/views/html-notice-key-activated.phpnuW+A

              %s has been activated. Thanks!', 'user-registration' ), esc_html( $this->plugin_data['Name'] ) ); ?>

              PK\6[(+includes/admin/views/html-notice-custom.phpnuW+A
              PK\cJdNN1includes/admin/views/html-notice-registration.phpnuW+A

              General%2$s tab, and under Membership make sure to check Anyone can register.', 'user-registration' ), '', '' ); ?>

              PK\&77*includes/admin/views/html-notice-error.phpnuW+A

              PK\k;zz1includes/admin/views/html-notice-deactivation.phpnuW+A

              let us know why so we can improve it for you? No, deactivate now.', 'user-registration' ), $reason_deactivation_url, $deactivate_url ); ?>

              PK\o;;5includes/admin/views/html-admin-page-export-users.phpnuW+A
              PK\A\\/includes/admin/views/html-admin-page-status.phpnuW+A __( 'Logs', 'user-registration' ), ); $tabs = apply_filters( 'user-registration_admin_status_tabs', $tabs ); ?>

              PK\, ww-includes/admin/views/html-notice-updating.phpnuW+A

              PK\WEYY4includes/admin/views/html-admin-page-status-logs.phpnuW+A

              PK\Zjj.includes/admin/views/html-admin-page-forms.phpnuW+A

              PK\Uz,includes/admin/views/html-notice-updated.phpnuW+A

              PK\S/includes/admin/views/html-admin-page-addons.phpnuW+A


              User Registration Extensions Catalog', 'user-registration' ), 'https://wpeverest.com/user-registration-extensions/' ); ?>

              PK\ ,includes/admin/views/html-admin-settings.phpnuW+A

              PK\4includes/admin/views/html-notice-key-unvalidated.phpnuW+A

              %3$s Add-Ons.', 'user-registration' ), '', '', esc_html( $this->plugin_data['Name'] ) ); ?>

              PK\H2oee,includes/admin/views/html-notice-install.phpnuW+A

              Welcome to User Registration – You‘re almost ready to create registration :)', 'user-registration' ); ?>

              PK\sںbb4includes/admin/views/html-notice-key-deactivated.phpnuW+A

              %s has been deactivated.', 'user-registration' ), esc_html( $this->plugin_data['Name'] ) ); ?>

              PK\8*includes/admin/views/html-license-form.phpnuW+Aplugin_slug . '_license_key' ); ?> error_notices(); ?>
              Retrieve it here.', esc_url( 'https://wpeverest.com/lost-licence-key/' ) ); ?>
              PK\,v +includes/admin/views/html-notice-update.phpnuW+A

              PK\,B<includes/admin/views/html-admin-page-import-export-forms.phpnuW+A
              PK\\ʏN N ,includes/admin/class-ur-admin-form-modal.phpnuW+A'; $login_icon = ''; printf( '%s %s', esc_attr( $editor_id ), esc_attr__( 'Add User Registration Form', 'user-registration' ), $icon, __( 'Add Registration Form', 'user-registration' ) ); add_action( 'admin_footer', array( $this, 'shortcode_modal' ) ); } function shortcode_modal() { ?> 37 ? strlen( $filename ) - 37 : strlen( $filename ) - 4 ); } /** * Scan the template files. * * @param string $template_path * * @return array */ public static function scan_template_files( $template_path ) { $files = @scandir( $template_path ); $result = array(); if ( ! empty( $files ) ) { foreach ( $files as $key => $value ) { if ( ! in_array( $value, array( '.', '..' ) ) ) { if ( is_dir( $template_path . DIRECTORY_SEPARATOR . $value ) ) { $sub_files = self::scan_template_files( $template_path . DIRECTORY_SEPARATOR . $value ); foreach ( $sub_files as $sub_file ) { $result[] = $value . DIRECTORY_SEPARATOR . $sub_file; } } else { $result[] = $value; } } } } return $result; } /** * Scan the log files. * * @return array */ public static function scan_log_files() { $files = @scandir( UR_LOG_DIR ); $result = array(); if ( ! empty( $files ) ) { foreach ( $files as $key => $value ) { if ( ! in_array( $value, array( '.', '..' ) ) ) { if ( ! is_dir( $value ) && strstr( $value, '.log' ) ) { $result[ sanitize_title( $value ) ] = $value; } } } } return $result; } /** * Remove/delete the chosen file. */ public static function remove_log() { if ( empty( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'remove_log' ) ) { wp_die( __( 'Action failed. Please refresh the page and retry.', 'user-registration' ) ); } if ( ! empty( $_REQUEST['handle'] ) ) { $log_handler = new UR_Log_Handler_File(); $log_handler->remove( $_REQUEST['handle'] ); } wp_safe_redirect( esc_url_raw( admin_url( 'admin.php?page=user-registration-status&tab=logs' ) ) ); exit(); } } PK\yWڈII5includes/admin/class-ur-admin-import-export-forms.phpnuW+Aget_post_meta_by_prefix( $form_id, $meta_key_prefix ); $export_data = array( 'form_post' => array( 'post_content' => $form_post->post_content, 'post_title' => $form_post->post_title, 'post_name' => $form_post->post_name, 'post_type' => $form_post->post_type, 'post_status' => $form_post->post_status, ), 'form_post_meta' => (array) $form_post_meta, ); $form_name = strtolower( str_replace( ' ', '-', get_the_title( $form_id ) ) ); $file_name = $form_name . '-' . current_time( 'Y-m-d_H:i:s' ) . '.json'; if ( ob_get_contents() ) { ob_clean(); } $export_json = wp_json_encode( $export_data ); // Force download. header( 'Content-Type: application/force-download' ); // Disposition / Encoding on response body. header( "Content-Disposition: attachment;filename={$file_name}" ); header( 'Content-type: application/json' ); echo $export_json; // phpcs:ignore WordPress.Security.EscapeOutput exit(); } /** * Get post meta for a given key prefix. * * @param int $post_id User ID of the user being edited. * @param string $key_prefix Prefix. * @return array */ protected function get_post_meta_by_prefix( $post_id, $key_prefix ) { $values = get_post_meta( $post_id ); $return_values = array(); if ( gettype( $values ) !== 'array' ) { return $return_values; } foreach ( $values as $meta_key => $value ) { if ( substr( $meta_key, 0, strlen( $key_prefix ) ) === $key_prefix ) { if ( isset( $value[0] ) ) { $return_values[ $meta_key ] = $value[0]; } elseif ( 'string' === gettype( $values ) ) { $return_values[ $meta_key ] = $value; } } } return $return_values; } /** * Import Form from backend. */ public static function import_form() { // Check for $_FILES set or not. if ( isset( $_FILES['jsonfile'] ) ) { $filename = esc_html( sanitize_text_field( $_FILES['jsonfile']['name'] ) ); // Get file name. $ext = pathinfo( $filename, PATHINFO_EXTENSION ); // Get file extention. // Check for file format. if ( 'json' === $ext ) { // read json file. $form_data = json_decode( file_get_contents( $_FILES['jsonfile']['tmp_name'] ) ); // @codingStandardsIgnoreLine // check for non empty json file. if ( ! empty( $form_data ) ) { // check for non empty post data array. if ( ! empty( $form_data->form_post ) ) { // If Form Title already exist concat it with imported tag. $args = array( 'post_type' => 'user_registration' ); $forms = get_posts( $args ); foreach ( $forms as $key => $form_obj ) { if ( $form_data->form_post->post_title === $form_obj->post_title ) { $form_data->form_post->post_title = $form_data->form_post->post_title . ' (Imported)'; break; } } $post_id = wp_insert_post( $form_data->form_post ); // Check for any error while inserting. if ( is_wp_error( $post_id ) ) { return $post_id; } if ( $post_id ) { // check for non empty post_meta array. if ( ! empty( $form_data->form_post_meta ) ) { $all_roles = ur_get_default_admin_roles(); foreach ( $form_data->form_post_meta as $meta_key => $meta_value ) { // If user role does not exists in new site then set default as subscriber. if ( 'user_registration_form_setting_default_user_role' === $meta_key ) { $meta_value = array_key_exists( $meta_value, $all_roles ) ? $meta_value : 'subscriber'; } add_post_meta( $post_id, $meta_key, $meta_value ); } wp_send_json_success( array( 'message' => __( 'Imported Successfully.', 'user-registration' ), ) ); } } } else { wp_send_json_error( array( 'message' => __( 'Invalid file content. Please export file from user registration plugin.', 'user-registration' ), ) ); } } else { wp_send_json_error( array( 'message' => __( 'Invalid file content. Please export file from user registration plugin.', 'user-registration' ), ) ); } } else { wp_send_json_error( array( 'message' => __( 'Invalid file format. Only Json File Allowed.', 'user-registration' ), ) ); } } else { wp_send_json_error( array( 'message' => __( 'Please select json file to import form data.', 'user-registration' ), ) ); } } } new UR_Admin_Import_Export_Forms(); PK\yB jj"includes/admin/class-ur-config.phpnuW+Aid : ''; $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2'; // Register admin styles wp_register_style( 'user-registration-menu', UR()->plugin_url() . '/assets/css/menu.css', array(), UR_VERSION ); wp_register_style( 'user-registration-form-modal-css', UR()->plugin_url() . '/assets/css/form-modal.css', array(), UR_VERSION ); wp_register_style( 'user-registration-admin', UR()->plugin_url() . '/assets/css/admin.css', array( 'nav-menus', 'wp-color-picker' ), UR_VERSION ); wp_register_style( 'jquery-ui-style', UR()->plugin_url() . '/assets/css/jquery-ui/jq-smoothness.css', array(), $jquery_version ); wp_register_style( 'flatpickr', UR()->plugin_url() . '/assets/css/flatpickr/flatpickr.min.css', '4.5.1' ); wp_register_style( 'perfect-scrollbar', UR()->plugin_url() . '/assets/css/perfect-scrollbar/perfect-scrollbar.css', array(), '1.4.0' ); wp_register_style( 'sweetalert2', UR()->plugin_url() . '/assets/css/sweetalert2/sweetalert2.min.css', array(), '8.17.1' ); wp_register_style( 'user-registration-dashboard-widget', UR()->plugin_url() . '/assets/css/dashboard.css', UR_VERSION ); wp_register_style( 'ur-review', UR()->plugin_url() . '/assets/css/review.css', array(), UR_VERSION ); // Add RTL support for admin styles wp_style_add_data( 'user-registration-menu', 'rtl', 'replace' ); wp_style_add_data( 'user-registration-admin', 'rtl', 'replace' ); // Sitewide menu CSS wp_enqueue_style( 'user-registration-menu' ); wp_enqueue_style( 'user-registration-form-modal-css' ); $enqueue_review = ur_check_activation_date(); if ( $enqueue_review === true ) { wp_enqueue_style( 'ur-review' ); } // Admin styles for UR pages only if ( in_array( $screen_id, ur_get_screen_ids() ) ) { wp_enqueue_style( 'user-registration-admin' ); wp_enqueue_style( 'jquery-ui-style' ); wp_enqueue_style( 'wp-color-picker' ); wp_enqueue_style( 'perfect-scrollbar' ); wp_enqueue_style( 'sweetalert2' ); } // Enqueue flatpickr on user profile screen. if ( 'user-edit' === $screen_id || 'profile' === $screen_id || 'user-registration_page_add-new-registration' === $screen_id ) { wp_enqueue_style( 'flatpickr' ); } // Enqueue dashboard widget CSS in dashboard screen only. if ( 'dashboard' === $screen_id ) { wp_enqueue_style( 'user-registration-dashboard-widget' ); } } /** * Enqueue scripts. */ public function admin_scripts() { $screen = get_current_screen(); $screen_id = $screen ? $screen->id : ''; $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; // Register Scripts wp_register_script( 'user-registration-admin', UR()->plugin_url() . '/assets/js/admin/admin' . $suffix . '.js', array( 'jquery', 'selectWoo', 'wp-color-picker', 'jquery-blockui', 'jquery-tiptip', 'jquery-ui-sortable', 'jquery-ui-widget', 'jquery-ui-core', 'jquery-ui-tabs', 'jquery-ui-draggable', 'jquery-ui-droppable', 'ur-backbone-modal', 'ur-enhanced-select', 'perfect-scrollbar', 'sweetalert2', ), UR_VERSION ); wp_register_script( 'jquery-blockui', UR()->plugin_url() . '/assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js', array( 'jquery' ), '2.70', true ); wp_register_script( 'jquery-tiptip', UR()->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), UR_VERSION, true ); wp_register_script( 'ur-backbone-modal', UR()->plugin_url() . '/assets/js/admin/backbone-modal' . $suffix . '.js', array( 'underscore', 'backbone', 'wp-util', ), UR_VERSION ); wp_register_script( 'user-registration-form-modal-js', UR()->plugin_url() . '/assets/js/admin/form-modal' . $suffix . '.js', 'jquery' ); wp_register_script( 'user-registration-dashboard-widget-js', UR()->plugin_url() . '/assets/js/admin/dashboard-widget' . $suffix . '.js', 'jquery' ); wp_register_script( 'selectWoo', UR()->plugin_url() . '/assets/js/selectWoo/selectWoo.full' . $suffix . '.js', array( 'jquery' ), '3.5.4' ); wp_register_script( 'ur-enhanced-select', UR()->plugin_url() . '/assets/js/admin/enhanced-select' . $suffix . '.js', array( 'jquery', 'selectWoo', ), UR_VERSION ); wp_register_script( 'flatpickr', UR()->plugin_url() . '/assets/js/flatpickr/flatpickr.min.js', array( 'jquery' ), '1.17.0' ); wp_register_script( 'perfect-scrollbar', UR()->plugin_url() . '/assets/js/perfect-scrollbar/perfect-scrollbar.min.js', array( 'jquery' ), '1.4.0' ); wp_register_script( 'sweetalert2', UR()->plugin_url() . '/assets/js/sweetalert2/sweetalert2.min.js', array( 'jquery' ), '8.17.1' ); wp_register_script( 'ur-my-account', UR()->plugin_url() . '/assets/js/frontend/my-account' . $suffix . '.js', array( 'jquery' ), UR_VERSION ); wp_localize_script( 'ur-my-account', 'ur_my_account_params', array( 'upload_image' => __( 'Upload Profile Picture', 'user-registration' ), 'select_image' => __( 'Select Image', 'user-registration' ), 'current_user_can' => current_user_can( 'edit_others_posts' ), ) ); if ( 'user-registration_page_add-new-registration' === $screen_id ) { wp_enqueue_script( 'ur-copy', UR()->plugin_url() . '/assets/js/admin/ur-copy' . $suffix . '.js', 'jquery' ); } wp_enqueue_script( 'user-registration-form-modal-js' ); $enqueue_review = ur_check_activation_date(); if ( $enqueue_review === true ) { wp_enqueue_script( 'ur-review', UR()->plugin_url() . '/assets/js/admin/review' . $suffix . '.js', array(), UR_VERSION ); wp_localize_script( 'ur-review', 'ur_review_params', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'review_nonce' => wp_create_nonce( 'review-nonce' ), ) ); } wp_localize_script( 'ur-enhanced-select', 'ur_enhanced_select_params', array( 'i18n_no_matches' => _x( 'No matches found', 'enhanced select', 'user-registration' ), 'i18n_ajax_error' => _x( 'Loading failed', 'enhanced select', 'user-registration' ), 'i18n_input_too_short_1' => _x( 'Please enter 1 or more characters', 'enhanced select', 'user-registration' ), 'i18n_input_too_short_n' => _x( 'Please enter %qty% or more characters', 'enhanced select', 'user-registration' ), 'i18n_input_too_long_1' => _x( 'Please delete 1 character', 'enhanced select', 'user-registration' ), 'i18n_input_too_long_n' => _x( 'Please delete %qty% characters', 'enhanced select', 'user-registration' ), 'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'user-registration' ), 'i18n_selection_too_long_n' => _x( 'You can only select %qty% items', 'enhanced select', 'user-registration' ), 'i18n_load_more' => _x( 'Loading more results…', 'enhanced select', 'user-registration' ), 'i18n_searching' => _x( 'Searching…', 'enhanced select', 'user-registration' ), ) ); if ( 'user-registration_page_user-registration-modules' === $screen_id ) { wp_enqueue_style( 'user-registration-modules' ); wp_enqueue_script( 'user-registration-modules-script' ); wp_localize_script( 'user-registration-modules-script', 'user_registration_module_params', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'error_could_not_install' => __( 'Could not install.', 'user-registration' ), ) ); } // UserRegistration admin pages if ( in_array( $screen_id, ur_get_screen_ids() ) ) { wp_enqueue_script( 'user-registration-admin' ); wp_enqueue_script( 'jquery-ui-sortable' ); wp_enqueue_script( 'jquery-ui-autocomplete' ); wp_enqueue_script( 'jquery-ui-widget' ); $params = array( 'required_form_html' => self::get_form_required_html(), 'ajax_url' => admin_url( 'admin-ajax.php' ), 'user_input_dropped' => wp_create_nonce( 'user_input_dropped_nonce' ), 'ur_form_save' => wp_create_nonce( 'ur_form_save_nonce' ), 'ur_import_form_save' => wp_create_nonce( 'ur_import_form_save_nonce' ), 'number_of_grid' => UR_Config::$ur_form_grid, 'active_grid' => UR_Config::$default_active_grid, 'is_edit_form' => isset( $_GET['edit-registration'] ) ? true : false, 'post_id' => isset( $_GET['edit-registration'] ) ? absint( $_GET['edit-registration'] ) : 0, 'admin_url' => admin_url( 'admin.php?page=add-new-registration&edit-registration=' ), 'form_required_fields' => ur_get_required_fields(), 'form_one_time_draggable_fields' => ur_get_one_time_draggable_fields(), 'i18n_admin' => self::get_i18n_admin_data(), 'add_new' => esc_html( 'Add New', 'user-registratoin' ), ); wp_localize_script( 'user-registration-admin', 'user_registration_admin_data', $params ); } // Enqueue flatpickr on user profile screen. if ( 'user-edit' === $screen_id || 'profile' === $screen_id || 'user-registration_page_add-new-registration' === $screen_id ) { wp_enqueue_script( 'flatpickr' ); wp_enqueue_media(); wp_enqueue_script( 'ur-my-account' ); } // Plugins page. if ( in_array( $screen_id, array( 'plugins' ) ) ) { wp_register_script( 'ur-plugins', UR()->plugin_url() . '/assets/js/admin/plugins' . $suffix . '.js', array( 'jquery' ), UR_VERSION ); wp_enqueue_script( 'ur-plugins' ); wp_localize_script( 'ur-plugins', 'ur_plugins_params', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'deactivation_nonce' => wp_create_nonce( 'deactivation-notice' ), ) ); } wp_register_script( 'ur-live-user-notice', UR()->plugin_url() . '/assets/js/admin/live-user-notice' . $suffix . '.js', array( 'jquery', 'heartbeat' ), UR_VERSION ); wp_enqueue_script( 'ur-live-user-notice' ); } /** * @return string */ public static function get_form_required_html() { if ( isset( $_GET['edit-registration'] ) ) { return ''; } $form_html = ''; $required_fields = ur_get_required_fields(); foreach ( $required_fields as $field ) { $class_name = ur_load_form_field_class( $field ); $template_data = $class_name::get_instance()->get_admin_template(); // @codingStandardsIgnoreLine if ( $class_name !== null ) { $template = '
              '; $template .= '
              '; $template .= $template_data['template']; $template .= '
              '; $form_html .= $template; } } return $form_html; } /** * @description localize admin data * @return array */ public static function get_i18n_admin_data() { $i18n = array( 'i18n_choice_ok' => esc_html__( 'Ok', 'user-registration' ), 'i18n_choice_cancel' => esc_html__( 'Cancel', 'user-registration' ), 'i18n_user_email' => _x( 'User Email', 'user-registration admin', 'user-registration' ), 'i18n_user_password' => _x( 'User Password', 'user-registration admin', 'user-registration' ), 'i18n_are_you_sure_want_to_delete' => _x( 'Are you sure want to delete?', 'user registration admin', 'user-registration' ), 'i18n_at_least_one_row_need_to_select' => _x( 'At least one row needs to be selected.', 'user registration admin', 'user-registration' ), 'i18n_user_required_field_already_there' => _x( 'This field is one time draggable.', 'user registration admin', 'user-registration' ), 'i18n_user_required_field_already_there_could_not_clone' => _x( 'Could not clone this field.', 'user registration admin', 'user-registration' ), 'i18n_form_successfully_saved' => _x( 'Form successfully saved.', 'user registration admin', 'user-registration' ), 'i18n_success' => _x( 'Success', 'user registration admin', 'user-registration' ), 'i18n_error' => _x( 'Error', 'user registration admin', 'user-registration' ), 'i18n_msg_delete' => esc_html__( 'Confirm Deletion', 'user-registration' ), 'i18n_at_least_one_field_need_to_select' => _x( 'At least one field needs to be selected.', 'user registration admin', 'user-registration' ), 'i18n_empty_form_name' => _x( 'Empty form name.', 'user registration admin', 'user-registration' ), 'i18n_previous_save_action_ongoing' => _x( 'Previous save action on going.', 'user registration admin', 'user-registration' ), 'i18n_duplicate_field_name' => _x( 'Duplicate field name.', 'user registration admin', 'user-registration' ), 'i18n_empty_field_label' => _x( 'Empty field label.', 'user registration admin', 'user-registration' ), 'i18n_invald_field_name' => _x( 'Invalid field name. Please do not use space, empty or special character, you can use underscore.', 'user registration admin', 'user-registration' ), 'i18n_multiple_field_key' => _x( 'Multiple field key ', 'user registration admin', 'user-registration' ), 'i18n_field_is_required' => _x( 'field is required.', 'user registration admin', 'user-registration' ), 'i18n_drag_your_first_item_here' => _x( 'Drag your first form item here.', 'user registration admin', 'user-registration' ), 'i18n_select_countries' => _x( 'Please select at least one country.', 'user registration admin', 'user-registration' ), ); return $i18n; } } new UR_Admin_Assets(); PK\N^c;;%includes/admin/functions-ur-admin.phpnuW+A admin_url( 'admin-ajax.php' ), 'loading' => __( 'loading...', 'user-registration' ), 'widget_nonce' => wp_create_nonce( 'dashboard-widget' ), ) ); ur_get_template( 'dashboard-widget.php' ); } /** * Report for the user registration activity. * * @return array */ function ur_get_user_report( $form_id ) { $current_date = current_time( 'Y-m-d' ); $users = get_users( array( 'meta_key' => 'ur_form_id', ) ); $total_users = 0; $today_users = 0; $last_week_users = 0; $last_month_users = 0; foreach ( $users as $user ) { $user_registered = date( 'Y-m-d', strtotime( $user->data->user_registered ) ); $user_form = get_user_meta( $user->ID, 'ur_form_id', true ); if ( (int) $form_id === (int) $user_form ) { // Count today users. if ( $user_registered === $current_date ) { $today_users++; } // Get last week date. $last_week = strtotime( 'now' ) - WEEK_IN_SECONDS; $last_week = date( 'Y-m-d', $last_week ); // Get last month date. $last_month = strtotime( 'now' ) - MONTH_IN_SECONDS; $last_month = date( 'Y-m-d', $last_month ); // Get last week users count. if ( $user_registered > $last_week ) { $last_week_users++; } // Get last month users count. if ( $user_registered > $last_month ) { $last_month_users++; } $total_users++; // Total users of selected form. } } $report = array( 'total_users' => $total_users, 'today_users' => $today_users, 'last_week_users' => $last_week_users, 'last_month_users' => $last_month_users, ); return $report; } /** * Get all UserRegistration screen ids. * * @return array */ function ur_get_screen_ids() { $ur_screen_id = sanitize_title( __( 'User Registration', 'user-registration' ) ); $screen_ids = array( 'toplevel_page_' . $ur_screen_id, $ur_screen_id . '_page_add-new-registration', $ur_screen_id . '_page_user-registration-settings', $ur_screen_id . '_page_user-registration-mailchimp', $ur_screen_id . '_page_user-registration-status', $ur_screen_id . '_page_user-registration-addons', $ur_screen_id . '_page_user-registration-export-users', 'profile', 'user-edit', ); return apply_filters( 'user_registration_screen_ids', $screen_ids ); } // Hook into exporter and eraser tool. add_filter( 'wp_privacy_personal_data_exporters', 'user_registration_register_data_exporter', 10 ); add_filter( 'wp_privacy_personal_data_erasers', 'user_registration_register_data_eraser' ); /** * Add user registration data to exporters * * @param array $exporters * @return array */ function user_registration_register_data_exporter( $exporters ) { $exporters['user-registration'] = array( 'exporter_friendly_name' => __( 'User Extra Information', 'user-registration' ), 'callback' => 'user_registration_data_exporter', ); return $exporters; } /** * Get user registration data to export. * * @param string $email_address user's email address * @param integer $page * @return array exporting data */ function user_registration_data_exporter( $email_address, $page = 1 ) { global $wpdb; $form_data = array(); $posts = get_posts( 'post_type=user_registration' ); // Get array of field name label mapping of user registration fields. foreach ( $posts as $post ) { $post_content = isset( $post->post_content ) ? $post->post_content : ''; $post_content_array = json_decode( $post_content ); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) && isset( $field->general_setting->field_name ) ) { $form_data[ $field->general_setting->field_name ] = $field->general_setting->label; } } } } } $user = get_user_by( 'email', $email_address ); $user_id = isset( $user->ID ) ? $user->ID : 0; $usermeta = $wpdb->get_results( "SELECT * FROM $wpdb->usermeta WHERE meta_key LIKE 'user_registration\_%' AND user_id = " . $user_id . ' ;' ); $export_items = array(); if ( $usermeta && is_array( $usermeta ) ) { foreach ( $usermeta as $meta ) { $strip_prefix = substr( $meta->meta_key, 18 ); if ( array_key_exists( $strip_prefix, $form_data ) ) { if ( is_serialized( $meta->meta_value ) ) { $meta->meta_value = unserialize( $meta->meta_value ); $meta->meta_value = implode( ',', $meta->meta_value ); } $data[] = array( 'name' => $form_data[ $strip_prefix ], 'value' => $meta->meta_value, ); } } $export_items[] = array( 'group_id' => 'user-registration', 'group_label' => __( 'User Extra Information', 'user-registration' ), 'item_id' => "user-registration-{$meta->umeta_id}", 'data' => $data, ); } return array( 'data' => $export_items, 'done' => true, ); } /** * Add user registration data to the eraser tool. * * @param array $erasers * @return array */ function user_registration_register_data_eraser( $erasers = array() ) { $erasers['user-registration'] = array( 'eraser_friendly_name' => __( 'WordPress User Extra Information', 'user-registration' ), 'callback' => 'user_registration_data_eraser', ); return $erasers; } /** * Get user registration data to erase * * @param string $email_address user's email address * @param integer $page [description] * @return array */ function user_registration_data_eraser( $email_address, $page = 1 ) { global $wpdb; if ( empty( $email_address ) ) { return array( 'items_removed' => false, 'items_retained' => false, 'messages' => array(), 'done' => true, ); } $user = get_user_by( 'email', $email_address ); $messages = array(); $items_removed = false; $items_retained = false; if ( $user && $user->ID ) { $user_id = $user->ID; $delete_usermeta = $wpdb->get_results( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE 'user_registration\_%' AND user_id = " . $user_id . ' ;' ); $delete_form_data = $wpdb->get_results( "DELETE FROM $wpdb->usermeta WHERE meta_key = 'ur_form_id' AND user_id = " . $user_id . ' ;' ); if ( $delete_usermeta && $delete_form_data ) { $items_removed = true; } } return array( 'items_removed' => $items_removed, 'items_retained' => $items_retained, 'messages' => $messages, 'done' => true, ); } /** * Create a page and store the ID in an option. * * @param mixed $slug Slug for the new page * @param string $option Option name to store the page's ID * @param string $page_title (default: '') Title for the new page * @param string $page_content (default: '') Content for the new page * @param int $post_parent (default: 0) Parent for the new page * * @return int page ID */ function ur_create_page( $slug, $option = '', $page_title = '', $page_content = '', $post_parent = 0 ) { global $wpdb; $option_value = get_option( $option ); if ( $option_value > 0 && ( $page_object = get_post( $option_value ) ) ) { if ( 'page' === $page_object->post_type && ! in_array( $page_object->post_status, array( 'pending', 'trash', 'future', 'auto-draft', ) ) ) { // Valid page is already in place return $page_object->ID; } } if ( strlen( $page_content ) > 0 ) { // Search for an existing page with the specified page content (typically a shortcode) $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) ); } else { // Search for an existing page with the specified page slug $valid_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status NOT IN ( 'pending', 'trash', 'future', 'auto-draft' ) AND post_name = %s LIMIT 1;", $slug ) ); } $valid_page_found = apply_filters( 'user_registration_create_page_id', $valid_page_found, $slug, $page_content ); if ( $valid_page_found ) { if ( $option ) { update_option( $option, $valid_page_found ); } return $valid_page_found; } // Search for a matching valid trashed page if ( strlen( $page_content ) > 0 ) { // Search for an existing page with the specified page content (typically a shortcode) $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_content LIKE %s LIMIT 1;", "%{$page_content}%" ) ); } else { // Search for an existing page with the specified page slug $trashed_page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = 'trash' AND post_name = %s LIMIT 1;", $slug ) ); } if ( $trashed_page_found ) { $page_id = $trashed_page_found; $page_data = array( 'ID' => $page_id, 'post_status' => 'publish', ); wp_update_post( $page_data ); } else { $page_data = array( 'post_status' => 'publish', 'post_type' => 'page', 'post_author' => 1, 'post_name' => $slug, 'post_title' => $page_title, 'post_content' => $page_content, 'post_parent' => $post_parent, 'comment_status' => 'closed', ); $page_id = wp_insert_post( $page_data ); } if ( $option ) { update_option( $option, $page_id ); } return $page_id; } /** * Output admin fields. * * Loops though the user registration options array and outputs each field. * * @param array $options Opens array to output */ function user_registration_admin_fields( $options ) { if ( ! class_exists( 'UR_Admin_Settings', false ) ) { include dirname( __FILE__ ) . '/class-ur-admin-settings.php'; } UR_Admin_Settings::output_fields( $options ); } /** * Update all settings which are passed. * * @param array $options * @param array $data */ function user_registration_update_options( $options, $data = null ) { if ( ! class_exists( 'UR_Admin_Settings', false ) ) { include dirname( __FILE__ ) . '/class-ur-admin-settings.php'; } UR_Admin_Settings::save_fields( $options, $data ); } /** * Get a setting from the settings API. * * @param mixed $option_name * @param mixed $default * * @return string */ function user_registration_settings_get_option( $option_name, $default = '' ) { if ( ! class_exists( 'UR_Admin_Settings', false ) ) { include dirname( __FILE__ ) . '/class-ur-admin-settings.php'; } return UR_Admin_Settings::get_option( $option_name, $default ); } /** * General settings area display * * @param int $form_id Form ID. */ function ur_admin_form_settings( $form_id = 0 ) { echo '

              ' . esc_html__( 'General Settings', 'user-registration' ) . '

              '; $arguments = ur_admin_form_settings_fields( $form_id ); foreach ( $arguments as $args ) { user_registration_form_field( $args['id'], $args ); } echo '
              '; } /** * Update Settings of the form. * * @param array $setting_data Settings data in name value array pair * @param int $form_id Form ID. */ function ur_update_form_settings( $setting_data, $form_id ) { $remap_setting_data = array(); $setting_data = ur_format_setting_data( $setting_data ); foreach ( $setting_data as $setting ) { if ( isset( $setting['name'] ) ) { if ( '[]' === substr( $setting['name'], -2 ) ) { $setting['name'] = substr( $setting['name'], 0, -2 ); } $remap_setting_data[ $setting['name'] ] = $setting; } } $setting_fields = apply_filters( 'user_registration_form_settings_save', ur_admin_form_settings_fields( $form_id ), $form_id ); foreach ( $setting_fields as $field_data ) { if ( isset( $field_data['id'] ) && isset( $remap_setting_data[ $field_data['id'] ] ) ) { if ( isset( $remap_setting_data[ $field_data['id'] ]['value'] ) ) { // Check if any settings value contains array if ( is_array( $remap_setting_data[ $field_data['id'] ]['value'] ) ) { $remap_setting_data[ $field_data['id'] ]['value'] = array_map( 'sanitize_text_field', $remap_setting_data[ $field_data['id'] ]['value'] ); $remap_setting_data[ $field_data['id'] ]['value'] = maybe_serialize( $remap_setting_data[ $field_data['id'] ]['value'] ); } else { $remap_setting_data[ $field_data['id'] ]['value'] = sanitize_text_field( $remap_setting_data[ $field_data['id'] ]['value'] ); } update_post_meta( $form_id, $field_data['id'], $remap_setting_data[ $field_data['id'] ]['value'] ); } } else { // Update post meta if any setting value is not set for field data id. update_post_meta( $form_id, $field_data['id'], '' ); } } } /** * Format settings data for same name. e.g. multiselect * Encloses all values in array for same name in settings. * * @param array $setting_data unformatted settings data. * @return array $settings formatted settings data. */ function ur_format_setting_data( $setting_data ) { $key_value = array(); foreach ( $setting_data as $value ) { if ( array_key_exists( $value['name'], $key_value ) ) { $value_array = array(); if ( is_array( $key_value[ $value['name'] ] ) ) { $value_array = $key_value[ $value['name'] ]; $value_array[] = $value['value']; $key_value[ $value['name'] ] = $value_array; } else { $value_array[] = $key_value[ $value['name'] ]; $value_array[] = $value['value']; $key_value[ $value['name'] ] = $value_array; } } else { $key_value[ $value['name'] ] = $value['value']; } } $settings = array(); foreach ( $key_value as $key => $value ) { $settings[] = array( 'name' => $key, 'value' => $value, ); } return $settings; } /** * Check for plugin activation date. * * True if user registration has been installed 30 days ago. * * @since 1.5.8 * * @return bool */ function ur_check_activation_date() { // Plugin Activation Time. $activation_date = get_option( 'user_registration_activated' ); $last_month = strtotime( 'now' ) - MONTH_IN_SECONDS; $last_month = date( 'Y-m-d', $last_month ); if ( ! empty( $activation_date ) ) { if ( $activation_date < $last_month ) { return true; } } return false; } PK\+T+T)includes/admin/class-ur-admin-profile.phpnuW+Aget_user_meta_by_prefix( $user_id, 'user_registration_' ); $form_fields = $this->get_form_fields( $all_meta_for_user, $form_id ); if ( ! empty( $form_fields ) ) { unset( $form_fields['user_registration_profile_pic_url'] ); $show_fields = apply_filters( 'user_registration_profile_meta_fields', array( 'user_registration' => array( 'title' => sprintf( __( 'User Extra Information %s', 'user-registration' ), '' ), 'fields' => $form_fields, ), ) ); } return $show_fields; } /** * @deprecated 1.4.1 * @param array $all_meta_value, int $form_id */ public function add_customer_meta_fields( $all_meta_value, $form_id ) { ur_deprecated_function( 'UR_Admin_Profile::add_customer_meta_fields', '1.4.1', 'UR_Admin_Profile::show_user_extra_fields' ); } /** * Show user extra information in users profile page. * * @param WP_User $user */ public function show_user_extra_fields( $user ) { if ( ! current_user_can( 'manage_options' ) ) { return; } $show_fields = $this->get_user_meta_by_form_fields( $user->ID ); foreach ( $show_fields as $fieldset_key => $fieldset ) : ?>

              $field ) : $field['label'] = isset( $field['label'] ) ? $field['label'] : ''; $field['description'] = isset( $field['description'] ) ? $field['description'] : ''; $attributes = isset( $field['attributes'] ) ? $field['attributes'] : array(); $attribute_string = ''; $date_format = ''; foreach ( $attributes as $name => $value ) { if ( 'data-date-format' === $name ) { $date_format = $value; } if ( is_bool( $value ) ) { if ( $value ) { $attribute_string .= $name . ' '; } } else { $attribute_string .= sprintf( '%s="%s" ', $name, $value ); } } $field_label = $field['label']; $field_type = isset( $field['type'] ) ? $field['type'] : ''; if ( ! in_array( $field_type, $profile_field_type ) ) { $extra_params_key = str_replace( 'user_registration_', 'ur_', $key ) . '_params'; $extra_params = json_decode( get_user_meta( $user->ID, $extra_params_key, true ) ); $field_label = isset( $extra_params->label ) ? $extra_params->label : $field_label; } ?>

              ID, $key, true ); if ( is_array( $field['options'] ) ) { foreach ( $field['options'] as $option_key => $option_value ) { ?>
              ID, $key, true ); if ( is_array( $field['choices'] ) && array_filter( $field['choices'] ) ) { foreach ( $field['choices'] as $choice ) { ?>
              > get_user_meta( $user->ID, $key ); $actual_value = $value; $value = str_replace( '/', '-', $value ); if ( ! strpos( $value, 'to' ) ) { $value = '' !== $value ? date( $date_format, strtotime( $value ) ) : ''; } else { $date_range = explode( 'to', $value ); $value = date( $date_format, strtotime( trim( $date_range[0] ) ) ) . ' to ' . date( $date_format, strtotime( trim( $date_range[1] ) ) ); } ?> /> $key, 'value' => $this->get_user_meta( $user->ID, $key ), 'attribute_string' => $attribute_string, 'field' => $field, ); do_action( 'user_registration_profile_field_' . $field['type'], $data ); } else { $extra_params_key = str_replace( 'user_registration_', 'ur_', $key ) . '_params'; $extra_params = json_decode( get_user_meta( $user->ID, $extra_params_key, true ) ); if ( empty( $extra_params ) ) { ?> />
              get_user_meta_by_form_fields( $user_id ); foreach ( $save_fields as $fieldset ) { foreach ( $fieldset['fields'] as $key => $field ) { if ( isset( $field['type'] ) && ( 'checkbox' === $field['type'] || 'multi_select2' === $field['type'] ) ) { if ( isset( $_POST[ $key ] ) ) { $value = $_POST[ $key ]; if ( is_array( $_POST[ $key ] ) ) { $value = array_map( 'sanitize_text_field', $value ); } update_user_meta( $user_id, $key, $value ); } else { update_user_meta( $user_id, $key, '' ); } } elseif ( isset( $_POST[ $key ] ) ) { update_user_meta( $user_id, $key, sanitize_text_field( $_POST[ $key ] ) ); } } } } /** * Get user meta for a given key, with fallbacks to core user info for pre-existing fields. * * @param int $user_id User ID of the user being edited * @param string $key key for user meta field * * @return string */ protected function get_user_meta( $user_id, $key ) { $value = get_user_meta( $user_id, $key, true ); $existing_fields = array( 'billing_first_name', 'billing_last_name' ); if ( ! $value && in_array( $key, $existing_fields ) ) { $value = get_user_meta( $user_id, str_replace( 'billing_', '', $key ), true ); } elseif ( ! $value && ( 'billing_email' === $key ) ) { $user = get_userdata( $user_id ); $value = $user->user_email; } return $value; } /** * Get user meta for a given key prefix, with fallbacks to core user info for pre-existing fields. * * @param int $user_id User ID of the user being edited * @param string $key_prefix * @return array */ protected function get_user_meta_by_prefix( $user_id, $key_prefix ) { $values = get_user_meta( $user_id ); $return_values = array(); if ( gettype( $values ) != 'array' ) { return $return_values; } foreach ( $values as $meta_key => $value ) { if ( substr( $meta_key, 0, strlen( $key_prefix ) ) == $key_prefix ) { if ( isset( $value[0] ) ) { $return_values[ $meta_key ] = $value[0]; } elseif ( gettype( $values ) == 'string' ) { $return_values[ $meta_key ] = $value; } } } return $return_values; } /** * @deprecated 1.4.1 * @param array $all_meta_value, int $form_id */ public function get_user_meta_fields( $all_meta_value, $form_id ) { ur_deprecated_function( 'UR_Admin_Profile::get_user_meta_fields', '1.4.1', 'UR_Admin_Profile::get_form_fields' ); } /** * Get all the registration form fields * * @param $all_meta_value * @param int $form_id */ protected function get_form_fields( $all_meta_value, $form_id ) { $form_id = ( $form_id ) ? $form_id : 0; $post_content_array = UR()->form->get_form( $form_id, array( 'content_only' => true, 'publish' => true, ) ); $fields = array(); if ( gettype( $post_content_array ) != 'array' ) { return $fields; } $all_meta_value_keys = array_keys( $all_meta_value ); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { $field_name = isset( $field->general_setting->field_name ) ? $field->general_setting->field_name : ''; $field_label = isset( $field->general_setting->label ) ? $field->general_setting->label : ''; $field_description = isset( $field->general_setting->description ) ? $field->general_setting->description : ''; $field_key = isset( $field->field_key ) ? $field->field_key : ''; if ( $field_label == '' && isset( $field->general_setting->field_name ) ) { $field_label_array = explode( '_', $field->general_setting->field_name ); $field_label = join( ' ', array_map( 'ucwords', $field_label_array ) ); } if ( $field_name != '' ) { $field_index = ''; if ( in_array( 'user_registration_' . $field_name, $all_meta_value_keys ) ) { $field_index = 'user_registration_' . $field_name; $fields[ $field_index ] = array( 'label' => $field_label, 'description' => $field_description, ); } elseif ( ! in_array( $field_name, ur_get_fields_without_prefix() ) ) { $field_index = 'user_registration_' . $field_name; $fields[ $field_index ] = array( 'label' => $field_label, 'description' => $field_description, ); } switch ( $field_key ) { case 'select': // Backward compatibility. Modified since 1.5.7. $options = isset( $field->advance_setting->options ) ? explode( ',', $field->advance_setting->options ) : array(); $option_data = isset( $field->general_setting->options ) ? $field->general_setting->options : $options; $option_data = array_map( 'trim', $option_data ); if ( is_array( $option_data ) && $field_index != '' ) { foreach ( $option_data as $index_data => $option ) { $fields[ $field_index ]['options'][ $option ] = $option; } $fields[ $field_index ]['type'] = 'select'; $fields[ $field_index ]['class'] = ''; } break; case 'radio': // Backward compatibility. Modified since 1.5.7. $options = isset( $field->advance_setting->options ) ? explode( ',', $field->advance_setting->options ) : array(); $option_data = isset( $field->general_setting->options ) ? $field->general_setting->options : $options; $option_data = array_map( 'trim', $option_data ); if ( is_array( $option_data ) && $field_index != '' ) { foreach ( $option_data as $index_data => $option ) { $fields[ $field_index ]['options'][ $option ] = $option; } $fields[ $field_index ]['type'] = 'radio'; $fields[ $field_index ]['class'] = ''; } break; case 'country': $country = ur_load_form_field_class( $field_key ); $fields[ $field_index ]['options'] = $country::get_instance()->get_country(); $fields[ $field_index ]['type'] = 'country'; $fields[ $field_index ]['class'] = ''; break; case 'textarea': $fields[ $field_index ]['type'] = 'textarea'; $fields[ $field_index ]['class'] = ''; break; case 'mailchimp': case 'checkbox': // Backward compatibility. Modified since 1.5.7. $options = isset( $field->advance_setting->choices ) ? explode( ',', $field->advance_setting->choices ) : array(); $choices_data = isset( $field->general_setting->options ) ? $field->general_setting->options : $options; $choices_data = array_map( 'trim', $choices_data ); $fields[ $field_index ]['choices'] = $choices_data; $fields[ $field_index ]['type'] = 'checkbox'; $fields[ $field_index ]['class'] = ''; break; case 'date': $fields[ $field_index ]['type'] = 'date'; $date_format = isset( $field->advance_setting->date_format ) ? $field->advance_setting->date_format : ''; $fields[ $field_index ]['attributes']['data-date-format'] = $date_format; if ( isset( $field->advance_setting->enable_min_max ) && 'true' === $field->advance_setting->enable_min_max ) { if ( ! empty( $field->advance_setting->min_date ) ) { $min_date = str_replace( '/', '-', $field->advance_setting->min_date ); $fields[ $field_index ]['attributes']['data-min-date'] = '' !== $min_date ? date( $date_format, strtotime( $min_date ) ) : ''; } if ( ! empty( $field->advance_setting->max_date ) ) { $max_date = str_replace( '/', '-', $field->advance_setting->max_date ); $fields[ $field_index ]['attributes']['data-max-date'] = '' !== $max_date ? date( $date_format, strtotime( $max_date ) ) : ''; } } if ( ! empty( $field->advance_setting->set_current_date ) ) { $set_current_date = isset( $field->advance_setting->set_current_date ) ? $field->advance_setting->set_current_date : ''; $fields[ $field_index ]['attributes']['data-default-date'] = $set_current_date; } if ( ! empty( $field->advance_setting->enable_date_range ) ) { $enable_date_range = isset( $field->advance_setting->enable_date_range ) ? $field->advance_setting->enable_date_range : ''; $fields[ $field_index ]['attributes']['data-mode'] = $enable_date_range; } break; case 'privacy_policy': $fields[ $field_index ]['type'] = 'privacy_policy'; break; } }// End switch(). $filter_data = array( 'fields' => $fields, 'field' => $field, 'field_name' => $field_name, ); $filtered_data_array = apply_filters( 'user_registration_profile_field_filter_' . $field_key, $filter_data ); if ( isset( $filtered_data_array['fields'] ) ) { $fields = $filtered_data_array['fields']; } }// End foreach(). }// End foreach(). }// End foreach(). return $fields; } } endif; return new UR_Admin_Profile(); PK\-//!includes/admin/class-ur-admin.phpnuW+Aid ) { case 'users': case 'user': case 'profile': case 'user-edit': include 'class-ur-admin-profile.php'; break; } } /** * Prevent any user who cannot 'edit_posts' from accessing admin. */ public function prevent_admin_access() { if ( defined( 'DOING_AJAX' ) ) { return; } $user_id = get_current_user_id(); if ( $user_id > 0 ) { $user_meta = get_userdata( $user_id ); $user_roles = $user_meta->roles; $option_roles = get_option( 'user_registration_general_setting_disabled_user_roles', array() ); if ( ! is_array( $option_roles ) ) { $option_roles = array(); } if ( ! in_array( 'administrator', $user_roles, true ) ) { $result = array_intersect( $user_roles, $option_roles ); if ( count( $result ) > 0 && apply_filters( 'user_registration_prevent_admin_access', true ) ) { wp_safe_redirect( ur_get_page_permalink( 'myaccount' ) ); exit; } } } } /** * Change the admin footer text on User Registration admin pages. * * @since 1.1.2 * * @param string $footer_text * * @return string */ public function admin_footer_text( $footer_text ) { if ( ! current_user_can( 'manage_user_registration' ) || ! function_exists( 'ur_get_screen_ids' ) ) { return $footer_text; } $current_screen = get_current_screen(); $ur_pages = ur_get_screen_ids(); // Set only UR pages. $ur_pages = array_diff( $ur_pages, array( 'profile', 'user-edit' ) ); // Check to make sure we're on a User Registration admin page. if ( isset( $current_screen->id ) && apply_filters( 'user_registration_display_admin_footer_text', in_array( $current_screen->id, $ur_pages ) ) ) { // Change the footer text if ( ! get_option( 'user_registration_admin_footer_text_rated' ) ) { $footer_text = sprintf( /* translators: 1: WooCommerce 2:: five stars */ __( 'If you like %1$s please leave us a %2$s rating. A huge thanks in advance!', 'user-registration' ), sprintf( '%s', esc_html__( 'User Registration', 'user-registration' ) ), '★★★★★' ); ur_enqueue_js( " jQuery( 'a.ur-rating-link' ).click( function() { jQuery.post( '" . UR()->ajax_url() . "', { action: 'user_registration_rated' } ); jQuery( this ).parent().text( jQuery( this ).data( 'rated' ) ); }); " ); } else { $footer_text = __( 'Thank you for using User Registration.', 'user-registration' ); } } return $footer_text; } /** * Review notice on header. * * @since 1.5.8 * @return void */ public function review_notice() { // Show only to Admins if ( ! current_user_can( 'manage_options' ) ) { return; } $notice_dismissed = get_option( 'user_registration_review_notice_dismissed', 'no' ); if ( 'yes' == $notice_dismissed ) { return; } // Return if activation date is less than 30 days. if ( ur_check_activation_date() === false ) { return; } ?>

              User Registration?', 'user-registration' ); ?>

              WordPress.org?', 'user-registration' ); ?>

              'ur_form_id', 'count_total' => true, 'date_query' => array( array( 'after' => $read_time, 'inclusive' => false, ), ), ); $user_query = new WP_User_Query( $user_args ); $user_count = $user_query->get_total(); $response['user_registration_new_user_message'] = sprintf( __( '%1$d new %2$s registered.', 'user-registration' ), $user_count, _n( 'User', 'Users', $user_count, 'user-registration' ) ); $response['user_registration_new_user_count'] = $user_count; return $response; } } return new UR_Admin(); PK\}nuu6includes/admin/updater/class-ur-plugin-updater-api.phpnuW+A home_url(), 'edd_action' => 'activate_license', ); $api_params = wp_parse_args( $defaults, $api_params ); // Call the API. $response = wp_remote_post( self::$endpoint, array( 'timeout' => 15, 'body' => $api_params, 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), ) ); // Make sure there are no errors. if ( is_wp_error( $response ) ) { return json_encode( array( 'error_code' => $response->get_error_code(), 'error' => $response->get_error_message(), ) ); } if ( wp_remote_retrieve_response_code( $response ) != 200 ) { return json_encode( array( 'error_code' => wp_remote_retrieve_response_code( $response ), 'error' => 'Error code: ' . wp_remote_retrieve_response_code( $response ), ) ); } // Tell WordPress to look for updates. set_site_transient( 'update_plugins', null ); return wp_remote_retrieve_body( $response ); } /** * Attempt to deactivate a plugin license. */ public static function deactivate( $api_params ) { $defaults = array( 'url' => home_url(), 'edd_action' => 'deactivate_license', ); $api_params = wp_parse_args( $defaults, $api_params ); // Call the API. $response = wp_remote_post( self::$endpoint, array( 'timeout' => 15, 'body' => $api_params, 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), ) ); if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) != 200 ) { return false; } else { return wp_remote_retrieve_body( $response ); } } } PK\5ii2includes/admin/updater/class-ur-plugin-updates.phpnuW+A $plugin ) { if ( ! empty( $plugin[ $header ] ) ) { $matches[ $file ] = $plugin; } } return apply_filters( 'user_registration_get_plugins_with_header', $matches, $header, $plugins ); } } PK\G::1includes/admin/updater/class-ur-addon-updater.phpnuW+Aapi_url = trailingslashit( $_api_url ); $this->api_data = $_api_data; $this->name = plugin_basename( $_plugin_file ); $this->slug = basename( $_plugin_file, '.php' ); $this->version = $_api_data['version']; $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false; $this->beta = ! empty( $this->api_data['beta'] ) ? true : false; $this->cache_key = md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); $edd_plugin_data[ $this->slug ] = $this->api_data; // Set up hooks. $this->init(); } /** * Set up WordPress filters to hook into WP's update process. * * @uses add_filter() * * @return void */ public function init() { add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 ); remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 ); add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 ); add_action( 'admin_init', array( $this, 'show_changelog' ) ); } /** * Check for Updates at the defined API endpoint and modify the update array. * * This function dives into the update API just when WordPress creates its update array, * then adds a custom API call and injects the custom plugin data retrieved from the API. * It is reassembled from parts of the native WordPress plugin update code. * See wp-includes/update.php line 121 for the original wp_update_plugins() function. * * @uses api_request() * * @param array $_transient_data Update array build by WordPress. * @return array Modified update array with custom plugin data. */ public function check_update( $_transient_data ) { global $pagenow; if ( ! is_object( $_transient_data ) ) { $_transient_data = new stdClass(); } if ( 'plugins.php' == $pagenow && is_multisite() ) { return $_transient_data; } if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) { return $_transient_data; } $version_info = $this->get_cached_version_info(); if ( false === $version_info ) { $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta, ) ); $this->set_version_info_cache( $version_info ); } if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) { if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { $_transient_data->response[ $this->name ] = $version_info; } $_transient_data->last_checked = current_time( 'timestamp' ); $_transient_data->checked[ $this->name ] = $this->version; } return $_transient_data; } /** * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise! * * @param string $file * @param array $plugin */ public function show_update_notification( $file, $plugin ) { if ( is_network_admin() ) { return; } if ( ! current_user_can( 'update_plugins' ) ) { return; } if ( ! is_multisite() ) { return; } if ( $this->name != $file ) { return; } // Remove our filter on the site transient remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 ); $update_cache = get_site_transient( 'update_plugins' ); $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass(); if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) { $version_info = $this->get_cached_version_info(); if ( false === $version_info ) { $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta, ) ); $this->set_version_info_cache( $version_info ); } if ( ! is_object( $version_info ) ) { return; } if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { $update_cache->response[ $this->name ] = $version_info; } $update_cache->last_checked = current_time( 'timestamp' ); $update_cache->checked[ $this->name ] = $this->version; set_site_transient( 'update_plugins', $update_cache ); } else { $version_info = $update_cache->response[ $this->name ]; } // Restore our filter add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) { // build a plugin list row, with update notification $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); // echo ''; echo ''; echo '
              '; $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' ); if ( empty( $version_info->download_link ) ) { printf( __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'user-registration' ), esc_html( $version_info->name ), '', esc_html( $version_info->new_version ), '' ); } else { printf( __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'user-registration' ), esc_html( $version_info->name ), '', esc_html( $version_info->new_version ), '', '', '' ); } do_action( "in_plugin_update_message-{$file}", $plugin, $version_info ); echo '
              '; } } /** * Updates information on the "View version x.x details" page with custom data. * * @uses api_request() * * @param mixed $_data * @param string $_action * @param object $_args * @return object $_data */ public function plugins_api_filter( $_data, $_action = '', $_args = null ) { if ( $_action != 'plugin_information' ) { return $_data; } if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) { return $_data; } $to_send = array( 'slug' => $this->slug, 'is_ssl' => is_ssl(), 'fields' => array( 'banners' => array(), 'reviews' => false, ), ); $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); // Get the transient where we store the api request for this plugin for 24 hours $edd_api_request_transient = $this->get_cached_version_info( $cache_key ); // If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now. if ( empty( $edd_api_request_transient ) ) { $api_response = $this->api_request( 'plugin_information', $to_send ); // Expires in 3 hours $this->set_version_info_cache( $api_response, $cache_key ); if ( false !== $api_response ) { $_data = $api_response; } } else { $_data = $edd_api_request_transient; } // Convert sections into an associative array, since we're getting an object, but Core expects an array. if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) { $new_sections = array(); foreach ( $_data->sections as $key => $value ) { $new_sections[ $key ] = $value; } $_data->sections = $new_sections; } // Convert banners into an associative array, since we're getting an object, but Core expects an array. if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) { $new_banners = array(); foreach ( $_data->banners as $key => $value ) { $new_banners[ $key ] = $value; } $_data->banners = $new_banners; } return $_data; } /** * Disable SSL verification in order to prevent download update failures * * @param array $args * @param string $url * @return object $array */ public function http_request_args( $args, $url ) { $verify_ssl = $this->verify_ssl(); if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) { $args['sslverify'] = $verify_ssl; } return $args; } /** * Calls the API and, if successfull, returns the object delivered by the API. * * @uses get_bloginfo() * @uses wp_remote_post() * @uses is_wp_error() * * @param string $_action The requested action. * @param array $_data Parameters for the API action. * @return false|object */ private function api_request( $_action, $_data ) { global $wp_version; $data = array_merge( $this->api_data, $_data ); if ( $data['slug'] != $this->slug ) { return; } if ( $this->api_url == trailingslashit( home_url() ) ) { return false; // Don't allow a plugin to ping itself } $api_params = array( 'edd_action' => 'get_version', 'license' => ! empty( $data['license'] ) ? $data['license'] : '', 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, 'version' => isset( $data['version'] ) ? $data['version'] : false, 'slug' => $data['slug'], 'author' => $data['author'], 'url' => home_url(), 'beta' => ! empty( $data['beta'] ), ); $verify_ssl = $this->verify_ssl(); $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params, ) ); if ( ! is_wp_error( $request ) ) { $request = json_decode( wp_remote_retrieve_body( $request ) ); } if ( $request && isset( $request->sections ) ) { $request->sections = maybe_unserialize( $request->sections ); } else { $request = false; } if ( $request && isset( $request->banners ) ) { $request->banners = maybe_unserialize( $request->banners ); } if ( ! empty( $request->sections ) ) { foreach ( $request->sections as $key => $section ) { $request->$key = (array) $section; } } return $request; } public function show_changelog() { global $edd_plugin_data; if ( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) { return; } if ( empty( $_REQUEST['plugin'] ) ) { return; } if ( empty( $_REQUEST['slug'] ) ) { return; } if ( ! current_user_can( 'update_plugins' ) ) { wp_die( __( 'You do not have permission to install plugin updates', 'user-registration' ), __( 'Error', 'user-registration' ), array( 'response' => 403 ) ); } $data = $edd_plugin_data[ $_REQUEST['slug'] ]; $beta = ! empty( $data['beta'] ) ? true : false; $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' ); $version_info = $this->get_cached_version_info( $cache_key ); if ( false === $version_info ) { $api_params = array( 'edd_action' => 'get_version', 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, 'slug' => $_REQUEST['slug'], 'author' => $data['author'], 'url' => home_url(), 'beta' => ! empty( $data['beta'] ), ); $verify_ssl = $this->verify_ssl(); $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params, ) ); if ( ! is_wp_error( $request ) ) { $version_info = json_decode( wp_remote_retrieve_body( $request ) ); } if ( ! empty( $version_info ) && isset( $version_info->sections ) ) { $version_info->sections = maybe_unserialize( $version_info->sections ); } else { $version_info = false; } if ( ! empty( $version_info ) ) { foreach ( $version_info->sections as $key => $section ) { $version_info->$key = (array) $section; } } $this->set_version_info_cache( $version_info, $cache_key ); } if ( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) { echo '
              ' . $version_info->sections['changelog'] . '
              '; } exit; } public function get_cached_version_info( $cache_key = '' ) { if ( empty( $cache_key ) ) { $cache_key = $this->cache_key; } $cache = get_option( $cache_key ); if ( empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) { return false; // Cache is expired } return json_decode( $cache['value'] ); } public function set_version_info_cache( $value = '', $cache_key = '' ) { if ( empty( $cache_key ) ) { $cache_key = $this->cache_key; } $data = array( 'timeout' => strtotime( '+3 hours', current_time( 'timestamp' ) ), 'value' => json_encode( $value ), ); update_option( $cache_key, $data, 'no' ); } /** * Returns if the SSL of the store should be verified. * * @since 1.6.13 * @return bool */ private function verify_ssl() { return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this ); } } PK\Nb.includes/admin/class-ur-admin-export-users.phpnuW+A $form_id, ) ); if ( count( $users ) === 0 ) { echo '

              ' . __( 'No users found with this form id.', 'user-registration' ) . '

              '; return; } $columns = $this->generate_columns( $form_id ); $rows = $this->generate_rows( $users, $form_id ); $form_name = strtolower( str_replace( ' ', '-', get_the_title( $form_id ) ) ); $file_name = $form_name . '-' . current_time( 'Y-m-d_H:i:s' ) . '.csv'; if ( ob_get_contents() ) { ob_clean(); } // Force download header( 'Content-Type: application/force-download' ); header( 'Content-Type: application/octet-stream' ); header( 'Content-Type: application/download' ); // Disposition / Encoding on response body header( "Content-Disposition: attachment;filename={$file_name}" ); header( 'Content-Transfer-Encoding: binary' ); $handle = fopen( 'php://output', 'w' ); // Handle UTF-8 chars conversion for CSV fprintf( $handle, chr( 0xEF ) . chr( 0xBB ) . chr( 0xBF ) ); // Put the column headers fputcsv( $handle, array_values( $columns ) ); // Put the row values foreach ( $rows as $row ) { fputcsv( $handle, $row ); } fclose( $handle ); exit; } /** * Generate Column for CSV export. * * @param int $form_id Form ID. * @return array $columns CSV Export Columns. */ public function generate_columns( $form_id ) { // Default Columns. $default_columns = apply_filters( 'user_registration_csv_export_default_columns', array( 'user_role' => __( 'User Role', 'user-registration' ), 'date_created' => __( 'User Registered', 'user-registration' ), 'date_created_gmt' => __( 'User Registered GMT', 'user-registration' ), ) ); // User ID Column. $user_id_column = array( 'user_id' => __( 'User ID', 'user-registration' ), ); // Filter for excluding File Upload Field. add_filter( 'user_registration_meta_key_label', array( __CLASS__, 'exclude_field_key' ), 10, 3 ); $columns = ur_get_meta_key_label( $form_id ); remove_filter( 'user_registration_meta_key_label', array( __CLASS__, 'exclude_field_key' ) ); $exclude_columns = apply_filters( 'user_registration_csv_export_exclude_columns', array( 'user_confirm_password', 'user_confirm_email', ) ); foreach ( $exclude_columns as $exclude_column ) { unset( $columns[ $exclude_column ] ); } $columns = array_merge( $user_id_column, $columns ); $columns = array_merge( $columns, $default_columns ); return apply_filters( 'user_registration_csv_export_columns', $columns ); } /** * Generate rows for CSV export * * @param obj $users Users Data * @return array $rows CSV export rows. */ public function generate_rows( $users, $form_id ) { $rows = array(); foreach ( $users as $user ) { if ( ! isset( $user->data->ID ) ) { continue; } $user_form_id = get_user_meta( $user->data->ID, 'ur_form_id', true ); // If the user is not submitted by selected registration form. if ( $user_form_id !== $form_id ) { continue; } $user_id_row = array( 'user_id' => $user->data->ID ); $user_extra_row = ur_get_user_extra_fields( $user->data->ID ); foreach ( $user_extra_row as $user_extra_data_key => $user_extra_data ) { $columns = $this->generate_columns( $form_id ); if ( ! isset( $columns[ $user_extra_data_key ] ) ) { // Remove the rows value that are not in columns. unset( $user_extra_row[ $user_extra_data_key ] ); } } $user_table_data = ur_get_user_table_fields(); $user_table_data_row = array(); // Get user table data that are on column. foreach ( $user_table_data as $data ) { $columns = $this->generate_columns( $form_id ); if ( isset( $columns[ $data ] ) ) { $user_table_data_row = array_merge( $user_table_data_row, array( $data => $user->$data ) ); } } $user_meta_data = ur_get_registered_user_meta_fields(); $user_meta_data_row = array(); // Get user meta table data that are on column. foreach ( $user_meta_data as $meta_data ) { $columns = $this->generate_columns( $form_id ); if ( isset( $columns[ $meta_data ] ) ) { $user_meta_data_row = array_merge( $user_meta_data_row, array( $meta_data => get_user_meta( $user->data->ID, $meta_data, true ) ) ); } } $user_extra_row = array_merge( $user_extra_row, $user_table_data_row ); $user_extra_row = array_merge( $user_extra_row, $user_meta_data_row ); // Get user default row. $user_default_row = array( 'user_role' => is_array( $user->roles ) ? implode( ',', $user->roles ) : $user->roles, 'date_created' => $user->data->user_registered, 'date_created_gmt' => get_gmt_from_date( $user->data->user_registered ), ); $user_row = array_merge( $user_id_row, $user_extra_row ); $user_row = array_merge( $user_row, $user_default_row ); /** * Reorder rows according to the values in column. * * @see https://stackoverflow.com/a/44774818/9520912 */ $user_row = array_merge( array_fill_keys( array_keys( $this->generate_columns( $form_id ) ), '' ), $user_row ); $rows[] = $user_row; } return apply_filters( 'user_registration_csv_export_rows', $rows, $users ); } /** * Customise Filter for unset file upload field. * * @param array $key_label Field Key and Label Array. * @param int $form_id Form ID. * @param array $post_content_array Post Content Array. * @return array */ public static function exclude_field_key( $key_label, $form_id, $post_content_array ) { $exclude_field_keys = apply_filters( 'user_registration_export_user_exclude_field_keys', array( 'file', 'html', 'section_title' ) ); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) && isset( $field->general_setting->field_name ) ) { if ( in_array( $field->field_key, $exclude_field_keys, true ) ) { unset( $key_label[ $field->general_setting->field_name ] ); } } } } } return $key_label; } } new UR_Admin_Export_Users(); PK\`R#R#.includes/admin/class-ur-admin-user-manager.phpnuW+Auser = $user; } /** * Save a new status for the user * * @param $status * * @return bool|int */ public function save_status( $status, $alert_user = true ) { do_action( 'ur_user_status_updated', $status, $this->user->ID, $alert_user ); $action_label = ''; switch ( $status ) { case self::APPROVED: $action_label = 'approved'; break; case self::DENIED: $action_label = 'denied'; break; } if ( ! empty( $action_label ) ) { do_action( 'ur_user_' . $action_label, $this->user->ID ); } $this->user_status = $status; if ( is_super_admin( $this->user->ID ) ) { return; } return update_user_meta( $this->user->ID, 'ur_user_status', $status ); } /** * Approve the user * * @return bool|int */ public function approve() { return $this->save_status( self::APPROVED ); } /** * Deny the user * * @return bool|int */ public function deny() { return $this->save_status( self::DENIED ); } /** * Get the status of the user. * If the status is not present (user registered when plugin was not active) * then it return an empty string if $exact_value == true, otherwise it return approved flag * * @param bool $exact_value * * @return int|mixed */ public function get_user_status( $exact_value = false ) { // If the status is already get from the db and the requested status is not the exact value then provide the old one. if ( ! is_null( $this->user_status ) && ! $exact_value ) { return $this->user_status; } $user_status = get_user_meta( $this->user->ID, 'ur_user_status', true ); $user_email_status = get_user_meta( $this->user->ID, 'ur_confirm_email', true ); $result = ''; if ( '' === $user_status && '' === $user_email_status ) { // If the exact_value is true, allow to understand if an user has status "approved" or has registered when the plugin wash not active. if ( $exact_value ) { return $user_status; } // If the status is empty it's assume that user registered when the plugin was not active, then it is allowed. $user_status = self::APPROVED; // If the value requested is not the exact value, than store it in the object. $this->user_status = $user_status; $result = array( 'login_option' => 'default', 'user_status' => $user_status, ); } elseif ( '' !== $user_status && '' === $user_email_status ) { $this->user_status = $user_status; $result = array( 'login_option' => 'admin_approval', 'user_status' => $user_status, ); } elseif ( '' === $user_status && '' !== $user_email_status ) { $this->user_status = $user_email_status; $result = array( 'login_option' => 'email_confirmation', 'user_status' => $user_email_status, ); } return $result; } /** * Check if the user is approved * * @return bool */ public function is_approved() { $user_status = $this->get_user_status(); if ( is_array( $user_status ) ) { if ( 'admin_approval' === $user_status['login_option'] ) { return ( $user_status['user_status'] == self::APPROVED ); } } return ( $user_status == self::APPROVED ); } /** * Check if the user is pending * * @return bool */ public function is_pending() { $user_status = $this->get_user_status(); if ( is_array( $user_status ) ) { if ( 'admin_approval' === $user_status['login_option'] ) { return ( $user_status['user_status'] == self::PENDING ); } } return ( $user_status == self::PENDING ); } /** * Check if the user is denied * * @return bool */ public function is_denied() { $user_status = $this->get_user_status(); if ( is_array( $user_status ) ) { if ( 'admin_approval' === $user_status['login_option'] ) { return ( $user_status['user_status'] == self::DENIED ); } } return ( $user_status == self::DENIED ); } /** * Create a new password if it have to be sent to the user and return it. * If the password have not to be sent, it return an empty string. * * @return string */ public function reset_password() { $password = ''; // If the password reset has been programmatically removed, don't reset $avoid_password_reset = apply_filters( 'ur_avoid_password_reset', false ); if ( $avoid_password_reset ) { return $password; } // If the first_access_flag is equal to "" it means that user has registered when the plugin was not active, then don't reset // If the first_access_flag is equal to 1 it means that user has has already loggedin at least one time, then don't reset $first_access_flag = $this->get_first_access_flag(); if ( $first_access_flag == 1 ) { return $password; } $password = wp_generate_password( 12, false ); wp_set_password( $password, $this->user->ID ); return $password; } /** * Save a flag to recognize if an user has ever logged in */ public function save_first_access_flag() { if ( ! get_user_meta( $this->user->ID, 'ur_first_access' ) ) { add_user_meta( $this->user->ID, 'ur_first_access', 1 ); } } /** * Save a flag from the db to recognize if an user has ever logged in * * @return mixed */ public function get_first_access_flag() { return get_user_meta( $this->user->ID, 'ur_first_access', true ); } /** * Check if the user has permissions to change the status of another user * * @return bool */ public function is_allowed_to_change_users_status() { $user_can = user_can( $this->user, 'edit_users' ); return apply_filters( 'ur_is_user_allowed_to_change_status', $user_can, $this->user->ID ); } /** * Check if the instanced user can change status of the user passed by parameter * * @param $user_id * * @return bool */ public function can_change_status_of( $user_id ) { // The instanced user is not able to update statuses at all if ( ! $this->is_allowed_to_change_users_status() ) { return false; } // The instanced user is the same user who the status have to be changed if ( $this->user->ID == $user_id ) { return false; } // If the changer user has the capability "edit_users" but not "manage_options" (isn't an admin), // then allow to edit the status of another user only if him hasn't capability "manage_options" (isn't an admin) if ( ! user_can( $this->user, 'manage_options' ) && user_can( $user_id, 'manage_options' ) ) { return false; } return true; } /** * Check if the approval status of the instanced user can be changd by the user passed by parameter * * @param null|int|\WP_User $user if this value is null, it is considered the current user * * @return bool */ public function can_status_be_changed_by( $user = null ) { $user_changer = new self( $user ); return $user_changer->can_change_status_of( $this->user->ID ); } /** * Check if a certain user (passed by parameter) is allowed to change approval status of other users * If user id is not passed by parameter, it will be user the current user id * * @param null $user_id * * @return bool */ public static function is_user_allowed_to_change_status( $user_id = null ) { $user_manager = new static( $user_id ); return $user_manager->is_allowed_to_change_users_status(); } /** * @param int $status * * @return string */ public static function get_status_label( $status ) { if ( $status == self::APPROVED ) { $label = __( 'approved', 'user-registration' ); } if ( $status == self::PENDING ) { $label = __( 'pending', 'user-registration' ); } if ( $status == self::DENIED ) { $label = __( 'denied', 'user-registration' ); } return ucfirst( $label ); } /** * Check if the status passed by parameter is a valid status * * @param $status * * @return bool */ public static function validate_status( $status ) { return ( $status == self::APPROVED || $status == self::PENDING || $status == self::DENIED ); } } PK\gxx'includes/admin/class-ur-admin-menus.phpnuW+A Menus > Pages. add_action( 'admin_head-nav-menus.php', array( $this, 'add_nav_menu_meta_boxes' ) ); // Add all available upgradable fields. add_action( 'ur_after_other_form_fields_printed', array( $this, 'add_upgradable_other_fields' ) ); // Adds fields in the `Extra Fields` section. add_action( 'user_registration_extra_fields', array( $this, 'add_upgradable_extra_fields' ) ); } public function add_upgradable_other_fields() { $fields = array( array( 'id' => 'user_registration_file', 'label' => 'File Upload', 'icon' => 'ur-icon ur-icon-file-upload', 'field_class' => 'UR_File', 'plan' => 'Personal Plan', ), array( 'id' => 'user_registration_mailchimp', 'label' => 'MailChimp', 'icon' => 'ur-icon ur-icon-mailchimp', 'field_class' => 'UR_MailChimp', 'plan' => 'Personal Plan', ), array( 'id' => 'user_registration_invite_code', 'label' => 'Invitation Code', 'icon' => 'ur-icon ur-icon-invite-codes', 'field_class' => 'UR_Form_Field_Invite_Code', 'plan' => 'Professional Plan or Plus Plan', ), ); foreach ( $fields as $field ) { if ( ! class_exists( $field['field_class'] ) ) { $this->render_upgradable_field( $field ); } } } public function add_upgradable_extra_fields() { $field_sections = array( array( 'section_title' => 'Advanced Fields', 'fields_parent_class' => 'URAF_Admin', 'plan' => 'Personal Plan', 'fields' => array( array( 'id' => 'user_registration_section_title', 'label' => 'Section Title', 'icon' => 'ur-icon ur-icon-section-title', ), array( 'id' => 'user_registration_html', 'label' => 'HTML', 'icon' => 'ur-icon ur-icon-code', ), array( 'id' => 'user_registration_timepicker', 'label' => 'Time Picker', 'icon' => 'ur-icon ur-icon-time-picker', ), array( 'id' => 'user_registration_phone', 'label' => 'Phone', 'icon' => 'ur-icon ur-icon-phone', ), array( 'id' => 'user_registration_wysiwyg', 'label' => 'WYSIWYG', 'icon' => 'ur-icon ur-icon-text-editor', ), array( 'id' => 'user_registration_select2', 'label' => 'Select2', 'icon' => 'ur-icon ur-icon-select2', ), array( 'id' => 'user_registration_multi_select2', 'label' => 'Multi Select2', 'icon' => 'ur-icon ur-icon-multi-select', ), array( 'id' => 'user_registration_profile_picture', 'label' => 'Profile Picture', 'icon' => 'ur-icon ur-icon-user-display-name', ), ), ), array( 'section_title' => 'WooCommerce Billing Address', 'fields_parent_class' => 'URWC_Admin', 'plan' => 'Personal Plan', 'fields' => array( array( 'id' => 'user_registration_billing_address_title', 'label' => 'Billing Address', 'icon' => 'ur-icon ur-icon-bill', ), array( 'id' => 'user_registration_billing_country', 'label' => 'Country', 'icon' => 'ur-icon ur-icon-flag', ), array( 'id' => 'user_registration_billing_first_name', 'label' => 'First Name', 'icon' => 'ur-icon ur-icon-input-first-name', ), array( 'id' => 'user_registration_billing_last_name', 'label' => 'Last Name', 'icon' => 'ur-icon ur-icon-input-last-name', ), array( 'id' => 'user_registration_billing_company', 'label' => 'Company', 'icon' => 'ur-icon ur-icon-buildings', ), array( 'id' => 'user_registration_billing_address_1', 'label' => 'Address 1', 'icon' => 'ur-icon ur-icon-map-one', ), array( 'id' => 'user_registration_billing_address_2', 'label' => 'Address 2', 'icon' => 'ur-icon ur-icon-map-two', ), array( 'id' => 'user_registration_billing_city', 'label' => 'Town / City', 'icon' => 'ur-icon ur-icon-buildings', ), array( 'id' => 'user_registration_billing_state', 'label' => 'State / County', 'icon' => 'ur-icon ur-icon-state', ), array( 'id' => 'user_registration_billing_postcode', 'label' => 'Postcode / Zip', 'icon' => 'ur-icon ur-icon-zip-code', ), array( 'id' => 'user_registration_billing_email', 'label' => 'Email', 'icon' => 'ur-icon ur-icon-email', ), array( 'id' => 'user_registration_billing_phone', 'label' => 'Phone', 'icon' => 'ur-icon ur-icon-phone', ), array( 'id' => 'user_registration_separate_shipping', 'label' => 'Separate Shipping', 'icon' => 'ur-icon ur-icon-bill', ), ), ), array( 'section_title' => 'WooCommerce Shipping Address', 'fields_parent_class' => 'URWC_Admin', 'plan' => 'Personal Plan', 'fields' => array( array( 'id' => 'user_registration_shipping_address_title', 'label' => 'Shipping Address', 'icon' => 'ur-icon ur-icon-bill', ), array( 'id' => 'user_registration_shipping_country', 'label' => 'Country', 'icon' => 'ur-icon ur-icon-flag', ), array( 'id' => 'user_registration_shipping_first_name', 'label' => 'First Name', 'icon' => 'ur-icon ur-icon-input-first-name', ), array( 'id' => 'user_registration_shipping_last_name', 'label' => 'Last Name', 'icon' => 'ur-icon ur-icon-input-last-name', ), array( 'id' => 'user_registration_shipping_company', 'label' => 'Company', 'icon' => 'ur-icon ur-icon-buildings', ), array( 'id' => 'user_registration_shipping_address_1', 'label' => 'Address 1', 'icon' => 'ur-icon ur-icon-map-one', ), array( 'id' => 'user_registration_shipping_address_2', 'label' => 'Address 2', 'icon' => 'ur-icon ur-icon-map-two', ), array( 'id' => 'user_registration_shipping_city', 'label' => 'Town / City', 'icon' => 'ur-icon ur-icon-buildings', ), array( 'id' => 'user_registration_shipping_state', 'label' => 'State / County', 'icon' => 'ur-icon ur-icon-state', ), array( 'id' => 'user_registration_shipping_postcode', 'label' => 'Postcode / Zip', 'icon' => 'ur-icon ur-icon-zip-code', ), ), ), array( 'section_title' => 'Payment Fields', 'fields_parent_class' => 'User_Registration_Payments_Admin', 'plan' => 'Professional Plan or Plus Plan', 'fields' => array( array( 'id' => 'user_registration_single_item', 'label' => 'Single Item', 'icon' => 'ur-icon ur-icon-file-dollar', ), ), ), ); foreach ( $field_sections as $section ) { $class_to_check = $section['fields_parent_class']; if ( ! class_exists( $class_to_check ) ) { $fields = $section['fields']; $plan = isset( $section['plan'] ) ? $section['plan'] : ''; // Set the same plan for all the section's fields. for ( $i = 0; $i < count( $fields ); $i++ ) { $fields[ $i ]['plan'] = $plan; } echo '

              ' . __( $section['section_title'], 'user-registration' ) . '


              '; echo '
                '; $this->render_upgradable_fields( $fields ); echo '
              '; } } } /** * Render multiple upgradable fields. */ public function render_upgradable_fields( $fields ) { foreach ( $fields as $field ) { $this->render_upgradable_field( $field ); } } /** * Render an upgradable field. */ public function render_upgradable_field( $args ) { $id = $args['id']; $icon = $args['icon']; $label = $args['label']; $plan = isset( $args['plan'] ) ? $args['plan'] : ''; echo '
            • ' . $label . '
            • '; } /** * Registration forms admin actions. */ public function actions() { if ( isset( $_GET['page'] ) && 'user-registration' === $_GET['page'] ) { // Bulk actions if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['registration'] ) ) { $this->bulk_actions(); } // Empty trash if ( isset( $_GET['empty_trash'] ) ) { $this->empty_trash(); } $action = isset( $_GET['action'] ) ? sanitize_text_field( $_GET['action'] ) : ''; $nonce = isset( $_GET['nonce'] ) ? sanitize_text_field( $_GET['nonce'] ) : ''; $form_id = isset( $_GET['form'] ) && is_numeric( $_GET['form'] ) ? $_GET['form'] : ''; if ( ! empty( $action ) && ! empty( $nonce ) && ! empty( $form_id ) ) { $flag = wp_verify_nonce( $nonce, 'user_registration_form_duplicate' . $form_id ); if ( $flag == true && ! is_wp_error( $flag ) ) { if ( 'duplicate' === $action ) { $this->duplicate( $form_id ); } } } } } /** * Bulk trash/delete. * * @param array $registrations * @param bool $delete */ private function bulk_trash( $registrations, $delete = false ) { foreach ( $registrations as $registration_id ) { if ( $delete ) { wp_delete_post( $registration_id, true ); } else { wp_trash_post( $registration_id ); } } $type = ! EMPTY_TRASH_DAYS || $delete ? 'deleted' : 'trashed'; $qty = count( $registrations ); $status = isset( $_GET['status'] ) ? '&status=' . sanitize_text_field( $_GET['status'] ) : ''; // Redirect to registrations page wp_redirect( admin_url( 'admin.php?page=user-registration' . $status . '&' . $type . '=' . $qty ) ); exit(); } /** * Bulk untrash. * * @param array $registrations */ private function bulk_untrash( $registrations ) { foreach ( $registrations as $registration_id ) { wp_untrash_post( $registration_id ); } $qty = count( $registrations ); // Redirect to registrations page wp_redirect( admin_url( 'admin.php?page=user-registration&status=trash&untrashed=' . $qty ) ); exit(); } /** * Duplicate form */ private function duplicate( $form_id ) { $post = get_post( $form_id ); $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * if post data exists, create the post duplicate */ if ( isset( $post ) && $post != null ) { if ( 'publish' !== $post->post_status ) { return false; } /* * new post data array */ $args = array( 'comment_status' => $post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => $new_post_author, 'post_content' => $post->post_content, 'post_excerpt' => $post->post_excerpt, 'post_name' => $post->post_name, 'post_parent' => $post->post_parent, 'post_password' => $post->post_password, 'post_status' => $post->post_status, 'post_title' => __( 'Copy of ', 'user-registration' ) . $post->post_title, 'post_type' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order, ); /* * insert the post by wp_insert_post() function */ $new_post_id = wp_insert_post( $args ); /* * duplicate all post meta just in two SQL queries */ global $wpdb; $post_meta_infos = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $form_id ) ); if ( count( $post_meta_infos ) != 0 ) { $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) "; foreach ( $post_meta_infos as $meta_info ) { $meta_key = $meta_info->meta_key; if ( $meta_key == '_wp_old_slug' ) { continue; } $meta_value = addslashes( $meta_info->meta_value ); $sql_query_sel[] = "SELECT $new_post_id, '$meta_key', '$meta_value'"; } $sql_query .= implode( ' UNION ALL ', $sql_query_sel ); $wpdb->query( $sql_query ); } /* * duplicate all post meta just in two SQL queries */ global $wpdb; $post_meta_infos = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $form_id ) ); if ( count( $post_meta_infos ) != 0 ) { $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) "; foreach ( $post_meta_infos as $meta_info ) { $meta_key = $meta_info->meta_key; if ( $meta_key == '_wp_old_slug' ) { continue; } $meta_value = addslashes( $meta_info->meta_value ); $sql_query_sel[] = "SELECT $new_post_id, '$meta_key', '$meta_value'"; } $sql_query .= implode( ' UNION ALL ', $sql_query_sel ); $wpdb->query( $sql_query ); } /* * finally, redirect to the edit post screen for the new draft */ wp_redirect( admin_url( 'admin.php?page=add-new-registration&edit-registration=' . $new_post_id ) ); exit; } } /** * Bulk actions. */ private function bulk_actions() { if ( ! current_user_can( 'edit_user_registrations' ) ) { wp_die( __( 'You do not have permissions to edit forms!', 'user-registration' ) ); } $registrations = array_map( 'absint', (array) $_REQUEST['registration'] ); switch ( $_REQUEST['action'] ) { case 'trash': $this->bulk_trash( $registrations ); break; case 'untrash': $this->bulk_untrash( $registrations ); break; case 'delete': $this->bulk_trash( $registrations, true ); break; default: break; } } /** * Empty Trash. */ private function empty_trash() { if ( empty( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'empty_trash' ) ) { wp_die( __( 'Action failed. Please refresh the page and retry.', 'user-registration' ) ); } if ( ! current_user_can( 'delete_user_registrations' ) ) { wp_die( __( 'You do not have permissions to delete forms!', 'user-registration' ) ); } $registration = get_posts( array( 'post_type' => 'user_registration', 'ignore_sticky_posts' => true, 'nopaging' => true, 'post_status' => 'trash', 'fields' => 'ids', ) ); foreach ( $registration as $webhook_id ) { wp_delete_post( $webhook_id, true ); } $qty = count( $registration ); // Redirect to registrations page wp_redirect( admin_url( 'admin.php?page=user-registration&deleted=' . $qty ) ); exit(); } /** * Returns a base64 URL for the SVG for use in the menu. * * @param bool $base64 Whether or not to return base64-encoded SVG. * @return string */ private function get_icon_svg( $base64 = true ) { $svg = ''; if ( $base64 ) { return 'data:image/svg+xml;base64,' . base64_encode( $svg ); } return $svg; } /** * Add menu items. */ public function admin_menu() { $registration_page = add_menu_page( __( 'User Registration', 'user-registration' ), __( 'User Registration', 'user-registration' ), 'manage_user_registration', 'user-registration', array( $this, 'registration_page' ), $this->get_icon_svg(), '55.8' ); add_action( 'load-' . $registration_page, array( $this, 'registration_page_init' ) ); } /** * Loads screen options into memory. */ public function registration_page_init() { global $registration_table_list; if ( ! isset( $_GET['add-new-registration'] ) ) { // WPCS: input var okay, CSRF ok. $registration_table_list = new UR_Admin_Registrations_Table_List(); // Add screen option. add_screen_option( 'per_page', array( 'default' => 20, 'option' => 'user_registration_per_page', ) ); } } /** * Add settings menu item. */ public function settings_menu() { add_submenu_page( 'user-registration', __( 'User Registration settings', 'user-registration' ), __( 'Settings', 'user-registration' ), 'manage_user_registration', 'user-registration-settings', array( $this, 'settings_page', ) ); } /** * Add status menu item. */ public function status_menu() { add_submenu_page( 'user-registration', __( 'User Registration Status', 'user-registration' ), __( 'Status', 'user-registration' ), 'manage_user_registration', 'user-registration-status', array( $this, 'status_page', ) ); } /** * Add new registration menu items. */ public function add_registration_menu() { add_submenu_page( 'user-registration', __( 'Add New', 'user-registration' ), __( 'Add New', 'user-registration' ), 'manage_user_registration', 'add-new-registration', array( $this, 'add_registration_page', ) ); } /** * Addons menu item. */ public function addons_menu() { add_submenu_page( 'user-registration', __( 'User Registration extensions', 'user-registration' ), __( 'Extensions', 'user-registration' ), 'manage_user_registration', 'user-registration-addons', array( $this, 'addons_page', ) ); } /** * Validate screen options on update. */ public function set_screen_option( $status, $option, $value ) { if ( in_array( $option, array( 'user_registration_per_page' ), true ) ) { return $value; } return $status; } /** * Init the settings page. */ public function registration_page() { global $registration_table_list; $registration_table_list->prepare_items(); ?>


              views(); $registration_table_list->search_box( __( 'Search Registration', 'user-registration' ), 'registration' ); $registration_table_list->display(); wp_nonce_field( 'save', 'user_registration_nonce' ); ?>
              form->get_form( $form_id ) : array(); $save_label = __( 'Create Form', 'user-registration' ); if ( ! empty( $form_data ) ) { $save_label = __( 'Update form', 'user-registration' ); $preview_link = add_query_arg( array( 'ur_preview' => 'true', 'form_id' => $form_id, ), home_url() ); } // Forms view include_once dirname( __FILE__ ) . '/views/html-admin-page-forms.php'; } /** * Init the settings page. */ public function settings_page() { UR_Admin_Settings::output(); } /** * Init the status page. */ public function status_page() { UR_Admin_Status::output(); } /** * Init the addons page. */ public function addons_page() { UR_Admin_Addons::output(); } /** * Add custom nav meta box. * * Adapted from http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/. */ public function add_nav_menu_meta_boxes() { add_meta_box( 'user_registration_endpoints_nav_link', __( 'User Registration endpoints', 'user-registration' ), array( $this, 'nav_menu_links', ), 'nav-menus', 'side', 'low' ); } /** * Output menu links. */ public function nav_menu_links() { // Get items from account menu. $endpoints = ur_get_account_menu_items(); // Remove dashboard item. if ( isset( $endpoints['dashboard'] ) ) { unset( $endpoints['dashboard'] ); } // Include missing lost password. $endpoints['ur-lost-password'] = __( 'Lost password', 'user-registration' ); $endpoints = apply_filters( 'user_registration_custom_nav_menu_items', $endpoints ); ?>
                $value ) : ?>

              post_content; $form_row_ids = get_post_meta( $form_data->ID, 'user_registration_form_row_ids', true ); } else { $form_data_content = ''; $form_row_ids = ''; } try { $form_data_array = json_decode( $form_data_content ); if ( json_last_error() != JSON_ERROR_NONE ) { throw new Exception( '' ); } } catch ( Exception $e ) { $form_data_array = array(); } try { $form_row_ids_array = json_decode( $form_row_ids ); if ( json_last_error() != JSON_ERROR_NONE ) { throw new Exception( '' ); } } catch ( Exception $e ) { $form_row_ids_array = array(); } echo '
              '; echo '
              '; ?>
              post_title ) ? trim( $form_data->post_title ) : __( 'Untitled', 'user-registration' ); ?>
              ID, $form_data_array ); ?>
              '; $row_id = 0; $last_id = 0; foreach ( $form_data_array as $index => $rows ) { $row_id = ( ! empty( $form_row_ids ) ) ? $form_row_ids_array[ $index ] : $index; $last_id = ( absint( $row_id ) > $last_id ) ? absint( $row_id ) : $last_id; $grid_count = count( $rows ); $grid_one = ''; $grid_two = ''; $grid_three = ''; echo '
              '; ?>
              '; $grid_id = 0; foreach ( $rows as $grid_lists ) { $grid_id ++; echo '
              '; foreach ( $grid_lists as $single_field ) { if ( isset( $single_field->field_key ) ) { $admin_field = $this->get_admin_field( $single_field ); echo '
              '; echo '
              '; echo $admin_field['template']; // @codingStandardsIgnoreLine echo '
              '; } } if ( count( $grid_lists ) == 0 ) { echo '

              ' . esc_html( 'Drag your first form item here.', 'user-registration' ) . '

              '; } echo '
              '; } echo '
              '; echo '
              '; }// End foreach(). echo ''; echo '
              '; echo '
              '; echo ''; } public static function get_admin_field( $single_field ) { if ( empty( $single_field->field_key ) ) { throw new Exception( __( 'Empty form data', 'user-registration' ) ); } $class_name = 'UR_Form_Field_' . ucwords( $single_field->field_key ); if ( class_exists( $class_name ) ) { return $class_name::get_instance()->get_admin_template( $single_field ); // @codingStandardsIgnoreLine } /* Backward Compat since 1.4.0 */ $class_name_old = 'UR_' . ucwords( $single_field->field_key ); if ( class_exists( $class_name_old ) ) { return $class_name_old::get_instance()->get_admin_template( $single_field ); } /* Backward compat end */ } private function get_registered_user_form_fields() { $registered_form_fields = ur_get_user_field_only(); echo '
                '; foreach ( $registered_form_fields as $field ) { $this->ur_get_list( $field ); } echo '
              '; } private function get_registered_other_form_fields() { $registered_form_fields = ur_get_other_form_fields(); echo '
                '; foreach ( $registered_form_fields as $field ) { $this->ur_get_list( $field ); } do_action( 'ur_after_other_form_fields_printed' ); echo '
              '; } public function ur_get_list( $field ) { $class_name = ur_load_form_field_class( $field ); if ( $class_name !== null ) { echo $class_name::get_instance()->get_registered_admin_fields(); } } } endif; return new UR_Admin_Menus(); PK\ߘ   includes/class-ur-form-block.phpnuW+Aplugin_url() . '/assets/css/user-registration.css', array( 'wp-edit-blocks' ), UR_VERSION ); wp_register_script( 'user-registration-block-editor', UR()->plugin_url() . '/assets/js/admin/gutenberg/form-block.build.js', array( 'wp-blocks', 'wp-element', 'wp-i18n', 'wp-editor', 'wp-components' ), UR_VERSION ); $form_block_data = array( 'forms' => ur_get_all_user_registration_form(), 'logo_url' => UR()->plugin_url() . '/assets/images/logo.png', 'i18n' => array( 'title' => esc_html__( 'User Registration', 'user-registration' ), 'description' => esc_html__( 'Select & display one of your form.', 'user-registration' ), 'form_select' => esc_html__( 'Select a Form', 'user-registration' ), 'form_settings' => esc_html__( 'Form Settings', 'user-registration' ), 'form_selected' => esc_html__( 'Form', 'user-registration' ), ), ); wp_localize_script( 'user-registration-block-editor', 'ur_form_block_data', $form_block_data ); wp_enqueue_script( 'user-registration-block-editor' ); } /** * Register user registration Gutenberg block on the backend. * * @since 1.5.1 */ public function register_block() { register_block_type( 'user-registration/form-selector', array( 'attributes' => array( 'formId' => array( 'type' => 'string', ), ), 'editor_script' => 'user-registration-block-editor', 'editor_style' => 'user-registration-block-editor', 'render_callback' => array( $this, 'render_callback' ), ) ); } /** * Render Callback for the block. This is what is output * in the preview within Gutenberg * * @param $attr */ function render_callback( $attr ) { $form_id = ! empty( $attr['formId'] ) ? absint( $attr['formId'] ) : 0; if ( empty( $form_id ) ) { return ''; } $is_gb_editor = defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context']; if ( $is_gb_editor ) { add_filter( 'user_registration_form_custom_class', function( $class ) { return $class . ' ur-gutenberg-editor'; } ); add_action( 'user_registration_before_registration_form', function() { echo '
              '; } ); add_action( 'user_registration_form_registration', function() { echo '
              '; } ); } return UR_Shortcodes::form( array( 'id' => $form_id, ) ); } } new UR_Form_Block(); PK\uH55includes/class-ur-ajax.phpnuW+A true, 'form_save_action' => true, 'user_form_submit' => true, 'deactivation_notice' => false, 'rated' => false, 'dashboard_widget' => false, 'dismiss_review_notice' => false, 'import_form_action' => false, ); foreach ( $ajax_events as $ajax_event => $nopriv ) { add_action( 'wp_ajax_user_registration_' . $ajax_event, array( __CLASS__, $ajax_event ) ); if ( $nopriv ) { add_action( 'wp_ajax_nopriv_user_registration_' . $ajax_event, array( __CLASS__, $ajax_event ) ); } } } /** * Get Post data on frontend form submit * * @return void */ public static function user_form_submit() { if ( is_user_logged_in() && ! current_user_can( 'administrator' ) ) { wp_send_json_error( array( 'message' => __( 'You are already logged in.', 'user-registration' ), ) ); } if ( ! check_ajax_referer( 'user_registration_form_data_save_nonce', 'security', false ) ) { wp_send_json_error( array( 'message' => __( 'Nonce error, please reload.', 'user-registration' ), ) ); } $form_id = isset( $_POST['form_id'] ) ? absint( $_POST['form_id'] ) : 0; $nonce = isset( $_POST['ur_frontend_form_nonce'] ) ? $_POST['ur_frontend_form_nonce'] : ''; $captcha_response = isset( $_POST['captchaResponse'] ) ? $_POST['captchaResponse'] : ''; $flag = wp_verify_nonce( $nonce, 'ur_frontend_form_id-' . $form_id ); $recaptcha_enabled = ur_get_form_setting_by_key( $form_id, 'user_registration_form_setting_enable_recaptcha_support', 'no' ); $recaptcha_version = get_option( 'user_registration_integration_setting_recaptcha_version' ); $secret_key = 'v3' === $recaptcha_version ? get_option( 'user_registration_integration_setting_recaptcha_site_secret_v3' ) : get_option( 'user_registration_integration_setting_recaptcha_site_secret' ); if ( 'yes' == $recaptcha_enabled || '1' == $recaptcha_enabled ) { if ( ! empty( $captcha_response ) ) { $data = wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $captcha_response ); $data = json_decode( wp_remote_retrieve_body( $data ) ); if ( empty( $data->success ) || ( isset( $data->score ) && $data->score < apply_filters( 'user_registration_recaptcha_v3_threshold', 0.5 ) ) ) { wp_send_json_error( array( 'message' => __( 'Error on google reCaptcha. Contact your site administrator.', 'user-registration' ), ) ); } } else { wp_send_json_error( array( 'message' => get_option( 'user_registration_form_submission_error_message_recaptcha', __( 'Captcha code error, please try again.', 'user-registration' ) ), ) ); } } if ( $flag != true || is_wp_error( $flag ) ) { wp_send_json_error( array( 'message' => __( 'Nonce error, please reload.', 'user-registration' ), ) ); } $users_can_register = apply_filters( 'ur_register_setting_override', get_option( 'users_can_register' ) ); if ( ! is_user_logged_in() ) { if ( ! $users_can_register ) { wp_send_json_error( array( 'message' => apply_filters( 'ur_register_pre_form_message', __( 'Only administrators can add new users.', 'user-registration' ) ), ) ); } } else { $current_user_capability = apply_filters( 'ur_registration_user_capability', 'create_users' ); if ( ! current_user_can( $current_user_capability ) ) { global $wp; $user_ID = get_current_user_id(); $user = get_user_by( 'ID', $user_ID ); $current_url = home_url( add_query_arg( array(), $wp->request ) ); $display_name = ! empty( $user->data->display_name ) ? $user->data->display_name : $user->data->user_email; wp_send_json_error( array( 'message' => apply_filters( 'ur_register_pre_form_message', '

              ' . sprintf( __( 'You are currently logged in as %1$1s. %2$2s', 'user-registration' ), '' . $display_name . '', '' . __( 'Logout', 'user-registration' ) . ' »' ) . '

              ', $user_ID ), ) ); } } $form_data = array(); if ( isset( $_POST['form_data'] ) ) { $form_data = json_decode( stripslashes( $_POST['form_data'] ) ); } UR_Frontend_Form_Handler::handle_form( $form_data, $form_id ); } /** * user input dropped function */ public static function user_input_dropped() { try { check_ajax_referer( 'user_input_dropped_nonce', 'security' ); $form_field_id = ( isset( $_POST['form_field_id'] ) ) ? $_POST['form_field_id'] : null; if ( $form_field_id == null || $form_field_id == '' ) { throw new Exception( 'Empty form data' ); } $class_file_name = str_replace( 'user_registration_', '', $form_field_id ); $class_name = ur_load_form_field_class( $class_file_name ); if ( empty( $class_name ) ) { throw new Exception( 'class not exists' ); } $templates = $class_name::get_instance()->get_admin_template(); wp_send_json_success( $templates ); } catch ( Exception $e ) { wp_send_json_error( array( 'error' => $e->getMessage(), ) ); } } /** * Import Form ajax. * * @throws Exception Post data mot set. */ public static function import_form_action() { try { check_ajax_referer( 'ur_import_form_save_nonce', 'security' ); UR_Admin_Import_Export_Forms::import_form(); } catch ( Exception $e ) { wp_send_json_error( array( 'message' => $e->getMessage(), ) ); } } /** * Form save from backend * * @return void */ public static function form_save_action() { try { check_ajax_referer( 'ur_form_save_nonce', 'security' ); if ( ! isset( $_POST['data'] ) || ( isset( $_POST['data'] ) && gettype( $_POST['data'] ) != 'array' ) ) { throw new Exception( __( 'post data not set', 'user-registration' ) ); } elseif ( ! isset( $_POST['data']['form_data'] ) || ( isset( $_POST['data']['form_data'] ) && gettype( $_POST['data']['form_data'] ) != 'string' ) ) { throw new Exception( __( 'post data not set', 'user-registration' ) ); } $post_data = json_decode( stripslashes( $_POST['data']['form_data'] ) ); $post_data = self::ur_add_to_advanced_settings( $post_data ); // Backward compatibility method. Since @1.5.7. self::sweep_array( $post_data ); if ( isset( self::$failed_key_value['value'] ) && self::$failed_key_value['value'] != '' ) { if ( in_array( self::$failed_key_value['value'], self::$field_key_aray ) ) { throw new Exception( sprintf( "Could not save form. Duplicate field name %s", self::$failed_key_value['value'] ) ); } } if ( self::$is_field_key_pass === false ) { throw new Exception( __( 'Could not save form. Invalid field name. Please check all field name', 'user-registration' ) ); } $required_fields = array( 'user_email', 'user_pass', ); $containsSearch = count( array_intersect( $required_fields, self::$field_key_aray ) ) == count( $required_fields ); if ( $containsSearch === false ) { throw new Exception( __( 'Could not save form, ' . join( ', ', $required_fields ) . ' fields are required.! ', 'user-registration' ) ); } $form_name = sanitize_text_field( $_POST['data']['form_name'] ); $form_row_ids = sanitize_text_field( $_POST['data']['form_row_ids'] ); $form_id = sanitize_text_field( $_POST['data']['form_id'] ); $post_data = array( 'post_type' => 'user_registration', 'post_title' => ur_clean( $form_name ), 'post_content' => wp_json_encode( $post_data, JSON_UNESCAPED_UNICODE ), 'post_status' => 'publish', 'comment_status' => 'closed', // if you prefer 'ping_status' => 'closed', // if you prefer ); if ( $form_id > 0 && is_numeric( $form_id ) ) { $post_data['ID'] = $form_id; } remove_filter( 'content_save_pre', 'wp_targeted_link_rel' ); $post_id = wp_insert_post( wp_slash( $post_data ) ); if ( $post_id > 0 ) { $_POST['data']['form_id'] = $post_id; // Form id for new form. $post_data_setting = isset( $_POST['data']['form_setting_data'] ) ? $_POST['data']['form_setting_data'] : array(); ur_update_form_settings( $post_data_setting, $post_id ); // Form row_id save. update_post_meta( $form_id, 'user_registration_form_row_ids', $form_row_ids ); } do_action( 'user_registration_after_form_settings_save', $_POST['data'] ); wp_send_json_success( array( 'data' => $post_data, 'post_id' => $post_id, ) ); } catch ( Exception $e ) { wp_send_json_error( array( 'message' => $e->getMessage(), ) ); }// End try(). } /** * AJAX plugin deactivation notice. * * @since 1.4.2 */ public static function deactivation_notice() { check_ajax_referer( 'deactivation-notice', 'security' ); ob_start(); include_once UR_ABSPATH . 'includes/admin/views/html-notice-deactivation.php'; $content = ob_get_clean(); wp_send_json( $content ); // WPCS: XSS OK. } /** * Dashboard Widget data. * * @since 1.5.8 */ public static function dashboard_widget() { check_ajax_referer( 'dashboard-widget', 'security' ); $form_id = isset( $_POST['form_id'] ) ? $_POST['form_id'] : 0; $user_report = $form_id ? ur_get_user_report( $form_id ) : array(); $forms = ! $form_id ? ur_get_all_user_registration_form() : array(); wp_send_json( array( 'user_report' => $user_report, 'forms' => $forms, ) ); // WPCS: XSS OK. } /** * Checks if the string passes the regex * * @param string $value * @return boolean */ private static function is_regex_pass( $value ) { $field_regex = "/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/"; if ( preg_match( $field_regex, $value, $match ) ) : if ( $match !== null && count( $match ) == 1 && $match[0] === $value ) { return true; } endif; return false; } /** * Sanitize values of form field in backend * * @param array &$array */ public static function sweep_array( &$array ) { foreach ( $array as $key => &$value ) { if ( is_array( $value ) || gettype( $value ) == 'object' ) { self::sweep_array( $value ); } else { if ( $key === 'field_name' ) { $regex_status = self::is_regex_pass( $value ); if ( ! $regex_status || in_array( $value, self::$field_key_aray ) ) { self::$is_field_key_pass = false; self::$failed_key_value = array( 'key' => $key, 'value' => $value, ); return; } array_push( self::$field_key_aray, $value ); } if ( $key === 'description' ) { $value = str_replace( '"', "'", $value ); $value = wp_kses( $value, array( 'a' => array( 'href' => array(), 'title' => array(), 'target' => array(), ), 'br' => array(), 'em' => array(), 'strong' => array(), ) ); } elseif ( $key == 'html' ) { if ( ! current_user_can( 'unfiltered_html' ) ) { $value = wp_kses_post( $value ); } } else { $value = sanitize_text_field( $value ); } } } } /** * @since 1.1.2 * Triggered when clicking the rating footer. */ public static function rated() { if ( ! current_user_can( 'manage_user_registration' ) ) { wp_die( - 1 ); } update_option( 'user_registration_admin_footer_text_rated', 1 ); wp_die(); } /** * Migrate the choices/options from the general settings to advanced settings. * * Backward compatibility code. Modified @since 1.5.7. * * @param array $post_data All fields data. * @return array Modified fields data. */ private static function ur_add_to_advanced_settings( $post_data ) { $modifiying_keys = array( 'radio', 'select', 'checkbox' ); foreach ( $post_data as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) ) { if ( ! in_array( $field->field_key, $modifiying_keys ) ) { continue; } if ( isset( $field->general_setting->options ) ) { $options = implode( ',', $field->general_setting->options ); if ( 'checkbox' === $field->field_key ) { $field->advance_setting->choices = $options; } else { $field->advance_setting->options = $options; } } } } } } return $post_data; } /** * Dismiss review notice * * @since 1.5.8 * * @return void **/ public static function dismiss_review_notice() { check_admin_referer( 'review-nonce', 'security' ); if ( ! empty( $_POST['dismissed'] ) ) { update_option( 'user_registration_review_notice_dismissed', 'yes' ); } } } UR_AJAX::init(); PK\-//includes/functions-ur-core.phpnuW+Aquery->get_query_vars(); if ( false !== $endpoint ) { if ( ! isset( $ur_endpoints[ $endpoint ] ) ) { return false; } else { $endpoint_var = $ur_endpoints[ $endpoint ]; } return isset( $wp->query_vars[ $endpoint_var ] ); } else { foreach ( $ur_endpoints as $key => $value ) { if ( isset( $wp->query_vars[ $key ] ) ) { return true; } } return false; } } } if ( ! function_exists( 'is_ur_account_page' ) ) { /** * is_ur_account_page - Returns true when viewing an account page. * * @return bool */ function is_ur_account_page() { return is_page( ur_get_page_id( 'myaccount' ) ) || ur_post_content_has_shortcode( 'user_registration_my_account' ) || apply_filters( 'user_registration_is_account_page', false ); } } if ( ! function_exists( 'is_ur_edit_account_page' ) ) { /** * Check for edit account page. * Returns true when viewing the edit account page. * * @return bool */ function is_ur_edit_account_page() { global $wp; return ( is_ur_account_page() && isset( $wp->query_vars['edit-password'] ) ); } } if ( ! function_exists( 'is_ur_lost_password_page' ) ) { /** * is_ur_lost_password_page - Returns true when viewing the lost password page. * * @return bool */ function is_ur_lost_password_page() { global $wp; return ( is_ur_account_page() && isset( $wp->query_vars['ur-lost-password'] ) ); } } /** * Clean variables using sanitize_text_field. Arrays are cleaned recursively. * Non-scalar values are ignored. * * @param string|array $var * * @return string|array */ function ur_clean( $var ) { if ( is_array( $var ) ) { return array_map( 'ur_clean', $var ); } else { return is_scalar( $var ) ? sanitize_text_field( $var ) : $var; } } /** * Sanitize a string destined to be a tooltip. * * @since 1.0.0 Tooltips are encoded with htmlspecialchars to prevent XSS. Should not be used in conjunction with esc_attr() * * @param string $var * * @return string */ function ur_sanitize_tooltip( $var ) { return htmlspecialchars( wp_kses( html_entity_decode( $var ), array( 'br' => array(), 'em' => array(), 'strong' => array(), 'small' => array(), 'span' => array(), 'ul' => array(), 'li' => array(), 'ol' => array(), 'p' => array(), ) ) ); } /** * Format dimensions for display. * * @since 1.7.0 * @param array $dimensions Array of dimensions. * @param array $suffix Suffix, defaults to 'px'. * @return string */ function ur_sanitize_dimension_unit( $dimensions = array(), $unit = 'px' ) { return ur_array_to_string( ur_suffix_array( $dimensions, $unit ) ); } /** * Add a suffix into an array. * * @since 1.7.0 * @param array $array Raw array data. * @param string $suffix Suffix to be added. * @return array Modified array with suffix added. */ function ur_suffix_array( $array = array(), $suffix = '' ) { return preg_filter( '/$/', $suffix, $array ); } /** * Implode an array into a string by $glue and remove empty values. * * @since 1.7.0 * @param array $array Array to convert. * @param string $glue Glue, defaults to ' '. * @return string */ function ur_array_to_string( $array = array(), $glue = ' ' ) { return is_string( $array ) ? $array : implode( $glue, array_filter( $array ) ); } /** * Explode a string into an array by $delimiter and remove empty values. * * @since 1.7.0 * @param string $string String to convert. * @param string $delimiter Delimiter, defaults to ','. * @return array */ function ur_string_to_array( $string, $delimiter = ',' ) { return is_array( $string ) ? $string : array_filter( explode( $delimiter, $string ) ); } /** * Converts a string (e.g. 'yes' or 'no') to a bool. * * @param string $string String to convert. * @return bool */ function ur_string_to_bool( $string ) { return is_bool( $string ) ? $string : ( 'yes' === $string || 1 === $string || 'true' === $string || '1' === $string ); } /** * Converts a bool to a 'yes' or 'no'. * * @param bool $bool String to convert. * @return string */ function ur_bool_to_string( $bool ) { if ( ! is_bool( $bool ) ) { $bool = ur_string_to_bool( $bool ); } return true === $bool ? 'yes' : 'no'; } /** * Get other templates (e.g. my account) passing attributes and including the file. * * @param string $template_name * @param array $args (default: array()) * @param string $template_path (default: '') * @param string $default_path (default: '') */ function ur_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { if ( ! empty( $args ) && is_array( $args ) ) { extract( $args ); } $located = ur_locate_template( $template_name, $template_path, $default_path ); // Allow 3rd party plugin filter template file from their plugin. $located = apply_filters( 'ur_get_template', $located, $template_name, $args, $template_path, $default_path ); if ( ! file_exists( $located ) ) { _doing_it_wrong( __FUNCTION__, sprintf( '%s does not exist.', $located ), '1.0' ); return; } do_action( 'user_registration_before_template_part', $template_name, $template_path, $located, $args ); include $located; do_action( 'user_registration_after_template_part', $template_name, $template_path, $located, $args ); } /** * Locate a template and return the path for inclusion. * * This is the load order: * * yourtheme / $template_path / $template_name * yourtheme / $template_name * $default_path / $template_name * * @param string $template_name * @param string $template_path (default: '') * @param string $default_path (default: '') * * @return string */ function ur_locate_template( $template_name, $template_path = '', $default_path = '' ) { if ( ! $template_path ) { $template_path = UR()->template_path(); } if ( ! $default_path ) { $default_path = UR()->plugin_path() . '/templates/'; } // Look within passed path within the theme - this is priority. $template = locate_template( array( trailingslashit( $template_path ) . $template_name, $template_name, ) ); // Get default template/ if ( ! $template || UR_TEMPLATE_DEBUG_MODE ) { $template = $default_path . $template_name; } // Return what we found. return apply_filters( 'user_registration_locate_template', $template, $template_name, $template_path ); } /** * Display a UserRegistration help tip. * * @param string $tip Help tip text * @param bool $allow_html Allow sanitized HTML if true or escape * * @return string */ function ur_help_tip( $tip, $allow_html = false ) { if ( $allow_html ) { $tip = ur_sanitize_tooltip( $tip ); } else { $tip = esc_attr( $tip ); } return ''; } /** * Checks whether the content passed contains a specific short code. * * @param string $tag Shortcode tag to check. * * @return bool */ function ur_post_content_has_shortcode( $tag = '' ) { global $post; return ( is_singular() || is_front_page() ) && is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, $tag ); } /** * Wrapper for ur_doing_it_wrong. * * @since 1.0.0 * * @param string $function * @param string $version * @param string $replacement */ function ur_doing_it_wrong( $function, $message, $version ) { $message .= ' Backtrace: ' . wp_debug_backtrace_summary(); if ( is_ajax() ) { do_action( 'doing_it_wrong_run', $function, $message, $version ); error_log( "{$function} was called incorrectly. {$message}. This message was added in version {$version}." ); } else { _doing_it_wrong( $function, $message, $version ); } } /** * Set a cookie - wrapper for setcookie using WP constants. * * @param string $name Name of the cookie being set. * @param string $value Value of the cookie. * @param integer $expire Expiry of the cookie. * @param string $secure Whether the cookie should be served only over https. */ function ur_setcookie( $name, $value, $expire = 0, $secure = false ) { if ( ! headers_sent() ) { setcookie( $name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure ); } elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { headers_sent( $file, $line ); trigger_error( "{$name} cookie cannot be set - headers already sent by {$file} on line {$line}", E_USER_NOTICE ); } } /** * Read in UserRegistration headers when reading plugin headers. * * @since 1.1.0 * * @param array $headers header, * * @return array $headers */ function ur_enable_ur_plugin_headers( $headers ) { if ( ! class_exists( 'UR_Plugin_Updates', false ) ) { include_once dirname( __FILE__ ) . '/admin/updater/class-ur-plugin-updates.php'; } $headers['URRequires'] = UR_Plugin_Updates::VERSION_REQUIRED_HEADER; $headers['URTested'] = UR_Plugin_Updates::VERSION_TESTED_HEADER; return $headers; } add_filter( 'extra_plugin_headers', 'ur_enable_ur_plugin_headers' ); /** * Set field type for all registrered field keys * * @param string $field_key field's field key * @return string $field_type */ function ur_get_field_type( $field_key ) { $fields = ur_get_registered_form_fields(); $field_type = 'text'; if ( in_array( $field_key, $fields ) ) { switch ( $field_key ) { case 'user_email': case 'user_confirm_email': case 'email': $field_type = 'email'; break; case 'user_confirm_password': case 'password': case 'user_pass': $field_type = 'password'; break; case 'user_login': case 'nickname': case 'first_name': case 'last_name': case 'display_name': case 'text': $field_type = 'text'; break; case 'user_url': $field_type = 'url'; break; case 'description': case 'textarea': $field_type = 'textarea'; break; case 'select': case 'country': $field_type = 'select'; break; case 'file': $field_type = 'file'; break; case 'privacy_policy': case 'mailchimp': case 'checkbox': $field_type = 'checkbox'; break; case 'number': $field_type = 'number'; break; case 'date': $field_type = 'date'; break; case 'radio': $field_type = 'radio'; break; } } return apply_filters( 'user_registration_field_keys', $field_type, $field_key ); } /** * Get user table fields. * * @return array */ function ur_get_user_table_fields() { return apply_filters( 'user_registration_user_table_fields', array( 'user_email', 'user_pass', 'user_login', 'user_url', 'display_name', ) ); } /** * Get required fields. * * @return array */ function ur_get_required_fields() { return apply_filters( 'user_registration_required_form_fields', array( 'user_email', 'user_pass', ) ); } /** * Get one time draggable fields fields. * * @return array */ function ur_get_one_time_draggable_fields() { $form_fields = ur_get_user_field_only(); return apply_filters( 'user_registration_one_time_draggable_form_fields', $form_fields ); } /** * Get fields excluding in profile tab * * @return array */ function ur_exclude_profile_details_fields() { return apply_filters( 'user_registration_exclude_profile_fields', array( 'user_pass', 'user_confirm_password', 'user_confirm_email', 'profile_picture', 'invite_code', ) ); } /** * Get readonly fields in profile tab * * @return array */ function ur_readonly_profile_details_fields() { return apply_filters( 'user_registration_readonly_profile_fields', array( 'user_login' => array( 'message' => __( 'Username can not be changed.', 'user-registration' ), ), 'user_pass' => array( 'value' => 'password', 'message' => __( 'Passowrd can not be changed.', 'user-registration' ), ), 'user_confirm_password' => array( 'value' => 'password', 'message' => __( 'Confirm password can not be changed.', 'user-registration' ), ), 'user_confirm_email' => array( 'message' => __( 'Confirm email can not be changed.', 'user-registration' ), ), ) ); } /** * @deprecated 1.4.1 * @return void */ function ur_get_account_details_fields() { ur_deprecated_function( 'ur_get_account_details_fields', '1.4.1', 'ur_exclude_profile_details_fields' ); } /** * Get all fields appearing in profile tab. * * @return array */ function ur_get_user_profile_field_only() { $user_fields = array_diff( ur_get_registered_form_fields(), ur_exclude_profile_details_fields() ); return apply_filters( 'user_registration_user_profile_field_only', $user_fields ); } /** * All fields to update without adding prefix. * * @return array */ function ur_get_fields_without_prefix() { $fields = ur_get_user_field_only(); return apply_filters( 'user_registration_fields_without_prefix', $fields ); } /** * Get all default fields by WordPress. * * @return array */ function ur_get_user_field_only() { return apply_filters( 'user_registration_user_form_fields', array( 'user_email', 'user_confirm_email', 'user_pass', 'user_confirm_password', 'user_login', 'nickname', 'first_name', 'last_name', 'user_url', 'display_name', 'description', ) ); } /** * Get all extra form fields * * @return array */ function ur_get_other_form_fields() { $registered = ur_get_registered_form_fields(); $user_fields = ur_get_user_field_only(); $result = array_diff( $registered, $user_fields ); return apply_filters( 'user_registration_other_form_fields', $result ); } /** * All default fields storing in usermeta table * * @return mixed|array */ function ur_get_registered_user_meta_fields() { return apply_filters( 'user_registration_registered_user_meta_fields', array( 'nickname', 'first_name', 'last_name', 'description', ) ); } /** * All registered form fields * * @return mixed|array */ function ur_get_registered_form_fields() { return apply_filters( 'user_registration_registered_form_fields', array( 'user_email', 'user_confirm_email', 'user_pass', 'user_confirm_password', 'user_login', 'nickname', 'first_name', 'last_name', 'user_url', 'display_name', 'description', 'text', 'password', 'email', 'select', 'country', 'textarea', 'number', 'date', 'checkbox', 'privacy_policy', 'radio', ) ); } /** * General settings for each fields * * @param string $id id for each field. * @return mixed|array */ function ur_get_general_settings( $id ) { $general_settings = array( 'label' => array( 'type' => 'text', 'label' => __( 'Label', 'user-registration' ), 'name' => 'ur_general_setting[label]', 'placeholder' => __( 'Label', 'user-registration' ), 'required' => true, ), 'description' => array( 'type' => 'textarea', 'label' => __( 'Description', 'user-registration' ), 'name' => 'ur_general_setting[description]', 'placeholder' => __( 'Description', 'user-registration' ), 'required' => true, ), 'field_name' => array( 'type' => 'text', 'label' => __( 'Field Name', 'user-registration' ), 'name' => 'ur_general_setting[field_name]', 'placeholder' => __( 'Field Name', 'user-registration' ), 'required' => true, ), 'placeholder' => array( 'type' => 'text', 'label' => __( 'Placeholder', 'user-registration' ), 'name' => 'ur_general_setting[placeholder]', 'placeholder' => __( 'Placeholder', 'user-registration' ), 'required' => true, ), 'required' => array( 'type' => 'select', 'label' => __( 'Required', 'user-registration' ), 'name' => 'ur_general_setting[required]', 'placeholder' => '', 'required' => true, 'options' => array( 'no' => __( 'No', 'user-registration' ), 'yes' => __( 'Yes', 'user-registration' ), ), ), 'hide_label' => array( 'type' => 'select', 'label' => __( 'Hide Label', 'user-registration' ), 'name' => 'ur_general_setting[hide_label]', 'placeholder' => '', 'required' => true, 'options' => array( 'no' => __( 'No', 'user-registration' ), 'yes' => __( 'Yes', 'user-registration' ), ), ), ); $exclude_placeholder = apply_filters( 'user_registration_exclude_placeholder', array( 'checkbox', 'date', 'privacy_policy', 'radio', 'file', 'mailchimp', ) ); $strip_id = str_replace( 'user_registration_', '', $id ); if ( in_array( $strip_id, $exclude_placeholder, true ) ) { unset( $general_settings['placeholder'] ); } $choices_fields = array( 'radio', 'select', 'checkbox' ); if ( in_array( $strip_id, $choices_fields, true ) ) { $settings['options'] = array( 'type' => 'checkbox' === $strip_id ? 'checkbox' : 'radio', 'label' => __( 'Options', 'user-registration' ), 'name' => 'ur_general_setting[options]', 'placeholder' => '', 'required' => true, 'options' => array( __( 'First Choice', 'user-registration' ), __( 'Second Choice', 'user-registration' ), __( 'Third Choice', 'user-registration' ), ), ); $general_settings = ur_insert_after_helper( $general_settings, $settings, 'field_name' ); } if ( 'privacy_policy' === $strip_id ) { $general_settings['required'] = array( 'type' => 'hidden', 'label' => '', 'name' => 'ur_general_setting[required]', 'placeholder' => '', 'default' => 'yes', 'required' => true, ); } return apply_filters( 'user_registration_field_options_general_settings', $general_settings, $id ); } /** * Insert in between the indexes in multidimensional array. * * @since 1.5.7 * @param array $items An array of items. * @param array $new_items New items to insert inbetween. * @param string $after Index to insert after. * * @return array Ordered array of items. */ function ur_insert_after_helper( $items, $new_items, $after ) { // Search for the item position and +1 since is after the selected item key. $position = array_search( $after, array_keys( $items ), true ) + 1; // Insert the new item. $return_items = array_slice( $items, 0, $position, true ); $return_items += $new_items; $return_items += array_slice( $items, $position, count( $items ) - $position, true ); return $return_items; } /** * Load form field class. * * @param string $class_key Class Key. */ function ur_load_form_field_class( $class_key ) { $exploded_class = explode( '_', $class_key ); $class_path = UR_FORM_PATH . 'class-ur-' . join( '-', array_map( 'strtolower', $exploded_class ) ) . '.php'; $class_name = 'UR_Form_Field_' . join( '_', array_map( 'ucwords', $exploded_class ) ); $class_path = apply_filters( 'user_registration_form_field_' . $class_key . '_path', $class_path ); /* Backward Compat since 1.4.0 */ if ( file_exists( $class_path ) ) { $class_name = 'UR_' . join( '_', array_map( 'ucwords', $exploded_class ) ); if ( ! class_exists( $class_name ) ) { include_once $class_path; } } /* Backward compat end*/ return $class_name; } /** * List of all roles * * @return array $all_roles */ function ur_get_default_admin_roles() { global $wp_roles; if ( ! class_exists( 'WP_Roles' ) ) { return; } if ( ! isset( $wp_roles ) ) { $wp_roles = new WP_Roles(); // @codingStandardsIgnoreLine } $roles = isset( $wp_roles->roles ) ? $wp_roles->roles : array(); $all_roles = array(); foreach ( $roles as $role_key => $role ) { $all_roles[ $role_key ] = $role['name']; } return apply_filters( 'user_registration_user_default_roles', $all_roles ); } /** * Random number generated by time() * * @return int */ function ur_get_random_number() { return time(); } /** * General Form settings * * @param int $form_id Form ID. * * @since 1.0.1 * * @return array Form settings. */ function ur_admin_form_settings_fields( $form_id ) { $all_roles = ur_get_default_admin_roles(); $arguments = array( 'form_id' => $form_id, 'setting_data' => array( array( 'label' => __( 'User login option', 'user-registration' ), 'description' => __( 'This option lets you choose login option after user registration.', 'user-registration' ), 'id' => 'user_registration_form_setting_login_options', 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options' ) ), 'type' => 'select', 'class' => array( 'ur-enhanced-select' ), 'custom_attributes' => array(), 'input_class' => array(), 'required' => false, 'options' => ur_login_option(), ), array( 'type' => 'select', 'label' => __( 'Default User Role', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_default_user_role', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'options' => $all_roles, 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_default_user_role', 'subscriber' ), ), array( 'type' => 'checkbox', 'label' => __( 'Enable Strong Password', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_enable_strong_password', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_enable_strong_password', 'yes' ), ), array( 'type' => 'select', 'label' => __( 'Minimum Password Strength', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_minimum_password_strength', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'options' => array( '0' => __( 'Very Weak', 'user-registration' ), '1' => __( 'Weak', 'user-registration' ), '2' => __( 'Medium', 'user-registration' ), '3' => __( 'Strong', 'user-registration' ), ), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_minimum_password_strength', '3' ), ), array( 'type' => 'text', 'label' => __( 'Redirect URL', 'user-registration' ), 'id' => 'user_registration_form_setting_redirect_options', 'description' => __( 'This option lets you enter redirect path after successful user registration.', 'user-registration' ), 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_redirect_options', get_option( 'user_registration_general_setting_redirect_options', '' ) ), // Getting redirect options from global settings for backward compatibility. ), array( 'type' => 'text', 'label' => __( 'Form Submit Button Custom Class', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_form_submit_class', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_form_submit_class', '' ), ), array( 'type' => 'text', 'label' => __( 'Form Submit Button Label', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_form_submit_label', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_form_submit_label', 'Submit' ), ), array( 'type' => 'checkbox', 'label' => sprintf( __( 'Enable %1$s %2$s reCaptcha %3$s Support', 'user-registration' ), '', '' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_setting_enable_recaptcha_support', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_setting_enable_recaptcha_support', 'no' ), ), array( 'type' => 'select', 'label' => __( 'Form Template', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_template', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'options' => array( 'Default' => __( 'Default', 'user-registration' ), 'Bordered' => __( 'Bordered', 'user-registration' ), 'Flat' => __( 'Flat', 'user-registration' ), 'Rounded' => __( 'Rounded', 'user-registration' ), 'Rounded Edge' => __( 'Rounded Edge', 'user-registration' ), ), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_template', 'default' ), ), array( 'type' => 'text', 'label' => __( 'Custom CSS class', 'user-registration' ), 'description' => '', 'required' => false, 'id' => 'user_registration_form_custom_class', 'class' => array( 'ur-enhanced-select' ), 'input_class' => array(), 'custom_attributes' => array(), 'default' => ur_get_single_post_meta( $form_id, 'user_registration_form_custom_class' ), ), ), ); $arguments = apply_filters( 'user_registration_get_form_settings', $arguments ); return $arguments['setting_data']; } /** * User Login Option * * @return array */ function ur_login_option() { return apply_filters( 'user_registration_login_options', array( 'default' => __( 'Manual login after registration', 'user-registration' ), 'email_confirmation' => __( 'Email confirmation to login', 'user-registration' ), 'auto_login' => __( 'Auto login after registration', 'user-registration' ), 'admin_approval' => __( 'Admin approval after registration', 'user-registration' ), ) ); } /** * Get Post meta value by meta key. * * @param int $post_id Post ID. * @param string $meta_key Meta Key. * @param mixed $default Default Value. * * @since 1.0.1 * * @return mixed */ function ur_get_single_post_meta( $post_id, $meta_key, $default = null ) { $post_meta = get_post_meta( $post_id, $meta_key ); if ( isset( $post_meta[0] ) ) { if ( 'user_registration_form_setting_enable_recaptcha_support' === $meta_key || 'user_registration_form_setting_enable_strong_password' === $meta_key ) { if ( 'yes' === $post_meta[0] ) { $post_meta[0] = 1; } } return $post_meta[0]; } return $default; } /** * Get general form settings by meta key (settings id). * * @param int $form_id Form ID. * @param string $meta_key Meta Key. * @param mixed $default Default Value. * * @since 1.0.1 * * @return mixed */ function ur_get_form_setting_by_key( $form_id, $meta_key, $default = '' ) { $fields = ur_admin_form_settings_fields( $form_id ); $value = ''; foreach ( $fields as $field ) { if ( isset( $field['id'] ) && $meta_key == $field['id'] ) { $value = isset( $field['default'] ) ? $field['default'] : $default; break; } } return $value; } /** * Get user status in case of admin approval login option * * @param int $user_id User ID. * @return int */ function ur_get_user_approval_status( $user_id ) { $user_status = 1; $form_id = ur_get_form_id_by_userid( $user_id ); $login_option = ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ); if ( 'admin_approval' === $login_option ) { $user_status = get_user_meta( $user_id, 'ur_user_status', true ); } return $user_status; } /** * Get form data by field key. * * @param array $form_data Form Data. * @param string $key Field Key. * * @return array */ function ur_get_form_data_by_key( $form_data, $key = null ) { $form_data_array = array(); foreach ( $form_data as $data ) { foreach ( $data as $single_data ) { foreach ( $single_data as $field_data ) { $field_key = isset( $field_data->field_key ) && $field_data->field_key !== null ? $field_data->field_key : ''; if ( ! empty( $field_key ) ) { $field_name = isset( $field_data->general_setting->field_name ) && $field_data->general_setting->field_name !== null ? $field_data->general_setting->field_name : ''; if ( $key === null ) { if ( ! empty( $field_name ) ) { $form_data_array[ $field_name ] = $field_data; } else { $form_data_array[] = $field_data; } } else { if ( $field_key === $key ) { if ( ! empty( $field_name ) ) { $form_data_array[ $field_name ] = $field_data; } else { $form_data_array[] = $field_data; } } } } } } } return $form_data_array; } /** * Get a log file path. * * @since 1.0.5 * * @param string $handle name. * * @return string the log file path. */ function ur_get_log_file_path( $handle ) { return UR_Log_Handler_File::get_log_file_path( $handle ); } /** * Registers the default log handler. * * @since 1.0.5 * * @param array $handlers * * @return array */ function ur_register_default_log_handler( $handlers ) { if ( defined( 'UR_LOG_HANDLER' ) && class_exists( UR_LOG_HANDLER ) ) { $handler_class = UR_LOG_HANDLER; $default_handler = new $handler_class(); } else { $default_handler = new UR_Log_Handler_File(); } array_push( $handlers, $default_handler ); return $handlers; } add_filter( 'user_registration_register_log_handlers', 'ur_register_default_log_handler' ); /** * Get a shared logger instance. * * Use the user_registration_logging_class filter to change the logging class. You may provide one of the following: * - a class name which will be instantiated as `new $class` with no arguments * - an instance which will be used directly as the logger * In either case, the class or instance *must* implement UR_Logger_Interface. * * @see UR_Logger_Interface * @since 1.1.0 * @return UR_Logger */ function ur_get_logger() { static $logger = null; if ( null === $logger ) { $class = apply_filters( 'user_registration_logging_class', 'UR_Logger' ); $implements = class_implements( $class ); if ( is_array( $implements ) && in_array( 'UR_Logger_Interface', $implements ) ) { if ( is_object( $class ) ) { $logger = $class; } else { $logger = new $class(); } } else { ur_doing_it_wrong( __FUNCTION__, sprintf( __( 'The class %s provided by user_registration_logging_class filter must implement UR_Logger_Interface.', 'user-registration' ), esc_html( is_object( $class ) ? get_class( $class ) : $class ) ), '1.0.5' ); $logger = new UR_Logger(); } } return $logger; } /** * Handles addon plugin updater. * * @param string $file Plugin File. * @param int $item_id Item ID. * @param string $addon_version Addon Version. * @param bool $beta Is beta version. * * @since 1.1.0 */ function ur_addon_updater( $file, $item_id, $addon_version, $beta = false ) { $api_endpoint = 'https://wpeverest.com/edd-sl-api/'; $license_key = trim( get_option( 'user-registration_license_key' ) ); if ( class_exists( 'UR_AddOn_Updater' ) ) { new UR_AddOn_Updater( $api_endpoint, $file, array( 'version' => $addon_version, 'license' => $license_key, 'item_id' => $item_id, 'author' => 'WPEverest', 'url' => home_url(), 'beta' => $beta, ) ); } } /** * Check if username already exists in case of optional username * And while stripping through email address and incremet last number by 1. * * @param string $username Username. * @return string */ function check_username( $username ) { if ( username_exists( $username ) ) { preg_match_all( '/\d+$/m', $username, $matches ); if ( isset( $matches[0][0] ) ) { $last_char = $matches[0][0]; $strip_last_char = substr( $username, 0, -( strlen( (string) $last_char ) ) ); $last_char++; $username = $strip_last_char . $last_char; $username = check_username( $username ); return $username; } else { $username = $username . '_1'; $username = check_username( $username ); return $username; } } return $username; } /** * Get all user registration forms title with respective id. * * @param int $post_count Post Count. * @return array */ function ur_get_all_user_registration_form( $post_count = -1 ) { $args = array( 'status' => 'publish', 'numberposts' => $post_count, 'order' => 'ASC', ); $posts_array = UR()->form->get_form( '', $args ); $all_forms = array(); foreach ( $posts_array as $post ) { $all_forms[ $post->ID ] = $post->post_title; } return $all_forms; } /** * Checks user login option, if not email confirmation force not disable emails. */ function ur_get_user_login_option() { if ( 'email_confirmation' !== get_option( 'user_registration_general_setting_login_options' ) ) { return array( 'title' => __( 'Disable emails', 'user-registration' ), 'desc' => __( 'Disable all emails sent after registration.', 'user-registration' ), 'id' => 'user_registration_email_setting_disable_email', 'default' => 'no', 'type' => 'checkbox', 'autoload' => false, ); } else { update_option( 'user_registration_email_setting_disable_email', 'no' ); } } /** * Get the node to display google reCaptcha * * @param string $recaptcha_enabled Is Recaptcha enabled. * @param string $context Recaptcha context. * @return string */ function ur_get_recaptcha_node( $recaptcha_enabled = 'no', $context ) { $recaptcha_version = get_option( 'user_registration_integration_setting_recaptcha_version' ); $recaptcha_site_key = 'v3' === $recaptcha_version ? get_option( 'user_registration_integration_setting_recaptcha_site_key_v3' ) : get_option( 'user_registration_integration_setting_recaptcha_site_key' ); $recaptcha_site_secret = 'v3' === $recaptcha_version ? get_option( 'user_registration_integration_setting_recaptcha_site_secret_v3' ) : get_option( 'user_registration_integration_setting_recaptcha_site_secret' ); static $rc_counter = 0; if ( ( 'yes' == $recaptcha_enabled || '1' == $recaptcha_enabled ) && ! empty( $recaptcha_site_key ) && ! empty( $recaptcha_site_secret ) ) { if ( 0 === $rc_counter ) { $enqueue_script = 'v3' === $recaptcha_version ? 'ur-google-recaptcha-v3' : 'ur-google-recaptcha'; wp_enqueue_script( $enqueue_script ); wp_localize_script( $enqueue_script, 'ur_google_recaptcha_code', array( 'site_key' => $recaptcha_site_key, 'site_secret' => $recaptcha_site_secret, 'is_captcha_enable' => true, 'version' => $recaptcha_version, ) ); $rc_counter++; } if ( 'v3' === $recaptcha_version ) { if ( 'login' === $context ) { $recaptcha_node = ''; } elseif ( 'register' === $context ) { $recaptcha_node = ''; } else { $recaptcha_node = ''; } } else { if ( 'login' === $context ) { $recaptcha_node = '
              '; } elseif ( 'register' === $context ) { $recaptcha_node = '
              '; } else { $recaptcha_node = ''; } } } else { $recaptcha_node = ''; } return $recaptcha_node; } /** * Get meta key label pair by form id * * @param int $form_id Form ID. * @since 1.5.0 * @return array */ function ur_get_meta_key_label( $form_id ) { $key_label = array(); $post_content_array = ( $form_id ) ? UR()->form->get_form( $form_id, array( 'content_only' => true ) ) : array(); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) && isset( $field->general_setting->field_name ) ) { $key_label[ $field->general_setting->field_name ] = $field->general_setting->label; } } } } return apply_filters( 'user_registration_meta_key_label', $key_label, $form_id, $post_content_array ); } /** * Get all user registration fields of the user by querying to database. * * @param int $user_id User ID. * @since 1.5.0 * @return array */ function ur_get_user_extra_fields( $user_id ) { global $wpdb; $name_value = array(); $user_extra_fields = $wpdb->get_results( "SELECT * FROM $wpdb->usermeta WHERE meta_key LIKE 'user_registration\_%' AND user_id = " . $user_id . ' ;' ); foreach ( $user_extra_fields as $extra_field ) { // Get meta key remove user_registration_ from the beginning $key = isset( $extra_field->meta_key ) ? substr( $extra_field->meta_key, 18 ) : ''; $value = isset( $extra_field->meta_value ) ? $extra_field->meta_value : ''; if ( is_serialized( $value ) ) { $value = unserialize( $value ); $value = implode( ',', $value ); } $name_value[ $key ] = $value; } return apply_filters( 'user_registration_user_extra_fields', $name_value, $user_id ); } /** * Get link for back button used on email settings. * * @param string $label Label. * @param string $url URL. */ function ur_back_link( $label, $url ) { echo ''; } /** * The function wp_doing ajax() is introduced in core @since 4.7, */ if ( ! function_exists( 'wp_doing_ajax' ) ) { /** * Filters whether the current request is a WordPress Ajax request. */ function wp_doing_ajax() { return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ); } } /** * Checks if the string is json or not * * @param string $str * @since 1.4.2 * @return mixed */ function ur_is_json( $str ) { $json = json_decode( $str ); return $json && $str !== $json; } /** * Checks if the form contains a date field or not. * * @param int $form_id Form ID * @since 1.5.3 * @return boolean */ function ur_has_date_field( $form_id ) { $post_content_array = ( $form_id ) ? UR()->form->get_form( $form_id, array( 'content_only' => true ) ) : array(); if ( ! empty( $post_content_array ) ) { foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) && $field->field_key === 'date' ) { return true; } } } } } return false; } /** * Get attributes from the shortcode content. * * @param $content Shortcode content. * @return array Array of attributes within the shortcode. * * @since 1.6.0 */ function ur_get_shortcode_attr( $content ) { $pattern = get_shortcode_regex(); $keys = array(); $result = array(); if ( preg_match_all( '/' . $pattern . '/s', $content, $matches ) ) { foreach ( $matches[0] as $key => $value ) { // $matches[ 3 ] return the shortcode attribute as string. // replace space with '&' for parse_str() function. $get = str_replace( ' ', '&', $matches[3][ $key ] ); parse_str( $get, $output ); // Get all shortcode attribute keys. $keys = array_unique( array_merge( $keys, array_keys( $output ) ) ); $result[] = $output; } if ( $keys && $result ) { // Loop the result array and add the missing shortcode attribute key foreach ( $result as $key => $value ) { // Loop the shortcode attribute key foreach ( $keys as $attr_key ) { $result[ $key ][ $attr_key ] = isset( $result[ $key ][ $attr_key ] ) ? $result[ $key ][ $attr_key ] : null; } // Sort the array key. ksort( $result[ $key ] ); } } } return $result; } /** * @since 1.1.2 * Output any queued javascript code in the footer. */ function ur_print_js() { global $ur_queued_js; if ( ! empty( $ur_queued_js ) ) { // Sanitize. $ur_queued_js = wp_check_invalid_utf8( $ur_queued_js ); $ur_queued_js = preg_replace( '/&#(x)?0*(?(1)27|39);?/i', "'", $ur_queued_js ); $ur_queued_js = str_replace( "\r", '', $ur_queued_js ); $js = "\n\n"; /** * user_registration_js filter. * * @param string $js JavaScript code. */ echo apply_filters( 'user_registration_queued_js', $js ); unset( $ur_queued_js ); } } /** * @since 1.1.2 * Queue some JavaScript code to be output in the footer. * * @param string $code */ function ur_enqueue_js( $code ) { global $ur_queued_js; if ( empty( $ur_queued_js ) ) { $ur_queued_js = ''; } $ur_queued_js .= "\n" . $code . "\n"; } /** * Delete expired transients. * * Deletes all expired transients. The multi-table delete syntax is used. * to delete the transient record from table a, and the corresponding. * transient_timeout record from table b. * * Based on code inside core's upgrade_network() function. * * @since 1.2.0 * @return int Number of transients that were cleared. */ function ur_delete_expired_transients() { global $wpdb; $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < %d"; $rows = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_transient_' ) . '%', $wpdb->esc_like( '_transient_timeout_' ) . '%', time() ) ); // WPCS: unprepared SQL ok. $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < %d"; $rows2 = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like( '_site_transient_timeout_' ) . '%', time() ) ); // WPCS: unprepared SQL ok. return absint( $rows + $rows2 ); } add_action( 'user_registration_installed', 'ur_delete_expired_transients' ); /** * String translation function. * * @since 1.7.3 * * @param int $form_id Form ID. * @param string $field_id Field ID. * @param mixed $variable To be translated for WPML compatibility. */ function ur_string_translation( $form_id, $field_id, $variable ) { if ( function_exists( 'icl_register_string' ) ) { icl_register_string( isset( $form_id ) ? 'user_registration_' . absint( $form_id ) : 'user-registration', isset( $field_id ) ? $field_id : '', $variable ); } if ( function_exists( 'icl_t' ) ) { $variable = icl_t( isset( $form_id ) ? 'user_registration_' . absint( $form_id ) : 'user-registration', isset( $field_id ) ? $field_id : '', $variable ); } return $variable; } /** * Get Form ID from User ID. * * @param int $user_id User ID. * * @return int $form_id Form ID. */ function ur_get_form_id_by_userid( $user_id ) { $form_id_array = get_user_meta( $user_id, 'ur_form_id' ); $form_id = 0; if ( isset( $form_id_array[0] ) ) { $form_id = $form_id_array[0]; } return $form_id; } PK\K\00 readme.txtnuW+APK\v'+1templates/notices/success.phpnuW+APK\=,5templates/notices/notice.phpnuW+APK\J9templates/notices/index.phpnuW+APK\.i9templates/notices/error.phpnuW+APK\4c=templates/dashboard-widget.phpnuW+APK\w"Etemplates/myaccount/navigation.phpnuW+APK\*Jtemplates/myaccount/form-lost-password.phpnuW+APK\O4%[ [ +Stemplates/myaccount/form-reset-password.phpnuW+APK\J]templates/myaccount/index.phpnuW+APK\Z"0^templates/myaccount/my-account.phpnuW+APK\K_55*ubtemplates/myaccount/form-edit-password.phpnuW+APK\LQ!Q!)vtemplates/myaccount/form-edit-profile.phpnuW+APK\Ys"templates/myaccount/form-login.phpnuW+APK\㧂 !templates/myaccount/dashboard.phpnuW+APK\$( 2qtemplates/myaccount/lost-password-confirmation.phpnuW+APK\Jtemplates/index.phpnuW+APK\#Mb=%templates/form-login-registration.phpnuW+APK\@촢templates/form-registration.phpnuW+APK\K##user-registration.phpnuW+APK\585eassets/images/hover-col-3.pngnuW+APK\F g!!}assets/images/logo.pngnuW+APK\2assets/images/col-3.pngnuW+APK\O!##!assets/images/wpspin_light-2x.gifnuW+APK\v!!+assets/images/icons/loader.svgnuW+APK\FP.assets/images/icons/clippy.svgnuW+APK\_0RR30assets/images/logo.svgnuW+APK\"02assets/images/hover-col-2.pngnuW+APK\3assets/images/col-2.pngnuW+APK\lk4assets/images/col-1.pngnuW+APK\:!45assets/images/default_profile.pngnuW+APK\ };assets/images/hover-col-1.pngnuW+APK\r r L<assets/images/not-found.pngnuW+APK\qnn! Hassets/fonts/UserRegistration.svgnuW+APK\r<**!6assets/fonts/UserRegistration.eotnuW+APK\K * *"#assets/fonts/UserRegistration.woffnuW+APK\x))! assets/fonts/UserRegistration.ttfnuW+APK\kK::6assets/css/review-rtl.cssnuW+APK\=;assets/css/menu.scssnuW+APK\ª薴PCassets/css/admin.scssnuW+APK\C *Iassets/css/_button.scssnuW+APK\ ZFF_assets/css/dashboard-rtl.cssnuW+APK\Ns ΑΑ"assets/css/jquery-ui/jquery-ui.cssnuW+APK\!&rassets/css/jquery-ui/jq-smoothness.cssnuW+APK\6Kee7assets/css/jquery-ui/images/ui-icons_777777_256x240.pngnuW+APK\֩7assets/css/jquery-ui/images/ui-icons_ffffff_256x240.pngnuW+APK\#*70assets/css/jquery-ui/images/ui-icons_555555_256x240.pngnuW+APK\(8DD7Lassets/css/jquery-ui/images/ui-icons_777620_256x240.pngnuW+APK\"V7_assets/css/jquery-ui/images/ui-icons_cc0000_256x240.pngnuW+APK\2}^^7rassets/css/jquery-ui/images/ui-icons_444444_256x240.pngnuW+APK\ҊӍassets/css/_tables.scssnuW+APK\)66assets/css/menu-rtl.cssnuW+APK\A& & 2<assets/css/perfect-scrollbar/perfect-scrollbar.cssnuW+APK\rGGġassets/css/dashboard.cssnuW+APK\1 1 !Sassets/css/my-account-layout.scssnuW+APK\dB::&կassets/css/flatpickr/flatpickr.min.cssnuW+APK\ï>>-,assets/css/user-registration-smallscreen.scssnuW+APK\̼""""assets/css/admin-rtl.cssnuW+APK\y01assets/css/user-registration-smallscreen-rtl.cssnuW+APK\|}jjoassets/css/_variables.scssnuW+APK\Y:C66#assets/css/menu.cssnuW+APK\({;; assets/css/review.cssnuW+APK\ЩT%assets/css/activation.cssnuW+APK\}Ê& & (assets/css/my-account-layout.cssnuW+APK\PAӐ5assets/css/_mixins.scssnuW+APK\dp4((d:assets/css/dashboard.scssnuW+APK\2j' ' $=assets/css/my-account-layout-rtl.cssnuW+APK\z!!PKassets/css/admin.cssnuW+APK\v3;3;massets/css/select2.cssnuW+APK\ assets/css/review.scssnuW+APK\;Eassets/css/form-modal.cssnuW+APK\HV5u5u&gassets/css/sweetalert2/sweetalert2.cssnuW+APK\囀4-`-`**assets/css/sweetalert2/sweetalert2.min.cssnuW+APK\"yassets/css/form-modal-rtl.cssnuW+APK\t@w8w8!assets/css/user-registration.scssnuW+APK\G:w,kassets/css/user-registration-smallscreen.cssnuW+APK\߯ q q$assets/css/user-registration-rtl.cssnuW+APK\6oC q q B assets/css/user-registration.cssnuW+APK\ K[ assets/css/activation.scssnuW+APK\ assets/css/activation-rtl.cssnuW+APK\e|ww assets/css/_fonts.scssnuW+APK\KJKCC\ assets/css/select2.scssnuW+APK\HEKK8 assets/js/admin/ur-copy.min.jsnuW+APK\MdzTT assets/js/admin/review.min.jsnuW+APK\'r assets/js/admin/dashboard-widget.min.jsnuW+APK\oӼl l " assets/js/admin/enhanced-select.jsnuW+APK\@`p]]' assets/js/admin/live-user-notice.min.jsnuW+APK\PҀ%= assets/js/admin/backbone-modal.min.jsnuW+APK\?L-!( assets/js/admin/form-modal.min.jsnuW+APK\]JJ0+ assets/js/admin/form-modal.jsnuW+APK\kk-/ assets/js/admin/gutenberg/form-block.build.jsnuW+APK\% 'E assets/js/admin/gutenberg/form-block.jsnuW+APK\o/vv&O assets/js/admin/enhanced-select.min.jsnuW+APK\(c#xV assets/js/admin/live-user-notice.jsnuW+APK\T9[,[,s^ assets/js/admin/admin.jsnuW+APK\P assets/js/admin/ur-copy.jsnuW+APK\Av assets/js/admin/review.jsnuW+APK\$6 assets/js/admin/admin.min.jsnuW+APK\E3  A assets/js/admin/settings.min.jsnuW+APK\Ԣ  M assets/js/admin/plugins.min.jsnuW+APK\Y5Q assets/js/admin/plugins.jsnuW+APK\mF F !SU assets/js/admin/backbone-modal.jsnuW+APK\DtjDD#b assets/js/admin/dashboard-widget.jsnuW+APK\ i assets/js/admin/settings.jsnuW+APK\nZZ)ly assets/js/frontend/jquery.validate.min.jsnuW+APK\@dCC1 assets/js/frontend/password-strength-meter.min.jsnuW+APK\ۚZZ F assets/js/frontend/jquery.min.jsnuW+APK\N,='g8 assets/js/frontend/lost-password.min.jsnuW+APK\!/%%%A9 assets/js/frontend/jquery.validate.jsnuW+APK\%$ assets/js/frontend/my-account.min.jsnuW+APK\9lBB+ assets/js/frontend/user-registration.min.jsnuW+APK\0 >assets/js/frontend/my-account.jsnuW+APK\ 6mm'Dassets/js/frontend/user-registration.jsnuW+APK\ -Dassets/js/frontend/password-strength-meter.jsnuW+APK\wɀ`#zassets/js/frontend/lost-password.jsnuW+APK\AϝZZ$dassets/js/sweetalert2/sweetalert2.jsnuW+APK\HM~^PP(Eassets/js/sweetalert2/sweetalert2.min.jsnuW+APK\HFNN*assets/js/jquery-blockui/jquery.blockUI.jsnuW+APK\P##.Kassets/js/jquery-blockui/jquery.blockUI.min.jsnuW+APK\Ex(}(assets/js/jquery-tiptip/jquery.tipTip.jsnuW+APK\>Ҹ ,lCassets/js/jquery-tiptip/jquery.tipTip.min.jsnuW+APK\'q!includes/form/settings/class-ur-setting-user_confirm_email.phpnuW+APK\JNSS6!includes/form/settings/class-ur-setting-first_name.phpnuW+APK\SS6!includes/form/settings/class-ur-setting-user_email.phpnuW+APK\F( KK4g!includes/form/settings/class-ur-setting-user_url.phpnuW+APK\4[[8!includes/form/settings/class-ur-setting-display_name.phpnuW+APK\rW4!includes/form/settings/class-ur-setting-textarea.phpnuW+APK\z^::1 > +)"includes/form/class-ur-form-field-email.phpnuW+APK\QFF1d3"includes/form/class-ur-form-field-description.phpnuW+APK\Η)x  + <"includes/form/class-ur-form-field-radio.phpnuW+APK\/ .lE"includes/form/class-ur-form-field-checkbox.phpnuW+APK\n/,MO"includes/form/class-ur-form-field-select.phpnuW+APK\F||/X"includes/form/class-ur-form-field-user-pass.phpnuW+APK\wBB-w`"includes/form/class-ur-form-field-country.phpnuW+APK\g7ؚKK0"includes/form/class-ur-form-field-first-name.phpnuW+APK\ g"8l"includes/form/class-ur-form-field-user-confirm-email.phpnuW+APK\Xt@) ) *"includes/form/class-ur-form-field-date.phpnuW+APK\}{F F ,"includes/form/class-ur-form-field-number.phpnuW+APK\0!0"includes/form/class-ur-form-field-user-email.phpnuW+APK\{aa."includes/form/class-ur-form-field-password.phpnuW+APK\Тή/"includes/form/views/admin/admin-description.phpnuW+APK\\AA*"includes/form/views/admin/admin-select.phpnuW+APK\7  .d"includes/form/views/admin/admin-first-name.phpnuW+APK\,"includes/form/views/admin/admin-nickname.phpnuW+APK\Ǿ;+/"includes/form/views/admin/admin-country.phpnuW+APK\,`"includes/form/views/admin/admin-user-url.phpnuW+APK\1."includes/form/views/admin/admin-user-login.phpnuW+APK\b  -*"includes/form/views/admin/admin-last-name.phpnuW+APK\c"q*"includes/form/views/admin/admin-number.phpnuW+APK\ t)"includes/form/views/admin/admin-email.phpnuW+APK\W)"includes/form/views/admin/admin-radio.phpnuW+APK\t112"includes/form/views/admin/admin-privacy-policy.phpnuW+APK\k.2,\"includes/form/views/admin/admin-textarea.phpnuW+APK\-2++.U"includes/form/views/admin/admin-user-email.phpnuW+APK\NR>("includes/form/views/admin/admin-text.phpnuW+APK\0}##6,#includes/form/views/admin/admin-user-confirm-email.phpnuW+APK\?,#includes/form/views/admin/admin-password.phpnuW+APK\&~229#includes/form/views/admin/admin-user-confirm-password.phpnuW+APK\Rɺ  0X#includes/form/views/admin/admin-display-name.phpnuW+APK\9ID}( #includes/form/views/admin/admin-date.phpnuW+APK\:NX**- #includes/form/views/admin/admin-user-pass.phpnuW+APK\NK,w#includes/form/views/admin/admin-checkbox.phpnuW+APK\;#includes/form/class-ur-form-field-user-confirm-password.phpnuW+APK\Uc  0#includes/form/class-ur-form-field-user-login.phpnuW+APK\zhUU"#includes/class-ur-emailer.phpnuW+APK\n7ll.x#includes/abstracts/abstract-ur-log-handler.phpnuW+APK\HXQQ-~#includes/abstracts/abstract-ur-form-field.phpnuW+APK\B*#includes/abstracts/abstract-ur-session.phpnuW+APK\"1#includes/abstracts/abstract-ur-field-settings.phpnuW+APK\)=##3#includes/log-handlers/class-ur-log-handler-file.phpnuW+APK\;o o " $includes/class-ur-cache-helper.phpnuW+APK\FA$includes/class-ur-preview.phpnuW+APK\ +$includes/class-ur-log-levels.phpnuW+APK\I.I.$6$includes/class-ur-plugin-updater.phpnuW+APK\(P!!%e$includes/class-ur-session-handler.phpnuW+APK\'6A6A6&ڇ$includes/class-ur-frontend-scripts.phpnuW+APK\Of!q$includes/functions-ur-account.phpnuW+APK\\vs$includes/class-ur-query.phpnuW+APK\lr ($includes/class-ur-background-updater.phpnuW+APK\V߀LL"$includes/class-ur-form-handler.phpnuW+APK\TI%includes/class-ur-logger.phpnuW+APK\Xz/T1T1#{g%includes/class-ur-user-approval.phpnuW+APK\5ԉ11"%includes/functions-ur-page.phpnuW+APK\!$%includes/functions-ur-deprecated.phpnuW+APK\s$$ %includes/functions-ur-update.phpnuW+APK\b %includes/class-ur-shortcodes.phpnuW+APK\29ZZ1%includes/interfaces/class-ur-logger-interface.phpnuW+APK\n6&includes/interfaces/class-ur-log-handler-interface.phpnuW+APK\f [xx" &includes/functions-ur-template.phpnuW+APK\=nq]]*f&includes/admin/class-ur-admin-settings.phpnuW+APK\a  2M&includes/admin/settings/class-ur-settings-page.phpnuW+APK\JJ5&includes/admin/settings/class-ur-settings-general.phpnuW+APK\tXRB8'includes/admin/settings/emails/class-ur-settings-profile-details-changed-email.phpnuW+APK\.*b& & @DG'includes/admin/settings/emails/class-ur-settings-admin-email.phpnuW+APK\rfF GT'includes/admin/settings/emails/class-ur-settings-email-confirmation.phpnuW+APK\;#\ R`'includes/admin/settings/emails/class-ur-settings-awaiting-admin-approval-email.phpnuW+APK\" Pjm'includes/admin/settings/emails/class-ur-settings-registration-approved-email.phpnuW+APK\U Oz'includes/admin/settings/emails/class-ur-settings-registration-pending-email.phpnuW+APK\c~Hn n N'includes/admin/settings/emails/class-ur-settings-registration-denied-email.phpnuW+APK\! R'includes/admin/settings/emails/class-ur-settings-successfully-registered-email.phpnuW+APK\‹ I^'includes/admin/settings/emails/class-ur-settings-reset-password-email.phpnuW+APK\rQQ;'includes/admin/settings/class-ur-settings-import-export.phpnuW+APK\U9`'includes/admin/settings/class-ur-settings-integration.phpnuW+APK\ G333'includes/admin/settings/class-ur-settings-email.phpnuW+APK\9 . .:'includes/admin/class-ur-admin-registrations-table-list.phpnuW+APK\P1qq)(includes/admin/class-ur-admin-notices.phpnuW+APK\YAA3T.(includes/admin/class-ur-admin-user-list-manager.phpnuW+APK\%\C+ (Mp(includes/admin/class-ur-admin-addons.phpnuW+APK\ff2]|(includes/admin/views/html-notice-key-activated.phpnuW+APK\6[(+%~(includes/admin/views/html-notice-custom.phpnuW+APK\cJdNN1z(includes/admin/views/html-notice-registration.phpnuW+APK\&77*)(includes/admin/views/html-notice-error.phpnuW+APK\k;zz1(includes/admin/views/html-notice-deactivation.phpnuW+APK\o;;5(includes/admin/views/html-admin-page-export-users.phpnuW+APK\A\\/5(includes/admin/views/html-admin-page-status.phpnuW+APK\, ww-(includes/admin/views/html-notice-updating.phpnuW+APK\WEYY4ĕ(includes/admin/views/html-admin-page-status-logs.phpnuW+APK\Zjj.(includes/admin/views/html-admin-page-forms.phpnuW+APK\Uz,I(includes/admin/views/html-notice-updated.phpnuW+APK\S//(includes/admin/views/html-admin-page-addons.phpnuW+APK\ ,m(includes/admin/views/html-admin-settings.phpnuW+APK\4(includes/admin/views/html-notice-key-unvalidated.phpnuW+APK\H2oee,(includes/admin/views/html-notice-install.phpnuW+APK\sںbb4y(includes/admin/views/html-notice-key-deactivated.phpnuW+APK\8*?(includes/admin/views/html-license-form.phpnuW+APK\,v +3(includes/admin/views/html-notice-update.phpnuW+APK\,B<{(includes/admin/views/html-admin-page-import-export-forms.phpnuW+APK\\ʏN N ,(includes/admin/class-ur-admin-form-modal.phpnuW+APK\h((includes/admin/class-ur-admin-status.phpnuW+APK\yWڈII5)includes/admin/class-ur-admin-import-export-forms.phpnuW+APK\yB jj")includes/admin/class-ur-config.phpnuW+APK\R J9J9(?)includes/admin/class-ur-admin-assets.phpnuW+APK\N^c;;%V)includes/admin/functions-ur-admin.phpnuW+APK\+T+T))includes/admin/class-ur-admin-profile.phpnuW+APK\-//!j)includes/admin/class-ur-admin.phpnuW+APK\}nuu6*includes/admin/updater/class-ur-plugin-updater-api.phpnuW+APK\5ii2*includes/admin/updater/class-ur-plugin-updates.phpnuW+APK\G::1*includes/admin/updater/class-ur-addon-updater.phpnuW+APK\Nb.N*includes/admin/class-ur-admin-export-users.phpnuW+APK\`R#R#.Cl*includes/admin/class-ur-admin-user-manager.phpnuW+APK\gxx'*includes/admin/class-ur-admin-menus.phpnuW+APK\ߘ   = +includes/class-ur-form-block.phpnuW+APK\uH55+includes/class-ur-ajax.phpnuW+APK\-//hK+includes/functions-ur-core.phpnuW+APK$$w+
              '; $general_setting_wrapper .= ''; $sub_string_key = substr( $this->id, strlen( 'user_registration_' ), 5 ); $strip_prefix = substr( $this->id, 18 ); switch ( $setting_value['type'] ) { case 'text': $extra_attribute = in_array( $strip_prefix, ur_get_fields_without_prefix() ) && 'field_name' == $setting_key ? "disabled='disabled'" : ''; $value = in_array( $strip_prefix, ur_get_fields_without_prefix() ) && 'field_name' == $setting_key ? trim( str_replace( 'user_registration_', '', $this->id ) ) : $this->get_general_setting_data( $setting_key ); $general_setting_wrapper .= ''; break; case 'radio': // Compatibility for older version. Get string value from options in advanced settings. Modified since @1.5.7. $default_options = isset( $this->field_defaults['default_options'] ) ? $this->field_defaults['default_options'] : array(); $old_options = isset( $this->admin_data->advance_setting->options ) ? explode( ',', trim( $this->admin_data->advance_setting->options, ',' ) ) : $default_options; $options = isset( $this->admin_data->general_setting->options ) ? $this->admin_data->general_setting->options : $old_options; $options = array_map( 'trim', $options ); $default_value = $this->get_general_setting_data( 'default_value' ); $default_value = ! empty( $default_value ) ? $default_value : ''; $general_setting_wrapper .= ''; break; case 'checkbox': // Compatibility for older version. Get string value from options in advanced settings. Modified since @1.5.7. $default_options = isset( $this->field_defaults['default_options'] ) ? $this->field_defaults['default_options'] : array(); $old_options = isset( $this->admin_data->advance_setting->choices ) ? explode( ',', trim( $this->admin_data->advance_setting->choices, ',' ) ) : $default_options; $options = isset( $this->admin_data->general_setting->options ) ? $this->admin_data->general_setting->options : $old_options; $options = array_map( 'trim', $options ); $default_values = $this->get_general_setting_data( 'default_value' ); $default_values = ! empty( $default_values ) ? $default_values : array(); $default_values = array_map( 'trim', $default_values ); $general_setting_wrapper .= '
                '; $unique = uniqid(); foreach ( $options as $option ) { $general_setting_wrapper .= '
              • '; $general_setting_wrapper .= '
                '; $general_setting_wrapper .= ''; $general_setting_wrapper .= ''; $general_setting_wrapper .= '
                '; $general_setting_wrapper .= '
              • '; } $general_setting_wrapper .= '
              '; break; case 'select': if ( isset( $setting_value['options'] ) && gettype( $setting_value['options'] ) == 'array' ) { $general_setting_wrapper .= ''; } break; case 'textarea': $general_setting_wrapper .= ''; break; case 'hidden': $value = isset( $setting_value['default'] ) ? $setting_value['default'] : ''; if ( ! empty( $value ) ) { $general_setting_wrapper .= 'id, 18 ); $class = 'ur-general-setting-' . $strip_prefix; $settings = "
              "; $settings .= '

              ' . esc_html__( 'General Settings', 'user-registration' ) . '


              '; $settings .= '
              '; $settings .= $this->get_field_general_settings(); $settings .= '
              '; $settings .= '
              '; $advance_settings = $this->get_field_advance_settings(); if ( ! empty( $advance_settings ) ) { $settings .= "
              "; $settings .= '

              ' . __( 'Advance Settings', 'user-registration' ) . '


              '; $settings .= '
              '; $settings .= $advance_settings; $settings .= '
              '; $settings .= '
              '; } // Redundent code start. ob_start(); do_action( 'user_registration_after_advance_settings', $this->id, $this->admin_data ); $settings .= ob_get_clean(); // Redundent code end. $settings = apply_filters( 'user_registration_after_advance_settings_filter', $settings, $this->id, $this->admin_data ); return $settings; } abstract public function validation( $single_form_field, $form_data, $filter_hook, $form_id ); } PK\B*includes/abstracts/abstract-ur-session.phpnuW+Aget( $key ); } /** * __set function. * * @param mixed $key * @param mixed $value */ public function __set( $key, $value ) { $this->set( $key, $value ); } /** * __isset function. * * @param mixed $key * @return bool */ public function __isset( $key ) { return isset( $this->_data[ sanitize_title( $key ) ] ); } /** * __unset function. * * @param mixed $key */ public function __unset( $key ) { if ( isset( $this->_data[ $key ] ) ) { unset( $this->_data[ $key ] ); $this->_dirty = true; } } /** * Get a session variable. * * @param string $key * @param mixed $default used if the session variable isn't set * @return array|string value of session variable */ public function get( $key, $default = null ) { $key = sanitize_key( $key ); return isset( $this->_data[ $key ] ) ? maybe_unserialize( $this->_data[ $key ] ) : $default; } /** * Set a session variable. * * @param string $key * @param mixed $value */ public function set( $key, $value ) { if ( $value !== $this->get( $key ) ) { $this->_data[ sanitize_key( $key ) ] = maybe_serialize( $value ); $this->_dirty = true; } } /** * get_customer_id function. * * @access public * @return int */ public function get_customer_id() { return $this->_customer_id; } } PK\"1includes/abstracts/abstract-ur-field-settings.phpnuW+Afield_data->advance_setting->$key ) ) { return $this->field_data->advance_setting->$key; } return ''; } /** * @param array $field_data * * @return mixed */ abstract public function output( $field_data = array() ); abstract public function register_fields(); /** * @param $fields */ public function render_html( $fields ) { $this->fields_html = ''; foreach ( $fields as $field_key => $field ) { $this->fields_html .= '
              '; $this->fields_html .= ''; $value = $this->get_advance_setting_data( $field_key ) == '' ? $field['default'] : $this->get_advance_setting_data( $field_key ); switch ( $field['type'] ) { case 'text': $this->fields_html .= 'fields_html .= ' required '; } $this->fields_html .= ' />'; break; case 'select': $this->fields_html .= ''; break; case 'textarea': $this->fields_html .= ''; break; case 'number': $this->fields_html .= 'fields_html .= ' required '; } $this->fields_html .= ' />'; break; default: } $this->fields_html .= '
              '; }// End foreach(). } } PK\)=##3includes/log-handlers/class-ur-log-handler-file.phpnuW+Alog_size_limit = $log_size_limit; add_action( 'plugins_loaded', array( $this, 'write_cached_logs' ) ); } /** * Destructor. * * Cleans up open file handles. */ public function __destruct() { foreach ( $this->handles as $handle ) { if ( is_resource( $handle ) ) { fclose( $handle ); } } } /** * Handle a log entry. * * @param int $timestamp Log timestamp. * @param string $level emergency|alert|critical|error|warning|notice|info|debug * @param string $message Log message. * @param array $context { * Additional information for log handlers. * * @type string $source Optional. Determines log file to write to. Default 'log'. * @type bool $_legacy Optional. Default false. True to use outdated log format * originally used in deprecated UR_Logger::add calls. * } * * @return bool False if value was not handled and true if value was handled. */ public function handle( $timestamp, $level, $message, $context ) { if ( isset( $context['source'] ) && $context['source'] ) { $handle = $context['source']; } else { $handle = 'log'; } $entry = self::format_entry( $timestamp, $level, $message, $context ); return $this->add( $entry, $handle ); } /** * Builds a log entry text from timestamp, level and message. * * @param int $timestamp Log timestamp. * @param string $level emergency|alert|critical|error|warning|notice|info|debug * @param string $message Log message. * @param array $context Additional information for log handlers. * * @return string Formatted log entry. */ protected static function format_entry( $timestamp, $level, $message, $context ) { if ( isset( $context['_legacy'] ) && true === $context['_legacy'] ) { if ( isset( $context['source'] ) && $context['source'] ) { $handle = $context['source']; } else { $handle = 'log'; } $message = apply_filters( 'user_registration_logger_add_message', $message, $handle ); $time = date_i18n( 'm-d-Y @ H:i:s' ); $entry = "{$time} - {$message}"; } else { $entry = parent::format_entry( $timestamp, $level, $message, $context ); } return $entry; } /** * Open log file for writing. * * @param string $handle Log handle. * @param string $mode Optional. File mode. Default 'a'. * * @return bool Success. */ protected function open( $handle, $mode = 'a' ) { if ( $this->is_open( $handle ) ) { return true; } $file = self::get_log_file_path( $handle ); if ( $file ) { if ( ! file_exists( $file ) ) { $temphandle = @fopen( $file, 'w+' ); @fclose( $temphandle ); if ( defined( 'FS_CHMOD_FILE' ) ) { @chmod( $file, FS_CHMOD_FILE ); } } if ( $resource = @fopen( $file, $mode ) ) { $this->handles[ $handle ] = $resource; return true; } } return false; } /** * Check if a handle is open. * * @param string $handle Log handle. * * @return bool True if $handle is open. */ protected function is_open( $handle ) { return array_key_exists( $handle, $this->handles ) && is_resource( $this->handles[ $handle ] ); } /** * Close a handle. * * @param string $handle * * @return bool success */ protected function close( $handle ) { $result = false; if ( $this->is_open( $handle ) ) { $result = fclose( $this->handles[ $handle ] ); unset( $this->handles[ $handle ] ); } return $result; } /** * Add a log entry to chosen file. * * @param string $entry Log entry text * @param string $handle Log entry handle * * @return bool True if write was successful. */ protected function add( $entry, $handle ) { $result = false; if ( $this->should_rotate( $handle ) ) { $this->log_rotate( $handle ); } if ( $this->open( $handle ) && is_resource( $this->handles[ $handle ] ) ) { $result = fwrite( $this->handles[ $handle ], $entry . PHP_EOL ); } else { $this->cache_log( $entry, $handle ); } return false !== $result; } /** * Clear entries from chosen file. * * @param string $handle * * @return bool */ public function clear( $handle ) { $result = false; // Close the file if it's already open. $this->close( $handle ); /** * $this->open( $handle, 'w' ) == Open the file for writing only. Place the file pointer at * the beginning of the file, and truncate the file to zero length. */ if ( $this->open( $handle, 'w' ) && is_resource( $this->handles[ $handle ] ) ) { $result = true; } do_action( 'user_registration_log_clear', $handle ); return $result; } /** * Remove/delete the chosen file. * * @param string $handle * * @return bool */ public function remove( $handle ) { $removed = false; $file = self::get_log_file_path( $handle ); if ( $file ) { if ( is_file( $file ) && is_writable( $file ) ) { $this->close( $handle ); // Close first to be certain no processes keep it alive after it is unlinked. $removed = unlink( $file ); } do_action( 'user_registration_log_remove', $handle, $removed ); } return $removed; } /** * Check if log file should be rotated. * * Compares the size of the log file to determine whether it is over the size limit. * * @param string $handle Log handle * * @return bool True if if should be rotated. */ protected function should_rotate( $handle ) { $file = self::get_log_file_path( $handle ); if ( $file ) { if ( $this->is_open( $handle ) ) { $file_stat = fstat( $this->handles[ $handle ] ); return $file_stat['size'] > $this->log_size_limit; } elseif ( file_exists( $file ) ) { return filesize( $file ) > $this->log_size_limit; } else { return false; } } else { return false; } } /** * Rotate log files. * * Logs are rotatated by prepending '.x' to the '.log' suffix. * The current log plus 10 historical logs are maintained. * For example: * base.9.log -> [ REMOVED ] * base.8.log -> base.9.log * ... * base.0.log -> base.1.log * base.log -> base.0.log * * @param string $handle Log handle */ protected function log_rotate( $handle ) { for ( $i = 8; $i >= 0; $i -- ) { $this->increment_log_infix( $handle, $i ); } $this->increment_log_infix( $handle ); } /** * Increment a log file suffix. * * @param string $handle Log handle * @param null|int $number Optional. Default null. Log suffix number to be incremented. * * @return bool True if increment was successful, otherwise false. */ protected function increment_log_infix( $handle, $number = null ) { if ( null === $number ) { $suffix = ''; $next_suffix = '.0'; } else { $suffix = '.' . $number; $next_suffix = '.' . ( $number + 1 ); } $rename_from = self::get_log_file_path( "{$handle}{$suffix}" ); $rename_to = self::get_log_file_path( "{$handle}{$next_suffix}" ); if ( $this->is_open( $rename_from ) ) { $this->close( $rename_from ); } if ( is_writable( $rename_from ) ) { return rename( $rename_from, $rename_to ); } else { return false; } } /** * Get a log file path. * * @param string $handle Log name. * * @return bool|string The log file path or false if path cannot be determined. */ public static function get_log_file_path( $handle ) { if ( function_exists( 'wp_hash' ) ) { return trailingslashit( UR_LOG_DIR ) . sanitize_file_name( $handle . '-' . wp_hash( $handle ) . '.log' ); } else { ur_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'user-registration' ), '3.0' ); return false; } } /** * Cache log to write later. * * @param string $entry Log entry text * @param string $handle Log entry handle */ protected function cache_log( $entry, $handle ) { $this->cached_logs[] = array( 'entry' => $entry, 'handle' => $handle, ); } /** * Write cached logs. */ public function write_cached_logs() { foreach ( $this->cached_logs as $log ) { $this->add( $log['entry'], $log['handle'] ); } } } PK\;o o "includes/class-ur-cache-helper.phpnuW+Aget_integer( 'dbcache.enabled' ); $settings = array_map( 'trim', $config->get_array( 'dbcache.reject.sql' ) ); if ( $enabled && ! in_array( '_ur_session_', $settings, true ) ) { ?>

              database caching to work with User Registration you must add %1$s to the "Ignored Query Strings" option in W3 Total Cache settings.', 'user-registration' ), '_ur_session_', esc_url( admin_url( 'admin.php?page=w3tc_dbcache' ) ) ) ); ?>

              'add-new-registration', 'edit-registration' => $form_id, ), admin_url( 'admin.php' ) ); $link = '' . __( 'Edit Form', 'user-registration' ) . ''; return $link; } /** * Hook into pre_get_posts to limit posts. * * @param WP_Query $q Query instance. */ public function pre_get_posts( $q ) { // Limit one post to query. if ( $q->is_main_query() ) { $q->set( 'posts_per_page', 1 ); } } /** * Limit page templates to singular pages only. * * @return string */ public function template_include() { return locate_template( array( 'page.php', 'single.php' ) ); } /** * Handles the preview of form. */ public function handle_preview() { if ( ! is_user_logged_in() ) { return; } if ( isset( $_GET['form_id'] ) ) { add_filter( 'the_title', array( $this, 'form_preview_title' ) ); add_filter( 'the_content', array( $this, 'form_preview_content' ) ); } } /** * Filter the title and insert form preview title. * * @param string $title Existing title. * @return string */ public static function form_preview_title( $title ) { $form_id = absint( $_GET['form_id'] ); // @codingStandardsIgnoreLine if ( $form_id && in_the_loop() ) { $form_data = UR()->form->get_form( $form_id ); if ( ! empty( $form_data ) ) { /* translators: %s - Form name. */ return sprintf( esc_html__( '%s – Preview', 'user-registration' ), sanitize_text_field( $form_data->post_title ) ); } } return $title; } /** * Displays content of form preview. * * @param string $content Page/Post content. * @return string */ public function form_preview_content( $content ) { $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; remove_filter( 'the_content', array( $this, 'form_preview_content_filter' ) ); if ( function_exists( 'apply_shortcodes' ) ) { $content = apply_shortcodes( '[user_registration_form id="' . $form_id . '"]' ); } else { $content = do_shortcode( '[user_registration_form id="' . $form_id . '"]' ); } return $content; } /** * Handles the preview of login form. */ public function handle_login_preview() { if ( ! is_user_logged_in() ) { return; } add_filter( 'the_title', array( $this, 'login_form_preview_title' ) ); add_filter( 'the_content', array( $this, 'login_form_preview_content' ) ); } /** * Filter the title and insert form preview title. * * @param string $title Existing title. * @return string */ public static function login_form_preview_title( $title ) { if ( in_the_loop() ) { /* translators: %s - Form name. */ return sprintf( esc_html__( '%s – Preview', 'user-registration' ), sanitize_text_field( 'Login Form' ) ); } return $title; } /** * Displays content of login form preview. * * @param string $content Page/Post content. * @return string */ public function login_form_preview_content( $content ) { remove_filter( 'the_content', array( $this, 'form_preview_content_filter' ) ); wp_enqueue_script( 'ur-my-account' ); $recaptcha_enabled = get_option( 'user_registration_login_options_enable_recaptcha', 'no' ); $recaptcha_node = ur_get_recaptcha_node( $recaptcha_enabled, 'login' ); ob_start(); ur_get_template( 'myaccount/form-login.php', array( 'recaptcha_node' => $recaptcha_node, 'redirect' => '', ) ); return ob_get_clean(); } } new UR_Preview(); PK\ includes/class-ur-log-levels.phpnuW+A 800, self::ALERT => 700, self::CRITICAL => 600, self::ERROR => 500, self::WARNING => 400, self::NOTICE => 300, self::INFO => 200, self::DEBUG => 100, ); /** * Severity integers mapped to level strings. * * This is the inverse of $level_severity. * * @var array */ protected static $severity_to_level = array( 800 => self::EMERGENCY, 700 => self::ALERT, 600 => self::CRITICAL, 500 => self::ERROR, 400 => self::WARNING, 300 => self::NOTICE, 200 => self::INFO, 100 => self::DEBUG, ); /** * Validate a level string. * * @param string $level * * @return bool True if $level is a valid level. */ public static function is_valid_level( $level ) { return array_key_exists( strtolower( $level ), self::$level_to_severity ); } /** * Translate level string to integer. * * @param string $level emergency|alert|critical|error|warning|notice|info|debug * * @return int 100 (debug) - 800 (emergency) or 0 if not recognized */ public static function get_level_severity( $level ) { if ( self::is_valid_level( $level ) ) { $severity = self::$level_to_severity[ strtolower( $level ) ]; } else { $severity = 0; } return $severity; } /** * Translate severity integer to level string. * * @param int $severity * * @return bool|string False if not recognized. Otherwise string representation of level. */ public static function get_severity_level( $severity ) { if ( array_key_exists( $severity, self::$severity_to_level ) ) { return self::$severity_to_level[ $severity ]; } else { return false; } } } PK\I.I.$includes/class-ur-plugin-updater.phpnuW+Ainit_updates( UR_PLUGIN_FILE ); } /** * Init the updater. */ public function init_updates( $_plugin_file ) { $this->plugin_file = $_plugin_file; $this->plugin_slug = str_replace( '.php', '', basename( $this->plugin_file ) ); $this->plugin_name = basename( dirname( $this->plugin_file ) ) . '/' . $this->plugin_slug . '.php'; register_activation_hook( $this->plugin_name, array( $this, 'plugin_activation' ), 10 ); register_deactivation_hook( $this->plugin_name, array( $this, 'plugin_deactivation' ), 10 ); add_filter( 'block_local_requests', '__return_false' ); add_action( 'admin_init', array( $this, 'admin_init' ) ); // Include required files. include_once dirname( __FILE__ ) . '/admin/updater/class-ur-plugin-updater-api.php'; } /** * Run on admin init. */ public function admin_init() { $this->load_errors(); add_action( 'shutdown', array( $this, 'store_errors' ) ); $this->api_key = get_option( $this->plugin_slug . '_license_key' ); $this->plugin_data = get_plugin_data( $this->plugin_file ); // Check to make sure we've RP extensions and plugin update capability. $extensions = $this->get_plugins_with_header( self::VERSION_TESTED_HEADER ); if ( ! empty( $extensions ) && current_user_can( 'update_plugins' ) ) { $this->plugin_requests(); $this->plugin_license_view(); } } /** * Process plugin requests. */ private function plugin_requests() { if ( ! empty( $_POST[ $this->plugin_slug . '_license_key' ] ) ) { $this->activate_license_request(); } elseif ( ! empty( $_GET[ $this->plugin_slug . '_deactivate_license' ] ) ) { $this->deactivate_license_request(); } elseif ( ! empty( $_GET[ 'dismiss-' . sanitize_title( $this->plugin_slug ) ] ) ) { update_option( $this->plugin_slug . '_hide_key_notice', 1 ); } elseif ( ! empty( $_GET['activated_license'] ) && $_GET['activated_license'] === $this->plugin_slug ) { $this->add_notice( array( $this, 'activated_key_notice' ) ); } elseif ( ! empty( $_GET['deactivated_license'] ) && $_GET['deactivated_license'] === $this->plugin_slug ) { $this->add_notice( array( $this, 'deactivated_key_notice' ) ); } } /** * Activate a license request. */ private function activate_license_request() { $license_key = sanitize_text_field( $_POST[ $this->plugin_slug . '_license_key' ] ); if ( $this->activate_license( $license_key ) ) { wp_redirect( remove_query_arg( array( 'deactivated_license', $this->plugin_slug . '_deactivate_license' ), add_query_arg( 'activated_license', $this->plugin_slug ) ) ); exit; } else { wp_redirect( remove_query_arg( array( 'activated_license', 'deactivated_license', $this->plugin_slug . '_deactivate_license' ) ) ); exit; } } /** * Deactivate a license request */ private function deactivate_license_request() { $this->deactivate_license(); wp_redirect( remove_query_arg( array( 'activated_license', $this->plugin_slug . '_deactivate_license' ), add_query_arg( 'deactivated_license', $this->plugin_slug ) ) ); exit; } /** * Display plugin license view. */ private function plugin_license_view() { if ( ! $this->api_key ) { add_action( 'after_plugin_row', array( $this, 'plugin_license_form' ) ); $this->add_notice( array( $this, 'key_notice' ) ); } else { add_filter( 'plugin_action_links_' . $this->plugin_name, array( $this, 'plugin_action_links' ) ); } add_action( 'admin_notices', array( $this, 'error_notices' ) ); } /** * Add notices */ private function add_notice( $callback ) { add_action( 'admin_notices', $callback ); add_action( 'network_admin_notices', $callback ); } /** * Add an error message * * @param string $message Your error message * @param string $type Type of error message */ public function add_error( $message, $type = '' ) { if ( $type ) { $this->errors[ $type ] = $message; } else { $this->errors[] = $message; } } /** * Load errors from option */ public function load_errors() { $this->errors = get_option( $this->plugin_slug . '_errors', array() ); } /** * Store errors in option */ public function store_errors() { if ( sizeof( $this->errors ) > 0 ) { update_option( $this->plugin_slug . '_errors', $this->errors ); } else { delete_option( $this->plugin_slug . '_errors' ); } } /** * Output errors */ public function error_notices() { if ( ! empty( $this->errors ) ) { foreach ( $this->errors as $key => $error ) { include dirname( __FILE__ ) . '/admin/views/html-notice-error.php'; if ( $key !== 'invalid_key' && did_action( 'all_admin_notices' ) ) { unset( $this->errors[ $key ] ); } } } } /** * Ran on plugin-activation. */ public function plugin_activation() { delete_option( $this->plugin_slug . '_hide_key_notice' ); } /** * Ran on plugin-deactivation. */ public function plugin_deactivation() { delete_option( 'user_registration_activated' ); $this->deactivate_license(); } /** * Show the input form for the license key. */ public function plugin_license_form( $plugin_file ) { if ( strtolower( basename( dirname( $plugin_file ) ) ) === strtolower( $this->plugin_slug ) ) { include_once dirname( __FILE__ ) . '/admin/views/html-license-form.php'; } } /** * Display action links in the Plugins list table. * * @param array $actions * @return array */ public function plugin_action_links( $actions ) { $new_actions = array( 'deactivate_license' => '' . __( 'Deactivate License', 'user-registration' ) . '', ); return array_merge( $actions, $new_actions ); } /** * Try to activate a license. */ public function activate_license( $license_key ) { try { if ( empty( $license_key ) ) { throw new Exception( 'Please enter your license key' ); } $activate_results = json_decode( UR_Updater_Key_API::activate( array( 'license' => $license_key, ) ) ); // Update activate results. update_option( $this->plugin_slug . '_license_active', $activate_results ); if ( ! empty( $activate_results ) && is_object( $activate_results ) ) { if ( isset( $activate_results->error_code ) ) { throw new Exception( $activate_results->error ); } elseif ( false === $activate_results->success ) { switch ( $activate_results->error ) { case 'expired': $error_msg = sprintf( __( 'The provided license key expired on %1$s. Please renew your license key.', 'user-registration' ), date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ), 'https://wpeverest.com/checkout/?edd_license_key=' . $license_key . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired' ); break; case 'revoked': $error_msg = sprintf( __( 'The provided license key has been disabled. Please contact support for more information.', 'user-registration' ), 'https://wpeverest.com/contact?utm_campaign=admin&utm_source=licenses&utm_medium=revoked' ); break; case 'missing': $error_msg = sprintf( __( 'The provided license is invalid. Please visit your account page and verify it.', 'user-registration' ), 'https://wpeverest.com/my-account?utm_campaign=admin&utm_source=licenses&utm_medium=missing' ); break; case 'invalid': case 'site_inactive': $error_msg = sprintf( __( 'The provided license is not active for this URL. Please visit your account page to manage your license key URLs.', 'user-registration' ), 'https://wpeverest.com/my-account?utm_campaign=admin&utm_source=licenses&utm_medium=missing' ); break; case 'invalid_item_id': case 'item_name_mismatch': $error_msg = sprintf( __( 'This appears to be an invalid license key for %1$s.', 'user-registration' ), $this->plugin_data['Name'] ); break; case 'no_activations_left': $error_msg = sprintf( __( 'The provided license key has reached its activation limit. Please View possible upgrades now.', 'user-registration' ), 'https://wpeverest.com/my-account/' ); break; case 'license_not_activable': $error_msg = __( 'The key you entered belongs to a bundle, please use the product specific license key.', 'user-registration' ); break; default: $error_msg = sprintf( __( 'The provided license key could not be found. Please contact support for more information.', 'user-registration' ), 'https://wpeverest.com/contact/' ); break; } throw new Exception( sprintf( __( 'Activation error: %1$s', 'user-registration' ), $error_msg ) ); } elseif ( 'valid' === $activate_results->license ) { $this->api_key = $license_key; $this->errors = array(); update_option( $this->plugin_slug . '_license_key', $this->api_key ); delete_option( $this->plugin_slug . '_errors' ); return true; } throw new Exception( 'License could not activate. Please contact support.' ); } else { throw new Exception( 'Connection failed to the License Key API server - possible server issue.' ); } } catch ( Exception $e ) { $this->add_error( $e->getMessage() ); return false; } } /** * Deactivate a license. */ public function deactivate_license() { $reset = UR_Updater_Key_API::deactivate( array( 'license' => $this->api_key, ) ); delete_option( $this->plugin_slug . '_errors' ); delete_option( $this->plugin_slug . '_license_key' ); delete_option( $this->plugin_slug . '_license_active' ); // Reset huh? $this->errors = array(); $this->api_key = ''; } /** * Show a notice prompting the user to update. */ public function key_notice() { if ( sizeof( $this->errors ) === 0 && ! get_option( $this->plugin_slug . '_hide_key_notice' ) ) { include dirname( __FILE__ ) . '/admin/views/html-notice-key-unvalidated.php'; } } /** * Activation success notice. */ public function activated_key_notice() { include dirname( __FILE__ ) . '/admin/views/html-notice-key-activated.php'; } /** * Dectivation success notice. */ public function deactivated_key_notice() { include dirname( __FILE__ ) . '/admin/views/html-notice-key-deactivated.php'; } } new UR_Plugin_Updater(); PK\(P!!%includes/class-ur-session-handler.phpnuW+A_cookie = apply_filters( 'user_registrtaion_cookie', 'wp_user_registration_session_' . COOKIEHASH ); $this->_table = $wpdb->prefix . 'user_registration_sessions'; if ( $cookie = $this->get_session_cookie() ) { $this->_customer_id = $cookie[0]; $this->_session_expiration = $cookie[1]; $this->_session_expiring = $cookie[2]; $this->_has_cookie = true; // Update session if its close to expiring if ( time() > $this->_session_expiring ) { $this->set_session_expiration(); $this->update_session_timestamp( $this->_customer_id, $this->_session_expiration ); } } else { $this->set_session_expiration(); $this->_customer_id = $this->generate_customer_id(); } $this->_data = $this->get_session_data(); // Actions add_action( 'shutdown', array( $this, 'save_data' ), 20 ); add_action( 'wp_logout', array( $this, 'destroy_session' ) ); if ( ! is_user_logged_in() ) { add_filter( 'nonce_user_logged_out', array( $this, 'nonce_user_logged_out' ) ); } } /** * Sets the session cookie on-demand (usually after adding an item to the cart). * * Since the cookie name (as of 2.1) is prepended with wp, cache systems like batcache will not cache pages when set. * * Warning: Cookies will only be set if this is called before the headers are sent. * * @param bool $set */ public function set_customer_session_cookie( $set ) { if ( $set ) { // Set/renew our cookie $to_hash = $this->_customer_id . '|' . $this->_session_expiration; $cookie_hash = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) ); $cookie_value = $this->_customer_id . '||' . $this->_session_expiration . '||' . $this->_session_expiring . '||' . $cookie_hash; $this->_has_cookie = true; // Set the cookie ur_setcookie( $this->_cookie, $cookie_value, $this->_session_expiration, apply_filters( 'ur_session_use_secure_cookie', false ) ); } } /** * Return true if the current user has an active session, i.e. a cookie to retrieve values. * * @return bool */ public function has_session() { return isset( $_COOKIE[ $this->_cookie ] ) || $this->_has_cookie || is_user_logged_in(); } /** * Set session expiration. */ public function set_session_expiration() { $this->_session_expiring = time() + intval( apply_filters( 'ur_session_expiring', 60 * 60 * 47 ) ); // 47 Hours. $this->_session_expiration = time() + intval( apply_filters( 'ur_session_expiration', 60 * 60 * 48 ) ); // 48 Hours. } /** * Generate a unique customer ID for guests, or return user ID if logged in. * * Uses Portable PHP password hashing framework to generate a unique cryptographically strong ID. * * @return int|string */ public function generate_customer_id() { if ( is_user_logged_in() ) { return get_current_user_id(); } else { require_once ABSPATH . 'wp-includes/class-phpass.php'; $hasher = new PasswordHash( 8, false ); return md5( $hasher->get_random_bytes( 32 ) ); } } /** * Get session cookie. * * @return bool|array */ public function get_session_cookie() { if ( empty( $_COOKIE[ $this->_cookie ] ) || ! is_string( $_COOKIE[ $this->_cookie ] ) ) { return false; } list( $customer_id, $session_expiration, $session_expiring, $cookie_hash ) = explode( '||', $_COOKIE[ $this->_cookie ] ); // Validate hash $to_hash = $customer_id . '|' . $session_expiration; $hash = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) ); if ( empty( $cookie_hash ) || ! hash_equals( $hash, $cookie_hash ) ) { return false; } return array( $customer_id, $session_expiration, $session_expiring, $cookie_hash ); } /** * Get session data. * * @return array */ public function get_session_data() { return $this->has_session() ? (array) $this->get_session( $this->_customer_id, array() ) : array(); } /** * Get prefix for use with wp_cache_set. Allows all cache in a group to be invalidated at once. * * @param string $group * @return string */ private function get_cache_prefix( $group = UR_SESSION_CACHE_GROUP ) { // Get cache key $prefix = wp_cache_get( 'ur_' . $group . '_cache_prefix', $group ); if ( false === $prefix ) { $prefix = 1; wp_cache_set( 'ur_' . $group . '_cache_prefix', $prefix, $group ); } return 'ur_cache_' . $prefix . '_'; } /** * Increment group cache prefix (invalidates cache). * * @param string $group */ public function incr_cache_prefix( $group = UR_SESSION_CACHE_GROUP ) { wp_cache_incr( 'ur_' . $group . '_cache_prefix', 1, $group ); } /** * Save data. */ public function save_data() { // Dirty if something changed - prevents saving nothing new if ( $this->_dirty && $this->has_session() ) { global $wpdb; $wpdb->replace( $this->_table, array( 'session_key' => $this->_customer_id, 'session_value' => maybe_serialize( $this->_data ), 'session_expiry' => $this->_session_expiration, ), array( '%s', '%s', '%d', ) ); // Set cache wp_cache_set( $this->get_cache_prefix() . $this->_customer_id, $this->_data, UR_SESSION_CACHE_GROUP, $this->_session_expiration - time() ); // Mark session clean after saving $this->_dirty = false; } } /** * Destroy all session data. */ public function destroy_session() { // Clear cookie ur_setcookie( $this->_cookie, '', time() - YEAR_IN_SECONDS, apply_filters( 'ur_session_use_secure_cookie', false ) ); $this->delete_session( $this->_customer_id ); // Clear data $this->_data = array(); $this->_dirty = false; $this->_customer_id = $this->generate_customer_id(); } /** * When a user is logged out, ensure they have a unique nonce by using the customer/session ID. * * @param int $uid * * @return string */ public function nonce_user_logged_out( $uid ) { return $this->has_session() && $this->_customer_id ? $this->_customer_id : $uid; } /** * Cleanup sessions. */ public function cleanup_sessions() { global $wpdb; if ( ! defined( 'WP_SETUP_CONFIG' ) && ! defined( 'WP_INSTALLING' ) ) { // Delete expired sessions $wpdb->query( $wpdb->prepare( "DELETE FROM $this->_table WHERE session_expiry < %d", time() ) ); // Invalidate cache $this->incr_cache_prefix(); } } /** * Returns the session. * * @param string $customer_id * @param mixed $default * @return string|array */ public function get_session( $customer_id, $default = false ) { global $wpdb; if ( defined( 'WP_SETUP_CONFIG' ) ) { return false; } // Try get it from the cache, it will return false if not present or if object cache not in use $value = wp_cache_get( $this->get_cache_prefix() . $customer_id, UR_SESSION_CACHE_GROUP ); if ( false === $value ) { $value = $wpdb->get_var( $wpdb->prepare( "SELECT session_value FROM $this->_table WHERE session_key = %s", $customer_id ) ); if ( is_null( $value ) ) { $value = $default; } wp_cache_add( $this->get_cache_prefix() . $customer_id, $value, UR_SESSION_CACHE_GROUP, $this->_session_expiration - time() ); } return maybe_unserialize( $value ); } /** * Delete the session from the cache and database. * * @param int $customer_id */ public function delete_session( $customer_id ) { global $wpdb; wp_cache_delete( $this->get_cache_prefix() . $customer_id, UR_SESSION_CACHE_GROUP ); $wpdb->delete( $this->_table, array( 'session_key' => $customer_id, ) ); } /** * Update the session expiry timestamp. * * @param string $customer_id * @param int $timestamp */ public function update_session_timestamp( $customer_id, $timestamp ) { global $wpdb; $wpdb->update( $this->_table, array( 'session_expiry' => $timestamp, ), array( 'session_key' => $customer_id, ), array( '%d', ) ); } } PK\'6A6A6&includes/class-ur-frontend-scripts.phpnuW+A array( 'src' => self::get_asset_url( 'assets/css/user-registration.css' ), 'deps' => '', 'version' => UR_VERSION, 'media' => 'all', 'has_rtl' => true, ), 'user-registration-smallscreen' => array( 'src' => self::get_asset_url( 'assets/css/user-registration-smallscreen.css' ), 'deps' => '', 'version' => UR_VERSION, 'media' => 'only screen and (max-width: ' . apply_filters( 'user_registration_style_smallscreen_breakpoint', $breakpoint = '768px' ) . ')', 'has_rtl' => true, ), 'user-registration-my-account-layout' => array( 'src' => self::get_asset_url( 'assets/css/my-account-layout.css' ), 'deps' => '', 'version' => UR_VERSION, 'media' => 'all', ), 'sweetalert2' => array( 'src' => UR()->plugin_url() . '/assets/css/sweetalert2/sweetalert2.min.css', 'deps' => '', 'version' => '8.17.1', 'media' => 'all', ), ) ); } /** * Return asset URL. * * @param string $path * * @return string */ private static function get_asset_url( $path ) { return apply_filters( 'user_registration_get_asset_url', plugins_url( $path, UR_PLUGIN_FILE ), $path ); } /** * Register a script for use. * * @uses wp_register_script() * @access private * * @param string $handle * @param string $path * @param string[] $deps * @param string $version * @param boolean $in_footer */ private static function register_script( $handle, $path, $deps = array( 'jquery' ), $version = UR_VERSION, $in_footer = true ) { self::$scripts[] = $handle; wp_register_script( $handle, $path, $deps, $version, $in_footer ); } /** * Register and enqueue a script for use. * * @uses wp_enqueue_script() * @access private * * @param string $handle * @param string $path * @param string[] $deps * @param string $version * @param boolean $in_footer */ private static function enqueue_script( $handle, $path = '', $deps = array( 'jquery' ), $version = UR_VERSION, $in_footer = true ) { if ( ! in_array( $handle, self::$scripts ) && $path ) { self::register_script( $handle, $path, $deps, $version, $in_footer ); } wp_enqueue_script( $handle ); } /** * Register a style for use. * * @uses wp_register_style() * @access private * * @param string $handle * @param string $path * @param string[] $deps * @param string $version * @param string $media * @param boolean $has_rtl */ private static function register_style( $handle, $path, $deps = array(), $version = UR_VERSION, $media = 'all', $has_rtl = false ) { self::$styles[] = $handle; wp_register_style( $handle, $path, $deps, $version, $media ); if ( $has_rtl ) { wp_style_add_data( $handle, 'rtl', 'replace' ); } } /** * Register and enqueue a styles for use. * * @uses wp_enqueue_style() * @access private * * @param string $handle * @param string $path * @param string[] $deps * @param string $version * @param string $media * @param boolean $has_rtl */ private static function enqueue_style( $handle, $path = '', $deps = array(), $version = UR_VERSION, $media = 'all', $has_rtl = false ) { if ( ! in_array( $handle, self::$styles ) && $path ) { self::register_style( $handle, $path, $deps, $version, $media, $has_rtl ); } wp_enqueue_style( $handle ); } /** * Register all UR scripts. */ private static function register_scripts() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; $recaptcha_site_key_v3 = get_option( 'user_registration_integration_setting_recaptcha_site_key_v3' ); $register_scripts = array( 'ur-inputmask' => array( 'src' => self::get_asset_url( 'assets/js/inputmask/jquery.inputmask.bundle' . $suffix . '.js' ), 'deps' => array( 'jquery' ), 'version' => '4.0.0-beta.58', ), 'flatpickr' => array( 'src' => self::get_asset_url( 'assets/js/flatpickr/flatpickr.min.js' ), 'deps' => array( 'jquery' ), 'version' => '4.5.1', ), 'ur-jquery-validate' => array( 'src' => self::get_asset_url( 'assets/js/frontend/jquery.validate' . $suffix . '.js' ), 'deps' => array( 'jquery' ), 'version' => '1.15.1', ), 'user-registration' => array( 'src' => self::get_asset_url( 'assets/js/frontend/user-registration' . $suffix . '.js' ), 'deps' => array( 'jquery', 'ur-jquery-validate', 'ur-inputmask' ), 'version' => UR_VERSION, ), 'ur-lost-password' => array( 'src' => self::get_asset_url( 'assets/js/frontend/lost-password' . $suffix . '.js' ), 'deps' => array( 'jquery', 'user-registration' ), 'version' => UR_VERSION, ), 'ur-password-strength-meter' => array( 'src' => self::get_asset_url( 'assets/js/frontend/password-strength-meter' . $suffix . '.js' ), 'deps' => array( 'jquery', 'password-strength-meter' ), 'version' => UR_VERSION, ), 'ur-google-recaptcha' => array( 'src' => 'https://www.google.com/recaptcha/api.js?onload=onloadURCallback&render=explicit', 'deps' => array(), 'version' => '2.0.0', ), 'ur-google-recaptcha-v3' => array( 'src' => 'https://www.google.com/recaptcha/api.js?render=' . $recaptcha_site_key_v3, 'deps' => array(), 'version' => '3.0.0', ), 'ur-my-account' => array( 'src' => self::get_asset_url( 'assets/js/frontend/my-account' . $suffix . '.js' ), 'deps' => array( 'jquery', 'user-registration' ), 'version' => UR_VERSION, ), 'jquery-tiptip' => array( 'src' => self::get_asset_url( 'assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js' ), 'deps' => array( 'jquery' ), 'version' => '1.3.0', ), 'selectWoo' => array( 'src' => self::get_asset_url( 'assets/js/selectWoo/selectWoo.full' . $suffix . '.js' ), 'deps' => array( 'jquery' ), 'version' => '3.5.4', ), 'sweetalert2' => array( 'src' => UR()->plugin_url() . '/assets/js/sweetalert2/sweetalert2.min.js', 'deps' => array( 'jquery' ), 'version' => '8.17.1', ), ); foreach ( $register_scripts as $name => $props ) { self::register_script( $name, $props['src'], $props['deps'], $props['version'] ); } } /** * Register all UR styles. */ private static function register_styles() { $register_styles = array( 'jquery-ui-css' => array( 'src' => self::get_asset_url( 'assets/css/jquery-ui/jquery-ui.css' ), 'deps' => '', 'version' => '1.12.1', 'media' => 'all', 'has_rtl' => false, ), 'flatpickr' => array( 'src' => self::get_asset_url( 'assets/css/flatpickr/flatpickr.min.css' ), 'deps' => array(), 'version' => '4.5.1', 'media' => 'all', 'has_rtl' => false, ), 'select2' => array( 'src' => self::get_asset_url( 'assets/css/select2.css' ), 'deps' => array(), 'version' => UR_VERSION, 'has_rtl' => false, ), ); foreach ( $register_styles as $name => $props ) { self::register_style( $name, $props['src'], $props['deps'], $props['version'], 'all', $props['has_rtl'] ); } } /** * Register/queue frontend scripts. */ public static function load_scripts() { global $post; if ( ! did_action( 'before_user_registration_init' ) ) { return; } self::register_scripts(); self::register_styles(); if ( is_ur_lost_password_page() ) { self::enqueue_script( 'ur-lost-password' ); } // CSS Styles if ( $enqueue_styles = self::get_styles() ) { foreach ( $enqueue_styles as $handle => $args ) { if ( ! isset( $args['has_rtl'] ) ) { $args['has_rtl'] = false; } self::enqueue_style( $handle, $args['src'], $args['deps'], $args['version'], $args['media'], $args['has_rtl'] ); } } wp_enqueue_style( 'dashicons' ); } /** * Localize a UR script once. * * @access private * * @param string $handle */ private static function localize_script( $handle ) { if ( ! in_array( $handle, self::$wp_localize_scripts ) && wp_script_is( $handle ) && ( $data = self::get_script_data( $handle ) ) ) { $name = str_replace( '-', '_', $handle ) . '_params'; self::$wp_localize_scripts[] = $handle; wp_localize_script( $handle, $name, apply_filters( $name, $data ) ); } } /** * Return data for script handles. * * @access private * * @param string $handle * * @return array|bool */ private static function get_script_data( $handle ) { switch ( $handle ) { case 'user-registration': return array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'user_registration_form_data_save' => wp_create_nonce( 'user_registration_form_data_save_nonce' ), 'form_required_fields' => ur_get_required_fields(), 'login_option' => get_option( 'user_registration_general_setting_login_options' ), 'message_required_fields' => get_option( 'user_registration_form_submission_error_message_required_fields', __( 'This field is required.', 'user-registration' ) ), 'message_email_fields' => get_option( 'user_registration_form_submission_error_message_email', __( 'Please enter a valid email address.', 'user-registration' ) ), 'message_url_fields' => get_option( 'user_registration_form_submission_error_message_website_URL', __( 'Please enter a valid URL.', 'user-registration' ) ), 'message_number_fields' => get_option( 'user_registration_form_submission_error_message_number', __( 'Please enter a valid number.', 'user-registration' ) ), 'message_confirm_password_fields' => get_option( 'user_registration_form_submission_error_message_confirm_password', __( 'Password and confirm password not matched.', 'user-registration' ) ), 'message_validate_phone_number' => get_option( 'user_registration_form_submission_error_message_phone_number', __( 'Please enter a valid phone number.', 'user-registration' ) ), 'message_confirm_email_fields' => get_option( 'user_registration_form_submission_error_message_confirm_email', __( 'Email and confirm email not matched.', 'user-registration' ) ), 'ursL10n' => array( 'user_successfully_saved' => get_option( 'user_registration_successful_form_submission_message_manual_registation', __( 'User successfully registered.', 'user-registration' ) ), 'user_under_approval' => get_option( 'user_registration_successful_form_submission_message_admin_approval', __( 'User registered. Wait until admin approves your registration.', 'user-registration' ) ), 'user_email_pending' => get_option( 'user_registration_successful_form_submission_message_email_confirmation', __( 'User registered. Verify your email by clicking on the link sent to your email.', 'user-registration' ) ), 'captcha_error' => get_option( 'user_registration_form_submission_error_message_recaptcha', __( 'Captcha code error, please try again.', 'user-registration' ) ), 'hide_password_title' => __( 'Hide Password', 'user-registration' ), 'show_password_title' => __( 'Show Password', 'user-registration' ), 'password_strength_error' => __( 'Password strength is not strong enough', 'user-registration' ), ), ); break; case 'ur-password-strength-meter': return array( 'home_url' => home_url(), 'i18n_password_error' => esc_attr__( 'Please enter a stronger password.', 'user-registration' ), 'pwsL10n' => array( 'shortpw' => __( 'Very Weak', 'user-registration' ), 'bad' => __( 'Weak', 'user-registration' ), 'good' => __( 'Medium', 'user-registration' ), 'strong' => __( 'Strong', 'user-registration' ), 'mismatch' => __( 'Password with confirm password not matched.', 'user-registration' ), ), 'i18n_password_hint' => apply_filters( 'user_registration_strong_password_message', __( 'Hint: To make password stronger, use upper and lower case letters, numbers, and symbols like ! " ? $ % ^ & ).', 'user-registration' ) ), ); break; } return false; } /** * Localize scripts only when enqueued. */ public static function localize_printed_scripts() { foreach ( self::$scripts as $handle ) { self::localize_script( $handle ); } } } UR_Frontend_Scripts::init(); PK\Of!includes/functions-ur-account.phpnuW+A' . __( 'ERROR:', 'user-registration' ) . '' . __( 'The password you entered for username %1$1s is incorrect. %2$2s', 'user-registration' ), $_POST['username'], "" . __( 'Lost Your Password?', 'user-registration' ) . '' ); } // It's invalid username. elseif ( is_int( $pos2 ) && isset( $_POST['username'] ) ) { $error = sprintf( '' . __( 'ERROR:', 'user-registration' ) . '' . __( 'Invalid username. %1s', 'user-registration' ), "" . __( 'Lost Your Password?', 'user-registration' ) . '' ); } return $error; } /** * Returns the url to the lost password endpoint url. * * @param string $default_url * * @return string */ function ur_lostpassword_url( $default_url = '' ) { // Don't redirect to the user registration endpoint on global network admin lost passwords. if ( is_multisite() && isset( $_GET['redirect_to'] ) && false !== strpos( $_GET['redirect_to'], network_admin_url() ) ) { return $default_url; } // Don't change default url if admin side login form. if ( $GLOBALS['pagenow'] === 'wp-login.php' ) { return $default_url; } $ur_account_page_url = ur_get_page_permalink( 'myaccount' ); $ur_account_page_exists = ur_get_page_id( 'myaccount' ) > 0; $lost_password_endpoint = get_option( 'user_registration_myaccount_lost_password_endpoint', 'lost-password' ); if ( $ur_account_page_exists && ! empty( $lost_password_endpoint ) ) { return ur_get_endpoint_url( $lost_password_endpoint, '', $ur_account_page_url ); } else { return $default_url; } } add_filter( 'lostpassword_url', 'ur_lostpassword_url', 20, 1 ); /** * Get My Account menu items. * * @return array */ function ur_get_account_menu_items() { $endpoints = array( 'edit-profile' => get_option( 'user_registration_myaccount_edit_profile_endpoint', 'edit-profile' ), 'edit-password' => get_option( 'user_registration_myaccount_change_password_endpoint', 'edit-password' ), 'user-logout' => get_option( 'user_registration_logout_endpoint', 'user-logout' ), ); $items = array( 'dashboard' => __( 'Dashboard', 'user-registration' ), 'edit-profile' => __( 'Profile Details', 'user-registration' ), 'edit-password' => __( 'Change Password', 'user-registration' ), 'user-logout' => __( 'Logout', 'user-registration' ), ); $user_id = get_current_user_id(); $form_id = ur_get_form_id_by_userid( $user_id ); $profile = user_registration_form_data( $user_id, $form_id ); if ( count( $profile ) < 1 ) { unset( $items['edit-profile'] ); } // Remove missing endpoints. foreach ( $endpoints as $endpoint_id => $endpoint ) { if ( empty( $endpoint ) ) { unset( $items[ $endpoint_id ] ); } } return apply_filters( 'user_registration_account_menu_items', $items ); } /** * Get account menu item classes. * * @param string $endpoint * * @return string */ function ur_get_account_menu_item_classes( $endpoint ) { global $wp; $classes = array( 'user-registration-MyAccount-navigation-link', 'user-registration-MyAccount-navigation-link--' . $endpoint, ); // Set current item class. $current = isset( $wp->query_vars[ $endpoint ] ); if ( 'dashboard' === $endpoint && ( isset( $wp->query_vars['page'] ) || empty( $wp->query_vars ) ) ) { $current = true; // Dashboard is not an endpoint, so needs a custom check. } if ( $current ) { $classes[] = 'is-active'; } $classes = apply_filters( 'user_registration_account_menu_item_classes', $classes, $endpoint ); return implode( ' ', array_map( 'sanitize_html_class', $classes ) ); } /** * Get account endpoint URL. * * @since 2.6.0 * * @param string $endpoint * * @return string */ function ur_get_account_endpoint_url( $endpoint ) { if ( 'dashboard' === $endpoint ) { return ur_get_page_permalink( 'myaccount' ); } return ur_get_endpoint_url( $endpoint, '', ur_get_page_permalink( 'myaccount' ) ); } /** * Custom function to override get_gavatar function. * * @param [type] $avatar * @param [type] $id_or_email * @param [type] $size * @param [type] $default * @param [type] $alt * @param array $args */ function ur_replace_gravatar_image( $avatar, $id_or_email, $size, $default, $alt, $args = array() ) { global $wp_filter; remove_all_filters( 'get_avatar' ); add_filter( 'get_avatar', 'ur_replace_gravatar_image', 100, 6 ); // Process the user identifier. $user = false; if ( is_numeric( $id_or_email ) ) { $user = get_user_by( 'id', absint( $id_or_email ) ); } elseif ( is_string( $id_or_email ) ) { $user = get_user_by( 'email', $id_or_email ); } elseif ( $id_or_email instanceof WP_User ) { // User Object. $user = $id_or_email; } elseif ( $id_or_email instanceof WP_Post ) { // Post Object. $user = get_user_by( 'id', (int) $id_or_email->post_author ); } elseif ( $id_or_email instanceof WP_Comment ) { if ( ! empty( $id_or_email->user_id ) ) { $user = get_user_by( 'id', (int) $id_or_email->user_id ); } } if ( ! $user || is_wp_error( $user ) ) { return $avatar; } $profile_picture_url = get_user_meta( $user->ID, 'user_registration_profile_pic_url', true ); $class = array( 'avatar', 'avatar-' . (int) $args['size'], 'photo' ); if ( ( isset( $args['found_avatar'] ) && ! $args['found_avatar'] ) || ( isset( $args['force_default'] ) && $args['force_default'] ) ) { $class[] = 'avatar-default'; } if ( $args['class'] ) { if ( is_array( $args['class'] ) ) { $class = array_merge( $class, $args['class'] ); } else { $class[] = $args['class']; } } if ( $profile_picture_url ) { $avatar = sprintf( "%s", esc_attr( $args['alt'] ), esc_url( $profile_picture_url ), esc_url( $profile_picture_url ) . ' 2x', esc_attr( join( ' ', $class ) ), (int) $args['height'], (int) $args['width'], $args['extra_attr'] ); } return $avatar; } PK\\vsincludes/class-ur-query.phpnuW+Ainit_query_vars(); } /** * Get any errors from querystring. */ public function get_errors() { $error = ! empty( $_GET['ur_error'] ) ? sanitize_text_field( wp_unslash( $_GET['ur_error'] ) ) : ''; // WPCS: input var ok, CSRF ok. if ( $error && ! ur_has_notice( $error, 'error' ) ) { ur_add_notice( $error, 'error' ); } } /** * Init query vars by loading options. */ public function init_query_vars() { // Query vars to add to WP. $this->query_vars = array( // My account actions. 'edit-password' => get_option( 'user_registration_myaccount_change_password_endpoint', 'edit-password' ), 'edit-profile' => get_option( 'user_registration_myaccount_edit_profile_endpoint', 'edit-profile' ), 'ur-lost-password' => get_option( 'user_registration_myaccount_lost_password_endpoint', 'lost-password' ), 'user-logout' => get_option( 'user_registration_logout_endpoint', 'user-logout' ), ); } /** * Get page title for an endpoint. * * @param string $endpoint Endpoint key. * @return string */ public function get_endpoint_title( $endpoint ) { switch ( $endpoint ) { case 'edit-password': $title = __( 'Change Password', 'user-registration' ); break; case 'edit-profile': $title = __( 'Profile Details', 'user-registration' ); break; case 'ur-lost-password': $title = __( 'Lost password', 'user-registration' ); break; default: $title = ''; break; } return apply_filters( 'user_registration_endpoint_' . $endpoint . '_title', $title, $endpoint ); } /** * Endpoint mask describing the places the endpoint should be added. * * @return int */ public function get_endpoints_mask() { if ( 'page' === get_option( 'show_on_front' ) ) { $page_on_front = get_option( 'page_on_front' ); $myaccount_page_id = get_option( 'user_registration_myaccount_page_id' ); if ( in_array( $page_on_front, array( $myaccount_page_id ), true ) ) { return EP_ROOT | EP_PAGES; } } return EP_PAGES; } /** * Add endpoints for query vars. */ public function add_endpoints() { $mask = $this->get_endpoints_mask(); foreach ( $this->query_vars as $key => $var ) { if ( ! empty( $var ) ) { add_rewrite_endpoint( $var, $mask ); } } } /** * Add query vars. * * @param array $vars Query vars. * @return array */ public function add_query_vars( $vars ) { foreach ( $this->get_query_vars() as $key => $var ) { $vars[] = $key; } return $vars; } /** * Get query vars. * * @return array */ public function get_query_vars() { return apply_filters( 'user_registration_get_query_vars', $this->query_vars ); } /** * Get query current active query var. * * @return string */ public function get_current_endpoint() { global $wp; foreach ( $this->get_query_vars() as $key => $value ) { if ( isset( $wp->query_vars[ $key ] ) ) { return $key; } } return ''; } /** * Parse the request and look for query vars - endpoints may not be supported. */ public function parse_request() { global $wp; // Map query vars to their keys, or get them if endpoints are not supported. foreach ( $this->get_query_vars() as $key => $var ) { if ( isset( $_GET[ $var ] ) ) { // WPCS: input var ok, CSRF ok. $wp->query_vars[ $key ] = sanitize_text_field( wp_unslash( $_GET[ $var ] ) ); // WPCS: input var ok, CSRF ok. } elseif ( isset( $wp->query_vars[ $var ] ) ) { $wp->query_vars[ $key ] = $wp->query_vars[ $var ]; } } } /** * Are we currently on the front page? * * @param WP_Query $q Query instance. * @return bool */ private function is_showing_page_on_front( $q ) { return $q->is_home() && 'page' === get_option( 'show_on_front' ); } /** * Is the front page a page we define? * * @param int $page_id Page ID. * @return bool */ private function page_on_front_is( $page_id ) { return absint( get_option( 'page_on_front' ) ) === absint( $page_id ); } /** * Hook into pre_get_posts to do the main query. * * @param WP_Query $q Query instance. */ public function pre_get_posts( $q ) { // We only want to affect the main query. if ( ! $q->is_main_query() ) { return; } // Fix for endpoints on the homepage. if ( $this->is_showing_page_on_front( $q ) && ! $this->page_on_front_is( $q->get( 'page_id' ) ) ) { $_query = wp_parse_args( $q->query ); if ( ! empty( $_query ) && array_intersect( array_keys( $_query ), array_keys( $this->query_vars ) ) ) { $q->is_page = true; $q->is_home = false; $q->is_singular = true; $q->set( 'page_id', (int) get_option( 'page_on_front' ) ); add_filter( 'redirect_canonical', '__return_false' ); } } // And remove the pre_get_posts hook. $this->remove_post_query(); } /** * Remove the query. */ public function remove_post_query() { remove_action( 'pre_get_posts', array( $this, 'pre_get_posts' ) ); } } PK\lr (includes/class-ur-background-updater.phpnuW+Ais_process_running() ) { // Background process already running. return; } if ( $this->is_queue_empty() ) { // No data to process. $this->clear_scheduled_event(); return; } $this->handle(); } /** * Schedule fallback event. */ protected function schedule_event() { if ( ! wp_next_scheduled( $this->cron_hook_identifier ) ) { wp_schedule_event( time() + 10, $this->cron_interval_identifier, $this->cron_hook_identifier ); } } /** * Is the updater running? * * @return boolean */ public function is_updating() { return false === $this->is_queue_empty(); } /** * Task * * Override this method to perform any actions required on each * queue item. Return the modified item for further processing * in the next pass through. Or, return false to remove the * item from the queue. * * @param string $callback Update callback function * * @return mixed */ protected function task( $callback ) { if ( ! defined( 'UR_UPDATING' ) ) { define( 'UR_UPDATING', true ); } include_once 'functions-ur-update.php'; if ( is_callable( $callback ) ) { call_user_func( $callback ); } return false; } /** * Complete * * Override if applicable, but ensure that the below actions are * performed, or, call parent::complete(). */ protected function complete() { UR_Install::update_db_version(); parent::complete(); } } PK\V߀LL"includes/class-ur-form-handler.phpnuW+A 'save_profile_details', ); $uploaded = wp_handle_upload( $upload, $upload_overrides ); if ( $uploaded && ! isset( $uploaded['error'] ) ) { $image = wp_get_image_editor( $uploaded['file'] ); if ( ! is_wp_error( $image ) ) { $image->resize( 150, 150, true ); $image->save( $uploaded['file'] ); } update_user_meta( $user_id, 'user_registration_profile_pic_url', $uploaded['url'] ); } else { ur_add_notice( $uploaded['error'], 'error' ); } } elseif ( UPLOAD_ERR_NO_FILE !== $_FILES['profile-pic']['error'] ) { switch ( $_FILES['profile-pic']['error'] ) { case UPLOAD_ERR_INI_SIZE: ur_add_notice( __( 'File size exceed, please check your file size.', 'user-registration' ), 'error' ); break; default: ur_add_notice( __( 'Something went wrong while uploading, please contact your site administrator.', 'user-registration' ), 'error' ); break; } } elseif ( empty( $_POST['profile-pic-url'] ) ) { $upload_dir = wp_upload_dir(); $profile_url = get_user_meta( $user_id, 'user_registration_profile_pic_url', true ); // Check if profile already set? if ( $profile_url ) { // Then delete file and user meta. $profile_url = $upload_dir['basedir'] . explode( '/uploads', $profile_url )[1]; if ( ! empty( $profile_url ) && file_exists( $profile_url ) ) { @unlink( $profile_url ); } delete_user_meta( $user_id, 'user_registration_profile_pic_url' ); } } } $form_id_array = get_user_meta( $user_id, 'ur_form_id' ); $form_id = 0; if ( isset( $form_id_array[0] ) ) { $form_id = $form_id_array[0]; } $profile = user_registration_form_data( $user_id, $form_id ); foreach ( $profile as $key => $field ) { if ( ! isset( $field['type'] ) ) { $field['type'] = 'text'; } // Get Value. switch ( $field['type'] ) { case 'checkbox': if ( isset( $_POST[ $key ] ) && is_array( $_POST[ $key ] ) ) { $_POST[ $key ] = $_POST[ $key ]; } else { $_POST[ $key ] = (int) isset( $_POST[ $key ] ); } break; default: $_POST[ $key ] = isset( $_POST[ $key ] ) ? ur_clean( $_POST[ $key ] ) : ''; break; } // Hook to allow modification of value. $_POST[ $key ] = apply_filters( 'user_registration_process_myaccount_field_' . $key, $_POST[ $key ] ); $disabled = false; if ( isset( $field['custom_attributes'] ) && isset( $field['custom_attributes']['readonly'] ) && isset( $field['custom_attributes']['disabled'] ) ) { if ( 'readonly' === $field['custom_attributes']['readonly'] || 'disabled' === $field['custom_attributes']['disabled'] ) { $disabled = true; } } // Validation: Required fields. if ( ! empty( $field['required'] ) && empty( $_POST[ $key ] ) && ! $disabled ) { ur_add_notice( sprintf( __( '%s is a required field.', 'user-registration' ), $field['label'] ), 'error' ); } if ( ! empty( $_POST[ $key ] ) ) { // Validation rules. if ( ! empty( $field['validate'] ) && is_array( $field['validate'] ) ) { foreach ( $field['validate'] as $rule ) { switch ( $rule ) { case 'email': $_POST[ $key ] = strtolower( $_POST[ $key ] ); if ( ! is_email( $_POST[ $key ] ) ) { ur_add_notice( sprintf( __( '%s is not a valid email address.', 'user-registration' ), '' . $field['label'] . '' ), 'error' ); } break; } } } } }// End foreach(). do_action( 'user_registration_after_save_profile_validation', $user_id, $profile ); if ( 0 === ur_notice_count( 'error' ) ) { $user_data = array(); foreach ( $profile as $key => $field ) { $new_key = str_replace( 'user_registration_', '', $key ); if ( in_array( $new_key, ur_get_user_table_fields() ) ) { if ( $new_key === 'display_name' ) { $user_data['display_name'] = $_POST[ $key ]; } else { $user_data[ $new_key ] = $_POST[ $key ]; } } else { $update_key = $key; if ( in_array( $new_key, ur_get_registered_user_meta_fields() ) ) { $update_key = str_replace( 'user_', '', $new_key ); } $disabled = isset( $field['custom_attributes']['disabled'] ) ? $field['custom_attributes']['disabled'] : ''; if ( $disabled !== 'disabled' ) { update_user_meta( $user_id, $update_key, $_POST[ $key ] ); } } } if ( count( $user_data ) > 0 ) { $user_data['ID'] = get_current_user_id(); wp_update_user( $user_data ); } ur_add_notice( __( 'User profile updated successfully.', 'user-registration' ) ); do_action( 'user_registration_save_profile_details', $user_id, $form_id ); wp_safe_redirect( ur_get_endpoint_url( 'edit-profile', '', ur_get_page_permalink( 'myaccount' ) ) ); exit; } } /** * @deprecated 1.4.1 * @param $user_id * @return void */ public function save_account_details( $user_id ) { ur_deprecated_function( 'UR_Form_Handler::save_account_details', '1.4.1', 'UR_Form_Handler::save_change_password' ); } /** * Save the password and redirect back to the my account page. */ public static function save_change_password() { if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) { return; } if ( empty( $_POST['action'] ) || 'save_change_password' !== $_POST['action'] || empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'save_change_password' ) ) { return; } $errors = new WP_Error(); $user = new stdClass(); $user->ID = (int) get_current_user_id(); $current_user = get_user_by( 'id', $user->ID ); if ( $user->ID <= 0 ) { return; } $pass_cur = ! empty( $_POST['password_current'] ) ? $_POST['password_current'] : ''; $pass1 = ! empty( $_POST['password_1'] ) ? $_POST['password_1'] : ''; $pass2 = ! empty( $_POST['password_2'] ) ? $_POST['password_2'] : ''; $save_pass = true; $bypass_current_password = apply_filters( 'user_registration_save_account_bypass_current_password', false ); if ( empty( $pass_cur ) && empty( $pass1 ) && empty( $pass2 ) ) { ur_add_notice( __( 'Please fill out all password fields.', 'user-registration' ), 'error' ); $save_pass = false; } elseif ( ! $bypass_current_password && empty( $pass_cur ) ) { ur_add_notice( __( 'Please enter your current password.', 'user-registration' ), 'error' ); $save_pass = false; } elseif ( empty( $pass1 ) ) { ur_add_notice( __( 'Please enter your new password.', 'user-registration' ), 'error' ); $save_pass = false; } elseif ( empty( $pass2 ) ) { ur_add_notice( __( 'Please re-enter your password.', 'user-registration' ), 'error' ); $save_pass = false; } elseif ( $pass1 !== $pass2 ) { ur_add_notice( __( 'New passwords do not match.', 'user-registration' ), 'error' ); $save_pass = false; } elseif ( ! $bypass_current_password && ! wp_check_password( $pass_cur, $current_user->user_pass, $current_user->ID ) ) { ur_add_notice( __( 'Your current password is incorrect.', 'user-registration' ), 'error' ); $save_pass = false; } if ( $pass1 && $save_pass ) { $user->user_pass = $pass1; } // Allow plugins to return their own errors. do_action_ref_array( 'user_registration_save_account_details_errors', array( &$errors, &$user ) ); if ( $errors->get_error_messages() ) { foreach ( $errors->get_error_messages() as $error ) { ur_add_notice( $error, 'error' ); } } if ( ur_notice_count( 'error' ) === 0 ) { wp_update_user( $user ); ur_add_notice( __( 'Password changed successfully.', 'user-registration' ) ); do_action( 'user_registration_save_account_details', $user->ID ); wp_safe_redirect( ur_get_page_permalink( 'myaccount' ) ); exit; } } /** * Process the login form. */ public static function process_login() { $nonce_value = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : ''; $nonce_value = isset( $_POST['user-registration-login-nonce'] ) ? $_POST['user-registration-login-nonce'] : $nonce_value; $recaptcha_value = isset( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : ''; $recaptcha_enabled = get_option( 'user_registration_login_options_enable_recaptcha', 'no' ); $recaptcha_version = get_option( 'user_registration_integration_setting_recaptcha_version' ); $secret_key = 'v3' === $recaptcha_version ? get_option( 'user_registration_integration_setting_recaptcha_site_secret_v3' ) : get_option( 'user_registration_integration_setting_recaptcha_site_secret' ); if ( ! empty( $_POST['login'] ) && wp_verify_nonce( $nonce_value, 'user-registration-login' ) ) { try { $creds = array( 'user_password' => $_POST['password'], 'remember' => isset( $_POST['rememberme'] ), ); $username = trim( $_POST['username'] ); $validation_error = new WP_Error(); $validation_error = apply_filters( 'user_registration_process_login_errors', $validation_error, $_POST['username'], $_POST['password'] ); if ( 'yes' == $recaptcha_enabled || '1' == $recaptcha_enabled ) { if ( ! empty( $recaptcha_value ) ) { $data = wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $recaptcha_value ); $data = json_decode( wp_remote_retrieve_body( $data ) ); if ( empty( $data->success ) || ( isset( $data->score ) && $data->score < apply_filters( 'user_registration_recaptcha_v3_threshold', 0.5 ) ) ) { throw new Exception( '' . __( 'ERROR:', 'user-registration' ) . '' . __( 'Error on google reCaptcha. Contact your site administrator.', 'user-registration' ) ); } } else { throw new Exception( '' . __( 'ERROR:', 'user-registration' ) . '' . get_option( 'user_registration_form_submission_error_message_recaptcha', __( 'Captcha code error, please try again.', 'user-registration' ) ) ); } } if ( $validation_error->get_error_code() ) { throw new Exception( '' . __( 'ERROR:', 'user-registration' ) . '' . $validation_error->get_error_message() ); } if ( empty( $username ) ) { throw new Exception( '' . __( 'ERROR:', 'user-registration' ) . '' . __( 'Username is required.', 'user-registration' ) ); } if ( is_email( $username ) && apply_filters( 'user_registration_get_username_from_email', true ) ) { $user = get_user_by( 'email', $username ); if ( isset( $user->user_login ) ) { $creds['user_login'] = $user->user_login; } else { throw new Exception( '' . __( 'ERROR:', 'user-registration' ) . '' . __( 'A user could not be found with this email address.', 'user-registration' ) ); } } else { $creds['user_login'] = $username; } // On multisite, ensure user exists on current site, if not add them before allowing login. if ( is_multisite() ) { $user_data = get_user_by( 'login', $username ); if ( $user_data && ! is_user_member_of_blog( $user_data->ID, get_current_blog_id() ) ) { add_user_to_blog( get_current_blog_id(), $user_data->ID, 'customer' ); } } // Perform the login $user = wp_signon( apply_filters( 'user_registration_login_credentials', $creds ), is_ssl() ); if ( is_wp_error( $user ) ) { $message = $user->get_error_message(); $message = str_replace( '' . esc_html( $creds['user_login'] ) . '', '' . esc_html( $username ) . '', $message ); throw new Exception( $message ); } else { if ( in_array( 'administrator', $user->roles ) && 'yes' === get_option( 'user_registration_login_options_prevent_core_login', 'no' ) ) { $redirect = admin_url(); } else { if ( ! empty( $_POST['redirect'] ) ) { $redirect = $_POST['redirect']; } elseif ( wp_get_raw_referer() ) { $redirect = wp_get_raw_referer(); } else { $redirect = get_home_url(); } } wp_redirect( wp_validate_redirect( apply_filters( 'user_registration_login_redirect', $redirect, $user ), $redirect ) ); exit; } } catch ( Exception $e ) { ur_add_notice( apply_filters( 'login_errors', $e->getMessage() ), 'error' ); do_action( 'user_registration_login_failed' ); } } } /** * Handle lost password form. */ public static function process_lost_password() { if ( isset( $_POST['ur_reset_password'] ) && isset( $_POST['user_login'] ) && isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'lost_password' ) ) { $success = UR_Shortcode_My_Account::retrieve_password(); // If successful, redirect to my account with query arg set if ( $success ) { wp_redirect( add_query_arg( 'reset-link-sent', 'true', remove_query_arg( array( 'key', 'login', 'reset', ) ) ) ); exit; } } } /** * Handle reset password form. */ public static function process_reset_password() { $posted_fields = array( 'ur_reset_password', 'password_1', 'password_2', 'reset_key', 'reset_login', '_wpnonce', ); foreach ( $posted_fields as $field ) { if ( ! isset( $_POST[ $field ] ) ) { return; } $posted_fields[ $field ] = $_POST[ $field ]; } if ( ! wp_verify_nonce( $posted_fields['_wpnonce'], 'reset_password' ) ) { return; } $user = UR_Shortcode_My_Account::check_password_reset_key( $posted_fields['reset_key'], $posted_fields['reset_login'] ); if ( $user instanceof WP_User ) { if ( empty( $posted_fields['password_1'] ) ) { ur_add_notice( __( 'Please enter your password.', 'user-registration' ), 'error' ); } if ( $posted_fields['password_1'] !== $posted_fields['password_2'] ) { ur_add_notice( __( 'Passwords do not match.', 'user-registration' ), 'error' ); } $errors = new WP_Error(); do_action( 'validate_password_reset', $errors, $user ); ur_add_wp_error_notices( $errors ); if ( 0 === ur_notice_count( 'error' ) ) { UR_Shortcode_My_Account::reset_password( $user, $posted_fields['password_1'] ); do_action( 'user_registration_reset_password', $user ); wp_redirect( add_query_arg( 'password-reset', 'true', ur_get_page_permalink( 'myaccount' ) ) ); exit; } } } /** * Handle Export Personal data confirmation request. */ public static function export_confirmation_request() { if ( isset( $_REQUEST['action'] ) && 'confirmaction' === $_REQUEST['action'] ) { if ( ! isset( $_GET['request_id'] ) ) { return; } $request_id = (int) $_GET['request_id']; if ( isset( $_GET['confirm_key'] ) ) { $key = sanitize_text_field( wp_unslash( $_GET['confirm_key'] ) ); $result = wp_validate_user_request_key( $request_id, $key ); } else { $result = new WP_Error( 'invalid_key', __( 'Invalid Key', 'user-registration' ) ); } if ( is_wp_error( $result ) ) { ur_add_notice( $result->get_error_message(), 'error' ); ur_print_notices(); return; } do_action( 'user_request_action_confirmed', $request_id ); $request = wp_get_user_request( $request_id ); if ( $request && in_array( $request->action_name, _wp_privacy_action_request_types(), true ) ) { if ( 'export_personal_data' === $request->action_name ) { $message = apply_filters( 'user_registration_export_personal_data_confirmation_message', __( 'Thanks for confirming your export request.', 'user-registration' ) ); } elseif ( 'remove_personal_data' === $request->action_name ) { $message = apply_filters( 'user_registration_remove_personal_data_confirmation_message', __( 'Thanks for confirming your erasure request.', 'user-registration' ) ); } ur_add_notice( $message, 'success' ); ur_print_notices(); } } } /** * Get Form data. * * @param int $id Form ID. * @param array $args Form Arguments. * * @since 1.7.2 */ public function get_form( $id = '', $args = array() ) { $forms = array(); $args = apply_filters( 'user_registration_get_form_args', $args ); if ( is_numeric( $id ) ) { $the_post = get_post( absint( $id ) ); if ( $the_post && 'user_registration' === $the_post->post_type ) { if ( isset( $args['publish'] ) ) { if ( ( $args['publish'] && 'publish' === $the_post->post_type ) || ( ! $args['publish'] && 'publish' !== $the_post->post_type ) ) { return array(); } } $forms = empty( $args['content_only'] ) ? $the_post : json_decode( $the_post->post_content ); } } else { // No ID provided, get multiple forms. $defaults = array( 'post_type' => 'user_registration', 'orderby' => 'ID', 'order' => 'DESC', 'no_found_rows' => true, 'nopaging' => true, ); $args = wp_parse_args( $args, $defaults ); $args['post_type'] = 'user_registration'; $forms = get_posts( $args ); } return $forms; } } UR_Form_Handler::init(); PK\Tincludes/class-ur-logger.phpnuW+A%s does not implement UR_Log_Handler_Interface.', 'user-registration' ), esc_html( is_object( $handler ) ? get_class( $handler ) : $handler ) ), '1.0.5' ); } } } if ( null !== $threshold ) { $threshold = UR_Log_Levels::get_level_severity( $threshold ); } elseif ( defined( 'UR_LOG_THRESHOLD' ) && UR_Log_Levels::is_valid_level( UR_LOG_THRESHOLD ) ) { $threshold = UR_Log_Levels::get_level_severity( UR_LOG_THRESHOLD ); } else { $threshold = null; } $this->handlers = $register_handlers; $this->threshold = $threshold; } /** * Determine whether to handle or ignore log. * * @param string $level emergency|alert|critical|error|warning|notice|info|debug * * @return bool True if the log should be handled. */ protected function should_handle( $level ) { if ( null === $this->threshold ) { return true; } return $this->threshold <= UR_Log_Levels::get_level_severity( $level ); } /** * Add a log entry. * * This is not the preferred method for adding log messages. Please use log() or any one of * the level methods (debug(), info(), etc.). This method may be deprecated in the future. * * @param string $handle * @param string $message * @param string $level * * @return bool */ public function add( $handle, $message, $level = UR_Log_Levels::NOTICE ) { $message = apply_filters( 'user_registration_logger_add_message', $message, $handle ); $this->log( $level, $message, array( 'source' => $handle, '_legacy' => true, ) ); return true; } /** * Add a log entry. * * @param string $level One of the following: * 'emergency': System is unusable. * 'alert': Action must be taken immediately. * 'critical': Critical conditions. * 'error': Error conditions. * 'warning': Warning conditions. * 'notice': Normal but significant condition. * 'info': Informational messages. * 'debug': Debug-level messages. * @param string $message Log message. * @param array $context Optional. Additional information for log handlers. */ public function log( $level, $message, $context = array() ) { if ( ! UR_Log_Levels::is_valid_level( $level ) ) { ur_doing_it_wrong( __METHOD__, sprintf( __( 'UR_Logger::log was called with an invalid level "%s".', 'user-registration' ), $level ), '3.0' ); } if ( $this->should_handle( $level ) ) { $timestamp = current_time( 'timestamp' ); $message = apply_filters( 'user_registration_logger_log_message', $message, $level, $context ); foreach ( $this->handlers as $handler ) { $handler->handle( $timestamp, $level, $message, $context ); } } } /** * Adds an emergency level message. * * System is unusable. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function emergency( $message, $context = array() ) { $this->log( UR_Log_Levels::EMERGENCY, $message, $context ); } /** * Adds an alert level message. * * Action must be taken immediately. * Example: Entire website down, database unavailable, etc. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function alert( $message, $context = array() ) { $this->log( UR_Log_Levels::ALERT, $message, $context ); } /** * Adds a critical level message. * * Critical conditions. * Example: Application component unavailable, unexpected exception. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function critical( $message, $context = array() ) { $this->log( UR_Log_Levels::CRITICAL, $message, $context ); } /** * Adds an error level message. * * Runtime errors that do not require immediate action but should typically be logged * and monitored. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function error( $message, $context = array() ) { $this->log( UR_Log_Levels::ERROR, $message, $context ); } /** * Adds a warning level message. * * Exceptional occurrences that are not errors. * * Example: Use of deprecated APIs, poor use of an API, undesirable things that are not * necessarily wrong. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function warning( $message, $context = array() ) { $this->log( UR_Log_Levels::WARNING, $message, $context ); } /** * Adds a notice level message. * * Normal but significant events. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function notice( $message, $context = array() ) { $this->log( UR_Log_Levels::NOTICE, $message, $context ); } /** * Adds a info level message. * * Interesting events. * Example: User logs in, SQL logs. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function info( $message, $context = array() ) { $this->log( UR_Log_Levels::INFO, $message, $context ); } /** * Adds a debug level message. * * Detailed debug information. * * @see UR_Logger::log * * @param string $message * @param array $context */ public function debug( $message, $context = array() ) { $this->log( UR_Log_Levels::DEBUG, $message, $context ); } /** * Clear entries from chosen file. * * @param string $handle * * @return bool */ public function clear( $handle ) { $handler = new UR_Log_Handler_File(); return $handler->clear( $handle ); } } PK\Xz/T1T1#includes/class-ur-user-approval.phpnuW+AID ); if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { $user_manager = new UR_Admin_User_Manager( $user ); $user_manager->save_first_access_flag(); } } /** * Send the email to the user that alert if the approvalrequest has been approved or rejected. * If the request is approved and the user needs to receive the password, a new password will be generated and sent * * @param mixed $status Status. * @param int $user_id User ID. * @param mixed $alert_user Alert User. */ public function send_notification_to_user_about_status_changing( $status, $user_id, $alert_user ) { $form_id = ur_get_form_id_by_userid( $user_id ); if ( ! $alert_user && 'admin_approval' !== ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { return; } $user_manager = new UR_Admin_User_Manager( $user_id ); $user_status = $user_manager->get_user_status(); // Avoid to send multiple times the same email. if ( $status === $user_status['user_status'] ) { return; } $user = get_userdata( $user_id ); $user_data = isset( $user->data ) ? $user->data : array(); $username = isset( $user_data->user_login ) ? $user_data->user_login : ''; $email = isset( $user_data->user_email ) ? $user_data->user_email : ''; UR_Emailer::status_change_email( $email, $username, $status ); } /** * Send an email to the admin in order to alert the a new user requests to be approved * * @param int $user_id User ID. */ public function send_request_notification_to_admin( $user_id ) { // If the user is created by admin or if the admin alert is disabled, doesn't send the email to the admin. if ( $this->is_admin_creation_process() ) { return; } } /** * Set the status of the user right after the registration. * * @param mixed $form_data Form Data. * @param int $form_id Form ID. * @param int $user_id User ID. */ public function set_user_status( $form_data, $form_id, $user_id ) { if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { $status = UR_Admin_User_Manager::PENDING; // If the user is created by admin in the backend, than automatically approve him. if ( $this->is_admin_creation_process() ) { $status = UR_Admin_User_Manager::APPROVED; } $user_manager = new UR_Admin_User_Manager( $user_id ); // The user have to be not alerted on status creation, it will be always pending or approved. $alert_user = false; $user_manager->save_status( $status, $alert_user ); } } /** * Check the status of an user on login. * * @param WP_User $user Users. * @param string $password Password. * * @return \WP_Error */ public function check_status_on_login( WP_User $user, $password ) { $form_id = ur_get_form_id_by_userid( $user->ID ); $user_manager = new UR_Admin_User_Manager( $user ); $status = $user_manager->get_user_status(); if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) || 'admin_approval' === $status['login_option'] ) { do_action( 'ur_user_before_check_status_on_login', $status['user_status'], $user ); switch ( $status['user_status'] ) { case UR_Admin_User_Manager::APPROVED: return $user; break; case UR_Admin_User_Manager::PENDING: $message = '' . __( 'ERROR:', 'user-registration' ) . ' ' . __( 'Your account is still pending approval.', 'user-registration' ); return new WP_Error( 'pending_approval', $message ); break; case UR_Admin_User_Manager::DENIED: $message = '' . __( 'ERROR:', 'user-registration' ) . ' ' . __( 'Your account has been denied.', 'user-registration' ); return new WP_Error( 'denied_access', $message ); break; } } elseif ( 'email_confirmation' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) || 'email_confirmation' === $status['login_option'] ) { do_action( 'ur_user_before_check_email_status_on_login', $status['user_status'], $user ); $url = ( ! empty( $_SERVER['HTTPS'] ) ) ? 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] : 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $url = substr( $url, 0, strpos( $url, '?' ) ); $instance = new UR_Email_Confirmation(); $url = wp_nonce_url( $url . '?ur_resend_id=' . $instance->crypt_the_string( $user->ID, 'e' ) . '&ur_resend_token=true', 'ur_resend_token' ); if ( '0' === $status['user_status'] ) { $message = '' . esc_html__( 'ERROR:', 'user-registration' ) . ' ' . sprintf( __( 'Your account is still pending approval. Verify your email by clicking on the link sent to your email. %s', 'user-registration' ), '' . __( 'Resend Verification Link', 'user-registration' ) . '' ); return new WP_Error( 'user_email_not_verified', $message ); } return $user; } elseif ( 'payment' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { $payment_status = get_user_meta( $user->ID, 'ur_payment_status', true ); do_action( 'ur_user_before_check_payment_status_on_login', $payment_status, $user ); if ( ! empty( $payment_status ) && 'completed' !== $payment_status ) { $user_id = $user->ID; $instance = new User_Registration_Payments_Process(); $redirect_url = $instance->generate_redirect_url( $user_id ); $message = '' . __( 'ERROR:', 'user-registration' ) . ' ' . sprintf( __( 'Your account is still pending payment. Process the payment by clicking on this: %s', 'user-registration' ), '' . __( 'link', 'user-registration' ) . '' ); return new WP_Error( 'user_payment_pending', $message ); } return $user; } return $user; } /** * Check on every page if the current user is actual approved, otherwise logout him * This is an additional protection against that themes or plugins that login users automatically after sign up */ public function check_status_on_page() { if ( ! is_user_logged_in() ) { return; } $form_id = ur_get_form_id_by_userid( get_current_user_id() ); if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { // Try to hide the not approved users from any theme or plugin request in frontend. add_action( 'pre_get_users', array( $this, 'hide_not_approved_users_in_frontend' ) ); $status = ur_get_user_approval_status( get_current_user_id() ); $user_manager = new UR_Admin_User_Manager(); if ( ! $user_manager->can_status_be_changed_by( get_current_user_id() ) ) { return; } do_action( 'ur_user_before_check_status_on_page', $status, $user_manager ); if ( UR_Admin_User_Manager::APPROVED === $status ) { return; } wp_logout(); } } /** * Check the $_REQUEST variable to understand if the user currently created is created by admin in the backend or noth * * @return bool */ protected function is_admin_creation_process() { return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] ); } /** * Disconnect an user selected by id. * * @param int $user_id User Id. */ public function disconnect_user_session( $user_id ) { $form_id = ur_get_form_id_by_userid( $user_id ); if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { // get all sessions for user with ID $user_id. $sessions = WP_Session_Tokens::get_instance( $user_id ); // we have got the sessions, destroy them all! $sessions->destroy_all(); } } /** * If the user is not approved, disalow to reset the password fom Lost Passwod form and display an error message * * @param $result * @param $user_id * * @return \WP_Error */ public function allow_password_reset( $result, $user_id ) { $form_id = ur_get_form_id_by_userid( $user_id ); if ( 'admin_approval' === ur_get_single_post_meta( $form_id, 'user_registration_form_setting_login_options', get_option( 'user_registration_general_setting_login_options', 'default' ) ) ) { $user_manager = new UR_Admin_User_Manager( $user_id ); if ( ! $user_manager->is_approved() ) { $error_message = __( 'Your account is still awaiting admin approval. Reset Password is not allowed.', 'user-registration' ); $result = new WP_Error( 'user_not_approved', $error_message ); } } return $result; } /** * Function called on action pre_get_users, it remove all users not approved when the request is don by frontend, * in this way it ensure a compatibility with all other plugin and themes, avoiding to show unapproved users * (for instance in members page of buddypress or Extrafooter of Woffice) * * @param \WP_Query $query Query. */ public function hide_not_approved_users_in_frontend( $query ) { // If this is not a frontend page, then do nothing. if ( is_admin() ) { return; } if ( isset( $query->query_vars['ur_user_ignore_users_hiding'] ) && $query->query_vars['ur_user_ignore_users_hiding'] ) { return; } // Otherwise display only approved users. $meta_query = array( 'relation' => 'OR', array( 'key' => 'ur_user_status', 'compare' => 'NOT EXISTS', // works! 'value' => '', // This is ignored, but is necessary... ), array( 'key' => 'ur_user_status', 'value' => UR_Admin_User_Manager::APPROVED, ), ); $meta_query = apply_filters( 'ur_user_hide_not_approved_users_in_frontend', $meta_query, $query ); if ( ! empty( $meta_query ) ) { $query->set( 'meta_query', $meta_query ); } } } new UR_User_Approval(); PK\5ԉ11includes/functions-ur-page.phpnuW+Aquery->get_current_endpoint(); if ( $endpoint_title = UR()->query->get_endpoint_title( $endpoint ) ) { $title = $endpoint_title; } remove_filter( 'the_title', 'ur_page_endpoint_title' ); } return $title; } add_filter( 'the_title', 'ur_page_endpoint_title', 20 ); /** * Retrieve page ids - used for myaccount, edit_profile. returns -1 if no page is found. * * @param string $page * * @return int */ function ur_get_page_id( $page ) { if ( 'myaccount' === $page && ur_post_content_has_shortcode( 'user_registration_my_account' ) ) { $page = get_the_ID(); } else { $page = apply_filters( 'user_registration_get_' . $page . '_page_id', get_option( 'user_registration_' . $page . '_page_id' ) ); } return $page ? absint( $page ) : - 1; } /** * Retrieve page permalink. * * @param string $page * * @return string */ function ur_get_page_permalink( $page ) { $page_id = ur_get_page_id( $page ); $permalink = 0 < $page_id ? get_permalink( $page_id ) : get_home_url(); return apply_filters( 'user_registration_get_' . $page . '_page_permalink', $permalink ); } /** * Get endpoint URL. * * Gets the URL for an endpoint, which varies depending on permalink settings. * * @param string $endpoint * @param string $value * @param string $permalink * * @return string */ function ur_get_endpoint_url( $endpoint, $value = '', $permalink = '' ) { if ( ! $permalink ) { $permalink = get_permalink(); } // Map endpoint to options $endpoint = ! empty( UR()->query->query_vars[ $endpoint ] ) ? UR()->query->query_vars[ $endpoint ] : $endpoint; if ( get_option( 'permalink_structure' ) ) { if ( strstr( $permalink, '?' ) ) { $query_string = '?' . parse_url( $permalink, PHP_URL_QUERY ); $permalink = current( explode( '?', $permalink ) ); } else { $query_string = ''; } $url = trailingslashit( $permalink ) . $endpoint . '/' . $value . $query_string; } else { $url = add_query_arg( $endpoint, $value, $permalink ); } return apply_filters( 'user_registration_get_endpoint_url', $url, $endpoint, $value, $permalink ); } /** * Hide menu items conditionally. * * @param array $items Navigation items. * @return array */ function ur_nav_menu_items( $items ) { if ( ! is_user_logged_in() ) { $customer_logout = get_option( 'user_registration_logout_endpoint', 'user-logout' ); if ( ! empty( $customer_logout ) && is_array( $items ) ) { foreach ( $items as $key => $item ) { if ( empty( $item->url ) ) { continue; } $path = parse_url( $item->url, PHP_URL_PATH ); $query = parse_url( $item->url, PHP_URL_QUERY ); if ( strstr( $path, $customer_logout ) || strstr( $query, $customer_logout ) ) { unset( $items[ $key ] ); } } } } return $items; } add_filter( 'wp_nav_menu_objects', 'ur_nav_menu_items', 10 ); PK\!$includes/functions-ur-deprecated.phpnuW+AgetMessage(); $message .= '. Args: ' . print_r( $args, true ) . '.'; do_action( 'everest_forms_caught_exception', $exception_object, $function, $args ); error_log( "Exception caught in {$function}. {$message}." ); // @codingStandardsIgnoreEnd } /** * Wrapper for ur_doing_it_wrong. * * @since 1.0.0 * @param string $function Function used. * @param string $message Message to log. * @param string $version Version the message was added in. */ function ur_deprecated_doing_it_wrong( $function, $message, $version ) { // @codingStandardsIgnoreStart $message .= ' Backtrace: ' . wp_debug_backtrace_summary(); if ( wp_doing_ajax() ) { do_action( 'doing_it_wrong_run', $function, $message, $version ); error_log( "{$function} was called incorrectly. {$message}. This message was added in version {$version}." ); } else { _doing_it_wrong( $function, $message, $version ); } // @codingStandardsIgnoreEnd } /** * Wrapper for deprecated arguments so we can apply some extra logic. * * @since 1.0.0 * @param string $argument Argument used. * @param string $version Version the message was added in. * @param string $message A message regarding the change. */ function ur_deprecated_argument( $argument, $version, $message = null ) { // @codingStandardsIgnoreStart if ( wp_doing_ajax() ) { do_action( 'deprecated_argument_run', $argument, $message, $version ); error_log( "The {$argument} argument is deprecated since version {$version}. {$message}" ); } else { _deprecated_argument( $argument, $version, $message ); } // @codingStandardsIgnoreEnd } PK\s$$ includes/functions-ur-update.phpnuW+Aget_results( "SELECT user_id, meta_key, meta_value FROM $wpdb->usermeta WHERE meta_key LIKE 'user_registration\_%';" ); // Update old usermeta values. foreach ( $usermeta as $metadata ) { $user_id = intval( $metadata->user_id ); $json_val = json_decode( $metadata->meta_value ); $explode_val = explode( '__', $metadata->meta_value ); if ( $json_val && $metadata->meta_value != $json_val ) { update_user_meta( $user_id, $metadata->meta_key, json_decode( $metadata->meta_value ) ); } elseif ( $metadata->meta_value !== end( $explode_val ) ) { update_user_meta( $user_id, $metadata->meta_key, trim( end( $explode_val ) ) ); } } // Delete old user keys from usermeta. $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE 'ur_%_params';" ); } /** * Update DB Version. */ function ur_update_120_db_version() { UR_Install::update_db_version( '1.2.0' ); } /** * Update usermeta. */ function ur_update_125_usermeta() { $users = get_users( array( 'fields' => array( 'ID' ) ) ); foreach ( $users as $user_id ) { if ( metadata_exists( 'user', $user_id->ID, 'user_registration_user_first_name' ) ) { $first_name = get_user_meta( $user_id->ID, 'user_registration_user_first_name', true ); update_user_meta( $user_id->ID, 'first_name', $first_name ); delete_user_meta( $user_id->ID, 'user_registration_user_first_name' ); } if ( metadata_exists( 'user', $user_id->ID, 'user_registration_user_last_name' ) ) { $last_name = get_user_meta( $user_id->ID, 'user_registration_user_last_name', true ); update_user_meta( $user_id->ID, 'last_name', $last_name ); delete_user_meta( $user_id->ID, 'user_registration_user_last_name' ); } if ( metadata_exists( 'user', $user_id->ID, 'user_registration_user_description' ) ) { $description = get_user_meta( $user_id->ID, 'user_registration_user_description', true ); update_user_meta( $user_id->ID, 'description', $description ); delete_user_meta( $user_id->ID, 'user_registration_user_description' ); } if ( metadata_exists( 'user', $user_id->ID, 'user_registration_user_nickname' ) ) { $nickname = get_user_meta( $user_id->ID, 'user_registration_user_nickname', true ); update_user_meta( $user_id->ID, 'nickname', $nickname ); delete_user_meta( $user_id->ID, 'user_registration_user_nickname' ); } } } /** * Update DB Version. */ function ur_update_125_db_version() { UR_Install::update_db_version( '1.2.5' ); } /** * Update DB Version. */ function ur_update_130_db_version() { UR_Install::update_db_version( '1.3.0' ); } /** * Update usermeta. */ function ur_update_130_post() { $posts = get_posts( 'post_type=user_registration' ); foreach ( $posts as $post ) { $post_content = isset( $post->post_content ) ? $post->post_content : ''; $post_content_array = json_decode( $post_content ); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { if ( isset( $field->field_key ) && isset( $field->general_setting->field_name ) ) { switch ( $field->field_key ) { case 'user_username': $field->general_setting->field_name = $field->field_key = 'user_login'; break; case 'user_password': $field->general_setting->field_name = $field->field_key = 'user_pass'; break; case 'user_display_name': $field->general_setting->field_name = $field->field_key = 'display_name'; break; case 'user_description': $field->general_setting->field_name = $field->field_key = 'description'; break; case 'user_first_name': $field->general_setting->field_name = $field->field_key = 'first_name'; break; case 'user_last_name': $field->general_setting->field_name = $field->field_key = 'last_name'; break; case 'user_nickname': $field->general_setting->field_name = $field->field_key = 'nickname'; break; } } } } $post_content = json_encode( $post_content_array ); $post->post_content = $post_content; } wp_update_post( $post ); } $mailchimp_settings = get_option( 'urmc_mailchimp_settings' ); if ( $mailchimp_settings && is_array( $mailchimp_settings ) ) { if ( isset( $mailchimp_settings['data'] ) && is_array( $mailchimp_settings['data'] ) ) { foreach ( $mailchimp_settings['data'] as $id => $mailchimp_data ) { if ( isset( $mailchimp_data['fields'] ) ) { foreach ( $mailchimp_data['fields'] as $key => $field ) { switch ( $field ) { case 'user_username': $mailchimp_data['fields'][ $key ] = 'user_login'; break; $mailchimp_data['fields'][ $key ] = 'user_pass'; break; case 'user_display_name': $mailchimp_data['fields'][ $key ] = 'display_name'; break; case 'user_description': $mailchimp_data['fields'][ $key ] = 'description'; break; case 'user_first_name': $mailchimp_data['fields'][ $key ] = 'first_name'; break; case 'user_last_name': $mailchimp_data['fields'][ $key ] = 'last_name'; break; case 'user_nickname': $mailchimp_data['fields'][ $key ] = 'nickname'; break; } } } $mailchimp_settings['data'][ $id ] = $mailchimp_data; } } update_option( 'urmc_mailchimp_settings', $mailchimp_settings ); } } /** * Update DB Version. */ function ur_update_140_db_version() { UR_Install::update_db_version( '1.4.0' ); } /** * Delete unused option. */ function ur_update_140_option() { $unused_options = array( 'user_registration_general_setting_default_user_role', 'user_registration_general_setting_enable_strong_password', 'user_registration_general_setting_form_submit_label', ); foreach ( $unused_options as $unused_option ) { delete_option( $unused_option ); } } /** * Update DB Version. */ function ur_update_142_db_version() { UR_Install::update_db_version( '1.4.2' ); } /** * Replace option name user_registration_myaccount_edit_account_endpoint to user_registration_myaccount_change_password_endpoint. */ function ur_update_142_option() { $value = get_option( 'user_registration_myaccount_edit_account_endpoint' ); update_option( 'user_registration_myaccount_change_password_endpoint', $value ); delete_option( 'user_registration_myaccount_edit_account_endpoint' ); } /** * Update DB Version. */ function ur_update_1581_db_version() { UR_Install::update_db_version( '1.5.8.1' ); } /** * Update DB Version. */ function ur_update_160_db_version() { UR_Install::update_db_version( '1.6.0' ); } /** * Replace user meta key profile_pic_id to user_registration_profile_pic_id. * * @since 1.4.8.1 * * @return void. */ function ur_update_1581_meta_key() { $users = get_users( array( 'meta_key' => 'profile_pic_id', ) ); foreach ( $users as $user ) { $profile_picture_id = get_user_meta( $user->ID, 'profile_pic_id', true ); update_user_meta( $user->ID, 'user_registration_profile_pic_id', $profile_picture_id ); delete_user_meta( $user->ID, 'profile_pic_id' ); } // Change ur_ prefix to user_registration_ for review notice skipped option. $value = get_option( 'ur_review_notice_dismissed' ); update_option( 'user_registration_review_notice_dismissed', $value ); delete_option( 'ur_review_notice_dismissed' ); } /** * Migrate the redirect option from global settings to form-wise settings. * * @since 1.6.0 * * @return void. */ function ur_update_160_option_migrate() { $redirect_url = get_option( 'user_registration_general_setting_redirect_options' ); // Get all posts with user_registration post type. $posts = get_posts( 'post_type=user_registration' ); foreach ( $posts as $post ) { // Update global setting to all user registration posts meta. update_post_meta( $post->ID, 'user_registration_form_setting_redirect_options', $redirect_url ); } } /** * Update DB Version. */ function ur_update_162_db_version() { UR_Install::update_db_version( '1.6.2' ); } /** * Replace user meta key profile_pic_id to user_registration_profile_pic_id. * * @since 1.4.8.1 * * @return void. */ function ur_update_162_meta_key() { $users = get_users( array( 'meta_key' => 'user_registration_profile_pic_id', ) ); foreach ( $users as $user ) { $profile_picture_id = get_user_meta( $user->ID, 'user_registration_profile_pic_id', true ); if ( $profile_picture_id ) { $profile_picture_url = wp_get_attachment_thumb_url( $profile_picture_id ); update_user_meta( $user->ID, 'user_registration_profile_pic_url', $profile_picture_url ); } delete_user_meta( $user->ID, 'user_registration_profile_pic_id' ); } // Delete Redirect options form general setting as previous version refered to do so. delete_option( 'user_registration_general_setting_redirect_options' ); } PK\b includes/class-ur-shortcodes.phpnuW+A __CLASS__ . '::form', // change it to user_registration_form ;) 'user_registration_my_account' => __CLASS__ . '::my_account', 'user_registration_login' => __class__ . '::login', ); foreach ( $shortcodes as $shortcode => $function ) { add_shortcode( apply_filters( "{$shortcode}_shortcode_tag", $shortcode ), $function ); } } /** * Shortcode Wrapper. * * @param string[] $function * @param array $atts (default: array()) * @param array $wrapper * * @return string */ public static function shortcode_wrapper( $function, $atts = array(), $wrapper = array( 'class' => 'user-registration', 'before' => null, 'after' => null, ) ) { ob_start(); echo empty( $wrapper['before'] ) ? '
              ' : $wrapper['before']; call_user_func( $function, $atts ); echo empty( $wrapper['after'] ) ? '
              ' : $wrapper['after']; return ob_get_clean(); } /** * My account page shortcode. * * @param mixed $atts * * @return string */ public static function my_account( $atts ) { return self::shortcode_wrapper( array( 'UR_Shortcode_My_Account', 'output' ), $atts, apply_filters( 'user_registration_my_account_shortcode', array( 'class' => 'user-registration', 'before' => null, 'after' => null, ) ) ); } /** * My account page shortcode. * * @param mixed $atts * * @return string */ public static function login( $atts ) { return self::shortcode_wrapper( array( 'UR_Shortcode_Login', 'output' ), $atts, apply_filters( 'user_registration_login_shortcode', array( 'class' => 'user-registration', 'before' => null, 'after' => null, ) ) ); } /** * User Registration form shortcode. * * @param mixed $atts */ public static function form( $atts ) { if ( empty( $atts ) || ! isset( $atts['id'] ) ) { return ''; } $users_can_register = apply_filters( 'ur_register_setting_override', get_option( 'users_can_register' ) ); if ( ! is_user_logged_in() ) { if ( ! $users_can_register ) { return apply_filters( 'ur_register_pre_form_message', '

              ' . __( 'Only administrators can add new users.', 'user-registration' ) . '

              ' ); } } else { $current_user_capability = apply_filters( 'ur_registration_user_capability', 'create_users' ); if ( ! current_user_can( $current_user_capability ) ) { global $wp; $user_ID = get_current_user_id(); $user = get_user_by( 'ID', $user_ID ); $current_url = home_url( add_query_arg( array(), $wp->request ) ); $display_name = ! empty( $user->data->display_name ) ? $user->data->display_name : $user->data->user_email; return apply_filters( 'ur_register_pre_form_message', '

              ' . sprintf( __( 'You are currently logged in as %1$1s. %2$2s', 'user-registration' ), '' . $display_name . '', '' . __( 'Logout', 'user-registration' ) . ' »' ) . '

              ', $user_ID ); } } $atts = shortcode_atts( array( 'id' => '', ), $atts, 'user_registration_form' ); do_action( 'user_registration_form_shortcode_scripts', $atts ); ob_start(); self::render_form( $atts['id'] ); return ob_get_clean(); } /** * Output for registration form . * * @since 1.0.1 Recaptcha only */ private static function render_form( $form_id ) { $form_data_array = ( $form_id ) ? UR()->form->get_form( $form_id, array( 'content_only' => true ) ) : array(); $form_row_ids = ''; if ( ! empty( $form_data_array ) ) { $form_row_ids = get_post_meta( $form_id, 'user_registration_form_row_ids', true ); } $form_row_ids_array = json_decode( $form_row_ids ); if ( gettype( $form_row_ids_array ) != 'array' ) { $form_row_ids_array = array(); } $is_field_exists = false; $enable_strong_password = ur_get_single_post_meta( $form_id, 'user_registration_form_setting_enable_strong_password' ); $minimum_password_strength = ur_get_single_post_meta( $form_id, 'user_registration_form_setting_minimum_password_strength' ); // Enqueue script. wp_enqueue_script( 'user-registration' ); do_action( 'user_registration_enqueue_scripts', $form_data_array, $form_id ); $has_date = ur_has_date_field( $form_id ); if ( true === $has_date ) { wp_enqueue_style( 'flatpickr' ); wp_enqueue_script( 'flatpickr' ); } if ( 'yes' === $enable_strong_password || '1' === $enable_strong_password ) { wp_enqueue_script( 'ur-password-strength-meter' ); wp_localize_script( 'ur-password-strength-meter', 'enable_strong_password', $enable_strong_password ); } $recaptcha_enabled = ur_get_form_setting_by_key( $form_id, 'user_registration_form_setting_enable_recaptcha_support' ); $recaptcha_node = ur_get_recaptcha_node( $recaptcha_enabled, 'register' ); $form_data_array = apply_filters( 'user_registration_before_registration_form_template', $form_data_array, $form_id ); self::$parts = apply_filters( 'user_registration_parts_data', self::$parts, $form_id, $form_data_array ); include_once UR_ABSPATH . 'includes/frontend/class-ur-frontend.php'; ur_get_template( 'form-registration.php', array( 'form_data_array' => $form_data_array, 'is_field_exists' => $is_field_exists, 'form_id' => $form_id, 'enable_strong_password' => $enable_strong_password, 'minimum_password_strength' => $minimum_password_strength, 'recaptcha_node' => $recaptcha_node, 'parts' => self::$parts, 'row_ids' => $form_row_ids_array, ) ); } } PK\29ZZ1includes/interfaces/class-ur-logger-interface.phpnuW+Aquery_vars['user-logout'] ) && ! empty( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'], 'user-logout' ) ) { // Logout $redirect_url = str_replace( '/user-logout', '', $wp->request ); wp_safe_redirect( str_replace( '&', '&', wp_logout_url( $redirect_url ) ) ); exit; } elseif ( isset( $wp->query_vars['user-logout'] ) && 'true' === $wp->query_vars['user-logout'] ) { // Redirect to the correct logout endpoint. wp_safe_redirect( esc_url_raw( ur_get_page_permalink( 'user-logout' ) ) ); exit; } } /** * Check for login shortcode in the page and redirect to the url passed with login shortcode parameter redirect_url * Handle redirects before content is output - hooked into template_redirect so is_page works. */ function ur_login_template_redirect() { global $post; $post_content = isset( $post->post_content ) ? $post->post_content : ''; if ( ( has_shortcode( $post_content, 'user_registration_login' ) || has_shortcode( $post_content, 'user_registration_my_account' ) ) && is_user_logged_in() ) { preg_match( '/' . get_shortcode_regex() . '/s', $post_content, $matches ); $attributes = shortcode_parse_atts( $matches[3] ); $redirect_url = isset( $attributes['redirect_url'] ) ? $attributes['redirect_url'] : ''; $redirect_url = trim( $redirect_url, ']' ); $redirect_url = trim( $redirect_url, '"' ); $redirect_url = trim( $redirect_url, "'" ); if ( ! empty( $redirect_url ) ) { wp_redirect( $redirect_url ); exit(); } } } /** * Redirects the logged in user to the option set in form settings if registration page is selected. * Donot redirect for admins. * * @return void * @since 1.5.1 */ function ur_registration_template_redirect() { // Return if the user is not logged in. if ( is_user_logged_in() === false ) { return; } $current_user = wp_get_current_user(); $current_user_id = $current_user->ID; // Donot redirect for admins. if ( in_array( 'administrator', wp_get_current_user()->roles ) ) { return; } else { global $post; $post_content = isset( $post->post_content ) ? $post->post_content : ''; if ( has_shortcode( $post_content, 'user_registration_form' ) ) { $attributes = ur_get_shortcode_attr( $post_content ); $form_id = isset( $attributes[0]['id'] ) ? $attributes[0]['id'] : 0; preg_match_all( '!\d+!', $form_id, $form_id ); $redirect_url = ur_get_single_post_meta( $form_id[0][0], 'user_registration_form_setting_redirect_options', '' ); $redirect_url = apply_filters( 'user_registration_redirect_from_registration_page', $redirect_url, $current_user ); if ( ! empty( $redirect_url ) ) { wp_redirect( $redirect_url ); exit(); } } } } /** * Add body classes for UR pages. * * @param array $classes * * @return array */ function ur_body_class( $classes ) { $classes = (array) $classes; $classes[] = 'user-registration-page'; if ( is_ur_account_page() ) { $classes[] = 'user-registration-account'; } foreach ( UR()->query->query_vars as $key => $value ) { if ( is_ur_endpoint_url( $key ) ) { $classes[] = 'user-registration-' . sanitize_html_class( $key ); } } return array_unique( $classes ); } if ( ! function_exists( 'user_registration_form_field' ) ) { /** * Outputs a form fields on frontend. * * @param string $key * @param mixed $args * @param string $value (default: null) * * @return string */ function user_registration_form_field( $key, $args, $value = null ) { /* Conditional Logic codes */ $rules = array(); $rules['conditional_rules'] = isset( $args['conditional_rules'] ) ? $args['conditional_rules'] : ''; $rules['logic_gate'] = isset( $args['logic_gate'] ) ? $args['logic_gate'] : ''; $rules['rules'] = isset( $args['rules'] ) ? $args['rules'] : array(); $rules['required'] = isset( $args['required'] ) ? $args['required'] : ''; foreach ( $rules['rules'] as $rules_key => $rule ) { if ( empty( $rule['field'] ) ) { unset( $rules['rules'][ $rules_key ] ); } } $rules['rules'] = array_values( $rules['rules'] ); $rules = ( ! empty( $rules['rules'] ) && isset( $args['enable_conditional_logic'] ) ) ? wp_json_encode( $rules ) : ''; /*Conditonal Logic codes end*/ $defaults = array( 'type' => 'text', 'label' => '', 'description' => '', 'placeholder' => '', 'size' => false, 'min' => false, 'max' => false, 'required' => false, 'autocomplete' => false, 'id' => $key, 'class' => array(), 'input_class' => array(), 'return' => false, 'options' => array(), 'custom_attributes' => array(), 'validate' => array(), 'default' => '', 'autofocus' => '', 'priority' => '', ); $args = wp_parse_args( $args, $defaults ); $args = apply_filters( 'user_registration_form_field_args', $args, $key, $value ); if ( true === $args['required'] ) { $args['class'][] = 'validate-required'; $required = ' *'; } else { $args['required'] = $required = ''; } if ( is_null( $value ) ) { $value = $args['default']; } // Custom attribute handling $custom_attributes = array(); $args['custom_attributes'] = array_filter( (array) $args['custom_attributes'] ); if ( $args['size'] ) { $args['custom_attributes']['maxlength'] = absint( $args['size'] ); } if ( $args['min'] ) { $args['custom_attributes']['min'] = absint( $args['min'] ); } if ( $args['max'] ) { $args['custom_attributes']['max'] = absint( $args['max'] ); } if ( ! empty( $args['autocomplete'] ) ) { $args['custom_attributes']['autocomplete'] = $args['autocomplete']; } if ( true === $args['autofocus'] ) { $args['custom_attributes']['autofocus'] = 'autofocus'; } if ( ! empty( $args['custom_attributes'] ) && is_array( $args['custom_attributes'] ) ) { foreach ( $args['custom_attributes'] as $attribute => $attribute_value ) { $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"'; } } if ( ! empty( $args['validate'] ) ) { foreach ( $args['validate'] as $validate ) { $args['class'][] = 'validate-' . $validate; } } $field = ''; $label_id = $args['id']; $sort = $args['priority'] ? $args['priority'] : ''; $field_container = '
              %3$s
              '; switch ( $args['type'] ) { case 'textarea': $field .= ''; break; case 'checkbox': $field_key = isset( $args['field_key'] ) ? $args['field_key'] : ''; $default_value = isset( $args['default_value'] ) ? $args['default_value'] : ''; // Backward compatibility. Modified since 1.5.7 $default = ! empty( $value ) ? $value : $default_value; $options = isset( $args['options'] ) ? $args['options'] : ( $args['choices'] ? $args['choices'] : array() ); // $args['choices'] for backward compatibility. Modified since 1.5.7. if ( isset( $options ) && array_filter( $options ) ) { if ( ! empty( $default ) ) { $default = ( is_serialized( $default ) ) ? unserialize( $default ) : $default; } $choices = isset( $options ) ? $options : array(); $field = ''; $checkbox_start = 0; $field .= '
                '; foreach ( $choices as $choice_index => $choice ) { $value = ''; if ( is_array( $default ) && in_array( trim( $choice_index ), $default ) ) { $value = 'checked="checked"'; } elseif ( $default === $choice_index ) { $value = 'checked="checked"'; } $field .= '
              • '; $field .= ' '; $field .= '
              • '; $checkbox_start++; } $field .= '
              '; } else { $field = ''; } break; case 'password': $extra_params_key = str_replace( 'user_registration_', 'ur_', $key ) . '_params'; $extra_params = json_decode( get_user_meta( get_current_user_id(), $extra_params_key, true ) ); if ( empty( $extra_params ) ) { $field_container = '
              %3$s
              '; $field .= ''; $field .= ''; if ( 'yes' === get_option( 'user_registration_login_option_hide_show_password', 'no' ) ) { $field .= ''; } $field .= ''; } else { $field .= ''; } break; case 'text': case 'email': case 'tel': case 'number': case 'url': case 'file': case 'timepicker': $extra_params_key = str_replace( 'user_registration_', 'ur_', $key ) . '_params'; $extra_params = json_decode( get_user_meta( get_current_user_id(), $extra_params_key, true ) ); if ( empty( $extra_params ) ) { $field .= ''; } else { $field .= ''; } break; case 'date': $extra_params_key = str_replace( 'user_registration_', 'ur_', $key ) . '_params'; $extra_params = json_decode( get_user_meta( get_current_user_id(), $extra_params_key, true ) ); $actual_value = $value; if ( isset( $args['custom_attributes']['data-date-format'] ) ) { $date_format = $args['custom_attributes']['data-date-format']; $default_date = isset( $args['custom_attributes']['data-default-date'] ) ? $args['custom_attributes']['data-default-date'] : ''; if ( empty( $value ) && 'today' === $default_date ) { $value = date( $date_format ); $actual_value = date( $date_format ); } else { $value = str_replace( '/', '-', $value ); if ( ! strpos( $value, 'to' ) ) { $value = '' !== $value ? date( $date_format, strtotime( $value ) ) : ''; } else { $date_range = explode( 'to', $value ); $value = date( $date_format, strtotime( trim( $date_range[0] ) ) ) . ' to ' . date( $date_format, strtotime( trim( $date_range[1] ) ) ); } } } if ( empty( $extra_params ) ) { $field .= ''; $field .= ''; $field .= ''; } else { $field .= ''; $field .= ''; $field .= ''; } break; case 'color': $field .= ''; break; case 'select': $default_value = isset( $args['default_value'] ) ? $args['default_value'] : ''; // Backward compatibility. Modified since 1.5.7 $value = ! empty( $value ) ? $value : $default_value; $options = $field .= ''; if ( ! empty( $args['options'] ) ) { // If we have a blank option, select2 needs a placeholder if ( ! empty( $args['placeholder'] ) ) { $options .= ''; } $custom_attributes[] = 'data-allow_clear="true"'; foreach ( $args['options'] as $option_key => $option_text ) { $selected_attribute = ''; if ( empty( $args['placeholder'] ) ) { $selected_attribute = selected( $value, trim( $option_key ), false ); } $options .= ''; } $field .= ''; } break; case 'multiselect': $options = $field .= ''; if ( is_serialized( $value ) ) { $default_value = unserialize( $value ); } else { $default_value = $value; } if ( ! empty( $args['options'] ) ) { foreach ( $args['options'] as $option_key => $option_text ) { if ( '' === $option_key ) { // If we have a blank option, select2 needs a placeholder if ( empty( $args['placeholder'] ) ) { $args['placeholder'] = $option_text ? $option_text : __( 'Choose an option', 'user-registration' ); } $custom_attributes[] = 'data-allow_clear="true"'; } if ( is_array( $default_value ) ) { $options .= ''; } else { $options .= ''; } } $field .= ''; } break; case 'radio': $default_value = isset( $args['default_value'] ) ? $args['default_value'] : ''; // Backward compatibility. Modified since 1.5.7 $value = ! empty( $value ) ? $value : $default_value; $label_id = current( array_keys( $args['options'] ) ); if ( ! empty( $args['options'] ) ) { $field .= '
                '; foreach ( $args['options'] as $option_index => $option_text ) { $field .= '
              • '; $field .= ' '; $field .= '
              • '; } $field .= '
              '; } break; }// End switch(). if ( $args['description'] ) { $field .= '' . $args['description'] . ''; } if ( ! empty( $field ) ) { $field_html = ''; if ( $args['label'] && 'checkbox' != $args['type'] ) { $field_html .= ''; } $field_html .= $field; $container_class = esc_attr( implode( ' ', $args['class'] ) ); $container_id = esc_attr( $args['id'] ) . '_field'; $field = sprintf( $field_container, $container_class, $container_id, $field_html ); } $field = apply_filters( 'user_registration_form_field_' . $args['type'], $field, $key, $args, $value ); if ( $args['return'] ) { return $field; } else { echo $field; } } }// End if(). if ( ! function_exists( 'user_registration_form_data' ) ) { /** * Get form fields to display on profile tab * * @param string $user_id * @param string $form_id * * @return array */ function user_registration_form_data( $user_id = 0, $form_id = 0 ) { $all_meta_value = get_user_meta( $user_id ); $fields = array(); $post_content_array = ( $form_id ) ? UR()->form->get_form( $form_id, array( 'content_only' => true ) ) : array(); $all_meta_value_keys = array(); if ( gettype( $all_meta_value ) === 'array' ) { $all_meta_value_keys = array_keys( $all_meta_value ); } $post_content_array = apply_filters( 'user_registration_profile_account_filter_all_fields', $post_content_array, $form_id ); foreach ( $post_content_array as $post_content_row ) { foreach ( $post_content_row as $post_content_grid ) { foreach ( $post_content_grid as $field ) { $field_name = isset( $field->general_setting->field_name ) ? $field->general_setting->field_name : ''; $field_label = isset( $field->general_setting->label ) ? $field->general_setting->label : ''; $field_description = isset( $field->general_setting->description ) ? $field->general_setting->description : ''; $placeholder = isset( $field->general_setting->placeholder ) ? $field->general_setting->placeholder : ''; $options = isset( $field->general_setting->options ) ? $field->general_setting->options : array(); $field_key = isset( $field->field_key ) ? ( $field->field_key ) : ''; $field_type = isset( $field->field_key ) ? ur_get_field_type( $field_key ) : ''; $required = isset( $field->general_setting->required ) ? $field->general_setting->required : ''; $required = 'yes' == $required ? true : false; $custom_attributes = isset( $field->general_setting->custom_attributes ) ? $field->general_setting->custom_attributes : array(); if ( empty( $field_label ) ) { $field_label_array = explode( '_', $field_name ); $field_label = join( ' ', array_map( 'ucwords', $field_label_array ) ); } if ( ! empty( $field_name ) ) { $extra_params = array(); switch ( $field_key ) { case 'radio': case 'select': $advanced_options = isset( $field->advance_setting->options ) ? $field->advance_setting->options : ''; $advanced_options = explode( ',', $advanced_options ); $extra_params['options'] = ! empty( $options ) ? $options : $advanced_options; $extra_params['options'] = array_map( 'trim', $extra_params['options'] ); foreach ( $extra_params['options'] as $key => $value ) { $extra_params['options'][ $value ] = $value; unset( $extra_params['options'][ $key ] ); } break; case 'checkbox': $advanced_options = isset( $field->advance_setting->choices ) ? $field->advance_setting->choices : ''; $advanced_options = explode( ',', $advanced_options ); $extra_params['options'] = ! empty( $options ) ? $options : $advanced_options; $extra_params['options'] = array_map( 'trim', $extra_params['options'] ); foreach ( $extra_params['options'] as $key => $value ) { $extra_params['options'][ $value ] = $value; unset( $extra_params['options'][ $key ] ); } break; case 'date': $date_format = isset( $field->advance_setting->date_format ) ? $field->advance_setting->date_format : ''; $min_date = isset( $field->advance_setting->min_date ) ? str_replace( '/', '-', $field->advance_setting->min_date ) : ''; $max_date = isset( $field->advance_setting->max_date ) ? str_replace( '/', '-', $field->advance_setting->max_date ) : ''; $set_current_date = isset( $field->advance_setting->set_current_date ) ? $field->advance_setting->set_current_date : ''; $enable_date_range = isset( $field->advance_setting->enable_date_range ) ? $field->advance_setting->enable_date_range : ''; $extra_params['custom_attributes']['data-date-format'] = $date_format; if ( isset( $field->advance_setting->enable_min_max ) && 'true' === $field->advance_setting->enable_min_max ) { $extra_params['custom_attributes']['data-min-date'] = '' !== $min_date ? date( $date_format, strtotime( $min_date ) ) : ''; $extra_params['custom_attributes']['data-max-date'] = '' !== $max_date ? date( $date_format, strtotime( $max_date ) ) : ''; } $extra_params['custom_attributes']['data-default-date'] = $set_current_date; $extra_params['custom_attributes']['data-mode'] = $enable_date_range; break; case 'country': $class_name = ur_load_form_field_class( $field_key ); $extra_params['options'] = $class_name::get_instance()->get_selected_countries( $form_id, $field_name ); break; default: break; } $extra_params['default'] = isset( $all_meta_value[ 'user_registration_' . $field_name ][0] ) ? $all_meta_value[ 'user_registration_' . $field_name ][0] : ''; if ( in_array( $field_key, ur_get_user_profile_field_only() ) ) { $fields[ 'user_registration_' . $field_name ] = array( 'label' => $field_label, 'description' => $field_description, 'type' => $field_type, 'placeholder' => $placeholder, 'field_key' => $field_key, 'required' => $required, ); } if ( count( $custom_attributes ) > 0 ) { $extra_params['custom_attributes'] = $custom_attributes; } if ( isset( $fields[ 'user_registration_' . $field_name ] ) && count( $extra_params ) > 0 ) { $fields[ 'user_registration_' . $field_name ] = array_merge( $fields[ 'user_registration_' . $field_name ], $extra_params ); } $filter_data = array( 'fields' => $fields, 'field' => $field, 'field_name' => $field_name, ); $filtered_data_array = apply_filters( 'user_registration_profile_account_filter_' . $field_key, $filter_data ); if ( isset( $filtered_data_array['fields'] ) ) { $fields = $filtered_data_array['fields']; } }// End if(). }// End foreach(). }// End foreach(). }// End foreach(). return $fields; } }// End if(). if ( ! function_exists( 'user_registration_account_content' ) ) { /** * My Account content output. */ function user_registration_account_content() { global $wp; if ( ! empty( $wp->query_vars ) ) { foreach ( $wp->query_vars as $key => $value ) { // Ignore pagename param. if ( 'pagename' === $key ) { continue; } if ( has_action( 'user_registration_account_' . $key . '_endpoint' ) ) { do_action( 'user_registration_account_' . $key . '_endpoint', $value ); return; } } } // No endpoint found? Default to dashboard. ur_get_template( 'myaccount/dashboard.php', array( 'current_user' => get_user_by( 'id', get_current_user_id() ), ) ); } } if ( ! function_exists( 'user_registration_account_navigation' ) ) { /** * My Account navigation template. */ function user_registration_account_navigation() { ur_get_template( 'myaccount/navigation.php' ); } } if ( ! function_exists( 'user_registration_account_edit_profile' ) ) { /** * My Account > Edit profile template. */ function user_registration_account_edit_profile() { UR_Shortcode_My_Account::edit_profile(); } } if ( ! function_exists( 'user_registration_account_edit_account' ) ) { /** * My Account > Edit account template. */ function user_registration_account_edit_account() { UR_Shortcode_My_Account::edit_account(); } } /** * Get logout endpoint. * * @return string */ function ur_logout_url( $redirect = '' ) { $logout_endpoint = get_option( 'user_registration_logout_endpoint' ); if ( ( ur_post_content_has_shortcode( 'user_registration_login' ) || ur_post_content_has_shortcode( 'user_registration_my_account' ) ) && is_user_logged_in() ) { global $post; $post_content = isset( $post->post_content ) ? $post->post_content : ''; preg_match( '/' . get_shortcode_regex() . '/s', $post_content, $matches ); $attributes = shortcode_parse_atts( $matches[3] ); /** * Introduced logout_redirect parameter in user_registration_my_account shortcode. * * @since 1.7.5 */ if ( isset( $attributes['logout_redirect'] ) ) { $redirect = isset( $attributes['logout_redirect'] ) ? $attributes['logout_redirect'] : ''; $redirect = trim( $redirect, ']' ); $redirect = trim( $redirect, '"' ); $redirect = trim( $redirect, "'" ); $redirect = '' != $redirect ? home_url( $redirect ) : ur_get_page_permalink( 'myaccount' ); } } $redirect = apply_filters( 'user_registration_redirect_after_logout', $redirect ); if ( $logout_endpoint ) { return wp_nonce_url( ur_get_endpoint_url( 'user-logout', '', $redirect ), 'user-logout' ); } else { return wp_logout_url( $redirect ); } } PK\=nq]]*includes/admin/class-ur-admin-settings.phpnuW+A 0 ) { foreach ( self::$errors as $error ) { echo '

              ' . esc_html( $error ) . '

              '; } } elseif ( sizeof( self::$messages ) > 0 ) { foreach ( self::$messages as $message ) { echo '

              ' . esc_html( $message ) . '

              '; } } } /** * Settings page. * * Handles the display of the main Social Sharing settings page in admin. */ public static function output() { global $current_section, $current_tab; $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; do_action( 'user_registration_settings_start' ); wp_enqueue_script( 'user-registration-settings', UR()->plugin_url() . '/assets/js/admin/settings' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'iris' ), UR_VERSION, true ); wp_localize_script( 'user-registration-settings', 'user_registration_settings_params', array( 'i18n_nav_warning' => __( 'The changes you made will be lost if you navigate away from this page.', 'user-registration' ), ) ); // Include settings pages. self::get_settings_pages(); // Get current tab/section $current_tab = empty( $_GET['tab'] ) ? 'general' : sanitize_title( $_GET['tab'] ); $current_section = empty( $_REQUEST['section'] ) ? '' : sanitize_title( $_REQUEST['section'] ); $flag = apply_filters( 'user_registration_settings_save_action', true ); if ( $flag ) { // Save settings if data has been posted. if ( ! empty( $_POST ) ) { self::save(); } } // Add any posted messages if ( ! empty( $_GET['ur_error'] ) ) { self::add_error( stripslashes( $_GET['ur_error'] ) ); } if ( ! empty( $_GET['ur_message'] ) ) { self::add_message( stripslashes( $_GET['ur_error'] ) ); } // Get tabs for the settings page $tabs = apply_filters( 'user_registration_settings_tabs_array', array() ); if ( 'import_export' === $current_tab ) { $GLOBALS['hide_save_button'] = true; } include dirname( __FILE__ ) . '/views/html-admin-settings.php'; } /** * Get a setting from the settings API. * * @param mixed $option_name Option Name. * @param mixed $default Default. * * @return string */ public static function get_option( $option_name, $default = '' ) { // Array value. if ( strstr( $option_name, '[' ) ) { parse_str( $option_name, $option_array ); // Option name is first key $option_name = current( array_keys( $option_array ) ); // Get value. $option_values = get_option( $option_name, '' ); $key = key( $option_array[ $option_name ] ); if ( isset( $option_values[ $key ] ) ) { $option_value = $option_values[ $key ]; } else { $option_value = null; } } else { $option_value = get_option( $option_name, null ); } if ( is_array( $option_value ) ) { $option_value = array_map( 'stripslashes', $option_value ); } elseif ( ! is_null( $option_value ) ) { $option_value = stripslashes( $option_value ); } return null === $option_value ? $default : $option_value; } /** * Output admin fields. * * Loops though the user registration options array and outputs each field. * * @param array[] $options Opens array to output. */ public static function output_fields( $options ) { foreach ( $options as $value ) { if ( ! isset( $value['type'] ) ) { continue; } if ( ! isset( $value['id'] ) ) { $value['id'] = ''; } if ( ! isset( $value['row_class'] ) ) { $value['row_class'] = ''; } if ( ! isset( $value['title'] ) ) { $value['title'] = isset( $value['name'] ) ? $value['name'] : ''; } if ( ! isset( $value['class'] ) ) { $value['class'] = ''; } if ( ! isset( $value['css'] ) ) { $value['css'] = ''; } if ( ! isset( $value['default'] ) ) { $value['default'] = ''; } if ( ! isset( $value['desc'] ) ) { $value['desc'] = ''; } if ( ! isset( $value['desc_tip'] ) ) { $value['desc_tip'] = false; } if ( ! isset( $value['desc_field'] ) ) { $value['desc_field'] = false; } if ( ! isset( $value['placeholder'] ) ) { $value['placeholder'] = ''; } // Custom attribute handling $custom_attributes = array(); if ( ! empty( $value['custom_attributes'] ) && is_array( $value['custom_attributes'] ) ) { foreach ( $value['custom_attributes'] as $attribute => $attribute_value ) { $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"'; } } // Description handling. $field_description = self::get_field_description( $value ); extract( $field_description ); // Switch based on type. switch ( $value['type'] ) { // Section Titles. case 'title': if ( ! empty( $value['title'] ) ) { echo '

              ' . esc_html( $value['title'] ) . '

              '; } if ( ! empty( $value['desc'] ) ) { echo wpautop( wptexturize( wp_kses_post( $value['desc'] ) ) ); } echo '' . "\n\n"; if ( ! empty( $value['id'] ) ) { do_action( 'user_registration_settings_' . sanitize_title( $value['id'] ) ); } break; // Section Ends. case 'sectionend': if ( ! empty( $value['id'] ) ) { do_action( 'user_registration_settings_' . sanitize_title( $value['id'] ) . '_end' ); } echo '
              '; if ( ! empty( $value['id'] ) ) { do_action( 'user_registration_settings_' . sanitize_title( $value['id'] ) . '_after' ); } break; // Standard text inputs and subtypes like 'number'. case 'text': case 'email': case 'number': case 'password': case 'date': $option_value = self::get_option( $value['id'], $value['default'] ); ?> /> />‎
                $val ) { ?>
              $value['id'], 'id' => $value['id'], 'sort_column' => 'menu_order', 'sort_order' => 'ASC', 'show_option_none' => ' ', 'class' => $value['class'], 'echo' => false, 'selected' => absint( self::get_option( $value['id'] ) ), ); if ( isset( $value['args'] ) ) { $args = wp_parse_args( $value['args'], $args ); } ?> > esc_attr( $value['id'] ), 'id' => esc_attr( $value['id'] ), 'style' => esc_attr( $value['css'] ), 'default' => esc_attr( $value['default'] ), 'class' => esc_attr( $value['class'] ), 'quicktags' => array( 'buttons' => 'em,strong,link' ), 'tinymce' => array( 'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator', 'theme_advanced_buttons2' => '', ), 'editor_css' => '', ); $option_value = self::get_option( $value['id'], $value['default'] ); ?> ' . wp_kses_post( $description ) . '

              '; } elseif ( $description && in_array( $value['type'], array( 'checkbox' ) ) ) { $description = wp_kses_post( $description ); } elseif ( $description ) { $description = '' . wp_kses_post( $description ) . ''; } if ( $desc_field && in_array( $value['type'], array( 'textarea', 'radio', 'checkbox' ) ) ) { $desc_field = '

              ' . wp_kses_post( $desc_field ) . '

              '; } elseif ( $desc_field ) { $desc_field = '' . wp_kses_post( $desc_field ) . ''; } if ( $tooltip_html ) { $tooltip_html = ur_help_tip( $tooltip_html ); } return array( 'description' => $description, 'desc_field' => $desc_field, 'tooltip_html' => $tooltip_html, ); } /** * Save admin fields. * * Loops though the user registration options array and outputs each field. * * @param array $options Options array to output. * * @return bool */ public static function save_fields( $options ) { if ( empty( $_POST ) ) { return false; } // Options to update will be stored here and saved later. $update_options = array(); // Loop options and get values to save. foreach ( $options as $option ) { if ( ! isset( $option['id'] ) || ! isset( $option['type'] ) ) { continue; } // Get posted value. if ( strstr( $option['id'], '[' ) ) { parse_str( $option['id'], $option_name_array ); $option_name = current( array_keys( $option_name_array ) ); $setting_name = key( $option_name_array[ $option_name ] ); $raw_value = isset( $_POST[ $option_name ][ $setting_name ] ) ? wp_unslash( $_POST[ $option_name ][ $setting_name ] ) : null; } else { $option_name = $option['id']; $setting_name = ''; $raw_value = isset( $_POST[ $option['id'] ] ) ? wp_unslash( $_POST[ $option['id'] ] ) : null; } // Format the value based on option type. switch ( $option['type'] ) { case 'checkbox': $value = '1' === $raw_value || 'yes' === $raw_value ? 'yes' : 'no'; break; case 'textarea': $value = wp_kses_post( trim( $raw_value ) ); break; case 'multiselect': $value = array_filter( array_map( 'ur_clean', (array) $raw_value ) ); break; case 'select': $allowed_values = empty( $option['options'] ) ? array() : array_keys( $option['options'] ); if ( empty( $option['default'] ) && empty( $allowed_values ) ) { $value = null; break; } $default = ( empty( $option['default'] ) ? $allowed_values[0] : $option['default'] ); $value = in_array( $raw_value, $allowed_values ) ? $raw_value : $default; break; case 'tinymce': $value = wpautop( $raw_value ); break; default: $value = ur_clean( $raw_value ); break; } /** * Sanitize the value of an option. */ $value = apply_filters( 'user_registration_admin_settings_sanitize_option', $value, $option, $raw_value ); /** * Sanitize the value of an option by option name. */ $value = apply_filters( "user_registration_admin_settings_sanitize_option_$option_name", $value, $option, $raw_value ); if ( is_null( $value ) ) { continue; } // Check if option is an array and handle that differently to single values. if ( $option_name && $setting_name ) { if ( ! isset( $update_options[ $option_name ] ) ) { $update_options[ $option_name ] = get_option( $option_name, array() ); } if ( ! is_array( $update_options[ $option_name ] ) ) { $update_options[ $option_name ] = array(); } $update_options[ $option_name ][ $setting_name ] = $value; } else { $update_options[ $option_name ] = $value; } }// End foreach(). // Save all options in our array. foreach ( $update_options as $name => $value ) { update_option( $name, $value ); } return true; } } PK\a  2includes/admin/settings/class-ur-settings-page.phpnuW+Aid, array( $this, 'output_sections' ) ); add_action( 'user_registration_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'user_registration_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get settings page ID. * * @return string */ public function get_id() { return $this->id; } /** * Get settings page label. * * @return string */ public function get_label() { return $this->label; } /** * Add this page to settings. * * @param array $pages * @return mixed */ public function add_settings_page( $pages ) { $pages[ $this->id ] = $this->label; return $pages; } /** * Get settings array. * * @return array */ public function get_settings() { return apply_filters( 'user_registration_get_settings_' . $this->id, array() ); } /** * Get sections. * * @return array */ public function get_sections() { return apply_filters( 'user_registration_get_sections_' . $this->id, array() ); } /** * Output sections. */ public function output_sections() { global $current_section; $sections = $this->get_sections(); if ( empty( $sections ) ) { return; } echo '
                '; $array_keys = array_keys( $sections ); foreach ( $sections as $id => $label ) { echo '
              • ' . $label . ' ' . '
              • '; } echo '

              '; } /** * Output the settings. */ public function output() { $settings = $this->get_settings(); UR_Admin_Settings::output_fields( $settings ); } /** * Save settings. */ public function save() { global $current_section; $settings = $this->get_settings(); UR_Admin_Settings::save_fields( $settings ); if ( $current_section ) { do_action( 'user_registration_update_options_' . $this->id . '_' . $current_section ); } } } endif; PK\JJ5includes/admin/settings/class-ur-settings-general.phpnuW+Aid = 'general'; $this->label = __( 'General', 'user-registration' ); add_filter( 'user_registration_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'user_registration_sections_' . $this->id, array( $this, 'output_sections' ) ); add_action( 'user_registration_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'user_registration_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get sections. * * @return array */ public function get_sections() { $sections = array( '' => __( 'General Options', 'user-registration' ), 'login-options' => __( 'Login Options', 'user-registration' ), 'frontend-messages' => __( 'Frontend Messages', 'user-registration' ), ); return apply_filters( 'user_registration_get_sections_' . $this->id, $sections ); } /** * Get General settings settings * * @return array */ public function get_settings() { $all_roles = ur_get_default_admin_roles(); $all_roles_except_admin = $all_roles; unset( $all_roles_except_admin['administrator'] ); $settings = apply_filters( 'user_registration_general_settings', array( array( 'title' => __( 'General Options', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'general_options', ), array( 'title' => __( 'User login option', 'user-registration' ), 'desc' => __( 'This option lets you choose login option after user registration.', 'user-registration' ), 'id' => 'user_registration_general_setting_login_options', 'default' => 'default', 'type' => 'select', 'class' => 'ur-enhanced-select', 'css' => 'min-width: 350px;', 'desc_tip' => true, 'options' => ur_login_option(), ), array( 'title' => __( 'Prevent dashboard access', 'user-registration' ), 'desc' => __( 'This option lets you limit which roles you are willing to prevent dashboard access.', 'user-registration' ), 'id' => 'user_registration_general_setting_disabled_user_roles', 'default' => array( 'subscriber' ), 'type' => 'multiselect', 'class' => 'ur-enhanced-select', 'css' => 'min-width: 350px;', 'desc_tip' => true, 'options' => $all_roles_except_admin, ), array( 'title' => __( 'Enable hide/show password', 'user-registration' ), 'desc' => __( 'Check to enable hide/show password icon.', 'user-registration' ), 'id' => 'user_registration_login_option_hide_show_password', 'type' => 'checkbox', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => 'no', ), array( 'title' => __( 'Uninstall Option', 'user-registration' ), 'desc' => __( 'Heads Up! Check this if you would like to remove ALL User Registration data upon plugin deletion.', 'user-registration' ), 'id' => 'user_registration_general_setting_uninstall_option', 'type' => 'checkbox', 'desc_tip' => 'All user registration forms, pages and users data will be unrecoverable.', 'css' => 'min-width: 350px;', 'default' => 'no', ), array( 'type' => 'sectionend', 'id' => 'general_options', ), array( 'title' => __( 'My account Section', 'user-registration' ), 'type' => 'title', 'id' => 'my_account_options', ), array( 'title' => __( 'My account page', 'user-registration' ), 'desc' => sprintf( __( 'Select the page which contains your login form: [%s]', 'user-registration' ), apply_filters( 'user_registration_myaccount_shortcode_tag', 'user_registration_my_account' ) ), 'id' => 'user_registration_myaccount_page_id', 'type' => 'single_select_page', 'default' => '', 'class' => 'ur-enhanced-select-nostd', 'css' => 'min-width:350px;', 'desc_tip' => true, ), array( 'title' => __( 'Layout', 'user-registration' ), 'desc' => __( 'This option lets you choose layout for user registration my account tab.', 'user-registration' ), 'id' => 'user_registration_my_account_layout', 'default' => 'horizontal', 'type' => 'select', 'class' => 'ur-enhanced-select', 'css' => 'min-width: 350px;', 'desc_tip' => true, 'options' => array( 'horizontal' => __( 'Horizontal', 'user-registration' ), 'vertical' => __( 'Vertical', 'user-registration' ), ), ), array( 'type' => 'sectionend', 'id' => 'my_account_options', ), array( 'title' => __( '', 'user-registration' ), 'type' => 'title', 'desc' => '' . __( 'Endpoints: ', 'user-registration' ) . '' . __( 'Endpoints are appended to your page URLs to handle specific actions on the accounts pages. They should be unique and can be left blank to disable the endpoint.', 'user-registration' ), 'css' => 'min-width: 250px;', 'id' => 'account_endpoint_options', ), array( 'title' => __( 'Edit profile', 'user-registration' ), 'desc' => __( 'Endpoint for the "My account → Edit profile" page.', 'user-registration' ), 'id' => 'user_registration_myaccount_edit_profile_endpoint', 'type' => 'text', 'default' => 'edit-profile', 'desc_tip' => true, ), array( 'title' => __( 'Change Password', 'user-registration' ), 'desc' => __( 'Endpoint for the "My account → Change Password" page.', 'user-registration' ), 'id' => 'user_registration_myaccount_change_password_endpoint', 'type' => 'text', 'default' => 'edit-password', 'desc_tip' => true, ), array( 'title' => __( 'Lost password', 'user-registration' ), 'desc' => __( 'Endpoint for the "My account → Lost password" page.', 'user-registration' ), 'id' => 'user_registration_myaccount_lost_password_endpoint', 'type' => 'text', 'default' => 'lost-password', 'desc_tip' => true, ), array( 'title' => __( 'User logout', 'user-registration' ), 'desc' => __( 'Endpoint for the triggering logout. You can add this to your menus via a custom link: yoursite.com/?user-logout=true', 'user-registration' ), 'id' => 'user_registration_logout_endpoint', 'type' => 'text', 'default' => 'user-logout', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'account_endpoint_options', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Settings for frontend messages customization. * * @return array */ public function get_frontend_messages_settings() { $settings = apply_filters( 'user_registration_frontend_messages_settings', array( array( 'title' => __( 'Success Messages', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'frontend_success_messages_settings', ), array( 'title' => __( 'Manual login after registration', 'user-registration' ), 'desc' => __( 'Enter the text message after successful form submission on manual login after registration.', 'user-registration' ), 'id' => 'user_registration_successful_form_submission_message_manual_registation', 'type' => 'textarea', 'desc_tip' => true, 'css' => 'min-width: 350px; min-height: 100px;', 'default' => __( 'User successfully registered.', 'user-registration' ), ), array( 'title' => __( 'Email confirmation to login', 'user-registration' ), 'desc' => __( 'Enter the text message after successful form submission on email confirmation to login.', 'user-registration' ), 'id' => 'user_registration_successful_form_submission_message_email_confirmation', 'type' => 'textarea', 'desc_tip' => true, 'css' => 'min-width: 350px; min-height: 100px;', 'default' => __( 'User registered. Verify your email by clicking on the link sent to your email.', 'user-registration' ), ), array( 'title' => __( 'Admin approval after registration', 'user-registration' ), 'desc' => __( 'Enter the text message after successful form submission on admin approval after registration.', 'user-registration' ), 'id' => 'user_registration_successful_form_submission_message_admin_approval', 'type' => 'textarea', 'desc_tip' => true, 'css' => 'min-width: 350px; min-height: 100px;', 'default' => __( 'User registered. Wait until admin approves your registration.', 'user-registration' ), ), array( 'type' => 'sectionend', 'id' => 'frontend_success_messages_settings', ), array( 'title' => __( 'Error Messages', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'frontend_error_message_messages_settings', ), array( 'title' => __( 'Required', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on required fields.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_required_fields', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'This field is required.', 'user-registration' ), ), array( 'title' => __( 'Email', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on Email.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_email', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Please enter a valid email address.', 'user-registration' ), ), array( 'title' => __( 'Website URL', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on website/URL.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_website_URL', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Please enter a valid URL.', 'user-registration' ), ), array( 'title' => __( 'Number', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on Number.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_number', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Please enter a valid number.', 'user-registration' ), ), array( 'title' => __( 'Confirm Email', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on Confim Email.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_confirm_email', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Email and confirm email not matched.', 'user-registration' ), ), array( 'title' => __( 'Confirm Password', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on Confim Password.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_confirm_password', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Password and confirm password not matched.', 'user-registration' ), ), array( 'title' => __( 'Google reCaptcha', 'user-registration' ), 'desc' => __( 'Enter the error message in form submission on google recaptcha.', 'user-registration' ), 'id' => 'user_registration_form_submission_error_message_recaptcha', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Captcha code error, please try again.', 'user-registration' ), ), array( 'type' => 'sectionend', 'id' => 'frontend_error_messages_settings', ), ) ); return apply_filters( 'user_registration_get_frontend_messages_settings_' . $this->id, $settings ); } /** * Get settings for login form * * @return array */ public function get_login_options_settings() { $settings = apply_filters( 'user_registration_login_options_settings', array( array( 'title' => __( 'Login Options', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'login_options_settings', ), array( 'title' => __( 'Form Template', 'user-registration' ), 'desc' => __( 'Choose the login form template.', 'user-registration' ), 'id' => 'user_registration_login_options_form_template', 'type' => 'select', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => 'default', 'options' => array( 'default' => __( 'Default', 'user-registration' ), 'bordered' => __( 'Bordered', 'user-registration' ), 'flat' => __( 'Flat', 'user-registration' ), 'rounded' => __( 'Rounded', 'user-registration' ), 'rounded_edge' => __( 'Rounded Edge', 'user-registration' ), ), ), array( 'title' => __( 'Enable remember me', 'user-registration' ), 'desc' => __( 'Enable', 'user-registration' ), 'id' => 'user_registration_login_options_remember_me', 'type' => 'checkbox', 'desc_tip' => __( 'Check to enable/disable remember me.', 'user-registration' ), 'css' => 'min-width: 350px;', 'default' => 'yes', ), array( 'title' => __( 'Enable lost password', 'user-registration' ), 'desc' => __( 'Enable', 'user-registration' ), 'id' => 'user_registration_login_options_lost_password', 'type' => 'checkbox', 'desc_tip' => __( 'Check to enable/disable lost password.', 'user-registration' ), 'css' => 'min-width: 350px;', 'default' => 'yes', ), array( 'title' => __( 'Enable google reCaptcha', 'user-registration' ), 'desc' => __( 'Enable', 'user-registration' ), 'id' => 'user_registration_login_options_enable_recaptcha', 'type' => 'checkbox', 'desc_tip' => sprintf( __( 'Enable %1$s %2$s reCaptcha %3$s support', 'user-registration' ), '', '' ), 'css' => 'min-width: 350px;', 'default' => 'no', ), array( 'title' => __( 'Registration URL', 'user-registration' ), 'desc' => __( 'This option lets you enter the registration page url in login form.', 'user-registration' ), 'id' => 'user_registration_general_setting_registration_url_options', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', ), array( 'title' => __( 'Registration URL label', 'user-registration' ), 'desc' => __( 'This option lets you enter the label to registration url in login form.', 'user-registration' ), 'id' => 'user_registration_general_setting_registration_label', 'type' => 'text', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'default' => __( 'Not a member yet? Register now.', 'user-registration' ), ), array( 'title' => __( 'Prevent Core Login', 'user-registration' ), 'desc' => __( 'Enable Prevent Core Login', 'user-registration' ), 'id' => 'user_registration_login_options_prevent_core_login', 'type' => 'checkbox', 'desc_tip' => __( 'Check to disable WordPress default login or registration page.', 'user-registration' ), 'css' => 'min-width: 350px;', 'default' => 'no', 'desc_field' => __( 'Please make sure that you have created a login or my-account page which has a login form before enabling this option. Learn how to create a login form here.', 'user-registration' ), ), array( 'title' => __( 'Redirect to Login Page', 'user-registration' ), 'desc' => __( 'Select the login page where you wants to redirect.', 'user-registration' ), 'id' => 'user_registration_login_options_login_redirect_url', 'type' => 'single_select_page', 'desc_tip' => true, 'css' => 'min-width: 350px;', 'class' => 'ur-redirect-to-login-page', 'default' => '', ), array( 'type' => 'sectionend', 'id' => 'login_options_settings', ), ) ); return apply_filters( 'user_registration_get_login_options_settings_' . $this->id, $settings ); } /** * Output the settings. */ public function output() { global $current_section; if ( '' === $current_section ) { $settings = $this->get_settings(); } elseif ( 'frontend-messages' === $current_section ) { $settings = $this->get_frontend_messages_settings(); } elseif ( 'login-options' === $current_section ) { $settings = $this->get_login_options_settings(); } else { $settings = array(); } UR_Admin_Settings::output_fields( $settings ); } /** * Save settings */ public function save() { global $current_section; $settings = $this->get_settings(); if ( '' === $current_section ) { $settings = $this->get_settings(); } elseif ( 'frontend-messages' === $current_section ) { $settings = $this->get_frontend_messages_settings(); } elseif ( 'login-options' === $current_section ) { $settings = $this->get_login_options_settings(); } UR_Admin_Settings::save_fields( $settings ); } } endif; return new UR_Settings_General(); PK\tXRincludes/admin/settings/emails/class-ur-settings-profile-details-changed-email.phpnuW+Aid = 'profile_details_changed_email'; $this->title = __( 'Profile Details Changed Email', 'user-registration' ); $this->description = __( 'Email sent to the admin when a user changed profile information', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'profile_details_changed_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the admin when a user changed profile information.', 'user-registration' ), 'id' => 'user_registration_enable_profile_details_changed_email', 'default' => 'no', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Receipents', 'user-registration' ), 'desc' => __( 'Use comma to send emails to multiple receipents.', 'user-registration' ), 'id' => 'user_registration_edit_profile_email_receipents', 'default' => get_option( 'admin_email' ), 'type' => 'text', 'css' => 'min-width: 350px;', 'autoload' => false, 'desc_tip' => true, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_profile_details_changed_email_subject', 'type' => 'text', 'default' => __( 'Profile Details Changed Email: {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_profile_details_changed_email', 'type' => 'tinymce', 'default' => $this->ur_get_profile_details_changed_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'profile_details_changed_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Message to be send to admin while profile detail changed. * * @return string message */ public function ur_get_profile_details_changed_email() { $message = apply_filters( 'user_registration_profile_details_changed_email_message', sprintf( __( 'User has changed profile information for the following account:
              SiteName: {{blog_info}}
              Username: {{username}}
              {{all_fields}}
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Profile_Details_Changed_Email(); PK\.*b& & @includes/admin/settings/emails/class-ur-settings-admin-email.phpnuW+Aid = 'admin_email'; $this->title = __( 'Admin Email', 'user-registration' ); $this->description = __( 'Email sent to the admin when a new user registers', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'admin_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to admin after successful user registration.', 'user-registration' ), 'id' => 'user_registration_enable_admin_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Receipents', 'user-registration' ), 'desc' => __( 'Use comma to send emails to multiple receipents.', 'user-registration' ), 'id' => 'user_registration_admin_email_receipents', 'default' => get_option( 'admin_email' ), 'type' => 'text', 'css' => 'min-width: 350px;', 'autoload' => false, 'desc_tip' => true, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_admin_email_subject', 'type' => 'text', 'default' => __( 'A New User Registered', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_admin_email', 'type' => 'tinymce', 'default' => $this->ur_get_admin_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'admin_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email format. */ public function ur_get_admin_email() { $message = apply_filters( 'user_registration_admin_email_message', sprintf( __( 'Hi Admin,
              A new user {{username}} - {{email}} has successfully registered to your site {{blog_info}}.
              Please review the user role and details at \'Users\' menu in your WP dashboard.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Admin_Email(); PK\rfF Gincludes/admin/settings/emails/class-ur-settings-email-confirmation.phpnuW+Aid = 'email_confirmation'; $this->title = __( 'Email Confirmation', 'user-registration' ); $this->description = __( 'Email sent to the user with a verification link when email confirmation to register option is choosen', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'email_confirmation', ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_email_confirmation_subject', 'type' => 'text', 'default' => __( 'Please confirm your registration on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_email_confirmation', 'type' => 'tinymce', 'default' => $this->ur_get_email_confirmation(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'email_confirmation', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_email_confirmation() { $message = apply_filters( 'user_registration_get_email_confirmation', sprintf( __( 'Hi {{username}},
              You have registered on {{blog_info}}.
              Please click on this verification link {{home_url}}/{{ur_login}}?ur_token={{email_token}} to confirm registration.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Email_Confirmation(); PK\;#\ Rincludes/admin/settings/emails/class-ur-settings-awaiting-admin-approval-email.phpnuW+Aid = 'awaiting_admin_approval_email'; $this->title = __( 'Awaiting Admin Approval', 'user-registration' ); $this->description = __( 'Email sent to the user notifying the registration is awaiting admin approval', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'awaiting_admin_approval_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to user notifying the registration is awaiting admin approval.', 'user-registration' ), 'id' => 'user_registration_enable_awaiting_admin_approval_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_awaiting_admin_approval_email_subject', 'type' => 'text', 'default' => __( 'Thank you for registration on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_awaiting_admin_approval_email', 'type' => 'tinymce', 'default' => $this->ur_get_awaiting_admin_approval_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'awaiting_admin_approval_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_awaiting_admin_approval_email() { $message = apply_filters( 'user_registration_get_awaiting_admin_approval_email', sprintf( __( 'Hi {{username}},
              You have registered on {{blog_info}}.
              Please wait until the site admin approves your registration. You will be notified after it is approved.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Awaiting_Admin_Approval_Email(); PK\" Pincludes/admin/settings/emails/class-ur-settings-registration-approved-email.phpnuW+Aid = 'registration_approved_email'; $this->title = __( 'Registration Approved Email', 'user-registration' ); $this->description = __( 'Email sent to the user notifying the registration is approved by site admin', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'registration_approved_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the user notifying the registration is approved by site admin.', 'user-registration' ), 'id' => 'user_registration_enable_registration_approved_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_approved_email_subject', 'type' => 'text', 'default' => __( 'Congratulations! Registration approved on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_approved_email', 'type' => 'tinymce', 'default' => $this->ur_get_registration_approved_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'registration_approved_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_registration_approved_email() { $message = apply_filters( 'user_registration_get_registration_approved_email', sprintf( __( 'Hi {{username}},
              Your registration on {{blog_info}} has been approved.
              Please visit \'My Account\' page to edit your account details and create your user profile on {{blog_info}}.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Registration_Approved_Email(); PK\U Oincludes/admin/settings/emails/class-ur-settings-registration-pending-email.phpnuW+Aid = 'registration_pending_email'; $this->title = __( 'Registration Pending Email', 'user-registration' ); $this->description = __( 'Email sent to the user notifying the registration is pending', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'registration_pending_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the user notifying the registration is pending.', 'user-registration' ), 'id' => 'user_registration_enable_registration_pending_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_pending_email_subject', 'type' => 'text', 'default' => __( 'Sorry! Registration changed to pending on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_pending_email', 'type' => 'tinymce', 'default' => $this->ur_get_registration_pending_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'registration_pending_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_registration_pending_email() { $message = apply_filters( 'user_registration_get_registration_pending_email', sprintf( __( 'Hi {{username}},
              Your registration on {{blog_info}} has been changed to pending.
              Sorry for the inconvenience.
              You will be notified after it is approved.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Registration_Pending_Email(); PK\c~Hn n Nincludes/admin/settings/emails/class-ur-settings-registration-denied-email.phpnuW+Aid = 'registration_denied_email'; $this->title = __( 'Registration Denied Email', 'user-registration' ); $this->description = __( 'Email sent to the user notifying the registration is denied by the admin', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'registration_denied_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the user notifying the registration is denied by the admin.', 'user-registration' ), 'id' => 'user_registration_enable_registration_denied_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_denied_email_subject', 'type' => 'text', 'default' => __( 'Sorry! Registration denied on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_registration_denied_email', 'type' => 'tinymce', 'default' => $this->ur_get_registration_denied_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'registration_denied_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_registration_denied_email() { $message = apply_filters( 'user_registration_get_registration_denied_email', sprintf( __( 'Hi {{username}},
              You have registered on {{blog_info}}.
              Unfortunately your registration is denied. Sorry for the inconvenience.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Registration_Denied_Email(); PK\! Rincludes/admin/settings/emails/class-ur-settings-successfully-registered-email.phpnuW+Aid = 'successfully_registered_email'; $this->title = __( 'Successfully Registered Email', 'user-registration' ); $this->description = __( 'Email sent to the user after successful registration', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'successfully_registered_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the user after successful user registration.', 'user-registration' ), 'id' => 'user_registration_enable_successfully_registered_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_successfully_registered_email_subject', 'type' => 'text', 'default' => __( 'Congratulations! Registration Complete on {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_successfully_registered_email', 'type' => 'tinymce', 'default' => $this->ur_get_successfully_registered_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'successfully_registered_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_successfully_registered_email() { $message = apply_filters( 'user_registration_get_successfully_registered_email', sprintf( __( 'Hi {{username}},
              You have successfully completed user registration on {{blog_info}}.
              Please visit \'My Account\' page to edit your account details and create your user profile on {{blog_info}}.
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Successfully_Registered_Email(); PK\‹ Iincludes/admin/settings/emails/class-ur-settings-reset-password-email.phpnuW+Aid = 'reset_password_email'; $this->title = __( 'Reset Password Email', 'user-registration' ); $this->description = __( 'Email sent to the user when a user requests for reset password', 'user-registration' ); } /** * Get settings * * @return array */ public function get_settings() { ?>

              'title', 'desc' => '', 'id' => 'reset_password_email', ), array( 'title' => __( 'Enable this email', 'user-registration' ), 'desc' => __( 'Enable this email sent to the user when a user requests for reset password.', 'user-registration' ), 'id' => 'user_registration_enable_reset_password_email', 'default' => 'yes', 'type' => 'checkbox', 'autoload' => false, ), array( 'title' => __( 'Email Subject', 'user-registration' ), 'desc' => __( 'The email subject you want to customize.', 'user-registration' ), 'id' => 'user_registration_reset_password_email_subject', 'type' => 'text', 'default' => __( 'Password Reset Email: {{blog_info}}', 'user-registration' ), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Email Content', 'user-registration' ), 'desc' => __( 'The email content you want to customize.', 'user-registration' ), 'id' => 'user_registration_reset_password_email', 'type' => 'tinymce', 'default' => $this->ur_get_reset_password_email(), 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'reset_password_email', ), ) ); return apply_filters( 'user_registration_get_settings_' . $this->id, $settings ); } /** * Email Format. */ public function ur_get_reset_password_email() { $message = apply_filters( 'user_registration_reset_password_email_message', sprintf( __( 'Someone has requested a password reset for the following account:
              SiteName: {{blog_info}}
              Username: {{username}}
              If this was a mistake, just ignore this email and nothing will happen.
              To reset your password, visit the following address:
              Click Here
              Thank You!', 'user-registration' ) ) ); return $message; } } endif; return new UR_Settings_Reset_Password_Email(); PK\rQQ;includes/admin/settings/class-ur-settings-import-export.phpnuW+Aid = 'import_export'; $this->label = __( 'Import/Export', 'user-registration' ); add_filter( 'user_registration_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'user_registration_sections_' . $this->id, array( $this, 'output_sections' ) ); add_action( 'user_registration_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'user_registration_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get sections. * * @return array */ public function get_sections() { $sections = array( '' => __( 'Export Users', 'user-registration' ), 'import-export-forms' => __( 'Import/Export Forms', 'user-registration' ), ); return apply_filters( 'user_registration_get_sections_' . $this->id, $sections ); } /** * Output the settings. */ public function output() { global $current_section; if ( '' === $current_section ) { $settings = array(); UR_Admin_Export_Users::output(); } elseif ( 'import-export-forms' === $current_section ) { $settings = array(); UR_Admin_Import_Export_Forms::output(); } else { $settings = array(); } UR_Admin_Settings::output_fields( $settings ); } /** * Save settings */ public function save() { global $current_section; $settings = $this->get_settings(); if ( '' === $current_section ) { $settings = array(); } elseif ( 'import-export-forms' === $current_section ) { $settings = array(); } else { $settings = array(); } UR_Admin_Settings::save_fields( $settings ); } } endif; return new UR_Settings_Import_Export(); PK\U9includes/admin/settings/class-ur-settings-integration.phpnuW+Aid = 'integration'; $this->label = __( 'Integration', 'user-registration' ); add_filter( 'user_registration_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'user_registration_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'user_registration_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get settings * * @return array */ public function get_settings() { $settings = apply_filters( 'user_registration_integration_settings', array( array( 'title' => __( 'Google reCaptcha Integation', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'integration_options', ), array( 'title' => __( 'Version', 'user-registration' ), 'desc' => __( 'Select the google reCaptcha version', 'user-registration' ), 'id' => 'user_registration_integration_setting_recaptcha_version', 'default' => 'v2', 'type' => 'radio', 'class' => '', 'desc_tip' => true, 'options' => array( 'v2' => 'reCaptcha v2', 'v3' => 'reCaptcha v3', ), ), array( 'title' => __( 'Site Key (v2)', 'user-registration' ), 'desc' => sprintf( __( 'Get site key from google %1$s reCaptcha %2$s.', 'user-registration' ), '', '' ), 'id' => 'user_registration_integration_setting_recaptcha_site_key', 'default' => '', 'type' => 'text', 'class' => '', 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Secret Key (v2)', 'user-registration' ), 'desc' => sprintf( __( 'Get secret key from google %1$s reCaptcha %2$s.', 'user-registration' ), '', '' ), 'id' => 'user_registration_integration_setting_recaptcha_site_secret', 'default' => '', 'type' => 'text', 'class' => '', 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Site Key (v3)', 'user-registration' ), 'desc' => sprintf( __( 'Get site key from google %1$s reCaptcha %2$s.', 'user-registration' ), '', '' ), 'id' => 'user_registration_integration_setting_recaptcha_site_key_v3', 'default' => '', 'type' => 'text', 'class' => '', 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'title' => __( 'Secret Key (v3)', 'user-registration' ), 'desc' => sprintf( __( 'Get secret key from google %1$s reCaptcha %2$s.', 'user-registration' ), '', '' ), 'id' => 'user_registration_integration_setting_recaptcha_site_secret_v3', 'default' => '', 'type' => 'text', 'class' => '', 'css' => 'min-width: 350px;', 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'general_options', ), ) ); return apply_filters( 'user_registration_get_integration_settings_' . $this->id, $settings ); } /** * Save settings */ public function save() { $settings = $this->get_settings(); UR_Admin_Settings::save_fields( $settings ); } } endif; return new UR_Settings_Integration(); PK\ G333includes/admin/settings/class-ur-settings-email.phpnuW+Aid = 'email'; $this->label = __( 'Emails', 'user-registration' ); add_filter( 'user_registration_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'user_registration_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'user_registration_settings_save_' . $this->id, array( $this, 'save' ) ); add_action( 'user_registration_admin_field_email_notification', array( $this, 'email_notification_setting' ) ); $this->emails['UR_Settings_Admin_Email'] = include 'emails/class-ur-settings-admin-email.php'; $this->emails['UR_Settings_Awaiting_Admin_Approval_Email'] = include 'emails/class-ur-settings-awaiting-admin-approval-email.php'; $this->emails['UR_Settings_Email_Confirmation'] = include 'emails/class-ur-settings-email-confirmation.php'; $this->emails['UR_Settings_Registration_Approved_Email'] = include 'emails/class-ur-settings-registration-approved-email.php'; $this->emails['UR_Settings_Registration_Denied_Email'] = include 'emails/class-ur-settings-registration-denied-email.php'; $this->emails['UR_Settings_Registration_Pending_Email'] = include 'emails/class-ur-settings-registration-pending-email.php'; $this->emails['UR_Settings_Successfully_Registered_Email'] = include 'emails/class-ur-settings-successfully-registered-email.php'; $this->emails['UR_Settings_Reset_Password_Email'] = include 'emails/class-ur-settings-reset-password-email.php'; $this->emails['UR_Settings_Profile_Details_Changed_Email'] = include 'emails/class-ur-settings-profile-details-changed-email.php'; $this->emails = apply_filters( 'user_registration_email_classes', $this->emails ); } /** * Get settings * * @return array */ public function get_settings() { $settings = apply_filters( 'user_registration_email_settings', array( array( 'title' => __( 'General Email Settings', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'general_email_setting', ), ur_get_user_login_option(), array( 'type' => 'sectionend', 'id' => 'general_email_setting', ), array( 'title' => __( 'Email notifications', 'user-registration' ), 'desc' => __( 'Email notifications sent from user registration are listed below. Click on an email to configure it.', 'user-registration' ), 'type' => 'title', 'id' => 'email_notification_settings', ), array( 'type' => 'email_notification' ), array( 'type' => 'sectionend', 'id' => 'email_notification_settings', ), array( 'type' => 'sectionend', 'id' => 'email_recipient_options', ), array( 'title' => __( 'Email Sender Options', 'user-registration' ), 'type' => 'title', 'desc' => '', 'id' => 'sender_option', ), array( 'title' => __( '"From" name', 'user-registration' ), 'desc' => __( 'How the sender name appears in outgoing user registration emails.', 'user-registration' ), 'id' => 'user_registration_email_from_name', 'type' => 'text', 'css' => 'min-width:300px;', 'default' => esc_attr( get_bloginfo( 'name', 'display' ) ), 'autoload' => false, 'desc_tip' => true, ), array( 'title' => __( '"From" address', 'user-registration' ), 'desc' => __( 'How the sender email appears in outgoing user registration emails.', 'user-registration' ), 'id' => 'user_registration_email_from_address', 'type' => 'email', 'custom_attributes' => array( 'multiple' => 'multiple', ), 'css' => 'min-width:300px;', 'default' => get_option( 'admin_email' ), 'autoload' => false, 'desc_tip' => true, ), array( 'type' => 'sectionend', 'id' => 'sender_option', ), ) ); return apply_filters( 'user_registration_get_email_settings_' . $this->id, $settings ); } public function get_emails() { return $this->emails; } public function email_notification_setting() { ?> __( 'Email', 'user-registration' ), 'actions' => __( 'Configure', 'user-registration' ), ) ); foreach ( $columns as $key => $column ) { echo ''; } ?> get_emails(); foreach ( $emails as $email ) { echo ''; } ?>
              ' . esc_html( $column ) . '
              ' . __( $email->title, 'user-registration' ) . '' . ur_help_tip( __( $email->description, 'user-registration' ) ) . '
              get_emails(); foreach ( $emails as $email ) { if ( $current_section == 'ur_settings_' . $email->id . '' ) { $settings = new $email(); $settings = $settings->get_settings(); } } $settings = isset( $settings ) ? $settings : $this->get_settings(); UR_Admin_Settings::save_fields( $settings ); } /** * Output the settings. */ public function output() { global $current_section; $emails = $this->get_emails(); foreach ( $emails as $email ) { if ( $current_section == 'ur_settings_' . $email->id . '' ) { $settings = new $email(); $settings = $settings->get_settings(); } } $settings = isset( $settings ) ? $settings : $this->get_settings(); UR_Admin_Settings::output_fields( $settings ); if ( ! empty( $current_section ) ) { ?>
              'registration', 'plural' => 'registrations', 'ajax' => false, ) ); } /** * No items found text. */ public function no_items() { _e( 'No user registration found.', 'user-registration' ); } /** * Get list columns. * * @return array */ public function get_columns() { return array( 'cb' => '', 'title' => __( 'Title', 'user-registration' ), 'shortcode' => __( 'Shortcode', 'user-registration' ), 'author' => __( 'Author', 'user-registration' ), 'date' => __( 'Date', 'user-registration' ), ); } /** * Get list sortable columns. * * @return array */ protected function get_sortable_columns() { return array( 'title' => array( 'title', false ), 'author' => array( 'author', false ), 'date' => array( 'date', false ), ); } /** * Column cb. * * @param object $registration * * @return string */ public function column_cb( $registration ) { return sprintf( '', $this->_args['singular'], $registration->ID ); } /** * Return title column. * * @param object $registration * * @return string */ public function column_title( $registration ) { $edit_link = admin_url( 'admin.php?page=add-new-registration&edit-registration=' . $registration->ID ); $title = _draft_or_post_title( $registration->ID ); $post_type_object = get_post_type_object( 'user_registration' ); $post_status = $registration->post_status; // Title $output = ''; if ( 'trash' == $post_status ) { $output .= esc_html( $title ); } else { $output .= '' . esc_html( $title ) . ''; } $output .= ''; // Get actions $actions = array( 'id' => sprintf( __( 'ID: %d', 'user-registration' ), $registration->ID ), ); if ( current_user_can( $post_type_object->cap->edit_post, $registration->ID ) && 'trash' !== $post_status ) { $actions['edit'] = '' . __( 'Edit', 'user-registration' ) . ''; } if ( current_user_can( $post_type_object->cap->delete_post, $registration->ID ) ) { if ( 'trash' == $post_status ) { $actions['untrash'] = '' . esc_html__( 'Restore', 'user-registration' ) . ''; } elseif ( EMPTY_TRASH_DAYS ) { $actions['trash'] = '' . esc_html__( 'Trash', 'user-registration' ) . ''; } if ( 'trash' == $post_status || ! EMPTY_TRASH_DAYS ) { $actions['delete'] = '' . esc_html__( 'Delete permanently', 'user-registration' ) . ''; } } $duplicate_nonce = wp_create_nonce( 'user_registration_form_duplicate' . $registration->ID ); if ( current_user_can( $post_type_object->cap->edit_post, $registration->ID ) ) { $preview_link = add_query_arg( array( 'ur_preview' => 'true', 'form_id' => absint( $registration->ID ), ), home_url() ); $duplicate_link = admin_url( 'admin.php?page=user-registration&action=duplicate&nonce=' . $duplicate_nonce . '&form=' . $registration->ID ); if ( 'trash' !== $post_status ) { $actions['view'] = '' . __( 'Preview', 'user-registration' ) . ''; } if ( 'publish' === $post_status ) { $actions['duplicate'] = '' . __( 'Duplicate', 'user-registration' ) . ''; } } $row_actions = array(); foreach ( $actions as $action => $link ) { $row_actions[] = '' . $link . ''; } $output .= '
              ' . implode( ' | ', $row_actions ) . '
              '; return $output; } function column_author( $registration ) { $user = get_user_by( 'id', $registration->post_author ); if ( ! $user ) { return ''; } $user_name = ! empty( $user->data->display_name ) ? $user->data->display_name : $user->data->user_login; if ( current_user_can( 'edit_user' ) ) { return '' . esc_html( $user_name ) . ''; } return esc_html( $user_name ); } function column_shortcode( $registration ) { $shortcode = '[user_registration_form id="' . $registration->ID . '"]'; return sprintf( '', $shortcode ); } function column_date( $registration ) { $post = get_post( $registration->ID ); if ( ! $post ) { return; } $t_time = mysql2date( __( 'Y/m/d g:i:s A', 'user-registration' ), $post->post_date, true ); $m_time = $post->post_date; $time = mysql2date( 'G', $post->post_date ) - get_option( 'gmt_offset' ) * 3600; $time_diff = time() - $time; if ( $time_diff > 0 && $time_diff < 24 * 60 * 60 ) { $h_time = sprintf( __( '%s ago', 'user-registration' ), human_time_diff( $time ) ); } else { $h_time = mysql2date( __( 'Y/m/d', 'user-registration' ), $m_time ); } return '' . $h_time . ''; } /** * Get the status label for licenses. * * @param string $status_name * @param stdClass $status * * @return array */ private function get_status_label( $status_name, $status ) { switch ( $status_name ) { case 'publish': /* translators: %s: count */ $label = array( 'singular' => __( 'Published (%s)', 'user-registration' ), 'plural' => __( 'Published (%s)', 'user-registration' ), 'context' => '', 'domain' => 'user-registration', ); break; case 'draft': /* translators: %s: count */ $label = array( 'singular' => __( 'Draft (%s)', 'user-registration' ), 'plural' => __( 'Draft (%s)', 'user-registration' ), 'context' => '', 'domain' => 'user-registration', ); break; case 'pending': /* translators: %s: count */ $label = array( 'singular' => __( 'Pending (%s)', 'user-registration' ), 'plural' => __( 'Pending (%s)', 'user-registration' ), 'context' => '', 'domain' => 'user-registration', ); break; default: $label = $status->label_count; break; } return $label; } /** * Table list views. * * @return array */ protected function get_views() { $status_links = array(); $num_posts = wp_count_posts( 'user_registration', 'readable' ); $class = ''; $total_posts = array_sum( (array) $num_posts ); // Subtract post types that are not included in the admin all list. foreach ( get_post_stati( array( 'show_in_admin_all_list' => false, ) ) as $state ) { $total_posts -= $num_posts->$state; } $class = empty( $class ) && empty( $_REQUEST['status'] ) ? ' class="current"' : ''; /* translators: %s: count */ $status_links['all'] = "" . sprintf( _nx( 'All (%s)', 'All (%s)', $total_posts, 'posts', 'user-registration' ), number_format_i18n( $total_posts ) ) . ''; foreach ( get_post_stati( array( 'show_in_admin_status_list' => true, ), 'objects' ) as $status ) { $class = ''; $status_name = $status->name; if ( ! in_array( $status_name, array( 'publish', 'draft', 'pending', 'trash', 'future', 'private', 'auto-draft', ) ) ) { continue; } if ( empty( $num_posts->$status_name ) ) { continue; } if ( isset( $_REQUEST['status'] ) && $status_name == $_REQUEST['status'] ) { $class = ' class="current"'; } $label = $this->get_status_label( $status_name, $status ); $status_links[ $status_name ] = "" . sprintf( translate_nooped_plural( $label, $num_posts->$status_name ), number_format_i18n( $num_posts->$status_name ) ) . ''; } return $status_links; } /** * Get bulk actions. * * @return array */ protected function get_bulk_actions() { if ( isset( $_GET['status'] ) && 'trash' == $_GET['status'] ) { return array( 'untrash' => __( 'Restore', 'user-registration' ), 'delete' => __( 'Delete permanently', 'user-registration' ), ); } return array( 'trash' => __( 'Move to trash', 'user-registration' ), ); } /** * Extra controls to be displayed between bulk actions and pagination. * * @param string $which */ protected function extra_tablenav( $which ) { if ( 'top' == $which && isset( $_GET['status'] ) && 'trash' == $_GET['status'] && current_user_can( 'delete_posts' ) ) { echo ''; } } /** * Prepare table list items. */ public function prepare_items() { global $wpdb; $per_page = $this->get_items_per_page( 'user_registration_per_page' ); $current_page = $this->get_pagenum(); // Query args. $args = array( 'post_type' => 'user_registration', 'posts_per_page' => $per_page, 'ignore_sticky_posts' => true, 'paged' => $current_page, ); // Handle the status query. if ( ! empty( $_REQUEST['status'] ) ) { $args['post_status'] = sanitize_text_field( $_REQUEST['status'] ); } // Handle the search query. if ( ! empty( $_REQUEST['s'] ) ) { $args['s'] = sanitize_text_field( trim( wp_unslash( $_REQUEST['s'] ) ) ); // WPCS: sanitization ok, CSRF ok. } $args['orderby'] = isset( $_REQUEST['orderby'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['orderby'] ) ) : 'date_created'; // WPCS: sanitization ok, CSRF ok. $args['order'] = isset( $_REQUEST['order'] ) && 'DESC' === strtoupper( $_REQUEST['order'] ) ? 'DESC' : 'ASC'; // Get the registrations $registrations = new WP_Query( $args ); $this->items = $registrations->posts; // Set the pagination $this->set_pagination_args( array( 'total_items' => $registrations->found_posts, 'per_page' => $per_page, 'total_pages' => $registrations->max_num_pages, ) ); } } PK\P1qq)includes/admin/class-ur-admin-notices.phpnuW+A callback * * @var array */ private static $core_notices = array( 'update' => 'update_notice', 'install' => 'install_notice', 'register' => 'register_notice', ); /** * Constructor. */ public static function init() { self::$notices = get_option( 'user_registration_admin_notices', array() ); add_action( 'switch_theme', array( __CLASS__, 'reset_admin_notices' ) ); add_action( 'user_registration_installed', array( __CLASS__, 'reset_admin_notices' ) ); add_action( 'wp_loaded', array( __CLASS__, 'hide_notices' ) ); add_action( 'shutdown', array( __CLASS__, 'store_notices' ) ); if ( current_user_can( 'manage_user_registration' ) ) { add_action( 'admin_print_styles', array( __CLASS__, 'add_notices' ) ); add_action( 'in_admin_header', array( __CLASS__, 'hide_unrelated_notices' ) ); } } /** * Store notices to DB */ public static function store_notices() { update_option( 'user_registration_admin_notices', self::get_notices() ); } /** * Get notices. * * @return array */ public static function get_notices() { return self::$notices; } /** * Remove all notices. */ public static function remove_all_notices() { self::$notices = array(); } /** * Reset notices for themes when switched or a new version of UR is installed. */ public static function reset_admin_notices() { self::add_notice( 'register' ); } /** * Show a notice. * * @param string $name */ public static function add_notice( $name ) { self::$notices = array_unique( array_merge( self::get_notices(), array( $name ) ) ); } /** * Remove a notice from being displayed. * * @param string $name */ public static function remove_notice( $name ) { self::$notices = array_diff( self::get_notices(), array( $name ) ); delete_option( 'user_registration_admin_notice_' . $name ); } /** * See if a notice is being shown. * * @param string $name * @return boolean */ public static function has_notice( $name ) { return in_array( $name, self::get_notices() ); } /** * Hide a notice if the GET variable is set. */ public static function hide_notices() { if ( isset( $_GET['ur-hide-notice'] ) && isset( $_GET['_ur_notice_nonce'] ) ) { if ( ! wp_verify_nonce( $_GET['_ur_notice_nonce'], 'user_registration_hide_notices_nonce' ) ) { wp_die( __( 'Action failed. Please refresh the page and retry.', 'user-registration' ) ); } if ( ! current_user_can( 'manage_options' ) ) { wp_die( __( 'Cheatin’ huh?', 'user-registration' ) ); } $hide_notice = sanitize_text_field( $_GET['ur-hide-notice'] ); self::remove_notice( $hide_notice ); do_action( 'user_registration_hide_' . $hide_notice . '_notice' ); } } /** * Add notices + styles if needed. */ public static function add_notices() { $notices = self::get_notices(); if ( $notices ) { wp_enqueue_style( 'user-registration-activation', UR()->plugin_url() . '/assets/css/activation.css', array(), UR_VERSION ); // Add RTL support wp_style_add_data( 'user-registration-activation', 'rtl', 'replace' ); foreach ( $notices as $notice ) { if ( ! empty( self::$core_notices[ $notice ] ) && apply_filters( 'user_registration_show_admin_notice', true, $notice ) ) { add_action( 'admin_notices', array( __CLASS__, self::$core_notices[ $notice ] ) ); } else { add_action( 'admin_notices', array( __CLASS__, 'output_custom_notices' ) ); } } } } /** * Remove Notices other than user registration on user registration builder page. * * @since 1.4.5 */ public static function hide_unrelated_notices() { global $wp_filter; // Return on other than user registraion builder page. if ( empty( $_REQUEST['page'] ) || 'add-new-registration' !== $_REQUEST['page'] ) { return; } foreach ( array( 'user_admin_notices', 'admin_notices', 'all_admin_notices' ) as $wp_notice ) { if ( ! empty( $wp_filter[ $wp_notice ]->callbacks ) && is_array( $wp_filter[ $wp_notice ]->callbacks ) ) { foreach ( $wp_filter[ $wp_notice ]->callbacks as $priority => $hooks ) { foreach ( $hooks as $name => $arr ) { unset( $wp_filter[ $wp_notice ]->callbacks[ $priority ][ $name ] ); } } } } } /** * Add a custom notice. * * @param string $name * @param string $notice_html */ public static function add_custom_notice( $name, $notice_html ) { self::add_notice( $name ); update_option( 'user_registration_admin_notice_' . $name, wp_kses_post( $notice_html ) ); } /** * Output any stored custom notices. */ public static function output_custom_notices() { $notices = self::get_notices(); if ( $notices ) { foreach ( $notices as $notice ) { if ( empty( self::$core_notices[ $notice ] ) ) { $notice_html = get_option( 'user_registration_admin_notice_' . $notice ); if ( $notice_html ) { include 'views/html-notice-custom.php'; } } } } } /** * If we need to update, include a message with the update button. */ public static function update_notice() { if ( version_compare( get_option( 'user_registration_db_version' ), UR_VERSION, '<' ) ) { $updater = new UR_Background_Updater(); if ( $updater->is_updating() || ! empty( $_GET['do_update_user_registration'] ) ) { include 'views/html-notice-updating.php'; } else { include 'views/html-notice-update.php'; } } else { include 'views/html-notice-updated.php'; } } /** * If we have just installed, show a message with the install pages button. */ public static function install_notice() { include 'views/html-notice-install.php'; } /** * If we have just installed, and allow registration option not enable */ public static function register_notice() { $users_can_register = apply_filters( 'ur_register_setting_override', get_option( 'users_can_register' ) ); if ( ! $users_can_register && is_admin() && ! defined( 'DOING_AJAX' ) ) { include 'views/html-notice-registration.php'; } else { self::remove_notice( 'register' ); } } } UR_Admin_Notices::init(); PK\YAA3includes/admin/class-ur-admin-user-list-manager.phpnuW+Acan_status_be_changed_by( get_current_user_id() ) ) { return $actions; } $approve_link = add_query_arg( array( 'action' => 'approve', 'user' => $user->ID, ) ); $approve_link = remove_query_arg( array( 'new_role' ), $approve_link ); $approve_link = wp_nonce_url( $approve_link, 'ur_user_change_status' ); $deny_link = add_query_arg( array( 'action' => 'deny', 'user' => $user->ID, ) ); $deny_link = remove_query_arg( array( 'new_role' ), $deny_link ); $deny_link = wp_nonce_url( $deny_link, 'ur_user_change_status' ); $approve_action = '' . _x( 'Approve', 'The action on users list page', 'user-registration' ) . ''; $deny_action = '' . _x( 'Deny', 'The action on users list page', 'user-registration' ) . ''; $user_status = $user_manager->get_user_status(); if ( 'admin_approval' === $user_status['login_option'] ) { if ( 0 == $user_status['user_status'] ) { $actions['ur_user_deny_action'] = $deny_action; $actions['ur_user_approve_action'] = $approve_action; } elseif ( 1 == $user_status['user_status'] ) { $actions['ur_user_deny_action'] = $deny_action; } elseif ( -1 == $user_status['user_status'] ) { $actions['ur_user_approve_action'] = $approve_action; } } return $actions; } /** * Trigger the action query and check if some users have been approved or denied */ public function trigger_query_actions() { $action = isset( $_REQUEST['action'] ) ? sanitize_key( $_REQUEST['action'] ) : false; $mode = isset( $_POST['mode'] ) ? $_POST['mode'] : false; // If this is a multisite, bulk request, stop now! if ( 'list' == $mode ) { return; } if ( ! empty( $action ) && in_array( $action, array( 'approve', 'deny' ) ) && ! isset( $_GET['new_role'] ) ) { check_admin_referer( 'ur_user_change_status' ); $redirect = admin_url( 'users.php' ); $status = $action; $user = absint( $_GET['user'] ); $user_manager = new UR_Admin_User_Manager( $user ); if ( $status == 'approve' ) { $user_manager->approve(); $redirect = add_query_arg( array( 'approved' => 1 ), $redirect ); } else { $user_manager->deny(); $redirect = add_query_arg( array( 'denied' => 1 ), $redirect ); } wp_redirect( $redirect ); exit; } } // Display a notice to admin notifying the pending users. public function pending_users_notices() { $user_query = new WP_User_Query( array( 'meta_key' => 'ur_user_status', 'meta_value' => 0, ) ); // Get the results from the query, returning the first user. $users = $user_query->get_results(); if ( count( $users ) > 0 ) { echo '

              ' . __( 'User Registration:', 'user-registration' ) . ' ' . count( $users ) . ' ' . ( ( count( $users ) === 1 ) ? __( 'User', 'user-registration' ) : __( 'Users', 'user-registration' ) ) . ' ' . __( 'pending approval.', 'user-registration' ) . '

              '; } } /** * Display a notice to admin if some users have been approved or denied */ public function display_admin_notices() { $screen = get_current_screen(); if ( $screen->id != 'users' ) { return; } $message = null; $users_denied = ( isset( $_GET['denied'] ) && is_numeric( $_GET['denied'] ) ) ? absint( $_GET['denied'] ) : null; $users_approved = ( isset( $_GET['approved'] ) && is_numeric( $_GET['approved'] ) ) ? absint( $_GET['approved'] ) : null; if ( $users_approved ) { $message = sprintf( _n( 'User approved.', '%s users approved.', $users_approved, 'user-registration' ), $users_approved ); } elseif ( $users_denied ) { $message = sprintf( _n( 'User denied.', '%s users denied.', $users_denied, 'user-registration' ), $users_denied ); } if ( ! empty( $message ) ) { echo '

              ' . $message . '

              '; } } /** * Add the column header for the status column * * @param array $columns * * @return array */ public function add_column_head( $columns ) { $the_columns['ur_user_user_registered_source'] = __( 'Source', 'user-registration' ); $the_columns['ur_user_user_registered_log'] = __( 'Registered At', 'user-registration' ); $newcol = array_slice( $columns, 0, -1 ); $newcol = array_merge( $newcol, $the_columns ); $columns = array_merge( $newcol, array_slice( $columns, 1 ) ); return $columns; } /** * Set the status value for each user in the users list * * @param string $val * @param string $column_name * @param int $user_id * * @return string */ public function add_column_cell( $val, $column_name, $user_id ) { $form_id = ur_get_form_id_by_userid( $user_id ); if ( 'ur_user_user_status' === $column_name ) { $user_manager = new UR_Admin_User_Manager( $user_id ); $status = $user_manager->get_user_status(); if ( ! empty( $status ) ) { if ( 'admin_approval' === $status['login_option'] || 'default' === $status['login_option'] ) { return UR_Admin_User_Manager::get_status_label( $status['user_status'] ); } else { $user_managers = new UR_Email_Confirmation( $user_id ); return $user_managers->add_column_cell( $status['user_status'], $user_id ); } } } elseif ( 'ur_user_user_registered_source' === $column_name ) { $user_metas = get_user_meta( $user_id ); if ( isset( $user_metas['user_registration_social_connect_bypass_current_password'] ) ) { $networks = array( 'facebook', 'linkedin', 'google', 'twitter' ); foreach ( $networks as $network ) { if ( isset( $user_metas[ 'user_registration_social_connect_' . $network . '_username' ] ) ) { return ucfirst( $network ); } } } elseif ( isset( $user_metas['ur_form_id'] ) ) { $form_post = get_post( $user_metas['ur_form_id'][0] ); if ( ! empty( $form_post ) ) { return $form_post->post_title; } else { return '-'; } } else { return '-'; } } elseif ( 'ur_user_user_registered_log' === $column_name ) { $user_data = get_userdata( $user_id ); $registered_log = $user_data->user_registered; if ( $user_data ) { $log = date( 'F j Y , h:i A', strtotime( str_replace( '/', '-', $registered_log ) ) ); return $log; } else { return '-'; } } return $val; } /** * Make our "Registration At" column sortable * * @param array $columns Array of all user sortable columns */ public function make_registered_at_column_sortable( $columns ) { return wp_parse_args( array( 'ur_user_user_registered_log' => 'user_registered' ), $columns ); } public function add_status_filter( $which ) { $id = 'bottom' === $which ? 'ur_user_approval_status2' : 'ur_user_approval_status'; $filter_value = ( isset( $_GET[ $id ] ) && ! empty( $_GET[ $id ] ) ) ? $_GET[ $id ] : false; $approved_label = UR_Admin_User_Manager::get_status_label( UR_Admin_User_Manager::APPROVED ); $pending_label = UR_Admin_User_Manager::get_status_label( UR_Admin_User_Manager::PENDING ); $denied_label = UR_Admin_User_Manager::get_status_label( UR_Admin_User_Manager::DENIED ); ?>